Skip to content

Repository files navigation

Radbuzz

Radbuzz is an infotainment and trip computer for electric mopeds and motorcycles, targeting VESC-based controllers. It's built for an ESP32P4 microcontroller, but can also be run on the desktop for testing.

how it looks mounted on the moped the default map screen zoomed out

maximum zoom with range speech bubbles with help text speedometer only screen

trip meter screen menu screen settings menu screen

Features:

  • OpenStreetMap-based map (currently OpenCycleMap) with different zoom levels, via a GPS module
  • Speedometer, both based on VESC data and GPS
  • Trip data, with average consumption, distance etc
  • Tesla-style power meter bar on the right
  • Supports receiving navigation instructions from Google maps via an android app
  • Trip log shown on the map, with power indicator in color
  • Range estimation shown on the map
  • A menu for configuration
  • Written in clean and modern C++ (C++23)

Hardware:

the pinout for the ESP32P4 can be seen in waveshare_p4_touch_4_3/main.cc

Setup

First install the eim tool (the esp-idf installation manager).

eim install -i v6.0.2
source $HOME/.espressif/tools/activate_idf_v6.0.2.sh
npm i lv_font_conv -g
pip3 install jinja2 pyyaml

Build setup (target)

cmake -GNinja -B radbuzz_esp32p4 -DCMAKE_BUILD_TYPE=Release <path>/radbuzz/esp32/waveshare_p4_touch_4_3
cmake --build radbuzz_esp32p4

Build setup (qt/unittest)

Install the same lvgl/Python dependencies as on target:

npm i lv_font_conv -g
pip3 install jinja2 pyyaml

And then:

cmake -GNinja -B radbuzz_qt <path>/radbuzz/qt
cmake --build radbuzz_qt

or

cmake -GNinja -B radbuzz_unittest <path>/radbuzz/test/unittest/
cmake --build radbuzz_unittest

See doc/build_instructions.md for more details on building and flashing the firmware.

The OSM API key

Get an API key for thunderforest via https://www.thunderforest.com/docs/apikeys/

Put this key as a string in a /APP_DATA/OSM_KEY.TXT file in the root directory of this project.

A key can also be placed on the SD card, as osm_key.txt, which will be preferred over the build time one if it exists.

Wifi SSID

Store the SSIDs and passwords in a /APP_DATA/SSID.TXT file on the SD card, with newlines. E.g.,

MySsid
PasswordForMySsid
OtherSsid
PasswordForOtherSsid

About

GPS map / trip meter / speedometer for VESC-based electric vehicles

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages