INFO: This project is in early development. Many features are not yet fully implemented or tuned. Use on your own risk. Not every ESC combination is guaranteed to work
DIY replacement vehicle controller for Joyor T6E scooters for use with VESC motor drivers and the original controls. Currently only supports Joyor T6E.
- Controls all lights: Front, Rear, Brake, Indicators
- 3 Drive modes + 3 additional "master" drive modes (Adult/Child modes...)
- Speed, Current and control mode (Throttle vs. Speed control) for every mode selectable
- Configurable Off-throttle and Brake regen strength
- R503 Fingerprint reader support
- Locks scooter until valid fingerprint is scanned
- Enables secondary drive modes with "master finger"
- USB & OTA firmware update
- VESC Control via UART
- Reads charge level from original BMS via BLE
- Configuration via WiFi webinterface (ESPUI based)
- Connects to existing AP or fallback to standalonge AP mode (Password + Hidden SSID supported)
NOTE: NEVER connect or disconnect battery power when connected to the vesc or display. Always disable the battery using the JBD APP when connecting or disconnecting anything from the battery to prevent sparking or fault currents
Colors of different clone Julet style connectors can differ!
Display connector male side:
U - key
U 1 - 48v_powon (yellow)
2 1 2 - vbat (red)
6 3 - gnd (white)
3 5 4 - (green uart 5V)
4 5 - (black uart 3.3V DISP RX)
6 - (blue brake low)
Some ESCs have an enable pin on the comms connector that turns it off (after timeout) when pulled low. The enable pin of the HyperVCU is low when off and pulled via an optoisolator to VESC 3.3V when on to keep it enabled. Using this pin is optional and was tested on the MKESC 75100 V2 and MKESC 75200.
If this pin is not available but the ESC has push start with timeout it will be kept enabled by a uart keepalive signal.
AD2 can be used as a lock/unlock signal. It behaves like the enable pin but goes high (to VESC 3.3V) only after the VCU is unlocked (via Fingerprint) and not immediately.
- Update VESC to a compatible firmware (>V6.06, V7.0 recommended)
- Set up FOC, Hall sensors, calibration, wheel diameter (250mm), motor poles (30) in VESC tool
- Test motor with VESC alone
- DISABLE BMS WITH JBD APP
- Connect lights, fingerprint reader, display, VESC, power...
- Connect XT60 and enable BMS again
- Power on, connect to webinterface
- Configure drive modes and fingerprints
- Connect to "Hyper VCU" wifi, default pw "hypervcu"
- Open "http://10.13.37.1" in a browser
- Enable/Disable zero start: Hold brake, push throttle up quickly to 100% and release. "!" icon should appear
- Zero start and master modes reset to startup behaviour when enabling drive mode 0
- Unlock motor: Scan any valid finger
- Enter "master modes": Scan finger with id <10
- Exit "master modes": Scan any non master finger
- Unlock motor: Unlocked on start
- Enter "master modes":
- Enter pedestian mode (Hold drive mode "down" in any non zero drive mode)
- Hold brake and exit pedestrian mode (push throttle up for example)
| Display | Meaning |
|---|---|
| bt n "P menu" | Motor temperature |
| "!" Symbol | Zerostart or Master mode active |
| Battery % | Battery % |
| Speed | Speed kmh |
Errors are bit masked. Multiple can appear at once.
| Name | Code |
|---|---|
| VCUERR_LOCKED (Fingerprint locked) | 0x01 |
| VCUERR_VESCNOK (Vesc error/Disconnected) | 0x10 |
| VCUERR_VESCTEMP (Motor or mosfet hot) | 0x20 |
From Controller to Display
| Byte | IDLE | Info | Note |
|---|---|---|---|
| 0 | 0x02 | start | |
| 1 | 0x14 | start2? | |
| 2 | 0x03 | start3? | |
| 3 | 0x00 | ||
| 4 | 0x00 | 0x20 “!” symbol | |
| 5 | 0x80 | Brake | Brake 0xA0 |
| 6 | 0x00 | ||
| 7 | 0x00 | ||
| 8 | 0x00 | speed high | |
| 9 | 0x00 | speed low in 0.1kmh | 0-99kmh |
| 10 | 0x00 | Battery in % | |
| 11 | 0x00 | ||
| 12 | 0x1E | ||
| 13 | 0x00 | errors | |
| 14 | 0x00 | ||
| 15 | 0x00 | BT_n cycle count | |
| 16 | 0x00 | ||
| 17 | 0x00 | ||
| 18 | 0x00 | Blinker pins | 0x1 left, 0x2 right |
| 19 | CRC |
From Display to Controller (5V)
| Byte | IDLE | Info | Note |
|---|---|---|---|
| 0 | 0x01 | ||
| 1 | 0x14 | ||
| 2 | 0x03 | ||
| 3 | 0x00 | ||
| 4 | 0x00 | Speed mode 0 | Mode 1 = 5, Mode 2 = 10, Mode 3 = 15 |
| 5 | C0 | Flags | Walk 225, Headlight 224 |
| 6 | 0x00 | ||
| 7 | 0x00 | ||
| 8 | 0x00 | ||
| 9 | 0x00 | ||
| 10 | 0x00 | ||
| 11 | 0x00 | ||
| 12 | 0x14 | ||
| 13 | 0x1E | ||
| 14 | 0x00 | ||
| 15 | 0x00 | ||
| 16 | 0x00 | ||
| 17 | 0x00 | throttle | |
| 18 | 0x00 | throttle | Maxval 1000 |
| 19 | 0x00 | Blinker/Pin status | 0x1 left, 0x2 right |
| 20 | CRC |


