Seeing Fireworks In A Different Light

If you’re worried that [Roman Dvořák]’s spectroscopic analysis of fireworks is going to ruin New Year’s Eve or the Fourth of July, relax — the science of this build only adds to the fun.

Not that there’s nothing to worry about with fireworks, of course; there are plenty of nasty chemicals in there, and we can say from first-hand experience that getting hit in the face and chest with shrapnel from a shell is an unpleasant experience. [Roman]’s goal with this experiment is pretty simple: to see if it’s possible to cobble together a spectrograph to identify the elements that light up the sky during a pyrotechnic display. The camera rig was mainly assembled from readily available gear, including a Chronos monochrome high-speed camera and a 500-mm telescopic lens. A 100 line/mm grating was attached between the lens and the camera, a finding scope was attached, and the whole thing went onto a sturdy tripod.

From a perch above Prague on New Year’s Eve, [Roman] collected a ton of images in RAW12 format. The files were converted to TIFFs by a Python script and converted to video by FFmpeg. Frames with good spectra were selected for analysis using a Jupyter Notebook project. Spectra were selected by moving the cursor across the image using slider controls, converting pixel positions into wavelengths.

There are some optical improvements [Roman] would like to make, especially in aiming and focusing the camera; as he says, the dynamic and unpredictable nature of fireworks makes them difficult to photograph. As for identifying elements in the spectra, that’s on the to-do list until he can find a library of spectra to use. Or, there’s always DIY Raman spectroscopy. Continue reading “Seeing Fireworks In A Different Light”

A Look Inside The Smallest Possible PNG File

What’s inside a PNG file? Graphics, sure. But how is that graphic encoded? [Evan Hahn] shows you what goes into a single black pixel inside a 67-byte file. Why so many bytes? Well, that is exactly what the post is about.

You had to guess there is some overhead, right? There is an 8-byte header. Next up is a 25-byte metadata block. That single pixel takes 22 bytes, and then there is a 12-byte marker for the end of file. Turns out, you could put a bit more in the file, and would still take 67 bytes. The metadata is in a chunk — a block of data with a type, length, and CRC. That’s why it takes 25 bytes to store the dimensions of the image. A chunk has to be at least 12 bytes long. The metadata includes the image dimensions, the bit depth, and so on.

The next chunk, of course, is the data. The data is compressed, but in the case of one pixel, compression is a misnomer. There will be ten data bytes in the data chunk. That doesn’t include the 12 bytes of the chunk overhead so that one pixel takes a whopping 22 bytes.

The end of file marker is another chunk with no data. The total? 67 bytes. However, you can add more than one bit and still wind up with 67 bytes. For all the details, check out the post.

Luckily, it is easy to pronounce PNG. You can even use the format for circuit simulation.

1D Fireworks Are Nice And Quiet

Maybe you do it out of respect for the dogs and parents of young children in the neighborhood. Or maybe you do it because they’re harmful to the environment, or just because it’s too darn cold outside. Whatever your reasoning for not setting off fireworks, don’t fret — you can probably put together your own silent one-dimensional “fireworks” display from what you’ve got in the parts bin.

[Daniel Westhof]’s design is simple, requiring little more than a Wemos D1 Mini and a strip of WS2812 LEDs. Once activated, a red rocket shoots up from the ground and detonates, sending lights in both directions on the strip to imitate the bombs bursting in air. It’s controlled with a small push button switch, and there’s a deliciously large red LED indicator that shows the thing is ready for detonation.

You might be surprised to find that there’s a wide array of 1D gaming and animation projects out there, many of which made possible by the ubiquitous addressable RGB LED strip. We’ve seen a dungeon crawler, at least two different versions of the classic PONG, and even the makings of a simplified Wolfenstein.

New Year’s Resolutions

As we stand here looking at the brand-new year ahead, we find ourselves taking stock, and maybe thinking how we can all be better people in the next year. More exercise, being nicer to your neighbors, consuming more or less of this or that, depending on whether it’s healthy or un. Those are the standard fare. But what’s your hacker new year’s resolution?

