Long time lurker, first time poster.
Thought I would show off a project I started working on a few weeks ago...
Last year I restored and converted an old 70s/80s minibike to electric. (No thread on that yet, will get one up soon!). In this build I used an Ant BMS and a VESC motor controller. I tired of using my phone and the VESC & BMS app as a "dashboard". I figured making my own couldn't be "that" hard.. so I did just that.
Progress so far:

(displayed data is not real obviously)
Hardware is a cheap 4" LCD touchscreen from Amazon, being run by a ESP32 clone dev board.
Developing it using VSCode/PlatformIO with Arduino framework. LCD is being handled by the LVGL library with the tft_eSPI library acting as the driver. It reads the data directly from both the BMS and the VESC motor controller over TTL serial. Thankfully there are already libraries out there for communicating with both the AntBMS and the VESC, so at least I didn't have to implement that part!
It started out as just showing speed from the VESC and % battery from the BMS. But feature creep has set in and I keep adding things. Implemented an odometer, since my 3Shul VESC controller doesn't. And also a clock using a DS3231 module.
LVGL is a bit of a slog to work with, but its the only library I found that provides a decent framework for GUI stuff. 70% of the code in this project is LVGL/GUI stuff easily. Never done anything much beyond making some lights blink on an original Arduino Uno before, so this has been a learning experience for sure.
Still need to flesh out the rest of the data display with things like temps, motor RPM, BMS amps, etc.. And eventually would like to add a settings screen, but that will require implementing the touchscreen. I might actually have this usable by the time it gets warm enough to ride again.
Thought I would show off a project I started working on a few weeks ago...
Last year I restored and converted an old 70s/80s minibike to electric. (No thread on that yet, will get one up soon!). In this build I used an Ant BMS and a VESC motor controller. I tired of using my phone and the VESC & BMS app as a "dashboard". I figured making my own couldn't be "that" hard.. so I did just that.
Progress so far:

(displayed data is not real obviously)
Hardware is a cheap 4" LCD touchscreen from Amazon, being run by a ESP32 clone dev board.
Developing it using VSCode/PlatformIO with Arduino framework. LCD is being handled by the LVGL library with the tft_eSPI library acting as the driver. It reads the data directly from both the BMS and the VESC motor controller over TTL serial. Thankfully there are already libraries out there for communicating with both the AntBMS and the VESC, so at least I didn't have to implement that part!
It started out as just showing speed from the VESC and % battery from the BMS. But feature creep has set in and I keep adding things. Implemented an odometer, since my 3Shul VESC controller doesn't. And also a clock using a DS3231 module.
LVGL is a bit of a slog to work with, but its the only library I found that provides a decent framework for GUI stuff. 70% of the code in this project is LVGL/GUI stuff easily. Never done anything much beyond making some lights blink on an original Arduino Uno before, so this has been a learning experience for sure.
Still need to flesh out the rest of the data display with things like temps, motor RPM, BMS amps, etc.. And eventually would like to add a settings screen, but that will require implementing the touchscreen. I might actually have this usable by the time it gets warm enough to ride again.