A breadboard filled with logic chips and wiring

SPAM-1 Is A Well-Documented Discrete CPU With An Impressive Software Library

Here at Hackaday we love projects that are so well-documented that you can spend days reading up on what the designer has achieved. [John Lonergan] didn’t disappoint when he designed the SPAM-1, an 8-bit CPU built from discrete logic gates. His detailed log contains a wealth of information on such things as designing opcodes, optimizing program counter logic, running a digital simulation, as well as his thoughts on microcode design. The sheer volume of it may be a bit off-putting to beginners, so it might be best to start with the video series that describes the architecture and goes into detail on several sub-blocks.

The design has changed a bit since [John] first started on the project, as he decided to add more and more features, but the final result is a well-thought out architecture that keeps the simplicity needed for discrete hardware but still has enough features to keep it interesting for seasoned CPU aficionados. The instruction size is rather large (48 bits) to simplify the instruction decoding at the expense of larger code size. Conditional jump instructions are not present; instead, all instructions have an optional control flag to make them conditional, a feature inspired by the ARM instruction set.

Once the design was mature enough, [John] modelled the entire thing in Verilog and simulated his design to verify correct operation and to check the timings, estimating it to be workable up to 5 MHz or so. A large stack of breadboards and DIP chips from the 74xx series then brought the design to life.

Not content with simply designing, simulating and implementing a custom CPU in hardware, [John] also spent significant effort on the software side of things, writing an assembler and even a C-like compiler for the SPAM-1 platform. And if that wasn’t enough, he also added an emulator for the classic CHIP-8 language, which allows it to run existing programs like Pong and Tetris. Input and output for all this software is mostly through a UART connection to a PC. A VGA interface is still on [John]’s to-do list, but he did build an adapter to connect a classic NES controller to the system.

The SPAM-1 is a worthy addition to the long list of discrete-logic CPUs we’ve seen here, such as this breadboard computer running a UNIX-like OS or this minimalistic one. If you’d like to see one that implements an existing instruction set, try this homebrew RISC-V computer.

Continue reading “SPAM-1 Is A Well-Documented Discrete CPU With An Impressive Software Library”

A GPU card with a home-made fan assembly

3D-printed Fan Mount Keeps Server GPU Cool In Desktop Case

Most readers of Hackaday will be well aware of the current shortages of semiconductors and especially GPUs. Whether you’re planning to build a state-of-the art gaming PC, a mining rig to convert your kilowatt-hours into cryptocoins, or are simply experimenting with machine-learning AI, you should be prepared to shell out quite a bit more money for a proper GPU than in the good old days.

Bargains are still to be had in the second-hand market though. [Devon Bray] chanced upon a pair of Nvidia Tesla K80 cards, which are not suitable for gaming and no longer cost-effective for mining crypto, but ideal for [Devon]’s machine-learning calculations. However, he had to make a modification to enable proper thermal management, as these cards were not designed to be used in regular desktop PCs.

The reason for this is that many professional-grade GPU accelerators are installed in rack-mounted server cases, and are therefore equipped with heat sinks but no fans: the case is meant to provide a forced air flow to carry away the card’s heat. Simply installing the cards into a desktop PC case would cause them to overheat, as passive cooling will not get rid of the 300 W that each card pumps out on full load.

[Devon] decided to make a proper thermal solution by 3D printing a mount that carries three fans along with an air duct that snaps onto the GPU card. In order to prevent unnecessary fan noise, he added a thermal control system consisting of a Raspberry Pi Pico, a handful of MOSFETs, and a thermistor to sense the GPU’s temperature, so the fans are only driven when the card is getting hot. The Pi Pico is of course way more powerful than needed for such a simple task, but allowed [Devon] to program it in MicroPython, using more advanced programming techniques than would be possible on, say, an Arduino.

