Generalized Electric Vehicle Control Unit
Eagle C++ JavaScript Objective-C Arduino HTML Other
Switch branches/tags
Nothing to show
Latest commit 8a06011 Mar 20, 2017 @collin80 committed on GitHub Fix DIN0 and DIN2 failure
CAN enable pins were silently defaulted to 48 and 50 which are the DIN0 and DIN2 pins. This caused them to never work.
Permalink
Failed to load latest commit information.
Shield Added EVIC Object Module Mar 15, 2015
docs Added EVIC Object Module Mar 15, 2015
util Added EVIC Object Module Mar 15, 2015
website Added EVIC Object Module Mar 15, 2015
.cproject some logging, some docs Jan 25, 2014
.gitattributes Add .gitattributes file to normalize line endings Jul 28, 2013
.gitignore Merge branch 'ArduinoDue' of github.com:collin80/GEVCU Oct 16, 2013
.project.copy moved stuff to MotorController, added new vars Sep 30, 2013
BatteryManager.cpp Added EVIC Object Module Mar 15, 2015
BatteryManager.h Added EVIC Object Module Mar 15, 2015
BrusaMotorController.cpp Added EVIC Object Module Mar 15, 2015
BrusaMotorController.h Added EVIC Object Module Mar 15, 2015
CMakeLists.txt initial project import from KDevelop Apr 14, 2013
CanBrake.cpp Added EVIC Object Module Mar 15, 2015
CanBrake.h Added EVIC Object Module Mar 15, 2015
CanHandler.cpp Fix DIN0 and DIN2 failure Mar 20, 2017
CanHandler.h Added CANio to canhandler Aug 13, 2015
CanPIDListener.cpp Added EVIC Object Module Mar 15, 2015
CanPIDListener.h Added EVIC Object Module Mar 15, 2015
CanThrottle.cpp Added EVIC Object Module Mar 15, 2015
CanThrottle.h Added EVIC Object Module Mar 15, 2015
CodaMotorController.cpp Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
CodaMotorController.h Added EVIC Object Module Mar 15, 2015
DCDCController.cpp Added CANio to canhandler Aug 13, 2015
DCDCController.h Added EVIC Object Module Mar 15, 2015
DMOC.txt Attempted fix of DMOC645 to run Sep 22, 2014
Device.cpp Added EVIC Object Module Mar 15, 2015
Device.h Added EVIC Object Module Mar 15, 2015
DeviceManager.cpp Added EVIC Object Module Mar 15, 2015
DeviceManager.h Added EVIC Object Module Mar 15, 2015
DeviceTypes.h Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
DmocMotorController.cpp Fix some issues with DMOC code, removed regen when speed is low, refo… Oct 5, 2016
DmocMotorController.h Added EVIC Object Module Mar 15, 2015
ELM327Processor.cpp Added EVIC Object Module Mar 15, 2015
ELM327Processor.h Added EVIC Object Module Mar 15, 2015
ELM327_Emu.cpp Added EVIC Object Module Mar 15, 2015
ELM327_Emu.h Added EVIC Object Module Mar 15, 2015
EVIC.cpp Update EVIC.cpp Feb 23, 2017
EVIC.h Added EVIC Object Module Mar 15, 2015
FaultCodes.h Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
FaultHandler.cpp Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
FaultHandler.h Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
GEVCU.h Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
GEVCU.ino Set digital outputs a lot sooner. This should fix the issue where Sep 27, 2015
GEVCU.kdev4 initial project import from KDevelop Apr 14, 2013
GEVCU.sln Behold! A Visual Studio 2012 project for GEVCU. Apr 26, 2013
GEVCU.vcxproj Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
GEVCU.vcxproj.filters Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
Heartbeat.cpp Fix some issues with DMOC code, removed regen when speed is low, refo… Oct 5, 2016
Heartbeat.h Added EVIC Object Module Mar 15, 2015
Logger.cpp Added EVIC Object Module Mar 15, 2015
Logger.h Added EVIC Object Module Mar 15, 2015
MemCache.cpp Added EVIC Object Module Mar 15, 2015
MemCache.h Added EVIC Object Module Mar 15, 2015
MotorController.cpp Added EVIC Object Module Mar 15, 2015
MotorController.h Added Function for String CAPACITY May 5, 2015
OBD2Handler.cpp Added EVIC Object Module Mar 15, 2015
OBD2Handler.h Added EVIC Object Module Mar 15, 2015
PotBrake.cpp Added EVIC Object Module Mar 15, 2015
PotBrake.h Added EVIC Object Module Mar 15, 2015
PotThrottle.cpp Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
PotThrottle.h Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
PrefHandler.cpp Added EVIC Object Module Mar 15, 2015
PrefHandler.h Added EVIC Object Module Mar 15, 2015
README.md Updated readme to cover a recent issue with this repo Sep 22, 2016
SerialConsole.cpp Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
SerialConsole.h Added EVIC Object Module Mar 15, 2015
Sys_Messages.h Added EVIC Object Module Mar 15, 2015
ThinkBatteryManager.cpp Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
ThinkBatteryManager.h Added EVIC Object Module Mar 15, 2015
Throttle.cpp Added EVIC Object Module Mar 15, 2015
Throttle.h Added EVIC Object Module Mar 15, 2015
ThrottleDetector.cpp Added EVIC Object Module Mar 15, 2015
ThrottleDetector.h Added EVIC Object Module Mar 15, 2015
TickHandler.cpp Added EVIC Object Module Mar 15, 2015
TickHandler.h Added EVIC Object Module Mar 15, 2015
config.h Added CANio to canhandler Aug 13, 2015
constants.h Added EVIC Object Module Mar 15, 2015
eeprom_layout.h Added EVIC Object Module Mar 15, 2015
gearsandopstates.txt Attempted fix of DMOC645 to run Sep 22, 2014
ichip_2128.cpp Merge branch 'WIP' of https://github.com/jrickard/GEVCU into WIP Aug 14, 2015
ichip_2128.h Added EVIC Object Module Mar 15, 2015
readme.eclipse.txt some logging, some docs Jan 25, 2014
sys_io.cpp Set digital outputs a lot sooner. This should fix the issue where Sep 27, 2015
sys_io.h Set digital outputs a lot sooner. This should fix the issue where Sep 27, 2015
workinprogress.txt Added some initial support for the iChip 2128 module that is found on Aug 2, 2013

