Not every project can be a success and there is a popular mantra that you should fail and fail fast. You learn from failures and the sooner you get them out the way the sooner you can move on to the right ways. I don't have a lot of failures, I have a lot of projects that get put on hold until I know how to progress them, some of them are on indefinite hold at the moment. Tonight's project has been on the cards for a few months but it failed and relatively quickly so I thought I would write about it as I'm no longer working on it.
A lot of Chinese laser cutters come supplied with the Leetro controller MPC6515 or MPC6535, both use the PAD03 display panel to communicate information to the user. The system has a fair few quirks but the one that really bugs me involves the Z axis adjustment. You press 'Z' to move into the height adjustment mode but pressing 'Esc' does not get you out of the mode, you have to press 'Z' again. The idea is simple though break into the loop between the panel and the controller, catch the 'Esc' key as it is pressed and turn it into a 'Z' key press so that the controller leaves Z mode.
With everything connected and the data relayed back to the PC I turned the system on. Data was successfully passed through the Arduino to and from the controller, the system functioned normally despite the Arduino in the loop. Pressing buttons on the panel created additional data on the screen so it should have been easy to spot the key presses. I switched the panel into z mode and started pushing buttons. Only the 'Up' and 'Down' buttons were actually passed back to the controller, none of the other buttons were.
The conclusion is fairly simple. The panel understands that it is part of a laser cutter system, it's not just a dumb terminal reflecting information from the controller. It is the panel that switches the display into 'Z' mode and it is the panel that prevents it from coming out again. The project was a bust but I learned more about the system in the process and that is useful in itself.