- Overview
- DETAILED INFO
Add your content here…
Mini Advanced Dashboard
ESP32-C3 OLED 0.42″ | VESC & BMS Monitor | Wireless Bridge
MAD32 EVmo (Mini Advanced Dashboard EVmo) is a compact, wireless dashboard module designed for electric vehicles powered by VESC controllers. It features a bright OLED display showing real-time telemetry data and supports Bluetooth connectivity for both VESC Tool app and BMS monitoring.
Perfect for:
- 🛹 Electric Skateboards & Longboards
- 🛴 E-Scooters & Electric Kick Scooters
- 🚲 E-Bikes & Electric Bicycles
- 🏎️ DIY Electric Vehicles with VESC
- ⚡ Any VESC-powered electric vehicle
🎯 Key Capabilities
Acts as BLE server (NRF UART Service) for wireless connection to VESC Tool app on smartphone, tablet, or PC. Configure and monitor your VESC controller without cables.
Connects to remote VESC BT module as BLE client and displays its telemetry. Perfect for dual-motor setups or monitoring a second vehicle wirelessly.
WiFi P2P communication between two modules (up to 100m range). Master sends VESC data to Slave display. Great for dual-board setups or remote monitoring.
Bright, high-contrast display with 4 customizable screens showing battery voltage, power (watts), temperature, speed, and input signals. Switch screens with onboard button.
Monitor battery pack via Bluetooth: state of charge (SOC%), voltage, current, power, temperature, and individual cell voltages (1-16 cells). Helps detect weak or unbalanced cells.
VESC BT – BLE client (default) | Standard – BLE server | Master – BLE + ESP-NOW TX | Slave – ESP-NOW RX | OFF – VESC disabled
Main (voltage + mode), Watts+Temp, Power (V+W), Inputs (ADC/PPM). Optional BMS screens show pack status, cells 1-8, and cells 9-16.
All configuration (mode, BT devices, rotation, BMS settings) saved to flash memory. Survives power off and restarts. Auto-reconnects to saved devices on boot.
💡 How It Works
Connect ESP32-C3 to VESC via 4-wire UART (TX, RX, 3.3V, GND). Module draws power from VESC 3.3V output.
Hold BOOT button (2s) to enter config menu. Select operating mode, pair BT devices, enable BMS if needed.
Display shows real-time telemetry. Press BOOT button briefly to cycle through screens. Module auto-connects to saved devices.
✅ What You’ll Need
- MAD32 EVmo module (ESP32-C3 with OLED display)
- VESC controller with UART port (4-pin connector)
- 4 wires for connection (TX, RX, 3.3V, GND)
- USB-C cable for initial firmware flashing
- Computer with NodeMCU-PyFlasher installed
- Optional: JBD/Xiaoxiang BMS for battery monitoring
📝 Step-by-Step Setup
- Flash Firmware to ESP32-C3Connect ESP32-C3 to your computer via USB-C. Use NodeMCU-PyFlasher to flash the
MAD32_EVmo_V1a.binfile. Settings: Baud 115200, Flash Mode DIO, Address 0x0, Erase flash: Yes.
→ See “Flashing” tab for detailed instructions - Wire ESP32-C3 to VESCConnect 4 wires from ESP32-C3 to VESC UART port:
3.3V → 3.3V (power) | GND → GND (ground) | GPIO21 → RX (ESP TX to VESC RX) | GPIO20 → TX (ESP RX to VESC TX)
→ See “Wiring” tab for diagram - First Power-OnTurn on VESC. The module will show splash screen:
Pirate.AC → MAD32 EVmo → Firmware:V1a
Then display switches to Main Screen showing mode and battery voltage. - Configure Operating ModeHold BOOT button for 2 seconds to enter Configuration Menu.
Select mode: VESC BT (receive from remote VESC BT – default) | Standard (BLE bridge for VESC Tool) | Master/Slave (ESP-NOW wireless link) | OFF (VESC disabled)
→ See “Configuration” tab for mode details - Optional: Enable BMS MonitoringIn config menu, navigate to BMS Feature → ON.
Then go to BMS Status page and hold BOOT (2s) to search for your JBD/Xiaoxiang BMS.
Select device from list and hold BOOT again to save. Module will auto-connect on next boot. - Save Settings & ExitNavigate to Save & Exit page in config menu.
Hold BOOT button (2s) to save all settings and restart module. Settings are stored in flash memory and persist after power off.
🎮 Daily Operation
📱 Connect VESC Tool
1. Open VESC Tool app on phone/tablet/PC
2. Scan for Bluetooth devices
3. Connect to module (name: User1-6 or device name)
4. Configure VESC wirelessly
📺 View Telemetry
1. Short press BOOT to cycle screens
2. Screen 1: Battery voltage + mode
3. Screen 2: Power (W) + Temperature
4. Screen 3: Voltage + Power (large)
5. Screen 4: ADC/PPM inputs
🔋 Monitor BMS
1. Enable BMS Feature in config menu
2. Pair with JBD/Xiaoxiang BMS
3. View 3 additional screens:
• BMS Main (V, SOC%, A, W, °C)
• Cells 1-8 voltages
• Cells 9-16 voltages
⚠️ Important Notes
- Power: ESP32-C3 operates at 3.3V. DO NOT connect 5V to GPIO pins!
- UART: Make sure UART is enabled in VESC Tool settings (baud rate 115200)
- Pairing: For Master/Slave mode, both modules must have same channel name (User1-6)
- BMS: Only JBD/Xiaoxiang protocol BMS are supported currently
- Reset: To factory reset, hold BOOT while powering on until “Factory Reset” appears
Free tool for Windows and macOS – download from GitHub Releases
Step-by-Step Instructions
- Download and Install NodeMCU-PyFlasherDownload the latest release from GitHub. For Windows, use the
.exefile. For macOS, use the.dmgfile. No installation required – just run it. - Connect ESP32-C3 to your ComputerUse a USB-C cable to connect the ESP32-C3 module to your computer. Make sure it’s a data cable, not just a charging cable. The module should be recognized automatically.
- Select COM PortIn NodeMCU-PyFlasher, click the
Serial portdropdown and select the COM port for your ESP32. On Windows it’s usuallyCOM3,COM4, etc. On macOS it’s/dev/cu.usbserial-xxx. - Select Firmware FileClick
Browseand select theMAD32_EVmo_V1a.binfile that you received. - Configure Flash SettingsSet the parameters as shown below. These settings are critical for proper flashing!
- Flash the FirmwareClick
Flash NodeMCUbutton. Wait for the process to complete. You should see “Finished” message when done. The module will restart automatically.
⚙️ Required Flash Settings
Important!
The flash address must be set to 0x0 (zero). The BIN file contains bootloader, partitions, and firmware merged together. Using wrong address will result in non-working module.
✅ Troubleshooting
- COM port not visible? – Install CH340/CP2102 USB driver for your system
- Connection failed? – Try holding BOOT button while connecting USB, then release
- Flash failed? – Try lower baud rate (57600) or different USB cable
- Module not starting? – Verify flash address is 0x0 and re-flash with “Erase flash” enabled
WARNING: 3.3V Logic Level!
ESP32-C3 operates at 3.3V logic. DO NOT connect 5V directly to ESP32 pins! Use 3.3V from VESC or a voltage regulator.
- Power 3.3V
- Ground GND
- UART RX GPIO20
- UART TX GPIO21
OLED SDA: GPIO5
OLED SCL: GPIO6
BOOT Button: GPIO9
- 3.3V Output 3.3V
- Ground GND
- UART TX TX
- UART RX RX
Standard 4-pin
header on VESC board
115200BMS Status Page:
- Shows saved BMS name or “add bms”
- Hold 2s → Starts BLE scan for JBD/Xiaoxiang BMS
- Short press → Scrolls through found devices
- Hold 2s again → Saves selected device
- Auto-connects on startup
- Adds 3 extra screens: BMS Main, Cells 1-8, Cells 9-16
📝 Important Notes:
- VESC Mode cycling: VESC BT → Standard → Master → Slave → OFF (short press to change)
- Name/Channel: Used for pairing Master and Slave (both must have same name)
- VESC BT Status: Shows saved device or “add VESC”, hold 2s to search
- BMS Status: Shows saved device or “add bms”, hold 2s to search
- Rotate: Rotates display by 180° (useful for reverse mounting)
- Settings saved to NVS flash memory and persist after restart
- Module automatically restarts after saving configuration
🎯 What is VESC?
VESC (Vedder Electronic Speed Controller) is an open-source motor controller designed by Benjamin Vedder. It’s widely used in electric skateboards, e-bikes, and other electric vehicles for its advanced features like FOC (Field Oriented Control), regenerative braking, and comprehensive telemetry.
🔄 Operating Modes
MAD32 EVmo offers 5 operating modes configured in the settings menu (VESC Mode option). Each mode has different connectivity and data source:
UART → BLE Server
• ESP32 connected via UART to local VESC
• Acts as BLE server for VESC Tool app
• Direct wired connection (TX/RX pins)
• Best for single vehicle monitoring
BLE Client → Remote VESC BT
• ESP32 connects to remote VESC BT module
• No UART wiring required (100% wireless)
• Receives data via Bluetooth BLE
• Perfect for wireless monitoring or 2nd vehicle
UART + ESP-NOW Transmitter
• Connected via UART to local VESC
• Broadcasts data via ESP-NOW (WiFi P2P)
• Sends to Slave module(s) wirelessly
• Dual display setup (handlebar + wrist)
ESP-NOW Receiver
• Receives data from Master via ESP-NOW
• No UART wiring (receives wirelessly)
• Perfect as secondary/remote display
• Mount on wrist, helmet, or remote location
VESC Functionality Disabled
• No UART, BLE server, or ESP-NOW
• Device can work as BMS-only monitor
• Saves power and resources
• Shows “Turn On FEATURES” if BMS also OFF
• Master vs Slave: Master reads from local VESC via UART and broadcasts. Slave receives data wirelessly via ESP-NOW
• BLE vs ESP-NOW: BLE (VESC BT RX) connects to VESC modules. ESP-NOW (Master/Slave) is WiFi peer-to-peer between ESP32 devices
• OFF Mode: Completely disables VESC functionality (UART, BLE server, ESP-NOW). Device can still monitor BMS if enabled
• BMS Support: All modes support BMS monitoring simultaneously (BMS always uses Bluetooth BLE)
📊 Real-Time Telemetry
Real-time power consumption in watts, battery voltage, and input current. Essential for range estimation and efficiency optimization.
MOSFET and motor temperature tracking. Prevents overheating and thermal damage to your controller.
ADC1, ADC2, and PPM signal monitoring. Debug throttle issues and verify remote control signals.
📺 Display Screens (3 screens)
Screen cycling:
• Standard/Master/VESC BT modes: Main → Watts+Temp → Inputs
• Slave mode: Watts+Temp → Main → Inputs
Button: Short press to cycle through screens
🎯 What is BMS?
BMS (Battery Management System) protects your battery pack from overcharge, over-discharge, overcurrent, and cell imbalance. MAD32 EVmo supports JBD/Xiaoxiang BMS via Bluetooth for real-time battery monitoring and cell balancing verification.
📊 Battery Pack Telemetry
Total voltage, state of charge (SOC%), current flow (charge/discharge), power output, and pack temperature.
Monitor each cell (1-16) separately. Identify weak cells, detect imbalance issues, and verify proper balancing.
Current direction indicator (+ charging / – discharging), power in watts, and remaining capacity estimation.
✅ Supported BMS Models
- JBD/Xiaoxiang BMS: SP04S, SP05S, SP10S, SP12S, SP13S, SP14S, SP15S, SP16S, SP20S, SP21S
- Protocol: Xiaoxiang/Overkill Solar BMS (Bluetooth BLE)
- Cell count: 3S to 16S configurations supported
- Connection: Wireless via Bluetooth (no additional wiring needed)
📺 Display Screens (3 screens)
Additional screens when BMS Feature ON:
• Screen 5: BMS Main (pack voltage, SOC%, current, power, temperature)
• Screen 6: Cells 1-8 (individual cell voltages)
• Screen 7: Cells 9-16 (individual cell voltages, shows “–” for unused)
Access: Cycle through VESC screens first, then BMS screens appear
🔮 What’s Coming Next
MAD32 EVmo is under continuous development. Below is our roadmap of planned features that will expand the dashboard’s capabilities. These features are in various stages of planning and development. Stay tuned for updates!
✨ Coming Soon
Real-time speed tracking from GPS module connected to ESP32. Accurate speed measurement independent of motor RPM. Perfect for comparing actual vs calculated speed.
Mirror telemetry to external displays:
• ST7789 76×284 super-wide color LCD
• Transparent OLED 128×64 for HUD applications
Enable in config menu for dual-screen setup with simultaneous display on both screens.
Control vehicle lighting via ESP-NOW:
• Turn headlights/taillights ON/OFF
• Control LED strips (WS2812B, etc.)
• Change colors and brightness
• Custom lighting patterns
Helmet-mounted gyroscope detects head turning direction and automatically activates turn signals. Wireless communication via ESP-NOW to vehicle lighting system. Enhances safety for night riding.
Connect Magene heart rate sensor via Bluetooth. Display real-time heart rate on dashboard screen. Track fitness levels during rides and monitor cardiovascular performance.
Monitor air quality, temperature, and humidity:
• Air Quality Index (AQI)
• Temperature and humidity
• VOC (Volatile Organic Compounds) detection
• CO2 equivalent (eCO2) levels
Support for KT (Kunteng) bicycle controllers used in e-bike conversion kits. Read telemetry data via UART/serial communication. Expands MAD32 EVmo beyond VESC to e-bike market.
We’re constantly exploring new features and improvements based on community feedback. Have an idea? Let us know! The roadmap evolves with user needs.
📅 Development Timeline
Active coding and testing phase. Expected in next major release.
Feature design complete. Scheduled for future development cycle.
Exploring feasibility, hardware compatibility, and implementation approaches.
💬 Want to Contribute?
MAD32 EVmo welcomes community contributions! Whether it’s feature suggestions, bug reports, or code contributions – your input helps shape the future of this project.
- Feature Requests: Share your ideas for new features
- Bug Reports: Help us improve stability and reliability
- Hardware Testing: Test with different VESC models and BMS types
- Documentation: Improve guides, translations, and tutorials
