Simulating The Learn-by-Fixing CPU

Last time I looked at a simple 16-bit RISC processor aimed at students. It needed a little help on documentation and had a missing file, but I managed to get it to simulate using a free online tool called EDA Playground. This time, I’ll take you through the code details and how to run the simulation.

You’ll want to refer to the previous post if you didn’t read it already. The diagrams and tables give a high-level overview that will help you understand the files discussed in this post.

If you wanted to actually program this on a real FPGA, you’d have a little work to do. The memory and register initialization is done in a way that works fine for simulation, but wouldn’t work on a real FPGA. Anyway, let’s get started!

Continue reading “Simulating The Learn-by-Fixing CPU”

3D Printing A Synthesizer

Before there were samplers, romplers, Skrillex, FM synths, and all the other sounds that don’t fit into the trailer for the new Blade Runner movie, electronic music was simple. Voltage controlled oscillators, voltage controlled filters, and CV keyboards ruled the roost. We’ve gone over a lot of voltage controlled synths, but [Tommy] took it to the next level. He designed a small, minimum viable synth based around the VCO in an old 4046 PLL chip

For anyone who remembers [Elliot]’s Logic Noise series here on Hackaday, this type of circuit should be very familiar. The only thing in this synth is a few buttons, a variable resistor for each button, and the very popular VCO for an analog square wave synth.

The circuit for this synth is built in two halves. The biggest, and what probably took the most time designing, is the key bed. This is a one-octave keyboard that’s completely 3D printed. We’ve seen something like this before in one of the projects from the SupplyFrame Design Lab residents, though while that keyboard worked it was necessary for [Tim], the creator of that project, to find a company that could make custom key beds for him.

The rest of the circuit is just a piece of perf board and the 4046. This project is all wrapped up in a beautiful all-wood enclosure with 3D printed hinges, knobs, and a speaker grille. The sound is phenomenal, and exactly what you want from a tiny monophonic square wave synth. You can check out a video of that below.

Continue reading “3D Printing A Synthesizer”

Automate The Freight: Medical Deliveries By Drone

Being a cop’s kid leaves you with a lot of vivid memories. My dad was a Connecticut State Trooper for over twenty years, and because of the small size of the state, he was essentially on duty at all times. His cruiser was very much the family vehicle, and like all police vehicles, it was loaded with the tools of the trade. Chief among them was the VHF two-way radio, which I’d listen to during long car rides, hearing troopers dispatched to this accident or calling in that traffic stop.

One very common call was the blood relay — Greenwich Hospital might have had an urgent need for Type B+ blood, but the nearest supply was perhaps at Yale-New Haven Hospital. The State Police would be called, a trooper would pick up the blood in a cooler, drive like hell down I-95, and hand deliver the blood to waiting OR personnel. On a good day, a sufficiently motivated and skilled trooper could cover that 45-mile stretch in about half an hour. On a bad day, the trooper might end up in an accident and in need of blood himself.

Continue reading “Automate The Freight: Medical Deliveries By Drone”

HP Laptops Turn Up Keylogger Where You Wouldn’t Expect It

Keyloggers are nasty little things that have the potential to steal the credit card numbers of you and everyone you care about. Usernames and passwords can be easily stolen this way, so they’re a useful tool for the black hats out there. One would generally expect to find a keylogger in a dodgy movie torrent or perhaps a keygen for pirated software, but this week a keylogger was found in an audio driver for an HP laptop.

The logger was found by Swiss security researchers modzero. The Conexant HD Audio Driver Package version 1.0.0.46 and earlier apparently logs keystrokes in order to monitor things like the laptop’s volume up and down keys. The real killer here is that it feels the need to log all keystrokes detected to a readily accessible file, for reasons we can’t possibly fathom. It’s a huge security risk, but it doesn’t stop there – the driver also exposes the keystrokes through an API as well, creating an even wider attack surface for malicious actors. One can in principle access the keystroke log remotely.

There’s no word from the company yet, but we really want to know – why save the keystrokes to a file at all? Code left over from debugging, perhaps? Speculate in the comments.

Cheap Helping Hands: Just Add Time

We think of helping hands as those little alligator clips on a metal stand. They are cheap and fall over, so we tend to buy them and don’t use them. However, if you are willing to put $35 or $40 into it, you can get the newer kind that have–well–tentacles–on a heavy base.  [Archie_slap] didn’t want that kind of investment, so he made his own for about $10. We think that’s Australian dollars, so that’s even less in the United States.

What’s better is he documented every step in meticulous detail and with great pictures. You probably won’t directly duplicate his project because you will probably pick up a slightly different base, but that’s not hard to figure out. The arms are actually coolant hose, [Archie_slap] picked up almost everything but the base plate on eBay.

It’s obvious [Archie] is a frugal guy, based on his drill press. It gets the job done, though. The build is attractive and looks like a much more expensive commercial product. Some of us around the Hackaday lab are old enough to wish there was a magnifying glass attached, but maybe that’s version two.

We’ve looked at a lot of different helpers recently. We couldn’t help but think about a somewhat similar Gorillapod holder we covered last year.

Vintage Plotter Handles Chaos With Ease

No lab in almost any discipline was complete in the 70s and 80s without an X-Y plotter. The height of data acquisition chic, these simple devices were connected to almost anything that produced an analog output worth saving. Digital data acquisition pushed these devices to the curb, but they’re easily found, cheap, and it’s worth a look under the hood to see what made these things tick.

The HP-7044A that [Kerry Wong] scored off eBay is in remarkably good shape four decades after leaving the factory. While the accessory pack that came with it shows its age with dried up pens and disintegrating foam, the plotter betrays itself only by the yellowish cast to its original beige case. Inside, the plotter looks pristine. Completely analog with the only chips being some op-amps in TO-5 cans, everything is in great shape, even the high-voltage power supply used to electrostatically hold the paper to the plotter’s bed. Anyone hoping for at least a re-capping will be disappointed; H-P built things to last back in the day.

[Kerry] puts the plotter through its paces by programming an Arduino to generate a Lorenz attractor, a set of differential equations with chaotic solutions that’s perfect for an X-Y plotter. The video below shows the mesmerizing butterfly taking shape. Given the plotter’s similarity to an oscilloscope, we wonder if some SDR-based Lissajous patterns might be a fun test as well, or how it would handle musical mushrooms.

Continue reading “Vintage Plotter Handles Chaos With Ease”

Templates Speed Up Arduino I/O

It is easy to forget, but the Arduino does use C++. Typically, the C++ part is in the libraries and the framework and most people just tend to code their main programs using a C-style just using the library objects like C-language extensions. [Fredllll] recently created a template library to speed up Arduino I/O and he shared it on GitHub.

If you’ve ever done anything serious with the Arduino, you probably know that while digitalWrite is handy, it does a lot of work behind the scenes to make sure the pin is setup and this adds overhead to every call. [Fredllll’s] template versions can switch a pin’s state in two cycles. You can cut that in half if you don’t mind bothering the state of other pins on the same port.

Continue reading “Templates Speed Up Arduino I/O”