(Re)Making A ColecoVision

[Leaded Solder] found some ColecoVision game cartridges at a flea market, and like most of us would, thought, “I’ll build a ColecoVision console from scratch to play them!” Well, maybe most of us would think of that, but not actually do it. He did and you can read about the results in great detail since he wrote up two posts, one covering the design and one covering the construction.

The ColecoVision was a game console that famously could be expanded into a nice — for its day — personal computer. It even had a daisy wheel printer in that configuration. However, in either configuration, the game console was the brains of the operation. According to [Leaded Solder] the price of a unit in working order is high even though over 2 million were made because of several design problems that make them less likely to survive the decades. Rather than repair and modify an original unit, it was cheaper and much more educational to build new.

Continue reading “(Re)Making A ColecoVision” →

Making Smalltalk On A Raspberry Pi

Today, you probably don’t think much about object-oriented programming, it’s just part of the landscape. But decades ago, it was strange and obscure technology. While there were several languages that led up to the current object-oriented tools we use today, one of the most influential was Xerox PARC’s Smalltalk language. [Michael Engel] took a C++ implementation of the Smalltalk VM, some byte code for a complete Smalltalk system, a Raspberry Pi “bare metal” library, and produced a Smalltalk workstation. The code is on GitHub and is admittedly a work in progress.

Smalltalk was interesting — and sometimes annoying — because everything was an object. Literally everything. The system took over the entire machine. It provided the GUI, the compiler, and the run time libraries. That’s probably why it was easy for [Michael] to forego the usual Linux OS for his project.

If you don’t want to use a spare flash card to boot into the system, there are Smalltalk 80 versions that run on normal operating systems. The tutorial in that program’s user manual might be helpful to you if you haven’t done Smalltalk before.

Even a lowly integer is a full-scale object in Smalltalk. When you say “3+2” you are actually saying, in Smalltalk, that you have an integer object with value 3 that receives a + message with an integer argument of 2. If you were trying to wrap your mind around object-oriented principles, this was very confusing, although with a few decades of hindsight, it makes more sense. Smalltalk also did a lot to popularize the model/view/controller design for graphical user interface software.

We’ve looked at object-oriented for state machines before, which is a nice use case. If you want to see just how well PARC predicted the future, check out the mother of all demos.


Editor’s Note: The original write-up for this project is no longer available as of 2026, but it can be found on the Internet Archive.

SoftCore CPU Comparison

Monty Python once did a sketch where people tried to summarize Proust in fifteen seconds. Although summarizing eight FPGA-based CPUs is almost as daunting, [jaeblog] does a nice job of giving a quick sketch of how the CPUs work with the Xilinx Vivado toolchain and the Digilent Arty board.

The eight CPUs are:   VexRiscv, LEON3, PicoRV32, Neo430, ZPU, Microwatt, S1 Core, and Swerv EH1.

The comparison criteria were very practical: A C compiler (gcc or llvm) for each CPU and no CPUs that were tied to a particular FPGA. Two of the CPUs didn’t fit on the Arty board, so their comparisons are a bit more theoretical.  There were other considerations such as speed, documentation, debugging support, and others.

It was interesting to see the various CPUs ranging from some very mature processors to some new kids on the block, and while the evaluations were somewhat subjective, they seemed fair and representative of the things you’d look for yourself. You can also get the test code if you want to try things for yourself.

The winner? The post identifies three CPUs that were probably the top choices, although none were just perfect. Of course, your experience may vary.

If you want an easy introduction to adding things to a soft CPU, this RISC-V project is approachable. Or if you prefer SPARC, check out this project.

Aerodynamics For Dummies

We don’t know if aerodynamics is really a subject for dummies, per se, but if you are interested in flying or building drones and model aircraft, [Jenny Ma’s] new video that you can see below will help you get an easy introduction to some key concepts. (Embedded below.)

The show starts with coverage of lift, thrust, and drag, but moves on to topics such as stalling and coffin corners. If you have a pilot ticket, you might not learn a lot of new things, but for the rest of us, there are some interesting nuggets that you might not have known or might have forgotten from your physics classes in high school.

Continue reading “Aerodynamics For Dummies” →

How Early Radio Receivers Worked

If you’ve ever built a crystal radio, there’s something magical about being able to pull voices and music from far away out of thin air. If you haven’t built one, maybe you should while there’s still something on the AM band. Of course, nowadays the equivalent might be an SDR. But barring a computer solution, there are not many ways to convert radio waves into intelligence. From a pocket radio to advanced RADAR to a satellite in orbit, receiving a radio wave is accomplished in pretty much the same way.

There are, however, many ways to modulate and demodulate that radio wave. Of course, an AM radio works differently than an FM radio. A satellite data downlink works differently, too. But the process of capturing the radio wave from the air and getting them into a form ready for further processing hasn’t changed much over the years.

In this article, I’ll talk about the most common radio receiver architectures you may have seen in years past, and next week I’ll talk about modern architectures. Either way, understanding receiver architectures will help you design new radios or troubleshoot them.

Continue reading “How Early Radio Receivers Worked” →

EasyOCR Makes OCR, Well, Easy

Working on embedded systems used to be easier. You had a microcontroller and maybe a few pieces of analog or digital I/O, and perhaps communications might be a serial port. Today, you have systems with networks and cameras and a host of I/O. Cameras are strange because sometimes you just want an image and sometimes you want to understand the image in some way. If understanding the image involves reading text in the picture, you will want to check out EasyOCR.

The Python library leverages other open source libraries and supports 42 different languages. As the name implies, using it is pretty easy. Here’s the setup:


import easyocr
reader = easyocr.Reader(['th','en'])
reader.readtext('test.jpg')

The results include four points that define the bounding box of each piece of text, the text, and a confidence level. The code takes advantage of the GPU, but you can run it in a CPU-only mode if you prefer. There are a few other options, including setting the algorithm’s scanning behavior, how it handles multiple processors, and how it converts the image to grayscale. The results look impressive.

According to the project’s repository, they incorporated several existing neural network algorithms and conventional algorithms, so if you want to dig into details, there are links provided to both code and white papers. If you need some inspiration for what to do with OCR, maybe this past project will give you some ideas. Or you could cheat at games.

Tablet Oscilloscope Claims 100 MHz, But Is It?

[LearnElectronics] grabbed a FNIRSI tablet oscilloscope from a vendor from China. The device has a seven-inch touchscreen and claims to be a two-channel 100 MHz scope. But is it? Watch the video below and you’ll see.

Spoiler alert: [LearnElectronics] was skeptical of the 100 MHz claim and it looks like it is more like a 30 MHz analog bandwidth. Despite that, it does seem like a pretty capable 30 MHz scope in a very handy form factor and a very cheap price: as little as $120 or so, depending on where you shop.

Continue reading “Tablet Oscilloscope Claims 100 MHz, But Is It?” →