In my search for a nice display with housing for my datalogger project, I came across the Autool X50 and X60 OBD2 gauge / code reader gadget (pod and gauge style respectively).
I bought them, in the hope that there might be something usable inside – a recognisable display panel or controller or something. I’m not interested in the OBD or automotive aspects of these devices, because I have already built a separate, more rugged ECU datalogger. I just wanted a display, but what I really wanted, was a display inside a gauge. I’ve only been able to get my hands on the X50 so far. The X60 gauge style version is on its way from China.
What I found inside was a GigaDevices GD32F103RBT6, 2MB flash eeprom, an LM393 for K/L line, an NXP CAN bus transceiver, and with the help of the guys on the stm32duino.com forums, the TFT panel and its controller were identified.
After some experimentation, the key components are all working with stm32duino.
There was some trouble getting the TFT LCD going. It turned out that the pin used for the TFT RST was claimed by JTAG by default, and the pin used for TFT D/C (data/command select) was claimed by USB in the maple / stm32duino base code, so workarounds were needed for these things.
Also the display controller (ST7789V), whilst working great with the ILI9341_STM library, does require MADCTL_BGR changing to MADCTL_RGB in Adafruit_ILI9341_STM::setRotation(uint8_t m)
The discussion thread is here.
and here’s a happy picture. The MCU is clocked at 128MHz here, which increases the SPI clock from the default 18MHz to the 32MHz that you can see here.