Skip to content
/ wheelie Public

A simple modchip to convert proprietary Future Motion BMS packets (RS485) to VESC BMS packets (CAN)

License

Notifications You must be signed in to change notification settings

bwees/wheelie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wheelie

A simple modchip to convert proprietary Future Motion BMS packets (RS485) to VESC BMS packets (CAN).

Connect your existing Future Motion BMS (in charge-only mode) to your VESC to display per-cell voltages, charge current, and temperatures to the controller as if a VESC Smart BMS was connected. A few notes on this project:

  • Not all VESC BMS data nor its complete protocol/features are supported by this project. This project is NOT running vesc_bms_fw and instead utilizes the VESC CAN Protocol to update BMS values. This is similar to how vesc_bms_fw works but the complete BMS protocol is not implemented.
  • This project is based upon the reverse-engineering work from Owie. Check out the lib/bms directory for a modified version of the BMS communication library.

Hardware

The goal of this porject was to create a simple and cheap (under $25) method of exposing BMS data inside of VESC. The current hardware setup requires only 2 components and some wire:

  • ESP32-S3 Mini Development Board
  • SN65HVD230 CAN Bus Transceiver
    • Any CAN bus transceiver will work (i.e. TJA1050), the VD230 is just conveniently small and can be soldered directly onto the ESP32-S3 Mini. The ESP32 provides a ground to the board via one of its GPIOs to provide a clean soldering setup. Check out the picture below for soldering configuration
    • CAN Controllers, like the MCP2515 and MCP2551, will NOT work without modification to the code. This project uses the ESP32's build in CAN controller and only requires a transceiver to work
  • IRF540N N-Channel MOSFET
    • This is used to wake the BMS from sleep. We have to connect the blue BMS wire (which is at VBAT) to GND

This project utilizes a similar trick that Owie does to receive RS485 packets over UART. This saves on cost and complexity during soldering.

A 3D-printed case is in the works to make a clean mounting solution in the electronics housing.

Software

Upload the code using PlatformIO to the ESP32-S3 over USB before installing.

OTA Uploads

I plan to have an OTA upload system set up soon. My current plan is to utilize a CAN command to enable/disable a WiFi hotspot for OTA uploads. You can then just run a single lispBM command to send the CAN command from the lispBM REPL inside of VESC Tool.

About

A simple modchip to convert proprietary Future Motion BMS packets (RS485) to VESC BMS packets (CAN)

Resources

License

Stars

Watchers

Forks

Releases

No releases published