Linamp, The IRL Winamp

Anyone who first experienced music on computers using Winamp probably shares a memory of seeing that classic UI for the first time. Everything about it was a step ahead of the clunky, chunky interfaces we were used to, and even though it was supposed to be unobtrusive, it was hard to tear your eyes off that silky-smooth spectrum analyzer bouncing out your favorite MP3s.

Recapturing a little of the Winamp magic is the goal of Linamp, an physical version of the classic media player. It reproduces the Winamp UI on a touchscreen LCD with a wide aspect ratio that almost perfectly matches the original layout. Behind the display is a Raspberry Pi 4 with a 32 GB SD card, with all the important connections brought out to a board on the back of the case. The case itself is a treat, as it borrows design elements from another bit of retro gear, the mini-rack audio systems that graced many a bookshelf in the 1980s — and powered many high school parties too, if memory serves.

To recreate the case, [Rodmg] designed a sheet metal case and had it custom-made from anodized aluminum by PCBWay. He also printed a bezel for the display that looks very similar to the Winamp window border, complete with control icons. Where the build really shines, though, is with the work [Rodmg] put into the software. He matched the original Winamp UI very closely, both in terms of layout and performance. The pains he went to to get the spectrum analyzer working, including a deep dive into FFT, are impressive.

The results speak for themselves on this one, and hats off to [Rodmg] for the effort and the ride on the nostalgia train. We don’t know if the recent announcement of Winamp’s impending open-sourcing will have much impact on this project, but it might result in a flood of new Winamp builds.

Using Kick Assembler And VS Code To Write C64 Assembler

YouTuber [My Developer Thoughts], a self-confessed middle-aged Software Developer, clearly has a real soft spot for the 6502-based 8-bit era machines such as the Commodore 64 and the VIC-20, for which he has created several video tutorials while travelling through retro-computing. This latest instalment concerns bringing up the toolchain for using the Kick Assembler with VS Code to target the C64, initially via the VICE emulator.

The video offers a comprehensive tutorial on setting up the toolchain on Windows from scratch with minimal knowledge. While some may consider this level of guidance unnecessary, it is extremely helpful for those who wish to get started with a few examples quickly and don’t have the time to go through multiple manuals and Wikis. In that regard, the video does an excellent job.

VS Code is a great tool with a large user base, so it’s not surprising that there’s a plugin for using the Kick Assembler directly from the IDE. You can also easily launch the application onto the emulator with just a push of a button, allowing you to focus on learning and working on your application. Once it runs under emulation, there’s a learning curve for running it on native hardware, but there are plenty of tutorials available for that. While you could code directly on the C64 itself, it’s much more pleasant to use modern tools, revision control, and all the conveniences and not have to endure the challenges.

Once you’ve mastered assembly, it may be time to move on to C or even C++. The Oscar64 compiler is a good choice for that. Next, you may want to show off your new skills on the retro demo scene. Here’s a neat C64 demo with a twist. There is no C64.

Continue reading “Using Kick Assembler And VS Code To Write C64 Assembler”

Automating 3D Printer Support Hardware

While 3D printers have evolved over the past two decades from novelties to powerful prototyping tools, the amount of support systems have advanced tremendously as well. From rudimentary software that required extensive manual input and offered limited design capabilities, there’s now user-friendly interfaces with more features than you could shake a stick at. Hardware support has become refined as well with plenty of options including lighting, ventilation, filament recycling, and tool changers. It’s possible to automate some of these subsystems as well like [Caelestis Workshop] has done with this relay control box.

This build specifically focuses on automating or remotely controlling the power, enclosure lighting, and the ventilation system of [Caelestis Workshop]’s 3D printer but was specifically designed to be scalable and support adding other features quickly. A large power supply is housed inside of a 3D printed enclosure along with a Raspberry Pi. The Pi controls four relays which are used to control these various pieces hardware along with the 3D printer. That’s not the only thing the Pi is responsible for, though. It’s also configured to run Octoprint, a piece of open-source software that adds web interfaces for 3D printers and allows their operation to be monitored and controlled remotely too.

With this setup properly configured, [Caelestis Workshop] can access their printer from essentially any PC, monitor their prints, and ensure that ventilation is running. Streamlining the print process is key to reducing the frustration of any 3D printer setup, and this build will go a long way to achieving a more stress-free environment. In case you missed it, we recently hosed a FLOSS Weekly episode talking about Octoprint itself which is worth a listen especially if you haven’t tried this piece of software out yet.

2024 Business Card Challenge: Tiny MIDI Keyboard

The progress for electronics over the past seven decades or so has always trended towards smaller or more dense components. Moore’s Law is the famous example of this, but even when we’re not talking about transistors specifically, technology tends to get either more power efficient or smaller. This MIDI keyboard, for example, is small enough that it will fit in the space of a standard business card which would have been an impossibility with the technology available when MIDI first became standardized, and as such is the latest entry in our Business Card Challenge.

