An FPGA Video Player Built Just For Fun

Sometimes, projects are borne out of neccessity; a fix for a problem that needs to be solved. Other times, they’re done just for the love of creation and experimentation. [ultraembedded]’s FPGAmp media player falls under the latter, and served as a great learning experience along the way.

The aim of FPGAmp is to play back a variety of media files on the Arty A7 development board, based around the Xilinx Artix-7 FPGA. Capable of playing back MJPEG video at 800 x 600 resolution and 25 fps, it’s also able to play back MP3s as well for stereo audio. Demonstrating the device on Twitter, [ultraembedded] notes that the method of using an LED to do SPDIF optical audio output isn’t legit, but does work. A later update switches to using a dedicated audio output board with the Arty A7 platform, featuring an excellent song from The Cardigans.

Using a RISC V processor core and a hardware JPEG decoder, we imagine [ultraembedded] really sharpened their FPGA skills with this project. Particularly in the wake of the sale of ARM to NVIDIA, RISC V continues to gain relevance in the hardware community. We were lucky enough to feature a keynote at last year’s Supercon, with Megan Wachs speaking on the technology. Video after the break.

Continue reading “An FPGA Video Player Built Just For Fun”

Soldering Practice Kit Remains Useful After Completion

Unsatisfied with the standard fare of soldering practice kits that offer little to no purpose once they’re built, [Jim Heaney] decided to take matters into his own hands and design an easy-to-assemble kit for his class that, once put together, becomes the handiest of tools in any maker’s workbench: a functional voltmeter.

At the heart of the kit is a standard Atmega 328P microcontroller. While he could’ve picked something smaller or cheaper, not only does the bulky part make for easier soldering, [Jim] reasons that it’s a chip that’s easy to repurpose should his students want to build something like a breadboard Arduino, for example. The voltmeter has a fixed measurement range from 0 to 100 VDC, the only switches on the board are for powering it on and a hold button, which freezes the value currently being shown in the three-digit, seven-segment display.

Along with selling his kit to other makers and educators, [Jim] also hopes that his project encourages others to design similar soldering kits which favor some sort of function rather than getting binned once there’s solder on all the pads, as well as part variety and documentation. If you’re on the other end of the soldering spectrum, then why not challenge your skills soldering on a time limit?

Cheap Current Probe Gets Good Review

A current probe isn’t a very common fixture on most workbenches because they are pretty expensive. [VoltLog] looks at a fairly inexpensive current probe from Micsig. He seemed impressed with the workmanship and it looks similar to more expensive offerings. There are two models with different bandwidth numbers (800 kHz and 2 MHz). It can measure current on a 10A and 100A scale.

According to [VoltLog] comparable probes from other vendors are more expensive and have lower bandwidth. He also liked that the device powers from USB since most newer scopes will have a USB port available.

Continue reading “Cheap Current Probe Gets Good Review”

Tesla Turbine Boat Uses Lily Impeller

Typically in the RC community, radio control boats rely on small nitro engines or electric motors to get around. Fitted with traditional propellers, they’re capable of great speed and performance. Of course, there’s more than one way to skin a cat, as [Integza] shows with his latest build.

As far as the boat side of things is concerned, it’s a basic 3D printed single hull design. The innovation comes in the drivetrain, instead. The boat uses compressed air for propulsion, stored in a battery of four soda bottles, pressurized to 6 bar. The compressed air is used to drive a Tesla turbine of [Integza]’s design, which is 3D printed on a resin printer. Rather then driving a propeller, the Tesla turbine instead turns a Lily impeller, which pulls the boat through the water rather than pushing it along. The impeller uses a nature-inspired design, hence the name, and was also 3D printed, making producing its complex geometry a cinch. The guts of a toy radio control car are then used to control the boat.

Understandably, performance is less than stellar. The limited reserves of compressed air can’t propel the boat long, and the combination of the high RPM Tesla turbine and Lily impeller don’t provide a lot of thrust. However, the boat does move under its own power, demonstrating these oddball technologies while doing so.

[Integza] has been working with these technologies for a while; we featured an earlier Tesla turbine build back in 2018. Video after the break.

Continue reading “Tesla Turbine Boat Uses Lily Impeller”

Orbital Tracking On The NES

It’s easy to dismiss the original Nintendo Entertainment System as just, well, an entertainment system. But in reality the 6502 based console wasn’t so far removed from early home computers like the Apple II and Commodore 64, and Nintendo even briefly flirted with creating software and accessories geared towards general purpose computing. Though in the end, Mario and friends obviously won out.

Still, we’re willing to bet that nobody at Nintendo ever imagined their plucky little game system would one day be used to track the course of a space station in low Earth orbit. But that’s precisely what [Vi Grey] has done with his latest project, which is part of his overall effort to demonstrate the unexpected capabilities of the iconic NES. While you’ll need a bit of extra hardware to run the program on a real console, there’s no fundamental trickery that would have kept some developer from doing this in 1985 if they’d wanted to.

Raspberry Pi Zero and TAStm32

If you want to see your own 8-bit view of the International Space Station, the easiest way is with an emulator. In that case, [Vi] explains how you can load up his Lua script in Mesen or FCEUX to provide the ROM with the necessary tracking data from the Internet.

To run it on a real NES you’ll not only need some type of flash cart to get the ROM loaded, but also a TAStm32 board that’s used for tool-assisted speedruns. This allows the computer to essentially “type” the orbital data into the NES by emulating rapid controller button presses. That might seem like a tall order, but it’s important to note that neither device requires you to modify the original console; the code itself runs on a 100% stock NES.

