Repository navigation
EU Supercharger visibility enabled on a US Tesla by changing the CAN charge-port type #228
Replies: 3 comments 8 replies
|
A useful next step would be to move the interface to an externally hosted, offline-capable web app and use BLE for communication with the device, similar to the ESP32-DualCAN project. |
|
Nice work, and it checks out. The Model 3 DBC has The flicker is what you suspected. The charge port ECU keeps sending type 0 and your copy follows it, so anything that takes the latest value sees EU nearly all the time, but every missed original or failed TX leaves a full cycle of US. Short of sitting inline on that bus it can't go away completely, your RX task work just makes the misses rarer. I'd like to bring this in as an opt-in feature: read the car's own type first (works in Listen-Only), then the rewrite, sent back on the bus it arrived on. For the write half I'd put a plug guard back in, like your earlier patch had (no rewrite with a cable connected), until there's a capture showing what charging looks like with it on. From the rest of the zip I'd take the TX and MARK lines in the log, the MCP2515 overflow count and the non-blocking stream write. The Two things would help. When the Superchargers showed up, were EU Region and Supercharger Access switched off, so is the CP type alone enough? And a short capture around a flicker with On BLE: Web Bluetooth doesn't exist in iOS Safari, so that route needs a native app. Moving web and CAN onto separate tasks gets most of the timing benefit without it. One heads-up, the build logs in the zip have your Windows user name and paths in them, in case you'd rather re-upload without. |
|
Today I tested the latest firmware with the hardware CAN filter and some bug fixes, and everything worked reliably. |




Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Title: EU Supercharger visibility on a US Tesla — implemented in custom firmware
I have implemented a working CAN injection feature in my Tesla Commander firmware that enables German Supercharger locations to appear in the navigation system of my US-market Tesla.
Charging already worked before this modification. The change concerns the charge-port type reported to the vehicle and its effect on Supercharger visibility and route planning.
The relevant CAN message in my setup is:
modified[0] = (original[0] & 0xFC) | 0x03;
Example:
Original: 25D#3441010004F0D403
Injected: 25D#3741010004F0D403
All other payload bits remain unchanged. Each received US-type 0x25D frame triggers a modified copy, subject to the firmware’s transmission safety checks. No periodic replay of an old payload is used.
0x25F is left untouched. The unrelated six-byte 0x25D message on Party CAN is also left untouched.
The feature is already integrated and working in the firmware. I have also implemented improvements to CAN reception, processing and diagnostics:
German Superchargers now appear in navigation, and route planning has become noticeably more reliable during my tests. Charging also worked during testing, although I observed intermittent flickering of the Supercharger display.
The latest CAN filtering changes are built and checked, but their effect still needs vehicle testing. I am not claiming completely loss-free reception yet.
Because this is parallel injection, the original US-type frames remain on the bus alongside the injected EU-type copies. This may contribute to the remaining occasional routing inconsistencies, but the cause has not been confirmed.
These results apply to my vehicle and setup; behaviour on other Tesla models or software versions may differ.
All reactions