A New 8-bit CPU For C

It is easy to port C compilers to architectures that look like old minicomputers or bigger CPUs. However, as the authors of the Small Device C Compiler (SDCC) found, pushing C into a typical 8-bit CPU is challenging. Lessons learned from SDCC inspired a new 8-bit architecture, F8. This isn’t just a theoretical architecture. You can find an example Verilog implementation in the SDDC project and on GitHub. The name choice may turn out to be unfortunate as there was an F8 CPU from Fairchild back in the 1970s that apparently few people remember.

In the video from FOSDEM 2025, [Phillip Krause] provides a nice overview of the how and why of F8. While it might seem odd to create a new 8-bit CPU when you can get bigger CPUs for pennies, you have to consider that 8-bit machines are more than enough for many jobs, and if you can squeeze one into an FPGA, it might be a good choice as opposed to having to get a bigger FPGA to hold your design and a 32-bit CPU.

Continue reading “A New 8-bit CPU For C”

Pico Gets A Speed Bump

The release notes for the 2.1.1 Raspberry Pi Pico SDK have a late holiday present: The RP2040 chip is now certified to run at 200 MHz if you use at least 1.15V as the supply voltage.

Previously, the certified speed was 125 MHz, although it was well-known you could overclock the device. By default, the 125 MHz figure is still what you’ll get, though. If you want a higher frequency, you need to set SYS_CLK_MHZ to 200 before doing a build. Continue reading “Pico Gets A Speed Bump”

Be Careful What You Ask For: Voice Control

We get it. We also watched Star Trek and thought how cool it would be to talk to our computer. From Kirk setting a self-destruct sequence, to Scotty talking into a mouse, or Picard ordering Earl Grey, we intuitively know that talking to a computer is better than typing, right? Well, computers talking back and forth to us is no longer science fiction, and maybe we aren’t as happy about it as we thought we’d be.

We weren’t able to pinpoint the first talking computer in fiction. Asimov and van Vogt had talking computers in the 1940s. “I, Robot” by Eando Binder, and not the more famous Asimov story, had a fully speaking robot in 1939. You could argue that “The Machine” in E. M. Forster’s “The Machine Stops” was probably speaking — the text is a little vague — and that was in 1909. The robot from Metropolis (1927) spoke after transforming, but you could argue that doesn’t count.

Meanwhile, In Real Life

In real life, computers weren’t as quick to speak. Before the middle of the twentieth century, machine-generated speech was an oddity. In 1779, a mechanical contrivance by Wolfgang von Kempelen, famous for the mechanical Turk chess-playing automaton, could form simple words. By 1939, Bell Labs could do even better speech synthesis electronically but with a human operator. It didn’t sound very good, as you can see in the video below, but it was certainly expressive.

Continue reading “Be Careful What You Ask For: Voice Control”

In A World Without USB…

It is easy to forget that many technology juggernauts weren’t always the only game in town. Ethernet seems ubiquitous today, but it had to fight past several competing standards. VHS and Blu-ray beat out their respective competitors. But what about USB? Sure, it was off to a rocky start in the beginning, but what was the real competition at that time? SCSI? Firewire? While those had plusses and minuses, neither were really in a position to fill the gap that USB would inhabit. But [Ernie Smith] remembers ACCESS.bus (or, sometimes, A.b) — what you might be using today if USB hadn’t taken over the world.

Back in the mid-1980s, there were several competing serial bus systems including Apple Desktop Bus and some other brand-specific things from companies like Commodore (the IEC bus) and Atari (SIO). The problem is that all of these things belong to one company. If you wanted to make, say, keyboards, this was terrible. Your Apple keyboard didn’t fit your Atari or your IBM computer. But there was a very robust serial protocol already in use — one you’ve probably used yourself. IIC or I2C (depending on who you ask).

Continue reading “In A World Without USB…”

DaVinci’s New Threads

Last year, we saw [How To Make Everything’s] take on [DaVinci’s] machine for cutting threads. However, they stopped short of the goal, which was making accurate metal screw threads. After much experimentation, they have a working solution. In fact, they tried several different methods, each with varying degrees of success.

Some of the more unusual methods included heating a bar red hot and twisting it, and casting a screw out of bronze. The last actually worked well with a normal screw as the mold, although presumably, a good wood or wax shape would have resulted in a workable mold, too.

Continue reading “DaVinci’s New Threads”

How Hard Is It To Write A Calculator App?

How hard can it be to write a simple four-function calculator program? After all, computers are good at math, and making a calculator isn’t exactly blazing a new trail, right? But [Chad Nauseam] will tell you that it is harder than you probably think. His post starts with a screenshot of the iOS calculator app with a mildly complex equation. The app’s answer is wrong. Android’s calculator does better on the same problem.

What follows is a bit of a history lesson and a bit of a math lesson combined. As you might realize, the inherent problem with computers and math isn’t that they aren’t good at it. Floating point numbers have a finite precision and this leads to problems, especially when you do operations that combine large and small numbers together.

Indeed, any floating point representation has a bigger infinity of numbers that it can’t represent than those that it can. But the same is true of a calculator. Think about how many digits you are willing to type in, and how many digits you want out. All you want is for each of them to be correct, and that’s a much smaller set of numbers.

Continue reading “How Hard Is It To Write A Calculator App?”

Piano Gets An Arduino Implant

[Paul] likes his piano, but he doesn’t know how to play it. The obvious answer: program an Arduino to do it. Some aluminum extrusion and solenoids later, and it was working. Well, perhaps not quite that easy — making music on a piano is more than just pushing the keys. You have to push multiple keys together and control the power behind each strike to make the music sound natural.

The project is massive since he chose to put solenoids over each key. Honestly, we might have been tempted to model ten fingers and move the solenoids around in two groups of five. True, the way it is, it can play things that would not be humanly possible, but ten solenoids, ten drivers, and two motors might have been a little easier and cheaper.

The results, however, speak for themselves. He did have one problem with the first play, though. The solenoids have a noticeable click when they actuate. The answer turned out to be orthodontic rubber bands installed on the solenoids. We aren’t sure we would have thought of that.

Player pianos, of course, are nothing new. And, yes, you can even make one with a 555. If a piano isn’t your thing, maybe try a xylophone instead.

Continue reading “Piano Gets An Arduino Implant”