Extracting Data From Smart Scale Gives Rube Goldberg A Run For His Money

[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!

Tech In Plain Sight: Air Conditioning

I’m always amazed that technology can totally wipe out industries. Sure, some people make a living making horseshoes, for example, but the demand for them is way down compared to what it would have been when horses were the normal mode of transportation. But even so, people still make horseshoes. But think about the ice harvesting business. Never heard of it? Turns out, before refrigeration, there was a huge business of moving ice from where it naturally occurred to other places and storing it, usually underground with a lot of insulation. As far as I know, that business — including the neighborhood ice man — is totally gone now except for some historical exhibitions. We take refrigeration and air conditioning for granted, but it hasn’t been that long ago that ice was a luxury and your own reprieve from the heat was a fan.

Early Cooling

The story starts a little earlier than you might expect. In the 1840s, physician John Gorrie was concerned about “the evils of high temperature.” His hospital in Florida imported ice using the aforementioned ice trade and it wasn’t cheap nor was it very effective.

Undeterred, he developed a machine that used a horse, a waterwheel, steam, or wind power to drive a compressor to create ice. He got a patent in 1851 but it failed to catch on before his financial backer died. In fact, Oliver Evans had the idea in 1805 but never built a working machine. Jacob Perkins patented the first compression cooler in 1834, again with little practical use.

When U.S. President Garfield was shot, Navy engineers built a cooling box using cloths soaked in ice water to cool the president’s hospital room by 20 degrees. Since the mortally wounded president survived 80 days after the shooting, we presume he appreciated the comfort.

Continue reading “Tech In Plain Sight: Air Conditioning”

A 2nd gen Amazon Echo Dot inside a 1980s answering machine.

An Echo Dot For The 1980s

There’s so much obsolete technology out there with great design. It’s really sad to see it end up in the landfill, because even though the insides may be outdated, good design is forever. Take this 1980s Panasonic answering machine, for instance. The smoky plastic of the cassette lid is the perfect screen for Dot, because it lets the light through while hiding the modernity of the thing in the process. Check it out in action after the break.

What [ehans_makes] has written is really more of an overall guide to repurposing old electronics and fighting e-waste in the process. First, they non-destructively figure out what needs to be done to both the old thing and the newer thing to get them to play nicely together — what 3D printed parts need to be added, what can be salvaged and reused from the old thing, and what parts of the old enclosure can be Dremeled away. In this case, [ehans_makes] ended up printing an adapter to be able to re-use the original speaker’s mounting points inside the answering machine, and printed a mount for the Dot as well. The STLs are available if you happen to find the same answering machine at your local thrift store or neighbor’s estate sale.

While we’ve always managed to hold on to the screws when we disassemble something, [ehans_makes] has an even better idea: draw a diagram of where they go, and tape the actual screws to the diagram as you remove them.

Some of the best designs never really existed, at least not on a commercial scale. If you can’t find a cool old enclosure, you can always build one yourself.

Continue reading “An Echo Dot For The 1980s”

Minimalist Timer Counts Down With LED Matrix

Looking for something with a bit more style than the traditional kitchen timer, [Martin Jonasson] decided to take the last couple of months to design and build his own take on the idea using a rotary encoder, 16×9 LED matrix, and a Teensy 2.0 microcontroller. Were there better things he could have spent that time on? Possibly. But you probably wouldn’t have been reading it about it here, so we won’t trouble ourselves with such thoughts.

Put together on a piece of perfboard, the handwired circuit also includes an Adafruit PowerBoost 500 Charger, a 3.7 V 2500 mAh LiPo battery, a IS31FL3731 Charlieplexed PWM LED driver, and a piezo buzzer. The top of the rotary encoder has been capped off with a sold metal knob, which combined with the enclosure made of stacked laser cut 3 mm acrylic sheets, really gives the device a very sleek and classy look.

While the hardware is quite nice, it’s the software that really pulls this whole project together. A game developer by trade, [Martin] went all in on the timer’s GPLv3 licensed firmware. From using the toneAC library to play melodies at the end of the countdown, to the custom fonts and the code that pauses the timer while the user is spinning the knob, there’s plenty of little touches that should make the timer a joy to use. We’ve seen some unique kitchen timers over the years, but the attention to detail put into this build really raises the bar.

[Martin] has provided everything you need to create your own version of his timer, including the SVG file for the laser cut case. While not strictly required, coming up with a custom PCB for this project would be a nice touch, should you want to put your own spin on it.

[Thanks to Tom for the tip.]

Picture of the automatic blind controller and three servo motors, all in their enclosures, displayed on a table.

Automated Window Blinds Using MQTT And Home Assistant

Finnish software engineer [Toni] is on a quest to modernize his 1991 house, and his latest project was to automate the window blinds and control them using Home Assistant. Unless your blinds have built-in motors, most of the effort of such a project centers around how to integrate and attach the motor — and as [Toni] points out, there are tons of different blinds with all kinds of operating mechanisms. But once you solve that issue, half the battle is over.

These particular blinds require less than one turn of the control rod to go from fully open to fully closed, and [Toni] selects a 270-degree range-of-motion, 20 kg*cm torque servo motor to drive them. He really wanted to install the motor inside the window, but it just wouldn’t fit. Instead, each servo motor is mounted in a custom 3D-printed case installed on the window frame just below the operating rod. An ESP8266-based controller box is installed above the window, hidden behind curtains, and operates all three servos.

On the software side of things, the project is coded in C++ and uploaded using the Ardiono IDE. The blinds communicate to [Toni]’s Home Assistant network using MQTT. All the software is available on the project’s GitHub repository, and the 3D-printed case design is posted on Thingiverse. Even though your blinds may be of a completely different design, we think many parts of [Toni]’s project are still useful — do check out this project if you’re thinking about doing something similar. The notion of motorized window blinds has been around for a some time — we covered one project way back in 2013 and another in 2016. If you have added automation to your window blinds, let us know how it went down in the comments section.

Continue reading “Automated Window Blinds Using MQTT And Home Assistant”

Home Automation Terminal With Cyberpunk Style

The OLKB-Terminal designed by [Jeff Eberl] doesn’t have a battery, can’t fold up (even if it seems like it could), and is only portable in the sense that you can literally pick it up and move it somewhere else. So arguably it’s not really a cyberdeck per se, but it certainly does look the part. If you need to be furiously typing out lines of code in a dimly lit near-future hacker’s den, this should do you nicely.

[Jeff] has provided everything you’d need to recreate this slick little machine on your own, though he does warn that some of the hardware decisions were based simply on what he had on-hand at the time, and that better or cheaper options may exist. So for example if you don’t want to use the Raspberry Pi 4, you can easily swap it out for some other single-board computer. Though if you want to change something better integrated, like the LCD panel, it will probably require modifications to the 3D printed components.

The rear electronics tray offers plenty of room for expansion.

The slim mechanical keyboard that [Jeff] used for the OLKB-Terminal, which in some ways set the tone for the whole design, is actually a completely separate open source project from [Victor Lucachi]. The VOID30 is a 3D printed, 30% handwired ortholinear keyboard that runs the popular QMK firmware on an Arduino Pro Micro. He’s implemented a couple tweaks, namely using a USB-C equipped Arduino clone, but otherwise it’s the same as upstream. So if you’re not in the market for a little bedside cyberpunk terminal but love its sleek keyboard, you’re in luck.

Software wise, [Jeff] has the OLKB-Terminal hooked into his larger Home Assistant system. This gives him an attractive status display of the whole network, and with just a tap on the terminal’s seven inch touch screen, he’s able to directly control devices around the home. That said, at the end of the day it’s just a Raspberry Pi, so it could really run whatever you want.

While cyberdeck builds might be all the rage right now, we do appreciate projects that bring those same design tenets to the desktop. From the gorgeous faux-retro designs of [Oriol Ferrer MesiĆ ] to modernized pieces of vintage hardware, truly personal computers that can be easily upgraded and repaired don’t have to be limited to something you can lug around with a guitar strap.

A smartphone with a robot vacuum in the background

Hacking A Robot Vacuum To Write A Replacement App

While internet-connected devices can be very useful around the house, and it is pretty cool to be able to monitor your dishwasher from half a world away, it’s important to be mindful of privacy and security issues. For instance, the Cecotec Conga 1490 robot vacuum [Rastersoft] bought came with an Android app, which upon installation asked for near-total access to the user’s phone. Not content with such an invasion of privacy, let alone the potential security implications, [Rastersoft] set to work trying to reverse engineer the robot’s communications (translated) to find out what exactly it was doing when online. He did this by configuring a Raspberry Pi as an access point, letting the vacuum connect to it, and logging all the data flowing through.

As it turned out, the robot phoned home to its manufacturer, reporting its serial number and some configuration settings. The server then passed control to the mobile app, but not without routing all subsequent commands through the remote server. Not only is this creepy, it also means that if the manufacturer were to shut down the server, the app would stop working entirely. [Rastersoft] therefore got the idea to write custom software to control the robot. He began by reconfiguring the Pi’s network setup to fool the vacuum into thinking it was connecting to its manufacturer’s server, and then wrote some Python code to emulate the server’s response. He was now in control of all data flowing back and forth.

After a lot of experimentation and data analysis, [Rastersoft] managed to decipher the commands sent by the app, enabling him to write a complete replacement app seen in the video after the break that includes control of all the vacuum’s standard actions, but also a new feature to manually control the vacuum’s movement. All code is available on GitHub for those who would like to hack their Congas too.

We think this is a great example of software hacking to future-proof devices that you own, while also mitigating many of the dangers to your security and privacy posed by the default software. The fact that the commands you send from your phone to your vacuum go all the way around the world, potentially being stored and read by others, is rather ridiculous in the first place. After all, we’ve already seen how robot vacuums could spy on you.

Continue reading “Hacking A Robot Vacuum To Write A Replacement App”