ZT3 support, ideas #8
Replies: 4 comments 11 replies
-
|
That's interesting. Does that mean we still need to sniff the communication between the BLE and VCU, or are they both implemented in the same ARM microcontroller, making that impossible? What if we sniff the communication between the motor controller and the VCU (is that UART?) Would there be any useful data to intercept, or is it too low-level? Regarding the BLE being already re-implemented: I tested other apps that can connect to the ZT3 BLE. They don't do much, just setting speeds for different modes and adjusting the location. There might not be much data communicated between the BLE and the app over Bluetooth that we can intercept for useful functionality. I like the idea of a single Pi and a rich display; however, I would like to keep the existing functionality intact as much as possible. |
Beta Was this translation helpful? Give feedback.
-
|
found the UART @3v: remove the 120 ohm resistors indicated on the display side of the board to separate the BLE/VCU. You can find the UART @1.8v on the NB-BT100 module pins 8 (TX) and 12 (RX) After disconnecting the BLE I was surprised to find that the display still worked- I guess the VCU handles that.
I ordered some TJA1051 transceivers to try monitoring from the ESP32, previously I had used an MCP2515 SPI interface on the Pi. A single interface should be enough to monitor and control, you'd only need the second to mitm. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
This project amazed me i would love to try anything on my zt3 since i do have spare displays in my shop and would like to make some esp32 display with a better ui and much more info then the stock lcd |
Beta Was this translation helpful? Give feedback.




Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
ZT3 is different from other x3s because the VCU and BLE are on the same pcb and with a more limited display.
my idea for the "ultimate" F3/G3/GT3 mod is an all-in-1 ESP32S3 touchscreen LCD that can completely replace the stock display, fit within the existing waterproofing, and found on Amazon for ~$30. If not replacing the stock display, user data can still be shown on the TFT by modifying communications. For inputs, spare GPIOs could parallel existing button connections on VCU, or software can parse BLE messages like "cruise control not allowed"
the module should constantly poll various ECU registers and an IMU/accelerometer, track min/max/average values per trip; storing detailed (time stamped) values of the last 5-10 rides as well as long-term average statistics. This data could be fed realtime to a more capable display device over wifi, bluetooth, or hardwire SPI. myBLEv4 already serves an HTML page and pushes realtime speed, voltage and temperature values to it; I'm sure a talented web css/javascript dev could make something beautiful. https://github.com/MacintoshKeyboardHacking/segMod/blob/main/myBLE4/example/myBLEv4-BMS.png https://raw.githubusercontent.com/MacintoshKeyboardHacking/segMod/refs/heads/main/myBLE4/example/segMod-BMS.html
I see a definite application for a 'second box' (raspberry Pi) doing video capture with telemetry overlay > h264 compression, gps track with ecu parameter logging, perhaps also some mobile entertainment like an SDR, ota TV tuner and media storage available through WiFi hotspot. If the box has a display, I think 'rearview camera' would generally be the most useful - though I would primarily want to record a high-quality front camera footage (gopro via hdmi).
In the case of the ZT3, where a display would be a big upgrade, you really could do it all with a single Pi... at least on the other x3s, the BLE has nothing to do with actually driving the scooter - so performance is never 'critical'. I'm running my ESP32 underclocked to 80MHz and I still get like 2000 loop()s a second
if we don't want the stock display we probably don't need the BLE at all; this guy claims to have fully re-implemented the Segway bluetooth crypto in python - https://codeberg.org/NootNooot/ I haven't gotten it working yet, all my good Linux boxen have been too old software. He's working on an eMoped in the EU so some of his descriptions don't apply to us
Beta Was this translation helpful? Give feedback.
All reactions