Hi dear VESC users and developers,
FW 5.00 is on its way, thanks to the good work of Benjamin Jeffrey and many contributors.
Thank you everyone !
As many things are on the table for a rework, could we take the opportunity to upgrade the CANbus integration ?
There are some devices that can (or will soon) hook to the CANbus, such as BMS, accessories, telemetry device or even chargers.
At the moment this implies to find workarounds for every device to communicate together.
I propose to throw our thoughts and needs (as users or developers) for building a CANbus open to more devices and bringing the ability for them to inter-operate (for instance, the BMS can allow the ESC to regen but not discharge in case of battery low, but without shutting down the power line).
Here are some of mines :
- Add a device identifier (for instance, in COMM_GET_VERSION) to know that the device is (ESC master, ESC slave, BMS, Charger, accessories, telemetry, bluetooth module...).
- Extended frame ID are embedding commands and target ID OR sender ID in case of status message. This can be confusing. Why not coding both target and sender ID in the Extended frame ID as we have some room left (29bits available, only 16 used). With way we can also save one payload byte as some commands reply with their ID ?
- Reserve some of the CAN_PACKET commands (the first for instance) for "universal" commands and put device-specific commands furtheer in the enum ?
Those are some thoughts but as I'm designing a "SmartCharger" with CAN ability I'd like to find a sustainable away to communicate with BMS or ESC easily. At this state, I'm afraid to issue commands to the wrong target and make some bad things (i.e ATM, DieBieMS GET_CELLS_VALUES command = VESC FW_WRITE_LZO command).
I already started few months ago to work on a draft about such a unified protocol.
Here is a link : https://drive.google.com/open?id=1YXr_k_iyvdH3Ont8zz-6KKbbqhPPB_aq
I found out some existing protocols such as the EnergyBus but it's only limited to 48V batteries. VESC 75-300 and other upcoming ESCs are going far beyond this limit. Not suitable for us, but maybe a good start ?
Also, perhaps UAVCAN may be the way to explore ?
Please share your thougts !