Output dot matrix LCD data from a device to your phone or laptop.
After some testing, the nRF52832 on the Feather module being used is not going to work well for this project alone.
The data is fed into the LCD approximately every 14us:
However the critical radio sections of the nRF52832 can take much much longer than this:
These Bluetooth critical sections have the highest priority on the nRF52832 (otherwise they wouldn't work), so several LCD data events can occur before the LCD data ready interrupt is actually triggered (aliasing/skipping data).
So now to find another method of gathering the LCD data...
Whipping together a quick prototype adapter board for the NRF52 Feather was pretty simple. The main thing to note was level conversion between the 5V LCD signal lines and the 3.3V pins of the feather which in this case was achieved through some resistor dividers. The 5V line is connected to the VBUS (5V) input of the Feather to power the board from the LCD cable.
A smaller, more streamlined board will be created later. But now there's software to write!
There's very few visualisation tools out there to translate the binary KS0108 LCD data to an actual visual output and none offered the ability to import or display a dataset from any source. So I guess we have to make one.
Fortunately the KS0108 has a pretty simple layout:
A KS0108 based 128x64 pixel LCD module consists of two controllers, each with 8 pages and each page consisting of 64 column bytes. So we can structure the code very similarly:
Combine this with a little GUI magic and we get a nice little tool to import data from a CSV file and output it to a window in realtime:
Now, we have the base code for decoding the KS0107/8 module, we can now start porting it to an NRF52 board.
If you can hear audio, then it can be recorded by another analog source, rendering DRM ineffective.
The same can be said about any device. If you can see the data you want, then you can record it. Well fortunately we don't have to go quite Neanderthal on such devices with a camera setup. Instead, we can sniff the display data directly.
Adding an additional 20 pin header to the ribbon cable of the LCD connection (or creating a pass through board), gives us direct access to the digital data being sent to the LCD display. While there was no markings on the LCD board to determine its interface, by looking at the signalling it was found to be a KS0107/8 based device used in most hardware devices.
So what do you do with this data?
Working with the BRTRO-420 reflow oven, it looked like it might be possible to interface with the controller using an inbuilt serial connection to possibly get temperature read outs.
Reverse engineering the serial connection got the following: