A RISC-V Operating System Instruction Manual

To some, an operating system is a burden or waste of resources, like those working on embedded systems and other low-power applications. To others it’s necessary, abstracting away hardware so that higher-level programming can be done. For most people it’s perhaps not thought of at all. But for a few, the operating system is the most interesting piece of software running on a computer and if you’d like to investigate what makes this often overlooked aspect of computer science interesting, take a look at this course on operating systems from Cornell University.

The operating system itself is called Earth and Grass Operating System because it splits the functionality of the operating system into three separate parts. The Earth layer involves dealing with hardware, the Grass layer involves hardware-independent aspects, and a third application layer implements other key operating system features. It’s built for a RISC-V processor, since that instruction set is completely open source and transparent about what it’s doing. It’s also incredibly small, coming in at around 2000 lines of code. The course covers nine areas, with the first six being core operating system functions and the remaining three covering more advanced operating system concepts.

For understanding the intricacies and sometimes mysterious ways that operating systems work, a course like this can go a long way into unraveling those mysteries and developing a deeper understanding of how it brings the hardware to work for higher-level software. We actually featured this operating system two years ago, before this course was created, which covers this project for those who like to take a more self-directed approach, or simply want a lightweight OS for a RISC-V system.

Unreleased Amiga Hardware Plays MP3s

The MP3 file type has been around for so long, and is supported by essentially all modern media software and hardware, that it might be surprising to some to learn that it’s actually a proprietary format. Developed in the late 80s and early 90s, it rose to prominence during the Napster/Limewire era of the early 00s and became the de facto standard for digital music, but not all computers in these eras could play this filetype. This includes the Amigas of the early 90s, with one rare exception: this unreleased successor to the A3000 with a DSP chip, which now also has the software to play back these digital tunes.

The AA3000, developed as a prototype by Commodore, was never released to the general public. Unlike the original A3000 this one would have included a digital signal processing chip from AT&T called the DSP3210 which would have greatly enhanced its audio capabilities. A few prototype boards did make it out into the hands of the public, and the retrocomputing scene has used them to develop replicas of these rare machines. [Wrangler] used one to then develop the software needed for the MPEG layer 2 and 3 decoder using this extra hardware, since the original Amiga 3000 was not powerful enough on its own to play these files back.

If you want to follow along with the community still developing for this platform there’s a form post with some more detail for this specific build (although you may need to translate from German). [Wrangler] additionally points out that there are some limitations with this implementation as well, so you likely won’t get Winamp-level performance with this system, but for the Amiga fans out there it’s an excellent expansion of this computer’s capabilities nonetheless.

Thanks to [Andy] for the tip!

Continue reading “Unreleased Amiga Hardware Plays MP3s”

NES Zapper Becomes Telephone

Although there was a time in the 80s (and early 90s for fans of the SuperScope) where light guns were immensely popular, with games like DuckHunt cultural touchstones, their time in the video game world has largely come to an end. We might occasionally pick up a Zapper for the NES and play this classic out of nostalgia, but plenty of people are looking for other things that these unique video game controllers can do instead. [Nick] has turned one of his old NES peripherals into a wireless phone.

The way the original Zapper worked was by looking for a certain pattern of pixels that displayed for a fraction of a second whenever the trigger was pulled. Bypassing the anti-cheat mechanism that looks only for qualities of light coming from CRT screens of the day effectively turns the light gun into an analog light sensor which is used for receiving the audio from the phone’s base station via a laser. Of course there were no microphones present within the original hardware so one is added, wiring its output to another laser that communicates to the base station. With the light gun pointed directly at this base station, audio is communicated back and forth by varying the strengths of these small lasers and listening to them on the other end with photodiodes.

[Nick] does point out that this isn’t a great phone, largely because it needs to be pointed exactly at the right spot to work at all, although we do agree that it’s an interesting project that demonstrates what the original hardware could do with a few of its limitations removed. There are a few other ways of bringing these devices into the modern world, with one of our favorites being this laser pointer with additional hardware from a Wiimote that could also function as a mouse.

Continue reading “NES Zapper Becomes Telephone”

Trashed Sound System Lives To Rock Another Day

Plenty of consumer goods, from passenger vehicles to toys to electronics, get tossed out prematurely for all kinds of reasons. Repairable damage, market trends, planned obsolescence, and bad design can all lead to an early sunset on something that might still have some useful life in it. This was certainly the case for a sound system that [Bill] found — despite a set of good speakers, the poor design of the hardware combined with some damage was enough for the owner to toss it. But [Bill] took up the challenge to get it back in working order again.

Inside the DIY control unit.

The main problem with this unit is that of design. It relies on a remote control to turn it on and operate everything, and if that breaks or is lost, the entire unit won’t even power on. Tracing the remote back to the control board reveals a 15-pin connector, and some other audio sleuths online have a few ways of using this port to control the system without the remote.

