Skip to content
jamesoncollins edited this page Jun 5, 2025 · 20 revisions

Major Project Milestones

  • Rev1 hardware spin
  • Speed / tach analog gauges
  • OLED and LCD screen support
  • ECU interface
  • Shift indicator: audible
  • Shift indicator: screen
  • Rev2 hardware spin

YouTube Video (Click to Play):

Img alt text

Project Status

Online Table Editor Tool

Rev2 HW Feature HW Status SW Status Rev1->Rev2 Changes Notes
Analog input (4 channels) Good enough Not implemented. 1st Order LPF These ADCs are part of the microcontroller. Because of the type of converter these are I have to pick a specific bandwidth. I don't know what that should be, but I think no more than 100Hz.
Analog Output (1 channel) Good enough Tested, works. Changed to SPI-based DAC. Higher power output OpAmp.
Speaker Good Enough Working shift-alert Louder speaker. I don't know yet if this is loud enough to use as a shift alert. The externnal power drivers are a better options.
Stepper Motors Good Fix minor layout issues, but mostly nothing.
Idiot Lights Good Good Comparator-based inputs to fix Battery warning light. Battery warning doesn't get anywhere near 0V and required special circuits.
Accelerometer Good Good None
ECU Interface Good Good None Works with either ODB2 or MUT3, both using K-line. I have a chromed 93 ecu, that's the only thing tested. MUT3 is faster, 400sps when the engine isn't running and ~200sps with the engine running. It's not clear why there is a difference but I assume that the ECU control loop must use more processing time when running, and I also assume that I am supposed to limit the request rate anyway as according to some spec. This is true for ODB2 so I assume its true for MUT3, but I don't have the spec.
Bluetooth Good Basic demo interface None Possible uses: user input, android auto display of real-time ECU data, wireless firmware updates, log offloading
USB Good Good None USB support is part of the microcontroller. Currently it can be used as a virtual serial port, so it could be used for wired communication to a PC.
Screen Good Good Fixed LCD pinout, changed OLED power supply to higher power chip. Add zeners to OLED as in data sheet. Only OLED has been tested. LCD and PWM circuits haven't been tested.
uSD Card and onboard flash not tested not tested None I assumed this would be used for datalogging.
Battery Backup Good Good None The board runs off battery power and uses an ignition signal to turn on. The board zeros the needles at shutdown and it tracks whether battery power is removed. If battery power is lost then the next boot of the board will come up in reset mode which will manually zero the needles. Its makes an ugly noise, and it takes time, so we go out of our way to avoid that.
External User Control None None None Currently there is no way to control the board at runtime. There are no buttons. You could rigup buttons to the IO. You could add some input panel via I2C. One idea might be to hijack the steering wheel controls (either radio, or cruise). We could also use bluetooth (but... ew...), or the USB serial connection.
Screen Mounting N/A N/A 3d-printed mount 3d-printed mount fits into the center cluster after milling away 0.6". You can still manually fit the screen board, it's just a bit of an art.
12V inputs Good Good No plans There are a number of 12v (well, more than 12v...) tolerant digital inputs.
12V Outputs Good Good Added 400mA solid state relays. Currently there are no native 12v outputs. Whether those be open-drain (outputs that are actually just connecting an external signal to ground) or some kind of relay. I don't know if I should bother as this could be done externally using low-voltage signals from these boards.
External I2C Good Good Added QWIIC connector pads These connectors are non populated by default.
Clone this wiki locally