ZPUI Could Be Your Tiny Embedded GUI

One of the most frustrating things to me is looking at a freshly-flashed and just powered up single board computer. My goal with them is always getting to a shell – installing packages, driving GPIOs, testing my proof of concept code, adjusting the device tree to load peripheral drivers. Before I can do any of that, I need shell access, and getting there can be a real hassle.

Time after time, I’ve struggled trying to get to a shell on an SBC. For best results, you’d want to get yourself a keyboard, monitor, and an Ethernet cable. Don’t have those, or there’s no space to place them? Maybe a UART connection will work for you – unless it’s broken or misconfigured. Check your pinouts twice. Sure, nowadays you can put WiFi credentials into a text file in /boot/ – but good luck figuring out the IP address, or debugging any mistakes you might make formatting the file. Nowadays, Pi 4 and 5 expose a USB gadget connection on the USB-C port, and that helps… unless you’re already powering the Pi from that port. There’s really no shortage of failure modes here.

If you put a Pi on your network and it goes offline, you generally just don’t know what happened unless you reboot it, which can make debugging into a living hell. I’ve dealt with single-board computers mounted above fiberglass lifted ceilings, fleets of Pi boards at workshops I organized, pocket-carried Pi boards, and at some point, I got tired of it all. A hacker-aimed computer is meant to be accessible, not painful.

Continue reading “ZPUI Could Be Your Tiny Embedded GUI”

Speeding Up Your Projects With Direct Memory Access

Here’s the thing about coding. When you’re working on embedded projects, it’s quite easy to run into hardware limitations, and quite suddenly, too. You find yourself desperately trying to find a way to speed things up, only… there are no clock cycles to spare. It’s at this point that you might reach for the magic of direct memory access (DMA). [Larry] is here to advocate for its use.

DMA isn’t just for the embedded world; it was once a big deal on computers, too. It’s just rarer these days due to security concerns and all that. Whichever platform you’re on, though, it’s a valuable tool to have in your arsenal. As [Larry] explains, DMA is a great way to move data from memory location to memory location, or from memory to peripherals and back, without involving the CPU. Basically, a special subsystem handles trucking data from A to B while the CPU gets on with whatever other calculations it had to do. It’s often a little more complicated in practice, but that’s what [Larry] takes pleasure in explaining.

Indeed, back before I was a Hackaday writer, I was no stranger to DMA techniques myself—and I got my project published here! I put it to good use in speeding up an LCD library for the Arduino Due. It was the perfect application for DMA—my main code could handle updating the graphics buffer as needed, while the DMA subsystem handled trucking the buffer out to the LCD quicksmart.

If you’re struggling with updating a screen or LED strings, or you need to do something fancy with sound, DMA might just be the ticket. Meanwhile, if you’ve got your own speedy DMA tricks up your sleeve, don’t hesitate to let us know!

Laser-Cut Metal Endoskeleton Beefs Up 3D Prints

There are limits to what you can do with an FDM printer to make your parts stronger. It really comes down to adding more plastic, like increasing wall thickness or boosting up the infill percentage. Other than that, redesigning the part to put more material where the part is most likely to fail is about the only other thing you can do. Unless, of course, you have access to a fiber laser cutter that can make internal metal supports for your prints.

As [Paul] explains it, this project stemmed from an unfortunate episode where a printed monitor stand failed, sending the LCD panel to its doom. He had taken care to reinforce that part by filling it with fiberglass resin, but to no avail. Unwilling to risk a repeat with a new tablet holder, he decided to test several alternative methods for reinforcing parts. Using a 100 W fiber laser cutter, he cut different internal supports from 0.2 mm steel shim stock. In one case he simply sandwiched the support between two half-thickness brackets, while in another he embedded the steel right into the print. He also made two parts that were filled with epoxy resin, one with a steel support embedded and one without.

The test setup was very simple, just a crane scale to measure the force exerted by pulling down on the part with his foot; crude, but effective. Every reinforced part performed better than a plain printed part with no reinforcement, but the clear winner was the epoxy-filled part with a solid-metal insert. Honestly, we were surprised at how much benefit such a thin piece of metal offered, even when it was directly embedded into the print during a pause.

Not everyone has access to a fiber laser cutter, of course, so this method might not be for everyone. In that case, you might want to check out other ways to beef up your prints, including just splitting them in two.

Continue reading “Laser-Cut Metal Endoskeleton Beefs Up 3D Prints”

Building Experience And Circuits For Lithium Capacitors

For the cautious, a good piece of advice is to always wait to buy a new product until after the first model year, whether its cars or consumer electronics or any other major purchase. This gives the manufacturer a year to iron out the kinks and get everything ship shape the second time around. But not everyone is willing to wait on new tech. [Berto] has been interested in lithium capacitors, a fairly new type of super capacitor, and being unwilling to wait on support circuitry schematics to magically show up on the Internet he set about making his own.

The circuit he’s building here is a solar charger for the super capacitor. Being a fairly small device there’s not a lot of current, voltage, or energy, but these are different enough from other types of energy storage devices that it was worth taking a close look and designing something custom. An HT7533 is used for voltage regulation with a Schottky diode preventing return current to the solar cell, and a DW01 circuit is used to make sure that the capacitor doesn’t overcharge.

While the DW01 is made specifically for lithium ion batteries, [Berto] found that it was fairly suitable for this new type of capacitor as well. The capacitor itself is suited for many low-power, embedded applications where a battery might add complexity. Capacitors like this can charge much more rapidly and behave generally more linearly than their chemical cousins, and they aren’t limited to small applications either. For example, this RC plane was converted to run with super capacitors.