[Gerry] holding up a DIP IC

Emulating A 74LS48 BCD-to-7-Segment Decoder/Driver With An Altera MAX 7000 “S” Series Complex Programmable Logic Device

Over on the [Behind The Code with Gerry] YouTube channel our hacker [Gerry] shows us how to emulate a 74LS48 BCD-to-7-segment decoder/driver using an Altera CPLD Logic Chip From 1998.

This is very much a das blinkenlights kind of project. The goal is to get a 7-segment display to count from 0 to 9, and that’s it. [Gerry] has a 74LS193 Up/Down Binary Counter, a 74LS42 BCD to Decimal Decoder, and some 74LS00 NAND gates, but he “doesn’t have” an 74LS48 to drive the 7-segment display so he emulates one with an old Altera CPLD model EPM7064SLC44 which dates back to the late nineties. A CPLD is a Complex Programmable Logic Device which is a kind of precursor to FPGA technology.

Continue reading “Emulating A 74LS48 BCD-to-7-Segment Decoder/Driver With An Altera MAX 7000 “S” Series Complex Programmable Logic Device”

An Unnecessary (But Cool) Processor

[Bob] calls his custom 16-bit computer “Bob’s Unnecessary Retro Processor” or BURP for short. While we suppose it is technically unnecessary, we love the look of it, and we hope he just used it to get the quirky acronym.

When we build custom CPUs they look suspiciously like FPGA development boards, but not BURP. We immediately thought of the IMSAI and the H8 when we saw it, but [Bob] points out it also borrows from the PDP-11.

Continue reading “An Unnecessary (But Cool) Processor”

Making USB Blaster Clones Work For Linux

The last time we checked in with [Downtown Doug Brown], he had some cheap Altera USB Blaster clones that didn’t want to work under Linux. The trick at that time was to change the device’s 24 MHz clock to 12 MHz. This month, he’s found some different ones that don’t work, but now the clock change doesn’t work. What’s the problem?

He also picked up a Terasic clone, which does work on Linux and is considered, according to [Doug], the best of the clones. The units were superficially similar. So what follows is a lot of USB tracing and dumping of the CPLD chip’s configuration.

Continue reading “Making USB Blaster Clones Work For Linux”

Z80 Single-Board Computer Looks Like It Could Have Been A Killer Product

Most retrocomputer builds seem to focus on either restoring old machines or rebuilding them from scratch. Either way, the goal is to get as close as possible to the original machine, and while we certainly respect those builds, there are other ways to celebrate the computers of yesterday, as this Z80 single-board computer nicely demonstrates.

[Ivan Farafontov]’s SBC is sort of a “Z80 that never was” build, one that would almost have been possible back in the heyday of 8-bit computing, and would have made quite a splash if it had. Most of the peripheral chips are from Zilog and would have been found in many of the Z80 machines of the day, like the TRS-80 and ZX Spectrum. Where it goes off the old-school path is with the video section, which uses an Atmel CPLD chip and a dual-port RAM to drive a VGA monitor. It still looks the part, though, with a 256×192 pixel, 16-color display. The compact video section helps keep the overall footprint of this machine pretty small, at least by the standards of the old machines. The machine is barely larger than its custom keyboard, which is populated with mechanical switches and really nice-looking custom keycaps, and everything fits into a 3D-printed case.

The demo that starts at the 4:30 mark of the video below will be a nostalgia storm for a lot of readers, starting as it does with a version of Boulder Dash that [Ivan] wrote from scratch, along with the tile editor he used to create the sprites for the game. All the design files and code are available if you want to build your own, of course. We recently featured another Z80 that never was, but [Ivan]’s machine really makes a statement with its compact size and its capabilities.

Continue reading “Z80 Single-Board Computer Looks Like It Could Have Been A Killer Product”

PiStorm Brings Modern Muscle To The Amiga

The Amiga, well known as the best and greatest computer ever designed, is nonetheless a platform of yesteryear. Its 68K, and later PowerPC, architectures have both been abandoned by the mainstream, and its attractive grey industrial design no longer graces store shelves. That doesn’t mean the platform is dead however, with diehard shredders like [Claude Schwarz] working hard to keep it alive with projects like PiStorm.

PiStorm is a Motorola 68K CPU emulator, running on a Raspberry PI 3A. The Pi uses its GPIOs to interact with a CPLD chip, which acts as the logic glue to allow the modern single board computer to emulate the Amiga’s original processor. However, it’s more than just an easy way to replace or upgrade a CPU. It also offers additional features, like retargetable graphics acceleration, SCSI disk emulation, and the ability to run whatever Kickstart ROM you so desire.

While the initial work has been done on a Pi 3A, [Claude] has also demonstrated some of the basic functionality running on a Pi CM4 too. The benchmarks are more fierce than a Beyoncé Super Bowl half time show, so if you need grunt on your classic Amiga, this could be the way to go. As a bonus, files to build your own are readily available on Github, which should make it a mite more accessible than other Amiga accelerator boards.

We wonder whether this accelerator could be used to hook the Amiga up to Spotify, a la this previous build. Likely, time will tell. Video after the break.

Continue reading “PiStorm Brings Modern Muscle To The Amiga”

Custom Controller Makes Turbomolecular Pump Suck

