Linux Arcade Cab Gives Up Its Secrets Too Easily

Sometimes reverse engineering embedded systems can be a right old faff, with you needing to resort to all kinds of tricks such as power glitching in order to poke a tiny hole in the armour, giving you an way in. And, sometimes the door is just plain wide open. This detailed exploration of an off-the-shelf retro arcade machine, is definitely in that second camp, for an unknown reason. [Matthew Alt] of VoidStar Security, took a detailed look into how this unit works, which reads as a great introduction to how embedded Linux is constructed on these minimal systems.

Could this debug serial port be more obvious?

The hardware is the usual bartop cabinet, with dual controls and an LCD display, with just enough inside a metal enclosure to drive the show. Inside this, the main PCB has the expected minimal ARM-based application processor with its supporting circuit. The processor is the Rockchip RK3128, sporting a quad-core ARM Neon and a Mali400 GPU, but the main selling point is the excellent Linux support. You’ll likely see this chip or its relatives powering cheap Android TV boxes, and it’s the core of this nice looking ‘mini PC’ platform from firefly. Maybe something to consider seeing as though Raspberry Pis are currently so hard to come by?

Anyway, we digress a little, [Matthew] breaks it down for us in a very methodical way, first by identifying the main ICs and downloading the appropriate datasheets. Next he moves on to connectors, locating an internal non-user-facing USB micro port, which is definitely going to be of interest. Finally, the rather obvious un-populated 3-pin header is clearly identified as a serial port. This was captured using a Saleae clone, to verify it indeed was a UART interface and measure the baud rate. After doing that, he hooked it into a Raspberry Pi UART and by attaching the standard screen utility to the serial device, lo-and-behold, a boot log and a root prompt! This thing really is barn-door wide-open.

Is that a root prompt you have for me? Oh why yes it is!

Simply by plugging in a USB stick, the entire flash memory was copied over, partitions and all, giving a full backup in case subsequent hacking messed things up. Being based on U-Boot, it was a trivial matter of just keying in ‘Ctrl-C’ at boot time, and he was dropped straight into the U-Boot command line, and all configuration could be easily read out. By using U-Boot to low-level dump the SPI flash to an external USB device, via a RAM copy, he proved he could do the reverse and write the same image back to flash without breaking something, so it was now possible to reverse engineer the software, make changes and write it back. Automation of the process was done using Depthcharge on the Raspberry Pi, which was also good to read about. We will keep an eye on the blog for what he does with it next!

As we’ve covered earlier, embedded Linux really is everywhere, and once you’ve got hardware access and some software support, hacking in new tricks is not so hard either.

Will A Kettle Filled With Alcohol Boil Dry?

The average home kettle is set up to switch off automatically when water reaches its boiling point. But would a kettle filled with alcohol, which has a significantly lower boiling point, actually turn off? [Steve Mould] set out to find out.

The prediction was that a kettle full of 40% strength vodka would boil dry, as the vodka would evaporate before it actually got to a hot enough temperature to cause the kettle’s cutout mechanism to kick in. The experiment was done outside to minimise the dangers from the ethanol vapor. As it turns out, the vapor from the boiling vodka is about 80% ethanol and just 20% water, so eventually the mixture left in the kettle is mostly water and it boils hot enough to trigger the cutout mechanism.

However, the experiment doesn’t end there. Trying again with 99% ethanol, when the fluid started boiling, the kettle switched off even more quickly. So what’s going on?

The kettle in question uses a bimetallic strip, which trips the switch off in the base of the kettle when it gets too hot. There’s also a tube inside the kettle that carries vapor from the internal cavity and lets it pass over the bimetallic strip. When the liquid inside the kettle boils, it forces hot vapor through the tube, out of the kettle and over the bimetallic strip.

This strip triggers at a temperature significantly lower than the boiling point of water; indeed, as long as the liquid in the kettle is fairly hot and is boiling enough to force vapor out the tube, the kettle will switch off. [Steve] points out that it’s a good mechanism, as this mechanism allows the kettle to respond to boiling itself, rather than the arbitrary 100 C point which water technically only boils at when one is at sea level.

It’s an interesting look at a safety system baked into something many of us use every day without even thinking. It’s not the first time we’ve seen [Steve] dive deep into the world of tea-making apparatus, either. Video after the break.

Continue reading “Will A Kettle Filled With Alcohol Boil Dry?”

Rainbow DIP Switch Is The Coolest Way To Configure Your Project

Oftentimes, when programming, we’ll put configuration switches into a config file in order to control the behaviour of our code. However, having to regularly open a text editor to make changes can be a pain. This colorful little DIP switch dongle from [Glen Aikins] makes for a fun alternative solution.

Do want.

The build is simple, relying on a rainbow-colored 8-pin DIP switch as the core of the project. A PIC16F1459 then reads the position of the switches, with the 8-bit microcontroller doing the job of speaking USB to the host machine. The device enumerates as a USB HID device, and reports to the host machine when queried as to the state of its 8 switches. [Glen] used a basic C# app to show a digital representation of the switches on screen changing as per the real physical DIP switch plugged into the machine.

It’s a great tool for controlling up to 8 different parameters in a program you might be working on, without having to dive into your editor to change the relevant parts. Also, it bears noting that the rainbow design is simply very fetching and a cool thing to have plugged into your computer. It’s a more serious device than [Glen’s] hilarious 4-byte “solid state drive” that we saw recently, but we love them both all the same!

Custom Macintosh With A Real 486

Older Apple computers can often be something of a collector’s item, with the oldest fetching an enormously high price in auctions. The ones from the late ’80s and early ’90s don’t sell for quite as much yet, but it’s possible that museums and collectors of the future will one day be clamoring for those as well. For that reason, it’s generally frowned upon to hack or modify original hardware. Luckily, this replica of an Apple Macintosh didn’t harm any original hardware yet still manages to run software on bare metal.

