Motorcycle custom instrument panel

I had a Planar 160×80 EL graphic display that’s been in my parts bin for years that I’ve always wanted to use, and this was perfect. Unfortunately it doesn’t have a controller so I had to interface it to the CPU with an Epson S1D13700 graphic controller. The display indicates speed from a GPS module, air/fuel ratios from the wideband O2 sensor, engine temp, battery voltage, time from GPS, and RPM. I used a light sensor to sense ambient brightness levels and dim the display by changing TC/R in the graphics controller. The refresh of the display is high enough to allow a large dimming range without flickering. The EL display can be refreshed at up to 240Hz. The light sensor also controls the brightness of the bar graph and indicator LEDs. A BC127 Bluetooth module allows data logging via SPP, and I might eventually get around to displaying SMS messages from my phone on the display which was one of the design goals but isn’t done yet.
An IR opt isolator senses RPM pulses from the magnetic pickup and protects the system from ignition noise. Addressable LEDs function as indicator lights as well as forming the bar graph at the top of the display. The bar graph can display RPM, battery voltage, engine temp, or A/F ratios depending on the current mode which is selected by a button on the side of the housing. The bar graph is also a two stage shift light which overrides any display mode and goes to full brightness with two different colors to indicate high RPM for shifting. A highlight box on the graphics layer shows which mode is currently active and the graphic and text layers are XOR’ed. I also made a custom bitmapped font I thought went well with the display size and the amount of characters.

I did have problems with the cursor randomly flashing around the display since you can’t actually turn the cursor off with the S1D13700, so I had to implement a buffered graphics display. Data is collected from the various sensors and serial interfaces which updates the graphic frame buffer, and then the buffer is written to the display.
An ATmega128L runs the system, and the logic was all written in C. This will hopefully be my last big project with an AVR (especially the 128), as I am trying to migrate to ARM for bigger projects.
I made the housing from cast acrylic on my CNC. The base is milled out 1″ sheet. I made the PCBs on my CNC as well. Here is the schematic which I think is current, source code and a video of the whole thing in action.
Read More: Motorcycle custom instrument panel

Leave a Comment

Your email address will not be published. Required fields are marked *