[Bill] found a few mistakes that needed to be corrected, and was eventually able to get an ESP8266 (and eventually an ESP32) to control the unit thanks largely to the fact that it communicates using a slightly modified I2C protocol.

There were a few pieces of physical damage to correct, too. First, the AC power cable had been cut off which was simple enough to replace, but [Bill] also found that a power connector inside the unit was loose as well. With that taken care of he has a perfectly functional and remarkably inexpensive sound system ready for movies or music. There are some other options available for getting a set of speakers blasting tunes again as well, like building the amplifier for them from scratch from the get-go.

Jettison Sails For Electric Propulsion

Although there are some ferries and commercial boats that use a multi-hull design, the most recognizable catamarans by far are those used for sailing. They have a number of advantages over monohull boats including higher stability, shallower draft, more deck space, and often less drag. Of course, these advantages aren’t exclusive to sailboats, and plenty of motorized recreational craft are starting to take advantage of this style as well. It’s also fairly straightforward to remove the sails and add powered locomotion as well, as this electric catamaran demonstrates.

Not only is this catamaran electric, but it’s solar powered as well. With the mast removed, the solar panels can be fitted to a canopy which provides 600 watts of power as well as shade to both passengers. The solar panels charge two 12V 100ah LifePo4 batteries and run a pair of motors. That’s another benefit of using a sailing cat as an electric boat platform: the rudders can be removed and a pair of motors installed without any additional drilling in the hulls, and the boat can be steered with differential thrust, although this boat also makes allowances for pointing the motors in different directions as well. 

In addition to a highly polished electric drivetrain, the former sailboat adds some creature comforts as well, replacing the trampoline with a pair of seats and adding an electric hoist to raise and lower the canopy. As energy density goes up and costs come down for solar panels, more and more watercraft are taking advantage of this style of propulsion as well. In the past we’ve seen solar kayaks, solar houseboats, and custom-built catamarans (instead of conversions) as well.

Continue reading “Jettison Sails For Electric Propulsion”

The Mouse Language, Running On Arduino

Although plenty of us have our preferred language for coding, whether it’s C for its hardware access, Python for its usability, or Fortran for its mathematic prowess, not every language is specifically built for problem solving of a particular nature. Some are built as thought experiments or challenges, like Whitespace or Chicken but aren’t used for serious programming. There are a few languages that fit in the gray area between these regions, and one example of this is MOUSE, which can now be run on an Arduino.

Although MOUSE was originally meant to be a minimalist language for computers of the late 70s and early 80s with limited memory (even for the era), its syntax looks more like a more modern esoteric language, and indeed it arguably would take a Python developer a bit of time to get used to it in a similar way. It’s stack-based, for a start, and also uses Reverse Polish Notation for performing operations. The major difference though is that programs process single letters at a time, with each letter corresponding to a specific instruction. There have been some changes in the computing world since the 80s, though, so [Ivan]’s version of MOUSE includes a few changes that make it slightly different than the original language, but in the end he fits an interpreter, a line editor, graphics primitives, and peripheral drivers into just 2 KB of SRAM and 32 KB Flash so it can run on an ATmega328P.

There are some other features here as well, including support for PS/2 devices, video output, and the ability to save programs to the internal EEPROM. It’s an impressive setup for a language that doesn’t get much attention at all, but certainly one that threads the needle between usefulness and interesting in its own right. Of course if a language where “Hello world” is human-readable is not esoteric enough, there are others that may offer more of a challenge.


Image Credit: Maxbrothers2020

An Open-Source Wii U Gamepad

Although Nintendo is mostly famous for making great games, they also have an infamous reputation for being highly litigious not only for reasonable qualms like outright piracy of their games, but additionally for more gray areas like homebrew development on their platforms or posting gameplay videos online. With that sort of reputation it’s not surprising that they don’t release open-source drivers for their platforms, especially those like the Wii U with unique controllers that are difficult to emulate. This Wii U gamepad emulator seeks to bridge that gap.

The major issue with the Wii U compared to other Nintendo platforms like the SNES or GameCube is that the controller looks like a standalone console and behaves similarly as well, with its own built-in screen. Buying replacement controllers for this unusual device isn’t straightforward either; outside of Japan Nintendo did not offer an easy path for consumers to buy controllers. This software suite, called Vanilla, aims to allow other non-Nintendo hardware to bridge this gap, bringing in support for things like the Steam Deck, the Nintendo Switch, various Linux devices, or Android smartphones which all have the touch screens required for Wii U controllers. The only other hardware requirement is that the device must support 802.11n 5 GHz Wi-Fi.

Although the Wii U was somewhat of a flop commercially, it seems to be experiencing a bit of a resurgence among collectors, retro gaming enthusiasts, and homebrew gaming developers as well. Many games were incredibly well made and are still experiencing continued life on the Switch, and plenty of gamers are looking for the original experience on the Wii U instead. If you’ve somehow found yourself in the opposite position of owning of a Wii U controller but not the console, though, you can still get all the Wii U functionality back with this console modification.

Thanks to [Kat] for the tip!