A photo of the internal wiring.

Imagining The CPS-1: An Early 70s 4-bit Microcomputer From Canada

[Michael Gardi] wrote in to let us know about his project: CPS-1: Imagining An Early 70s 4-bit Microcomputer.

The CPS-1 was the first Canadian microprocessor-based computer. It was built by Microsystems International Ltd. (MIL) in Ottawa between 1972 and 1973 and it is unknown how many were made and in what configurations. The CPS-1 supported a 12-bit address bus and a 4-bit data bus. MIL also developed the supporting hardware including RAM. The processor was called the MIL 7114.

[Michael] worked in collaboration with [Zbigniew Stachniak] from York University Computer Museum. [Zbigniew] had developed a MIL CPS-1 Emulator and [Michael]’s job was to implement a front panel hardware interface for the emulator which runs on a Raspberry Pi. The only complication: there are no remaining CPS-1 computers, and no known photographs, so no one can say for sure what a real front panel might have looked like!

With a bit of guess work and 3D printing, as well as some inspiration from contemporaneous hardware such as the DEC PDP-11, [Michael] came up with an implementation. He used an IO extender HAT which adds 32 IO pins to the existing Pi GPIO pins that are accessible via an 3-wire I2C interface. This was enough hardware to support the 26 switches and 29 LEDs on the panel. There’s a brief demo of the custom printed switches in the video embedded below.

If you’re interested in old school 4-bit tech you might also like to check out 4-bit Single Board Computer Based On The Intel 4004 Microprocessor.

Continue reading “Imagining The CPS-1: An Early 70s 4-bit Microcomputer From Canada”

A Closer Look Inside A Robot’s Typewriter-Inspired Mouth

[Ancient] has a video showing off a fascinating piece of work: a lip-syncing robot whose animated electro-mechanical mouth works like an IBM Selectric typewriter. The mouth rapidly flips between different phonetic positions, creating the appearance of moving lips and mouth. This rapid and high-precision movement is the product of a carefully-planned and executed build. When we featured this project before, we wanted to see under the hood. Now we can.

Behind the face is a ball that, when moving quickly enough, gives the impression of animated mouth and lips. The new video gives a closer look at how it works.

[Ancient] dubs the concept Selectramatronics, because its action is reminiscent of the IBM Selectric typewriter. Instead of each key having a letter on a long arm that would swing up and stamp an ink ribbon, the Selectric used a roughly spherical unit – called a typeball – with letters sticking out of it like a spiky ball.

Hitting the ‘A’ key would rapidly turn the typeball so that the ‘A’ faced forward, then satisfyingly smack it into the ink ribbon at great speed. Here’s a look at how that system worked, by way of designing DIY typeballs from scratch. In this robot, the same concept is used to rapidly flip a ball bristling with lip positions.

We first saw this unusual and fascinating design when its creator showed videos of the end result on social media, pronouncing it complete. We’re delighted to see that there’s now an in-depth look at the internals in the form of a new video (the first link in this post, also embedded below just under the page break.)

The new video is wonderfully wordless, preferring to show rather than tell. It goes all the way from introducing the basic concept to showing off the final product, lip-syncing to audio from an embedded Raspberry Pi.

Continue reading “A Closer Look Inside A Robot’s Typewriter-Inspired Mouth”

Inside and outside the Contrib Cal.

Reify Your GitHub Commit History With Contrib Cal

Over on Instructables, [Logan Fouts] shows us the Contrib Cal GitHub desk gadget. This build will allow you to sport your recent GitHub commit activity on your wall or desk with an attractive diffuse light display backed by a 7×4 matrix of multicolor LEDs. Motivate yourself and impress your peers!

This humble project is at the same time multifaceted. You will build a case with 3D printing, make a diffuse screen by gluing and cutting, design a LED matrix PCB using KiCad, solder everything together, and then program it all with Python. The brains of the operation are a Raspberry Pi Zero W.

The Instructables article will run you through the required supplies, help you to print the case, explain how to solder the LEDs, tell how to install the heat-set inserts for high quality screw attachments, explain wiring and power, tell you about how to use the various screws, then tell you about where to get more info and the required software on GitHub: Contrib Cal v2.

Of course this diffuse LED matrix is only one way to display your GitHub progress, you can also Track Your GitHub Activity With This E-Ink Display.

The Decisioninator Decides Dinner, Saves Marriage

For something non-explosive, this might be the most American project we’ve featured in a while. [Makerinator]’s domestic bliss was apparently threatened by the question “what shall we have for dinner”– that’s probably pretty universal. Deciding that the solution was automation is probably universal to software devs and associated personalities the world over. That the project, aptly called “The Decisioninator” apes a popular game-show mechanic to randomly select a fast-food restaurant? Only people with 100-octanes of freedom running through their veins can truly appreciate its genius.