We love the elegant design of the fan duct, which enables two of these huge cards to fit onto a motherboard side-by-side. We’ve seen people working on the opposite problem of fitting large fans into small cases, as well as designs that discard the whole idea of using fans for cooling.

Continue reading “3D-printed Fan Mount Keeps Server GPU Cool In Desktop Case”

Hacking An Obsolete Yet Modern Calculator

The gold standard for graphing calculators, at least in the US, are the Texas Instruments TI-84 series. Some black sheep may have other types, but largely due to standardized testing these calculators dominate the market. Also because of standardized testing, these calculators have remained essentially unchanged for decades. While this isn’t great for getting value for money, it does mean that generations of students have been able to hack on these calculators to do all kinds of interesting things as [George Hilliard] outlines.

Even before the creation of these graphing calculators, the z80 processor behind them was first produced over four decades ago and was ubiquitous in the computer scene at the time, which also lends to its hackability. There’s plenty to catch up on here, too, from custom TI games that trick the two-tone display into grayscale to Game Boy emulators that can play Zelda since the TI and Game Boy share the same processors. There are also several methods of running native code or otherwise “jailbreaking” these devices to run arbitrary code.

It looks like the world of TI hacking is alive and well now, and with several decades of projects to browse there’s always something new to find. As it stands, there may be more decades of these types of projects to come, since neither TI nor the various testing standardization companies and government agencies show any signs of changing any time soon.

Thanks to [Adrian] for the tip!

A breadboard full of chips

BreadBin Is An 8-bit TTL CPU On A Breadboard, In A Bread Bin

Building a CPU out of logic gates is a great way to learn about the inner workings of microprocessors, and we’ve seen several impressive projects in this area. [c0pperdragon] set himself the task of designing a very capable 8-bit CPU using just 74HC type logic chips on a large plug-in breadboard. To emphasize the “bread” theme, he put the whole thing inside an actual bread bin and named the accompanying software BERND after an anthropomorphic loaf from a German TV channel.

Getting a reliable breadboard big enough for the task at hand required some engineering by itself: cheap breadboards often have trouble making a reliable contact at each and every pin, while the length of the ground path and lack of shielding cause trouble for high-speed circuits. [c0pperdragon] therefore bought high-quality breadboards and soldered the ground wires together to get a proper low-resistance path. A ground plane made of aluminium foil should also help to prevent signal integrity issues.

A breadboard computer inside a wooden bread binThe total circuit is incredibly compact for a complete CPU, using just 33 chips. This includes 64 KB of flash to store programs as well as a 555 timer to generate a clock signal. I/Os are limited to simple eight-bit input and output buses, but a sixteen-bit address bus gives it plenty of space to add ROM, RAM or fancier interfaces.

The aforementioned BERND program is an emulator that allows the BreadBin to run code written for the 65C816 processor, the 16-bit CPU used in the Super Nintendo and the Apple IIGS. This makes it easy to re-use programs developed for [c0pperdragon]’s earlier OS816 system, which uses an actual 65C816 chip.

This has to be one of the cleanest breadboard CPU designs we’ve seen so far, certainly a lot cleaner than this one. If you’d like to watch a detailed guide to building an 8-bit CPU on a breadboard, we recommend this project.

Forget Digital Computing, You Need An Analog Computer

The analog computer of decades-gone-by is something many of us younger engineers never got the chance to experience first hand. It’s pretty much a case of reading about them on these fine pages or perhaps looking at a piece of one behind glass in one of the more interesting museums out there. But now, there is another option, (THAT) The Analog Thing. Developed by Berlin-based Analog computer-on-chip specialist Anabrid, THAT is an Open Source analog computer you can build yourself (eventually) or buy from them fully assembled. At least, that’s their plan.

From the 1970s onwards, digital computers became powerful enough to replace analog computers in pretty much every area, and with the increased accuracy this brought, the old analog beasts became obsolete overnight. Now, there seems to be a move to shift back a little, with hybridized analog-digital approaches looking good for some applications, especially where precision is not paramount. After all, that pile of fatty grey matter between your ears is essentially a big analog computer, and that’s pretty good at problem solving.

