Reverse Engineering: Trash Printer Gives Up Its Control Panel Secrets

Many of us hardware-oriented types find it hard to walk past a lonely-looking discarded item of consumer electronics without thinking “If only I could lug that back to the car and take it home to play with” and [phooky] from NYC Resistor is no stranger to this sentiment. An old Epson WF-2540 inkjet printer was disassembled for its important ‘nutrients,’ you know, the good stuff like funky motors, encoders and switches. But what do you do with the control panel? After all, they’re usually very specific to the needs of the device they control, and don’t usually offer up much scope for reuse.

The RP2040 PIO is quite capable of pushing out those LCD pixels

[phooky] doesn’t usually bother with them, but this time decided to have a crack at it for fun. Inside, nothing out of the ordinary, with a large single-sided PCB for the key switches and LEDs, and a small PCB hosting the LCD display. The easy part was to figure out how the keyboard scanning was done, which turned out to be pretty simple, it just uses some 74-series shift register devices to scan the columns and clock out the row lines. A Raspberry Pi Pico module was pressed into service to scan the keyboard and enable a keyboard map to be created, by pure brute-force. No need to trace 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 quickly realised that documentation simply wasn’t available, and it would be necessary to do things the hard way. Poking around the lines from the main CPU (an Epson E01A9CA , whatever that is) the display clock was identified, as well as some control signals, and three lines for the RGB channels. By throwing a Saleae data capture into some ROM exploring software, the display configuration was determined to be a standard 320×120 unit.

The PIO unit of the RP2040 was used to generate the video waveforms and push the pixels out to the LCD controller, allowing the RP2040 board to be wired inside the case permanently, converting the control panel into a USB device ready for action!

Want to know a little more about reverse engineering junk (or not) items and repurposing them to your will? Checkout this hacking piece from a couple of weeks back. For something a little more advanced, you could try your hand at a spot of car ECU hacking.

Thanks [Perry] for the tip!

7 thoughts on “Reverse Engineering: Trash Printer Gives Up Its Control Panel Secrets

  1. Ok. This is the strangest thing that has happened to me here on the blog. I have the exact same component on my to do list. Exactly the same project with a similar build as I am looking at hardware and I can extract the data. Super strange. Wonderful project now I will save some hours as the main work has already been done. Printers from the garbage are super interesting if you also want to deal with old seven segement displays for example.

    1. And I just felt like crap throwing the exact same printer away a couple of weeks back because my wife finally won the battle and this g̶e̶m̶ piece of trash had to go. too bad

  2. I can only second the statement that printers (Inkjets and Laser) habe a TON of motors and steppers and a lot of other goodies in them.
    In Switzerland, electronics is free to trash if given back at a shop which sells electronics ( = like 90% of all markets). Often, the have a heap of stuff somewhere a bit hidden outside. … Yeah… “It is forbidden to take equipment out of the pile”… If i “borrow” it at 10PM and return it at midnight with a few parts missing, nobody b(r)others as i brought back the equipment if you knwo what i mean… ;)
    Also, if done correctly and not with a oxy-torch, those printers have a plethora of screws which can come in handy…

    1. +1, I hate trashing electronics but when I do I make sure to have remove and retained all the screws. I’ve been doing that for 15+ years now and I have a small box of screws of all shape and sizes.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.