Videos Teach Bare Metal RP2040

When we write about retrocomputers, we realize that back in the day, people knew all the details of their computer. You had to, really, if you wanted to get anything done. These days, we more often pick peripherals and just assume our C or other high level code will fit and run on the CPU.

But sometimes you need to get down to the bare metal and if your desire is to use bare metal on the RP2040, [Will Thomas] has a YouTube channel to help you. The first video explains why you might want to do this followed by some simple examples. Then you’ll find over a dozen other videos that give you details.

Any video that starts, “Alright, Monday night. I have no friends. It is officially bare metal hours,” deserves your viewing. Of course, you have to start with the traditional blinking LED. But subsequent videos talk about the second core, GPIO, clocks, SRAM, spinlocks, the UART, and plenty more.

As you might expect, the code is all in assembly. But even if you want to program using C without the SDK, the examples will be invaluable. We like assembly — it is like working an intricate puzzle and getting anything to work is satisfying. We get it. But commercially, it rarely makes sense to use assembly anymore. On the other hand, when you need it, you really need it. Besides, we all do things for fun that don’t make sense commercially.

We like assembly, especially on platforms where most people don’t use it. Tackling it on a modern CPU is daunting, but if you want to have a go, we know someone who can help.

Continue reading “Videos Teach Bare Metal RP2040”

Physics-Controlled Component Auto-Placer

[Jarrett] recently stumbled upon a class of drawing algorithms called force-directed graphs, which artificially apply forces to the elements. The final graph is then generated by applying the laws of physics and letting the system reach equilibrium. This can often result in a pleasing presentation of things like mind maps and other diagrams without having to hand-place everything. He realized that this approach almost mimics the way he places components when doing a PCB layout. Out of curiosity or intense boredom, we’re not sure which, he decided to implement this in a tool that interacts with KiCad ( see animated GIF below the break ).

He has to ignore certain nets such as power and ground rails, because they distort the result. This simulation treats the nets as springs, and the center of each footprint behaves a charged particle. [Jarrett] added a twist, literally, to the usual implementations — each net pulls on its pin, not the part center, and therefore the chips will both rotate and be pushed around as the system stabilizes.

The results are sometimes quite striking. Useful? Dubious, but maybe!

The project code is up on GitHub, but is very experimental and he is unlikely to carry it further. Among the missing features, the Python code must be tweaked for each different netlist files and other parameters, and there is no way to feed the result back into KiCad. But this is enough for [Jarrett], who only set out to see if the concept was possible. The code is available if anyone wants to try their hand at taking this to the next level.

Continue reading “Physics-Controlled Component Auto-Placer”

Power Tool Battery Fume Extractor

A solder fume extractor is something we could probably all use. While there isn’t much to them, [Steven Bennett] put a lot of thought into making one that was better for him, and we admired his design process, as well as the extractor fan itself. You can see the finished result in the video below.

The electrical design, of course, is trivial. A computer fan, a switch, and a battery — in this case, a Makita power tool battery. But the Fusion 360 design for the 3D printed parts got a lot of thought to make this one of the best fume extractor fans we’ve seen.

Continue reading “Power Tool Battery Fume Extractor”

A Guided Tour Of The NES

No matter your age or background, there’s an excellent chance you’ll recognize the Nintendo Entertainment System (NES) at first glance. The iconic 8-bit system not only revitalized the gaming industry, but helped to establish the “blueprint” of console gaming for decades to come. It’s a machine so legendary and transformative that even today, it enjoys a considerable following. Some appreciate the more austere approach to gaming from a bygone era, while others are fascinated with the functional aspects of console.

The NesHacker YouTube channel is an excellent example of that latter group. Host [Ryan] explores the ins and outs of the NES as a platform, with a leaning towards the software techniques used to push the system’s 6502 processor to the limits. Even if you aren’t terribly interested in gaming, the videos on assembly programming and optimization are well worth a watch for anyone writing code for vintage hardware.

Continue reading “A Guided Tour Of The NES”

Measuring A Millisecond Mechanically

If you are manufacturing something, you have to test it. It wouldn’t do, for example, for your car to say it was going 60 MPH when it was really going 90 MPH. But if you were making a classic Leica camera back in the early 20th century, how do you measure a shutter that operates at 1/1000 of a second — a millisecond — without modern electronics? The answer is a special stroboscope that would look at home in any cyberpunk novel. [SmarterEveryDay] visited a camera restoration operation in Finland, and you can see the machine in action in the video below.

The machine has a wheel that rotates at a fixed speed. By imaging a pattern through the camera, you can determine the shutter speed. The video shows a high-speed video of the shutter operation which is worth watching, and it also explains exactly how the rotating disk combined with the rotating shutter allows the measurement. Continue reading “Measuring A Millisecond Mechanically”

New Raspberry Pi Camera With Global Shutter

Raspberry Pi has just introduced a new camera module in the high-quality camera format. For the same $50 price you would shell out for the HQ camera, you get roughly eight times fewer pixels. But this is a global shutter camera, and if you need a global shutter, there’s just no substitute. That’s a big deal for the Raspberry Pi ecosystem.

Global vs Rolling

Most cameras out there today use CMOS sensors in rolling shutter mode. That means that the sensor starts in the upper left corner and rasters along, reading out exposure values from each row before moving down to the next row, and then starting up at the top again. The benefit is simpler CMOS design, but the downside is that none of the pixels are exposed or read at the same instant.

Continue reading “New Raspberry Pi Camera With Global Shutter”

How Simple Can A Wind Generator Get?

As the world has moved towards sustainable energy sources over the last few years, it’s increasingly common to be close to a wind turbine. The huge turbines visible on the horizon from where this is being written are the upper end of the scale though, and along comes [Robert Murray Smith] with the opposite, probably the simplest and smallest wind turbine we’ve seen.

His use of a 3-phase motor from a CD-ROM drive as the generator isn’t particularly unexpected, these motors are ubiquitous and readily generate power when spun up. A simple 3-phase rectifier and a capacitor delivers a DC voltage that while the ready availability of switching converter modules should be relatively easy to turn into something more useful.

The clever part of this hack lies then in the rotor, it’s not the propeller-style bladed affair you might expect. Instead he takes a CD, as it’s the obvious thing to fit on a CD motor, and glues a piece of Tyvek on top of it. This is cut to form four flaps which make a rudimentary but effective turbine when the wind comes from the side. It’s beautifully simple, and we wish we’d thought of it ourselves. The whole thing is in the video below the break, so take a look.

Maybe this won’t solve the green energy requirement on its own, but we’ve shown you far larger fabric turbines in the past.

Continue reading “How Simple Can A Wind Generator Get?”