[Jure Spiler] was at a flea market and got himself a spectrophotometer — a device that measures absorbance and transmittance of light at different wavelengths. This particular model seems to be about 25 years old, and it’s controlled by a built-in keyboard and uses a graphical LCD to display collected data. That might have been acceptable when it was made, but it wasn’t enough for [Jure]. Since he wanted to plot the spectrophotometry data and be able to save it into a CSV file, hacking ensued.
He decided to tap into the the display communication lines. This 128×64 graphical display, PC-1206B, uses a 8-bit interface, so with a 16-channel logic analyzer, he could see the data being sent to the display. He even wrote decoder software – taking CSV files from the logic analyzer and using primitive optical recognition on the decoded pixels to determine the digits being shown, and drawing a nice wavelength to absorbance graph. From there, he set out to make a standalone device sniffing the data bus and creating a stream of data he could send to a computer for storage and processing.
[Jure] stumbled into a roadblock, however, when he tried to use an Arduino for this task. Even using a sped-up GPIO library (as opposed to notoriously inefficientdigitalRead), he couldn’t get a readout frequency higher than 80 KHz – with the required IO readout rate deemed as 1 MHz, something else would be called for. We do wonder if something like RP2040 with its PIO machinery would be better for making such captures.
At that point, however, he found out that there’s undocumented serial output on one of the pins of the spectrophotometer’s expansion port, and is currently investigating that, having shelved the LCD sniffing direction. Nevertheless, this serves as yet another example for us, for those times when an LCD connection is all that we can make use of.
[Kevin Norman] got himself a smart body scale with the intention of logging data for his own analysis, but discovered that extracting data from the device was anything but easy. It turns out that the only way to access data from his scale is by viewing it in a mobile app. Screen-scraping is a time-honored method of pulling data from uncooperative systems, so [Kevin] committed to regularly taking a full-height screenshot from the app and using optical character recognition (OCR) to get the numbers, but making that work was a surprisingly long process full of dead ends.
First of all, while OCR can be reliable, it needs the right conditions. One thing that ended up being a big problem was the way the app appends units (kg, %) after the numbers. Not only are they tucked in very close, but they’re about half the height of the numbers themselves. It turns out that mixing and matching character height, in addition to snugging them up against one another, is something tailor-made to give OCR reliability problems.
The solution for this particular issue came from an unexpected angle. [Kevin] was using an open-source OCR program called Tesseract, and joined an IRC community #tesseract to ask for advice after exhausting his own options. The bemused members of the online community informed [Kevin] that they had nothing to do with OCR; #tesseract was actually a community for an open-source 3D FPS shooter of the same name. But as luck would have it, one of the members actually had OCR experience and suggested the winning approach: pre-process the image with OpenCV, using cv2.findContours() to detect and create a bounding box around each element. If an element is taller than a decimal point but shorter than everything else, throw it out. With that done, there were still a few more tweaks required, but the finish line was finally in sight.
Now [Kevin] can use the scale in the morning, take a screenshot, and in less than half a minute the results are imported into a database and visualizations generated. The resulting workflow might look like something Rube Goldberg would approve of, but it works!
We figure if you’ve got any kind of functioning oscilloscope you’re lucky. And although it’s nice to pull down the measurements to your PC on the newer models, the results [Paul] gets with this rig are still satisfactory. The plastic cookie box he used blocks out ambient light while holding the camera at a consistent focal length. He used some flat black spray paint to make sure the obnoxious yellow plastic didn’t interfere with the image, then drilled a hole which fits tightly around his camera lens.
You’ll need to monkey with the exposure settings to get the best image. But once you’ve got it dialed in it should be the same every time you want to take a picture of the screen.
We’re pretty spoiled these days in that hobby electronics has made a lot of cool tools available on a budget. It’s hard to think of a better example than a logic analyzer, which you can get for a day or two of pay. Consumer-level devices just didn’t exist until a few years ago. [Jouko S] has this HP16500B industrial grade logic analyzer in his shop. It’s from the early 1990’s and it’s got a ton of features. Grabbing a still functional yet super-old model used to be the only way for hobbyists. But one thing you won’t find on it is the ability to connect it to your USB port to get screen captures. Younger readers might not recognize the slot at the top for magnetic media called a floppy disk which is the in-built way of recording your sessions. He set out to find an easier way to get color screen captures and ended up adding RS-232 control to the old hardware.
There is a 25-pin port on the back of the old hulk. But it is a female connector and he didn’t have the adapters on hand to make it work with his serial-to-USB converter. During development he used a breadboard and solder-tail connector to patch into the necessary signals. This was all hooked up to a Raspberry Pi which he planned to dedicate to the system. It worked, and he was able to use an interactive terminal for the rest of his sleuthing. With much trial and error he figured out the commands, and wrote some Python code for the Pi side of the equation. He can now pull color screenshots with ease thanks to the utilities available in the Python Imaging Module.
His script ties together the open source tools FFmpeg, ImageMagick, and scrot. It takes a snap every 15 seconds in a 10 hour period for a total of 2400 frames. He even outlines the process to automatically upload these clips to YouTube. Just remember, if you’re doing something naughty, there’ll be a record of it.
A few days ago a lone individual decided to crack [Governor Sarah Palin]’s private Yahoo! email account. He did this by navigating the password reset procedure. [Gov. Palin]’s birthday was publicly available and Wasilla only had two zip codes to guess. The follow up question “Where did you meet your spouse” required some more research. They met in high school so a few more guesses turned up “Wasilla high” as the answer. The original poster then read every single email only to discover that there really wasn’t anything of interest there. Frustrated, he posted the details to 4chan to let any wonk have at it. /b/ members began posting screenshots of the account, but very little came of it.
One screenshot of her inbox even revealed her daughter Bristol’s cell phone number. While there was no groundbreaking political information revealed, it is important to point out that it appears that Gov. Palin was using this private account to correspond to her assistants about potentially sensitive government information. This security breach should serve as a wake-up call to many public officials by showing how dangerous it can be to have a private e-mail account, especially when a free web-based service such as Yahoo! is used.