Introducing VETuner
Ever since I put a Megasquirt MS1 into the Stupid Car, back in 2009, I’ve been fiddling with software to work with it and similar ECUs. It started with MSLogger, and Android app that only logged and didn’t provide any capability to adjust the ECU. Then I joined the effort working on MSDroid which was much more capable.
Fast forward many years and MSDroid is effectively dead. I still fiddle with the code, but I can’t publish any updates to Google Play as it is tied into an obsolete payments library and that side of it belongs to the project owner.
I’ve been playing with various in-browser applications as I’ve found Javascript quite a fun language to play with, but I’ve avoided framework du jour as it always brings a lot of effort and baggage that I just can’t be bothered with. This resulted in MSQAnal and VEAnal (I am a child) and all was good.
Enter LLM
I tinkered around the edges with LLM software development, but I never had anything meaty to try it with. Browsing around recently I found this PDF that described the INI file format that descibes an ECU to tuning software such as TunerStudio and MSDroid1. I gave it to Claude, along with the comms spec and told it to write some ideomatic Javascript to parse an INI file into a suitable structure. TL;DR, it did. It needed a little help with an example of the wrapped packet format, but I was extremely impressed with the basic code generation.
In short order I managed to create this
This is Chromium using WebSerial to talk to a Speeduino ECU having parsed the INI, loaded all the pages from the ECU and chugging through the live data at 50Hz. All running locally in the browser.
Unfortunately, WebSerial basically only works in desktop chrome browsers, not on Android, and not Safari or Firefox at all. To this end, I’m going to make an ESP32-S3 based widget that will -
- Publish a WiFi access point
- Connect to the ECU over RS232
- Bridge that to a WebSocket service
- Host all the VETuner browser code in a simple HTTP server
- …
- Profit!
If I get it right it should just be a matter of plugging it in, connecting to the ‘VETuner’ AP and then open the browser on your phone/tablet/laptop and enjoy tuning stuff.
-
Which would have been extremely useful when we were developing MSDroid ↩︎