[Alana] originally built this tiny musical instrument to always have a keyboard available on the go, and the amount of features packed into this tiny board definitely fits that design goal. It has 18 keys with additional buttons to change the octave and volume, and has additional support for sustain and modulation as well. The buttons and diodes are multiplexed in order to fit the IO for the microcontroller, a Seeed Studio Xiao SAMD21, and it also meets the USB-C standards so it will work with essentially any modern computer available including most smartphones and tablets so [Alana] can easily interface it with Finale, a popular music notation software.

Additionally, the project’s GitHub page has much more detail including all of the Arduino code needed to build a MIDI controller like this one. This particular project has perhaps the best size-to-usefulness ratio we’ve seen for compact MIDI controllers thanks to the USB-C and extremely small components used on the PCB, although the Starshine controller or these high-resolution controllers are also worth investigating if you’re in the market for compact MIDI devices like this one.

Continue reading “2024 Business Card Challenge: Tiny MIDI Keyboard”

Foosbar: The World’s Best* Foosball Robot From Scratch

[Xander Naumenko] is back with another bonkers project. This is the same creator that built a working 32-bit computer inside a Terraria world. This time it’s a bit more physical of a creation: a self-playing foosball table.

We’re not sure of the impetus for this idea, but we’re delighted to see the engineering it took to make it work. It sounds so simple. It’s just servos mounted on linear actuators, right? Oh, and some computer vision to determine where the ball actually is on the table. And the software to actually control the motors, pass the ball around, and play offense and defense. So maybe not so simple. All the code and some other resources are available under the MIT license.

As to while the claim of “best” foosball robot has an asterisk? That’s because, although we’ve seen a few potential competitors over the years, there isn’t yet a world foosball competition. We’re hoping that changes, as a tournament of robots playing foosball sounds like a sports event we’d show up for!

Continue reading “Foosbar: The World’s Best* Foosball Robot From Scratch”

Retrotechtacular: TVO

Hardware hackers come from a variety of backgrounds, but among us there remains a significant number whose taste for making things was forged through growing up in a farm environment. If that’s you then like me it’s probable that you’ll melt a little at the sight of an older tractor, and remember pretending to drive one like it at pre-school age, and then proudly driving it for real a few years later before you were smart enough to realise you’d been given the tedious job of repeatedly traversing a field at a slow speed in the blazing sun. For me those machines were Ford Majors and 5000s, Nuffields, the ubiquitous red Fergusons, and usually relegated to yard duty by the 1970s, the small grey Ferguson TE20s that are in many ways the ancestor of all modern tractors.

The Black Art Of Mixing Your Own Fuel

There was something odd about some of those grey Fergies in the 1970s, they didn’t run on diesel like their newer bretheren, nor did they run on petrol or gasoline like the family Austin. Instead they ran on an unexpected mixture of petrol and heating oil, which as far as a youthful me could figure out, was something of a black art to get right. I’d had my first encounter with Tractor Vapour Oil, or TVO, a curious interlude in the history of agricultural engineering. It brings together an obscure product of the petrochemical industry, a moment when diesel engine technology hadn’t quite caught up with the on-farm requirement, and a governmental lust for a lower-tax tractor fuel that couldn’t be illicitly used in a car.

TVO is a fuel with a low octane rating, where the octane rating is the resistance to ignition through compression alone. In chemical terms octane rating a product of how many volatile aromatic hydrocarbons are in the fuel, and to illustrate it your petrol/gasoline has an octane rating in the high 90s, diesel fuel has one close to zero, and TVO has a figure in the 50s. In practice this was achieved at the refinery by taking paraffin, or kerosene for Americans, a heavier fraction than petrol/gasoline, and adding some of those aromatic hydrocarbons to it. The result was a fuel on which a standard car engine wouldn’t run, but which would run on a specially low-compression engine with a normal spark ignition. This made it the perfect tax exempt fuel for farmers because it could only be used in tractors equipped with these engines, and thus in the years after WW2 a significant proportion of those Fergies and other tractors were equipped to run on it. Continue reading “Retrotechtacular: TVO”

What’s The Difference Between Tang 9K And 20K (It Isn’t 11…)

[Grug Huhler] has been working with the Tang Nano 9K FPGA board. They are inexpensive, and he noticed there is a 20K version, so he picked one up. Of course, you’d expect the 20K board has a different FPGA with more gates than the 9K, but there are also a number of differences in the host board. [Grug] was kind enough to document the differences in the video below.

In addition to the differences, there’s a good demo of the boards hosting a system-on-chip design. The little DIP package is handy for breadboarding. All of the 20K pins are 3.3 V, according to the documentation. The 9K does have some 1.8 V pins. There are more external devices on the 20K board but that eats up more uncommitted pins. Depending on your design, that may or may not be a problem.

We keep meaning to pick some of these up to play with. The Verilog is easy enough, and the tools look adequate. If you need a refresher on Verilog, we have a boot camp for you that would probably port easily enough to the Tang system. We’ve been following [Grug’s] work on these chips lately, and you should, too.

Continue reading “What’s The Difference Between Tang 9K And 20K (It Isn’t 11…)”