A BIOS For Your ESP32-C6

An old-style PC BIOS served the function of a bootloader in loading the operating system kernel, and of an API in providing a set of standard system calls through which software could interact with the hardware. Though it as been long-ago superseded by operating system level calls and UEFI bootloaders, it was a simple and easy-to-understand firmware for the PCs of the day.

Microcontrollers usually don’t have anything quite like a BIOS because their software is more often compiled as-is without the need for one. But here’s [Rompass] who has bucked that trend, with a BIOS for the ESP32-C6.

Of course this isn’t the PC BIOS we all know, and you’ll not be running DOS on it. Instead it’s a subsystem that serves the purposes outlined above and provides an environment for dynamically loaded executables from RAM rather than an operating system kernel. The executables are compiled in the normal way for the ESP32, and can be loaded over the network if necessary.

We don’t know how popular a firmware like this one will become, but for us it’s symptomatic of how the line between a microcontroller and a microprocessor is becoming blurred. The next few years are going to continue this trend, as inexpensive microcontroller application processors such as the C6’s P4 bigger brother move into the mainstream.


Header image: Popolon, CC BY-SA 4.0.

A Custom PCB For The Casio G-Shock

With the PCB fabrication services available to the modern hobbyist, it’s become increasingly common to see replacement boards designed for all sorts of devices. Even so, it’s sometimes still a little difficult to believe that we’re at the point where hardware hackers are now producing advanced replacement PCBs for commercial wristwatches such as this drop-in upgrade for the iconic Casio G-Shock by [David Volovskiy].

Honestly, we’d have been impressed if the thing could just tell the time. But the replacement board combined with the open source firmware brings new capabilities that far exceed anything the G-Shock was capable of originally. The upgraded watch now offers several applications, such as a pedometer and a number of games including simplified versions of Blackjack and Wordle. The watch can tell you the phase of the Moon, calculate sunrise and sunset, and display values pulled from the internal thermometer.

Even if you don’t have a G-Shock in need of a new PCB, [David] has put together a web-based emulator that lets you play around with the firmware. The online tool that lets you visualize how the watch’s LCD is mapped is also very slick. For those interested in getting a board of their own, you can join the project’s Discord server and get your name on the list for an upcoming production run.

If some of this sounds familiar, it’s because [David] based his project on [Joey Castillo]’s Sensor Watch, which is a replacement PCB for the Casio F-91W. With these two projects available for others to build from, one wonders how many other Casio watches might get their own upgraded hardware in the future.

Linux Fu: Upcycling An Old Router

You’re wandering through a thrift store and spot an old router for ten bucks. Worthless, right? But in this case, it was a Google OnHub, which, at the time, was pretty premium and still isn’t anything to sneeze at. Of course, Google abandoned it long ago, and it runs Chrome, so pass, right? Of course I didn’t. In fact, I bought two for less than $20. The question is always the same: what do you do with it?

OpenWrt will run on the device. That’s a good start, but merely replacing the firmware isn’t much of a project. The more interesting question is whether the hardware can still do something useful. I had a specific need: connect a wired workstation to a reasonably distant Wi-Fi network without running cable and without suffering the usual double-NAT headaches that come from turning the router into yet another subnet. For this, the OnHub turned out to be nearly perfect.

The Hardware

The OnHub was Google’s first Wi-Fi router, built by TP-Link and ASUS in different versions. Mine was the TP-Link model, and one was missing a bit of plastic cowl trim. Under the hood, it has a Qualcomm IPQ8064 dual-core processor — a dual-core ARMv7 — multiple radios, gigabit Ethernet, and enough memory to run OpenWrt comfortably: 1 GB of RAM and 4 GB of flash. The processor also has two network offload processors, but it isn’t clear to me that the stock OpenWrt build uses them.

These devices were expensive when new, but now show up regularly at thrift stores and surplus sales. Installing OpenWrt was straightforward. You do need to remove a screw that covers the magic switch at the bottom, but that’s not a big problem. You can just peel the rubber foot back if you don’t want to remove it. However, the interesting part came afterward.

Continue reading “Linux Fu: Upcycling An Old Router”

Status Display Keeps Eye On Your Prusa Fleet

Whether you’ve been dragging an old MK2 or MK3 kicking and screaming into the present through the available upgrade paths, or recently picked up a CORE One, pretty much any of the 3D printers still being actively supported by Prusa are able to connect to the network for the purposes of remote monitoring and control. Although their printers can work entirely offline, Prusa offers a smartphone application as well as web interface that makes it easy to keep tabs on all the hot plastic action.

