Home-Built CPU Runs With Home-Built Toolchain

A few years ago [Takaya Saeki] and fellow students of the University of Tokyo, were given a very limited instruction during their ‘CPU exercise’ class, along the lines of:

Take this ray-tracing program written in OCaml and run it on your CPU implemented on an FPGA

Splitting into groups to cover the CPU, FPU, simulator tool, and compiler toolchain, the students started with designing a RISC ISA, then designed a CPU around that. You can follow along with the retrospective writeup of the class, then dive into the GitHub pages for each of the components of the system, although the commentary is mainly in Japanese. Hey, you can google translate right? Continue reading “Home-Built CPU Runs With Home-Built Toolchain”

Tiny Arcade Uses Tiny CRT

Restoring vintage electronics is a difficult hobby to tackle. Even the most practical builds often have to use some form of modern technology to work properly, or many different versions of the machine need to be disassembled to get a single working version. Either way, in the end someone will be deeply hurt by the destruction of anything antique, except perhaps with [Marco]’s recent tiny arcade with a unique CRT display.

The CRT is a now-obsolete technology, but Arcade and MAME purists often seek them out because of the rounded screen and vintage feel these devices have when compared to modern LCD or LED displays. For a build this small, though, [Marco] couldn’t just use parts from an old TV set as there wouldn’t be clearance in the back of the cabinet. An outdated video conferencing system turned out to have just the part he needed, though. It has a CRT mounted perpendicularly to a curved screen in order to reduce the depth needed dramatically.

The final build uses a tiny Namco system meant to plug into the RCA jack on a standard TV, but put in a custom case that makes it look like an antique video game cabinet. It’s an interesting build that doesn’t destroy any valuable antique electronics, while still maintaining a classic arcade feel. If you’re building a larger arcade cabinet which will still satisfy the purists out there, make sure you’re using a CRT with the right kind of control system.

Continue reading “Tiny Arcade Uses Tiny CRT”

Building Faster Rsync From Scratch In Go

For a quick file transfer between two computers, SCP is a fine program to use. For more complex, large, or regular backups, however, the go-to tool is rsync. It’s faster, more efficient, and usable in a wider range of circumstances. For all its perks, [Michael Stapelberg] felt that it had one major weakness: it is a tool written in C. [Michael] is philosophically opposed to programs written in C, so he set out to implement rsync from scratch in Go instead.

[Michael]’s path to deciding to tackle this project is a complicated one. His ISP upgraded his internet connection to 25 Gbit/s recently, which means that his custom router was the bottleneck in his network. To solve that problem he migrated his router to a PC with several 25 Gbit/s network cards. To take full advantage of the speed now theoretically available, he began using a tool called gokrazy, which turns applications written in Go into their own appliance. That means that instead of installing a full Linux distribution to handle specific tasks (like a router, for example), the only thing loaded on the computer is essentially the Linux kernel, the Go compiler and libraries, and then the Go application itself.

With a new router with hardware capable of supporting these fast speeds and only running software written in Go, the last step was finally to build rsync to support his tasks on his network. This meant that rsync itself needed to be built from scratch in Go. Once [Michael] completed this final task, he found that his implementation of rsync is actually much faster than the version built in C, thanks to the modernization found in the Go language and the fact that his router isn’t running all of the cruft associated with a standard Linux distribution.

For a software project of this scope, we find [Michael]’s step-by-step process worth taking note of for any problem any of us attempt to tackle. Not only that, refactoring a foundational tool like rsync is an involved task on its own, let alone its creation simply to increase network speeds beyond what most of us would already consider blazingly fast. We’re leaving out a ton of details on this build so we definitely recommend checking out his talk in the video below.

Thanks to [sarinkhan] for the tip!

Continue reading “Building Faster Rsync From Scratch In Go”

Motorcycle Regulator By Popular Demand

A few weeks ago we posted a build of an avid motorcycle enthusiast named [fvfilippetti] who created a voltage regulator essentially from the ground up. While this was a popular build, the regulator only works for a small subset of motorcycles. This had a large number of readers clamoring for a more common three-phase regulator as well. Normally we wouldn’t expect someone to drop everything they’re doing and start working on a brand new project based on the comments here, but that’s exactly what he’s done.