Looking over the project Wiki there are a few application examples and some explanatory notes. Schematics are shown, albeit only images for now. We can’t find the PCB files either, but the assembly instructions show many bodge wires, so we guess they’re re-spinning the PCB to apply fixes before releasing them properly. This is clearly work-in-progress and as they say on the main site, their focus is on chips for hybrid analog-digital computing, with a focus on energy-efficient approximate methods. With that in mind, we can forgive that the community-focused learning tools are still being worked on. All that said, this is still a very interesting project, and definitely would be a Christmas present this scribe would be more than happy to unwrap.

Continue reading “Forget Digital Computing, You Need An Analog Computer”

Dynamicland Makes The Whole Building The Computer

Every once is a while a research project comes along that has the potential to totally shake up computing and what it even means to interact with a system. The project Dynamicland.org, is a result of [Bret Victor]’s research journey over the years, looking into various aspects of human computer interaction and what it even means to think like a human.

One of the overhead projectors tied to a realbox
In Realtalk, paper is your programming medium

Dynamicland is an instantiation of a Realtalk ecosystem, deployed into a whole building. Tables are used as computing surfaces, with physical objects such as pieces of paper, notebooks, anything which can be read by one of the overhead cameras, becoming the program listing, as well as the user interface. The camera is associated with a projector, with the actual hardware hooked into so-called ‘Realboxes’ which are Linux machines running the Realtalk software. Separate Realboxes (and other hardware such as a Raspberry Pi, running Realtalk) are all federated together using the Realtalk protocol, which allows communication from hardware in the ceiling, to any on the desk, and also to other desks and computing surfaces.

Realtalk itself is described as an environment for authoring and using computation media. The Realtalk system provides a language extension to Lua. Together these form a domain-specific language. Realtalk is also a kind of reactive database, which means that the emphasis is on the flow of data and connections between data producing things, and data consuming things. For a bit more explanation of how reactive programming can be used with modern relational databases, check out this article on the subject.

For a good overview of how this works in practice, from a programming perspective, checkout [Omar Rizwan]’s article about his ‘Geokit’ project. Another interesting read is the work by [Andrés Cuervo.]

Continue reading “Dynamicland Makes The Whole Building The Computer”

Triple Monitor Luggable PC Is An All In One Powerhouse

[Matt] from [DIY Perks] has made a name for himself building nice custom computing machines, and his latest triple-monitor luggable PC (video after the break) is sure to give most high-performance desktop machines a run for their money.

The large central monitor folding laptop monitors mounted vertically on either size look impressive, but only just scratches the surface of this build. Hidden behind aluminum panels are Ryzen 5950X CPU and RTX 3080 GPU with water cooling, 64 GB of RAM, and two 8 TB SSDs. A set of high-quality speaker drivers, subwoofer, and audio amps is also included. All this hardware pulls about 600 W of power from a large DC-DC converter block, which in turn receives power from either a pair of onboard AC-DC converters or a 16 V – 63 V DC source, like a battery system.

To mount everything to the back of the main monitor, [Matt] created 3D printed adaptor blocks with threaded inserts which slide under existing hooks on the back of the monitor. Aluminum angles screw to these blocks to cover the edges of the display panel, together with a large mounting plate with pre-drilled holes to mount all the components on standoffs. A set of adjustable and removable legs mount to the side of the PC. A hinged door in the back cover allows storage space for a keyboard and mouse during transport. When folded, the laptop monitors don’t fully cover the main monitor, so [Matt] created a leather cover that doubles as a cable and accessory organizer.

Whether its dual screens and an integrated SDR, or a rotating-folding screen, there is no shortage of ways to build a portable powerhouse. Continue reading “Triple Monitor Luggable PC Is An All In One Powerhouse”