If you’ve got a few Prusa printers on the net and would like a dedicated interface for controlling them, check out this custom firmware for the BigTreeTech K-Touch and Panda Touch devices. These touch screen gadgets were originally intended for controlling printers running Klipper, but thanks to [Nomads Galaxy], they can now talk to Prusa printers either directly over the local network or through the Prusa Connect cloud API with a user interface that mimics the aesthetics of the official offerings.

Continue reading “Status Display Keeps Eye On Your Prusa Fleet”

Long-Theorized GPS Weakness Exploited On Large Scale

GPS has become fairly common in our everyday lives, not only able to pinpoint our locations on Earth but also as an incredibly accurate timekeeping method. But since these satellites are around 20,000 km above Earth, the received signals on the surface of the planet can be incredibly weak. This makes them prone to jamming and spoofing, a weakness of the technology that has long been known. Although attempts to mitigate these problems have been ongoing, there has recently been a large-scale attempt to interfere with these signals that put all mitigation efforts to the test.

One proposed way to improve resilience is to supplement existing GNSS systems with low-Earth-orbit navigation satellites. In this example, a company called Xona is using a satellite called Pulsar-0 that operates in low-Earth orbit (LEO) and provides positioning and timing signals that are around 100 times stronger than standard signals from GPS/GNSS satellites. It is able to receive GPS signals as well, ensuring the two systems agree on one another. And, because Pulsar’s navigation signals originate from LEO and are much stronger than conventional GNSS signals, Xona expects them to be significantly more resistant to jamming.

Beyond geopolitics, spoofing GPS has some applications in finding legendaries in Pokemon Go as well as making it fairly trivial to steal GPS-guided drones.

A VLC media window with a live feed of a soccer field. Players are just starting to come off the sideline to play.

Rickrolling The World Cup

Sometimes, hacking requires a certain amount of restraint, especially when you find a system woefully unsecured. It would be so easy to play some pranks, but [bobdahacker] chose not to rickroll the entire FIFA World Cup.

The fun starts after [bobdahacker] signed up for a free FIFA agent profile. After a simple ID verification process, he had a login for the FIFA Agent platform, but they used the same account system across the whole organization in Microsoft Entra. When he tried to access the FIFA Football Data Platform system, it returned an error saying he had no assigned role to allow access. This was on the client side though, so he was able to bypass the error as the server didn’t block accounts without assigned roles.

Once inside, he found he was able to access not just the data, but had full control of the RTMP ingest URLs of all the FIFA matches. For those of us less conversant in streaming media protocols, “Those RTMP ingest URLs are the literal pipe from the stadium cameras to FIFA’s broadcast distribution chain. Camera -> RTMP ingest -> MediaKind -> broadcast partners -> your TV.” He could’ve shut off the feeds or injected whatever alternate stream he wanted, but instead chose to try contacting FIFA, their streaming contractor, and various law enforcement agencies since the World Cup was already underway when he made the discovery.

“Competitions, Matches, Teams, Tools, Exchange Platform, Analysis Dashboard, Commentator Information System, FIFA AI Pro, Admin” were also in the open. Live match scores could be changed, player bios, and any number of other stats could be modified. We’ll let you imagine the possibilities of what mischief could occur.

While rickrolling the world would be funny, a rickroll throwie will be a bit more circumspect. If you’re more interested in soccer/football than security hacks, we hope you enjoy this LEGO soccer tank or these robot soccer players and avoid any soccer ball-sized meteorites or legal troubles for your soccer-related invention.

Dynamic RAM From First Principles

Before the past year, many of us took computer memory for granted. It was one of the lower-cost parts of a PC build and was usually available in whatever quantity one desired. As its cost has skyrocketed, a lot of PC builders and other users of computers in general are taking a deeper look at memory, how much is really needed, and what its functions truly are. [Igor] is working on a drum sequencer project which needs a small amount of memory, and has built this dynamic RAM from discrete components.

The first video goes into the construction of the memory array and how its addressed. It’s only eight bytes total, and using fairly large electrolytic capacitors to store data means that a gigabyte of this memory would take up well over a thousand acres, but it’s still enough memory for [Igor]’s needs. In addition to the capacitor, each bit uses a pair of diodes to determine if a read or write is occuring, and a set of transistors on the read and write busses to perform those actions. Worth noting here is that dynamic RAM like this needs to be refreshed because the capacitors lose charge over time, but these large capacitors can hold charge sometimes overnight, as [Igor] has confirmed experimentally.

There’s a followup video to the construction of these modules as well, where [Igor] demonstrates a number of ways this module can be used, from controlling LED arrays, 7-segment displays, and then installs it into his drum machine. With 64 bits available it’s capable of creating up to eight beats with eight samples available per beat. Although there are complete machines available for all of this, we appreciate his goal of not buying any pre-manufactured hardware and instead constructing it all from the ground up. There are analog drum machine options available in this same style as well.

Continue reading “Dynamic RAM From First Principles”