[Mark Aren] purchased a pair of Turbomolecular pumps (TMP) sans controllers, and then built an FPGA based BLDC controller for the Turbomolecular pumps. A TMP is similar to a jet turbine, consisting of several stages of alternating moving turbine blades and stationary stator blades, and having turbine rotation speeds ranging from 10,000 rpm to 90,000 rpm. TMP’s cannot exhaust directly to atmosphere, and must be combined with a backing (or roughing) pump to create a lower grade vacuum first. They find use in lots of applications such as electron microscopy, analytical sciences, semiconductors and lamp manufacturing. With the lamp industry rapidly embracing LEDs, many of the traditional lamp making lines are getting decommissioned, and if you are lucky, you can snag a TMP at a low cost – but it still will not be cheap by any means.

The two BOC-Edwards EXT255H Compound Molecular Pumps (PDF), that [Mark] bought did not have their accompanying EXC100E Turbomolecular Pump Controllers (PDF), and given pandemic related restrictions, he decided to build a controller of his own, using components and modules from his parts bin. The pump and controller user manuals offered only sketchy details about the sensored BLDC motor used in the pump. The low phase-to-phase resistance implied low drive voltage, and [Mark] decided to try running it at 24 V to start with. He already had experience using the Mitsubishi PS21245-E IGBT inverter bridge, and even though it was rated for much higher voltages, he knew that it would work just fine at 24 V too.

After figuring out a state machine for motor commutation that utilized PWM based adjustable current control, he implemented it on a 128 element FPGA board. Considering how expensive the TMP was, he wisely decided to first try out his driver on a smaller “expendable” BLDC motor. This whole process was non-trivial, since his available IGBT module was untested and undocumented, and required several tweaks before he could run it at the required 12 kHz PWM signals. His test motor was also undocumented, failing to run correctly when first hooked up. Fixing that issue meant having to disassemble the motor to check its internal wiring. Eventually, his efforts paid off, and he was able to safely run the TMP motor to confirm that his design worked.

With FPGA code, IGBT wiring and power supply issues sorted, the next step was to add a supervisory micro-controller, using an Arduino Nano. Its functions included interfacing with a touch screen LCD as a user interface, communicating with the FPGA module, and controlling several relays to switch power to the motor power supply, the roughing pump, TMP cooling fan, and a solenoid for the vacuum vent. Spindle current is calculated by measuring voltage drop across shunt resistors on the low side of the IGBT. Motor speed is measured using one of the motor hall sensors, and a thermistor provides motor temperature sensing. [Mark]’s PCB fabrication technique seems a bit different too. Using an Excellon drill file, he drills holes in a piece of plastic using a laser cutter to create a bare board, and then solders copper tracks by hand.

His initial tests at atmospheric pressure (although not recommended unless you monitor pump temperature), resulted in 7300 rpm while consuming about 7 Amps before he had to shut it down. In further tests, after adding a roughing pump to the test setup, he was able to spin the TMP to 20,000 rpm while it consumed 0.6 A. Obviously, the pump is rated to operate at a higher voltage, possibly 48 V based on the values mentioned in the TMP controller manual. The project is still “work in progress” as [Mark] hopes to eventually drive the pump up to its specified 60,000 rpm operating speed. What is not clear is what he eventually intends to do with this piece of exotic machinery. All he mentions is that “he has recently taken an interest in high-vacuum systems and is interested in exploring the high-vacuum world of electron guns.”

Maybe [Mark] can compare notes with the Open Source Turbomolecular Pump Controller that we featured some time back. And if you’d like to be a little bit more adventurous and build you own TMP, we got you covered with this DIY Everyman’s Turbomolecular Pump.

Build One, Get Two: CPLD And STM32 Development On A Single Board

Programmable logic devices have claimed their place in the hobbyist world, with more and more projects showing up that feature either a CPLD or their bigger sibling, the FPGA. That place is rightfully earned — creating your own, custom digital circuitry not only adds flexibility, but opens up a whole new world of opportunities. However, this new realm can be overwhelming and scary at the same time. A great way to ease into this is combining the programmable logic with a general purpose MCU system that you already know and are comfortable with. [Just4Fun] did just that with the CPLD Fun Board, a development board connecting an Arduino compatible STM32F103 Cortex-M3 controller to an Altera MAX II CPLD.

The PCB itself has some standard development board equipment routed to the CPLD: LEDs, buttons, a seven-segment display, and additional GPIO. The rest of the CPLD’s pins are going straight to the STM32 and its SPI, I2C and UART pins. Let’s say you want to create your own SPI device. With the CPLD Fun Board, you can utilize all the pre-existing libraries on the STM32 and fully focus on the programmable logic part. Better yet, every connection from MCU to CPLD has its own pin header connection to attach your favorite measurement device for debugging. And in case you’re wondering — yes, you can attach external hardware to those connectors by setting either MCU or CPLD pins to Hi-Z.

The downside of all this is the need for proprietary design software and a dedicated programmer for the CPLD, which sadly is the everyday reality with programmable logic devices. [Just4Fun] did a great job though writing up a detailed step-by-step tutorial about setting up the environment and getting started with the board, but there are also other tutorials on getting started with CPLDs out there, in case you crave more.