If tracking spacecraft isn’t your thing, perhaps you’d be more interested in the some of the work [Vi] has previously done on the NES. We’re particularly fond of his polyglot ROM that is a ZIP file of its own source code.

Continue reading “Orbital Tracking On The NES”

Twitter: It’s Not The Algorithm’s Fault. It’s Much Worse.

Maybe you heard about the anger surrounding Twitter’s automatic cropping of images. When users submit pictures that are too tall or too wide for the layout, Twitter automatically crops them to roughly a square. Instead of just picking, say, the largest square that’s closest to the center of the image, they use some “algorithm”, likely a neural network, trained to find people’s faces and make sure they’re cropped in.

The problem is that when a too-tall or too-wide image includes two or more people, and they’ve got different colored skin, the crop picks the lighter face. That’s really offensive, and something’s clearly wrong, but what?

A neural network is really just a mathematical equation, with the input variables being in these cases convolutions over the pixels in the image, and training them essentially consists in picking the values for all the coefficients. You do this by applying inputs, seeing how wrong the outputs are, and updating the coefficients to make the answer a little more right. Do this a bazillion times, with a big enough model and dataset, and you can make a machine recognize different breeds of cat.

What went wrong at Twitter? Right now it’s speculation, but my money says it lies with either the training dataset or the coefficient-update step. The problem of including people of all races in the training dataset is so blatantly obvious that we hope that’s not the problem; although getting a representative dataset is hard, it’s known to be hard, and they should be on top of that.

Which means that the issue might be coefficient fitting, and this is where math and culture collide. Imagine that your algorithm just misclassified a cat as an “airplane” or as a “lion”. You need to modify the coefficients so that they move the answer away from this result a bit, and more toward “cat”. Do you move them equally from “airplane” and “lion” or is “airplane” somehow more wrong? To capture this notion of different wrongnesses, you use a loss function that can numerically encapsulate just exactly what it is you want the network to learn, and then you take bigger or smaller steps in the right direction depending on how bad the result was.

Let that sink in for a second. You need a mathematical equation that summarizes what you want the network to learn. (But not how you want it to learn it. That’s the revolutionary quality of applied neural networks.)

Now imagine, as happened to Google, your algorithm fits “gorilla” to the image of a black person. That’s wrong, but it’s categorically differently wrong from simply fitting “airplane” to the same person. How do you write the loss function that incorporates some penalty for racially offensive results? Ideally, you would want them to never happen, so you could imagine trying to identify all possible insults and assigning those outcomes an infinitely large loss. Which is essentially what Google did — their “workaround” was to stop classifying “gorilla” entirely because the loss incurred by misclassifying a person as a gorilla was so large.

This is a fundamental problem with neural networks — they’re only as good as the data and the loss function. These days, the data has become less of a problem, but getting the loss right is a multi-level game, as these neural network trainwrecks demonstrate. And it’s not as easy as writing an equation that isn’t “racist”, whatever that would mean. The loss function is being asked to encapsulate human sensitivities, navigate around them and quantify them, and eventually weigh the slight risk of making a particularly offensive misclassification against not recognizing certain animals at all.

I’m not sure this problem is solvable, even with tremendously large datasets. (There are mathematical proofs that with infinitely large datasets the model will classify everything correctly, so you needn’t worry. But how close are we to infinity? Are asymptotic proofs relevant?)

Anyway, this problem is bigger than algorithms, or even their writers, being “racist”. It may be a fundamental problem of machine learning, and we’re definitely going to see further permutations of the Twitter fiasco in the future as machine classification is being increasingly asked to respect human dignity.

Linear Clock Ratchets Up The Action

On the face of it, making a clock that displays the time by moving a pointer along a linear scale shouldn’t be too hard. After all, steppers and linear drives should do the job in a jiffy. Throw an Arduino in and Bob’s your uncle, right?

Wrong. At least that’s not the way [Leo Fernekes] decided to build this unique ratcheting linear clock, a brilliant decision that made the project anything but run-of-the-mill. The idea has been kicking around in [Leo]’s head for years, and there it stayed until inspiration came in the unlikely form of [This Old Tony], one of our favorite YouTube machinists. [Old Tony] did a video on the simple genius of latching mechanisms, like the ones in retractable pens, and that served as an “A-ha!” moment for [Leo]. For a ratchet, he used a strip of bandsaw blade oriented so the teeth point upward. A complex bit of spring steel, bent to engage with the blade’s teeth, forms a pawl to keep the pointer moving upward until it reaches the top.

[Leo] decided early on that this would be an impulse clock, like the type used in schools and factories. He used a servo to jog a strip of tape upward once each minute; the tape is engaged by jaws that drag the pointer along with it, moving the pawl up the ratchet by one tooth and lifting the pointer one minute closer to the top. The pointer releases at the top and falls back to start the cycle over; to arrest its freefall, [Leo] had the genius idea of attaching magnets and using eddy currents induced in the aluminum frame for the job. Finished off with a 3D-printed Art Deco scale, the clock is a unique timepiece that’s anything but boring.

We really appreciate [Leo]’s unique and creative take on projects, and his range. Check out his everlasting continuity tester and his phage-like sentry gun for some neat build details.

Continue reading “Linear Clock Ratchets Up The Action”