Mine, this year, is to branch out into a new microcontroller family, to learn a new toolchain, and maybe to finally dip my toes into Bluetooth Low Energy. Although that last one is admittedly a stretch.

But the former is great resolution material, if you allow me. New programming tooling is always a little unpleasant to set up, but there’s also payoff at the end of the ordeal. It’s a lot like picking up a new exercise – it makes you stronger. Or course, it helps to have an application in mind, the equivalent of that suit you want to be able to fit into at the end of the diet. I’ve got one. I’ve also been out of programming in straight C for a year or so, and I’m faced with a new HAL, so there’s bound to be enough of a challenge to make it worthwhile.

Honestly, I’m looking forward to getting started, but with the usual mix of optimism, over-optimism, and mild dread. It’s the perfect setup for a resolution! What’s yours?

(And yes, the art is from another story, but setting up a good backup regime isn’t a bad resolution either.)

No DAC? Try PDM

Ever notice that the ESP32-S3 doesn’t have a digital-to-analog converter? [Chris] did and asserts that he doesn’t care because he can just use the PDM system to get the same result. PDM — pulse density modulation — is similar to PWM and, like PWM, requires a filter that could range from a simple RC network to an active filter. You can see the result in the video below.

There are several ways [Chris] could produce the output he wanted. PWM was one choice, and some example code uses a timer to do PDM. However, that is not very efficient. The other alternative is to use the I2S output. However, this does require a few workarounds.

In particular, the I2S output is always stereo and incorporates a clock output that isn’t needed for this application. [Chris] simply output the same value on both channels and routed the clock to some pins that are normally used for startup options. That means they can’t easily be used for your own inputs, but it’s OK to use them for unimportant outputs.

We always enjoy seeing solutions like this because it can give you ideas for use in your own projects. Of course, this won’t apply to every project where you need a DAC, but it still might give you some ideas.

We have looked at PDM before. You could, too, build your own DAC hardware.

Continue reading “No DAC? Try PDM”

3D Printed Eel Could Cost Less At Scale

Be it a matter of cost, principle, or just plain being landlocked, the idea of 3D printed vegan eel over the real deal is quite an attractive development. An Israeli company called Steakholder Foods has introduced this very thing — something they claim is the world’s first plant-based, printed eel.

One thing to note about eel is that they are quite intricately textured, a problem which seems tailored for 3D printing. The company say they achieve similarity through precise layering and “a unique combination of materials”, which are proprietary. Although the current product is based solely on plant materials, the plan is to incorporate eel cells in the future. Right now, the company is looking to collaborate by providing printers and ink so that participants can create short-term revenue.

While it’s unclear whether the eel is printed and then cooked, or print-cooked like this chicken, it sure looks tasty. Would you eat printed food? Have you done so already? Let us know in the comments.

Video And Audio Playback On Low-End MS-DOS Machines

For most people the phrases ‘MS-DOS’ and ‘video playback’ probably aren’t commonly associated, yet it was quite normal as those of us who were watching full-motion video with games like Command & Conquer can attest to. These audiovisual experiences did however require somewhat more capable hardware than something like an original, 4.77 MHz IBM PC. More recently, however, the removal of these limitations has been turned into a challenge that has been gleefully accepted by hackers, including [Scali] whose recent tinkering with getting not only real-time video but also audio working on these old beasts has been documented on their blog.

Unlike existing early video formats like FLIC from the 1990s, the XDC format developed over the past years enables real-time, 60 FPS video and audio playback on an 8088 IBM PC that has a SoundBlaster 2 and CGA card installed. As [Scali] notes, the SB2 card is convenient, because it enables DMA transports for the audio data, which saves a lot of precious CPU cycles. Unlike the original SB card, it also fixes some teething issues, but an SB2 is hardly ‘low-end’ for an early 1980s PC, so it has to go.

Continue reading “Video And Audio Playback On Low-End MS-DOS Machines”