README.md

GEVCU

Note - If you have pulled this code between July and Sept of 2016 then you received commits that have been removed from this repo. It has been decided to move development of GEVCU6 code over to the GEVCU6 repo. If you have the commits from that multi-month window then point your origin to the GEVCU6 repo instead and everything will still be there and be correct. Sorry for any inconvenience this causes.

Generalized Electric Vehicle Control Unit

Our website can be found at : http://www.gevcu.org

A project to create a fairly Arduino compatible ECU firmware to interface with various electric vehicle hardware over canbus (and possibly other comm channels)

The project now builds in the Arduino IDE. So, use it to compile, send the firmware to the Arduino, and monitor serial. It all works very nicely.

The master branch of this project is now switched to support the Due. The master branch is sparsely updated and only when the source tree is in stable shape.

The older Macchina code has been moved to its own branch. This code is now VERY old but should work to control a DMOC645.

ArduinoDue branch is more experimental than the master branch and includes the work of Michael Neuweiler.

The WIP branch is sync'd to EVTV's official changes and as such could be considered as a testing ground for the official source code distribution.

You will need the following to have any hope of compiling and running the firmware:

  • A GEVCU board. Versions from 2 and up are supported.
  • Arduino IDE 1.5.4 - Do not use newer versions of the IDE
  • due_can library - There is a repo for this under Collin80
  • due_rtc library - Also under Collin80
  • due_wire library - once again
  • DueTimer library - and again

All libraries belong in %USERPROFILE%\Documents\Arduino\libraries (Windows) or ~/Arduino/libraries (Linux/Mac). You will need to remove -master or any other postfixes. Your library folders should be named as above.

The canbus is supposed to be terminated on both ends of the bus. If you are testing with a DMOC and GEVCU then you've got two devices, each on opposing ends of the bus. So, both really should be terminated but for really short canbus lines you will probably get away with terminating just one side.

If you are using a custom board then add a terminating resistor.

If you are using the new prototype shield then it should already be terminated. The DMOC can be terminated by soldering a 120 ohm resistor between the canbus lines. I did this on my DMOC and hid the resistor inside the plug shroud.

This software is MIT licensed:

Copyright (c) 2014 Collin Kidder, Michael Neuweiler, Charles Galpin, Jack Rickard

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.