It’s important to note that the solutions he has developed are currently only in the simulation phase, but they show promise in SPICE models. There are actually two schematics available for those who would like to continue his open-source project. Compared to shunt-type regulators, these have some advantages. Besides being open-source, they do not load the engine when the battery is fully charged, which improves efficiency. The only downside is that they have have added complexity as they can’t open this circuit except under specific situations, which requires a specific type of switch.

All in all, this is an excellent step on the way to a true prototype and eventual replacement of the often lackluster regulators found on motorcycles from Aprilia to Zero. We hope to see it further developed for all of the motorcycle riders out there who have been sidelined by this seemingly simple part. And if you missed it the first time around, here is the working regulator for his Bajaj NS200.

Motorcycle Voltage Regulator Uses MOSFETs

For how common motorcycles are, the designs and parts used in them tend to vary much more wildly than in cars and trucks. Sometimes this is to the rider’s advantage, like Honda experimenting with airbags or automatic transmissions. Sometimes it’s a little more questionable, like certain American brands holding on to pushrod engine designs from the ’40s. And sometimes it’s just annoying, like the use of cheap voltage regulators that fail often and perform poorly. [fvfilippetti] was tired of dealing with this on his motorcycle, so he built a custom voltage regulator using MOSFETs instead.

Unlike a modern car alternator, which can generate usable voltage even at idle, smaller or older motorcycle alternators often can’t. Instead they rely on a simpler but less reliable regulator that is typically no more than a series of diodes, but which can only deliver energy to the electrical system while the motor is running at higher speeds. Hoping to improve on this design, [fvfilippetti] designed a switched regulator from scratch out of MOSFETs with some interesting design considerations. It is capable of taking an input voltage between 20V and 250V, and improves the ability of the motorcycle to use modern, higher-power lights and to charge devices like phones as well.

In the video below, an LED was added in the circuit to give a visual indication that the regulator is operating properly. It’s certainly a welcome build for anyone who has ever dealt with rectifier- or diode-style regulators on older bikes before. Vehicle alternators are interesting beasts in their own right, too, and they can be used for much more than running your motorcycle’s electrical system.

Continue reading “Motorcycle Voltage Regulator Uses MOSFETs”

90s Apple Computer Finally Runs Unsigned Code

Back in the 90s, the console wars were in full swing. Nintendo vs Sega was an epic showdown at first, but when Nintendo seemed sure to clench the victory Sony came out of nowhere with the PlayStation. While these were the most popular consoles at the time, there were a few others around that are largely forgotten by history even if they were revolutionary in some ways. An example is the Pippin, a console made by Apple, which until now has been unable to run any software not signed by Apple.

The Pippin was Apple’s only foray into gaming consoles, but it did much more than that and included a primitive social networking system as well as the ability to run Apple’s Macintosh operating system. The idea was to be a full media center of sorts, and the software that it would run would be loaded from the CD-ROM at each boot. [Blitter] has finally cracked this computer, allowing it to run custom software, by creating an authentication file which is placed on the CD to tell the Pippin that it is “approved” by Apple.

The build log goes into incredible detail on the way these machines operated, and if you have a Pippin still sitting around it might be time to grab it out of the box and start customizing it in the way you probably always wanted to. For those interested in other obscure Apple products, take a look at this build which brings modern WiFi to the Apple Newton, their early PDA.

Continue reading “90s Apple Computer Finally Runs Unsigned Code”

Custom Macro Keyboard With Sweet Backlighting

From the smallest 60% keyboards for those with no desk space to keyboards with number pads for those doing data entry all day, there’s a keyboard size and shape for just about everyone. The only problem, even with the largest keyboards, is that they’re still fairly limited in what they can do. If you find yourself wishing for even more functionality, you might want to build something like this custom macro keyboard with built-in LED backlighting.

Rather than go with a standard mechanical keyboard switch like a Cherry MX, this build is based around TS26-2 pushbuttons with built-in LED lighting. [atkaper] only really needed one button for managing the mute button on MS Teams, but still built a total of eight switches into this keyboard which can all be individually programmed with different functions. The controller is an Arduino Leonardo and the enclosure was 3D printed.

Paired with the classic IBM Model M keyboard, this new macro keyboard adds plenty of functionality while also having control over LED backlighting. Macro keyboards are incredibly useful, especially with their ability to easily change function with control over the software that runs on them. The key to most builds is the 32U4 chip found in some Atmel microcontrollers which allows it to easily pass keyboard (and mouse) functionality to any computer its plugged in to.