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”

3D Printed Cookies, Sort Of

Are there any cookies that taste better than the ones you make yourself? Well, maybe, but there’s a certain exquisite flavoring to effort. Just ask [jformulate], who created these custom chocolate-topped butter cookies using a mixture of 3D printing, silicone, and of course, baking and tempering.

[jformulate] did this project along with a makerspace group, and the first thing they did was decide on some images for the cookies. Once a hexagon-shaped mold was created in Fusion360, the images were added in. Some had to be height-adjusted in order for the detail to come out.

Once these positives were printed, it was time to make the food-safe silicone molds that would form the custom chocolate toppers. If you don’t have a vacuum de-gasser, [jformulate] recommends pouring a thin stream from a high place to avoid air bubbles. You can always tap the mold several times on a flat surface as well to bring trapped air to the top.

Finally, it’s time to make cookies. [jformulate] has good instructions for tempering chocolate, as well as a recipe for the butter cookies that support the designs. As a bonus, [jformulate] shows how to make a fish-shaped hot chocolate bomb, and made Jolly Rancher (sadly not Wrencher) medallions using the silicone molds and a microwave.

For the semi-disappointed, directly 3D printing cookies is definitely a thing.