In form factor, it’s a tiny slot machine which [Makerinator] fabbed up on his laser cutter. The lovely “paintjob” was actually a print out with dye-sublimation ink that was transferred to plywood before laser cutting.  Mounted to this are illuminated arcade buttons and a small ISP display. The interface is simplicity itself: the big button spins a virtual “wheel” on the display (with sound effects inspired by The Price is Right) to tell the family what deliciously unhealthy slop they’ll be consuming, while the other button changes decision modes. Of course you can pick more than just dinner with The Decisioninator. You need only decide what spinners to program. Which, uh, that might be a problem.

Luckily [Makerinator] was able to come up with a few modes without recursively creating a The Decisioninator-inator. He’s got the whole thing running on a Pi4, which, with its 1980s supercomputer performance, is hilariously overpowered for the role it plays (in true American fashion). He’s coded the whole thing in the Flame Engine, which is a game engine built on the Flutter UI toolkit by American technology giant Google.

What’s more American than tech giants and fast food? A propane powered plasma cannon, for one thing; or maybe mental gymnastics to translate into freedom units, for another.

Thanks to [Makerinator] for the tip.

One Camera Mule To Rule Them All

A mule isn’t just a four-legged hybrid created of a union betwixt Donkey and Horse; in our circles, it’s much more likely to mean a testbed device you hang various bits of hardware off in order to evaluate. [Jenny List]’s 7″ touchscreen camera enclosure is just such a mule.

In this case, the hardware to be evaluated is camera modules– she’s starting out with the official RPi HQ camera, but the modular nature of the construction means it’s easy to swap modules for evaluation. The camera modules live on 3D printed front plates held to the similarly-printed body with self-tapping screws.

Any Pi will do, though depending on the camera module you may need one of the newer versions. [Jenny] has got Pi4 inside, which ought to handle anything. For control and preview, [Jenny] is using an old first-gen 7″ touchscreen from the Raspberry Pi foundation. Those were nice little screens back in the day, and they still serve well now.

There’s no provision for a battery because [Jenny] doesn’t need one– this isn’t a working camera, after all, it’s just a test mule for the sensors. Having it tethered to a wall wart or power bank is no problem in this application. All files are on GitHub under a CC4.0 license– not just STLs, either, proper CAD files that you can actually make your own. (SCAD files in this case, but who doesn’t love OpenSCAD?) That means if you love the look of this thing and want to squeeze in a battery or add a tripod mount, you can! It’s no shock that our own [Jenny List] would follow best-practice for open source hardware, but it’s so few people do that it’s worth calling out when we see it.

Thanks to [Jenny] for the tip, and don’t forget that the tip line is open to everyone, and everyone is equally welcome to toot their own horn.

A hand holding a One ROM with a Commodore 64 in the background

One ROM: The Latest Incarnation Of The Software Defined ROM

Retrocomputers need ROMs, but they’re just so read only. Enter the latest incarnation of [Piers]’s One ROM to rule them all, now built with a RP2350, because the newest version is 5V capable. This can replace the failing ROMs in your old Commodore gear with this sweet design on a two-layer PCB, using a cheap microcontroller.

[Piers] wanted to use the RP2350 from the beginning but there simply wasn’t space on the board for the 23 level shifters which would have been required. But now that the A4 stepping adds 5 V tolerance [Piers] has been able to reformulate his design.

The C64 in the demo has three different ROMs: the basic ROM, kernel ROM, and character ROM. A single One ROM can emulate all three. The firmware is performance critical, it needs to convert requests on the address pins to results on the data bus just as fast as it can and [Piers] employs a number of tricks to meet these requirements.

The PCB layout for the RP2350 required extensive changes from the larger STM32 in the previous version. Because the RP2350 uses large power and ground pads underneath the IC this area, which was originally used to drop vias to the other side of the board, was no longer available for signal routing. And of course [Piers] is constrained by the size of the board needing to fit in the original form factor used by the C64.

The One ROM code is available over on GitHub, and the accompanying video from [Piers] is an interesting look into the design process and how tradeoffs and compromises and hacks are made in order to meet functional requirements.

Continue reading “One ROM: The Latest Incarnation Of The Software Defined ROM”

Pi Port Protection PCB

We’re used to interfaces such as I2C and one-wire as easy ways to hook up sensors and other peripherals to microcontrollers. While they’re fine within the confines of a small project, they do have a few limitations. [Vinnie] ran straight into those limitations while using a Raspberry Pi with agricultural sensors. The interfaces needed to work over long cable runs, and to be protected from ESD due to lightning strikes. The solution? A custom Pi interface board packing differential drivers and protection circuits aplenty.

The I2C connection is isolated using an ISO1541 bus isolator from TI, feeding a PCA9615DP differential I2C bus driver from NXP. 1-wire is handled by a Dallas DS2482S 1-wire bus master and an ESD protection diode network. Even the 5-volt power supply is delivered through an isolated module.

Whether or not you need this Raspberry Pi board, this is still an interesting project for anyone working with these interfaces. If you’re interested, we’ve looked at differential I2C in the past.