The computer is built around a single-board computer, but this SBC isn’t like the modern ARM machines that have become so ubiquitous. It’s a 133MHz AMD 486 which means that it can run FreeDOS and all of the classic DOS PC games of that era without emulation. In order to run Apple’s legacy operating system, however, it does require the use of the vMac emulator, but the 486 is quite capable of handling the extra layer of abstraction. The computer also sports a real SoundBlaster ISA sound card, uses a microSD card for its hard drive, and uses an 800×600 LCD screen.

As a replica, this computer is remarkably faithful to the original and even though it doesn’t ship with a Motorola 68000 it’s still fun to find retro PC gamers that are able to run their games on original hardware rather than emulation. It reminds us of another retro 486 that is capable of running old games on new hardware without an emulator as well.

da Vinci-like quadcopter

Renaissance-Style Drone Would Make Da Vinci Proud Four Times Over

For as much of a genius as Leonardo da Vinci obviously was, modern eyes looking upon his notebooks from the 1400s tend to see his designs as somewhat quaint. After all, his concept of a vehicle armored with wood would probably only have survived the archers and pikemen of a Renaissance battlefield, and his curious helicopter driven by an Archimedes screw would certainly never fly, right?

Don’t tell that to [Austin Prete] and his team from the University of Maryland, who’ve built a da Vinci-style quadcopter that actually flies. Called the “Crimson Spin”, the quad is based on a standard airframe and electronics. Details are sparse — the group just presented the work at a vertical flight conference — but it appears the usual plastic props are replaced with lightweight screws made from wire and some sort of transparent plastic membrane. Opposing pairs of screws have the opposite handedness, which gives the quad yaw control. There’s a video embedded in the link above that shows the quad being tested both indoors and out, and performing surprisingly well. We’d imagine that Crimson Spin might not do so well on a windy day, given the large wind cross-section those screws present, but the fact it got off the ground at all is cool enough. It kind of makes you wonder where we’d be today if da Vinci had access to BLDCs.

For as fanciful as da Vinci’s designs can be, we’ve seen a fair number of attempts to recreate them in modern materials. His cryptex is a perennial favorite for hackers, and his bizarre piano-esque “viola organista” has been attempted at least once.

Thanks to [Peter Ryseck] for this tip.

A pinout diagram of the new Pi 4, showing all the alternate interfaces available.

Did You Know That The Raspberry Pi 4 Has More SPI, I2C, UART Ports?

We’ve gotten used to the GPIO-available functions of Raspberry Pi computers remaining largely the same over the years, which is why it might have flown a little bit under the radar: the Raspberry Pi 4 has six SPI controllers, six I2C controllers, and six UARTs – all on its 40-pin header. You can’t make use of all of these at once, but with up to four different connections wired to a single pin you can carve out a pretty powerful combination of peripherals for your next robotics, automation or cat herding project.

The datasheet for these peripherals is pleasant to go through, with all the register maps nicely laid out – even if you don’t plan to work with the register mappings yourself, the maintainers of your preferred hardware enablement libraries will have an easier time! And, of course, these peripherals are present on the Compute Module 4, too. It might feel like such a deluge of interfaces is excessive, however, it lets you achieve some pretty cool stuff that wouldn’t be possible otherwise.

Having multiple I2C interfaces helps deal with various I2C-specific problems, such as address conflicts, throughput issues, and mixing devices that support different maximum speeds, which means you no longer need fancy mux chips to run five low-resolution Melexis thermal camera sensors at once. (Oh, and the I2C clock stretching bug has been fixed!) SPI interfaces are used for devices with high bandwidth, and with a few separate SPI ports, you could run multiple relatively high-resolution displays at once, No-Nixie Nixie clock style.

As for UARTs, the Raspberry Pi’s one-and-a-half UART interface has long been an issue in robotics and home automation applications. With a slew of devices like radio receivers/transmitters, LIDARs and resilient RS485 multi-drop interfaces available in UART form, it’s nice that you no longer have to sacrifice Bluetooth or a debug console to get some fancy sensors wired up to your robot’s brain. You can enable up to six UARTs. Continue reading “Did You Know That The Raspberry Pi 4 Has More SPI, I2C, UART Ports?”

A complex arrangement of LEGO gears

Analog Computer Made From LEGO Predicts Tides

Although the tides in the ocean are caused by the motion of the Sun and the Moon, both of which are easy to observe, accurately predicting the tide more than a few days in advance turns out to be rather difficult. The math behind the tidal movement is so complex that some of the earliest analog computers were built specifically to perform tide calculations. Sir William Thomson (better known as Lord Kelvin) designed one such “tide-predicting machine”, an impressive arrangement of gears and pulleys, back in the late 19th century.

[Pepijn de Vos] built a modern interpretation of Thomson’s machine out of LEGO parts, and it’s no less impressive than the original. A total of 96 LEGO gears move perfectly in sync to the ocean’s natural rhythms, while a set of pulleys connect four banks of gears together to create the sum of the constituent frequencies. An ultrasonic sensor reads the output value and sends the result back to a PC.

One interesting problem that [Pepijn] ran into, and which he explains in great detail on his blog, is that LEGO gears can only provide a very limited set of gear ratios. In order to match the tide calculations to any kind of precision, he needed to connect many gears in series without creating too much friction and backlash in the mechanism. Optimizing this setup was a non-trivial task that required a significant amount of computing power by itself.

As you can see in the video embedded below, the machine makes beautifully smooth movements, which correspond quite accurately to the actual motion of tides. If you’re interested in the science behind analog tide predictors, we’ve got an in-depth article about just that.

Continue reading “Analog Computer Made From LEGO Predicts Tides”