Reverse engineering: the trash printer reveals the secrets of its control panel
Many of us hardware-oriented types have a hard time walking past an abandoned consumer electronics device without thinking “If only I could take it to the car and bring it home to play with” and [phooky] from NYC Resistor is no stranger to this sentiment. An old Epson WF-2540 inkjet printer has been stripped down to its important “nutrients”, you know, the good stuff like motors, encoders and funky switches. But what are you doing with the control panel? After all, they’re usually very specific to the needs of the device they’re controlling and don’t usually offer much reusability.
[phooky] generally does not take care of them, but this time i decided to have fun. Inside, nothing fancy, with a large single-sided PCB for the key switches and LEDs, and a small PCB housing the LCD screen. The easiest part was figuring out how the keyboard sweep was done, which turned out to be quite simple, it just uses 74 series shift register devices to sweep the columns and synchronize the row rows. A Raspberry Pi Pico module was fielded to scan the keyboard and allow the creation of a keyboard board, by sheer brute force. No need to draw the circuit. Things got interesting when [phooky] started looking into the LCD interface, based on the Epson E02A46EA chip (good luck finding a datasheet for that one!) and soon realized that the documentation just wasn’t there, and things should be done the hard way. Going through the lines of the main processor (an Epson E01A9CA, anyway), the display clock was identified, along with some control signals and three lines for the RGB channels. Running a Saleae data capture in ROM mining software, the display configuration was determined to be a standard 320×120 unit.
The RP2040’s PIO unit was used to generate the video waveforms and push the pixels to the LCD controller, allowing the RP2040 board to be wired inside the case permanently, converting the control panel into a a USB device ready for action!
Want to learn a bit more about reverse-engineering unwanted (or not) objects and reusing them as you see fit? Check out this hack piece from a few weeks ago. For something a little more advanced, you can try your hand at a car ECU hack.
Thank you [Perry] for the tip!