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.

The Junk Machine Prints Corrupted Advertising On Demand

[ClownVamp]’s art project The Junk Machine is an interactive and eye-catching machine that, on demand, prints out an equally eye-catching and unique yet completely meaningless (one may even say corrupted) AI-generated advertisement for nothing in particular.

The machine is an artistic statement on how powerful software tools that have genuine promise and usefulness to creative types are finding their way into marketer’s hands, and resulting in a deluge of, well, junk. This machine simplifies and magnifies that in a physical way.

We can’t help but think that The Junk Machine is in a way highlighting Sturgeon’s Law (paraphrased as ‘ninety percent of everything is crud’) which happens to be particularly applicable to the current AI landscape. In short, the ease of use of these tools means that crud is also being effortlessly generated at an unprecedented scale, swamping any positive elements.

As for the hardware and software, we’re very interested in what’s inside. Unfortunately there’s no deep technical details, but the broad strokes are that The Junk Machine uses an embedded NVIDIA Jetson loaded up with Stable Diffusion’s SDXL Turbo, an open source AI image generator that can be installed and run locally. When and if a user mashes a large red button, the machine generates a piece of AI junk mail in real time without any need for a network connection of any kind, and prints it from an embedded printer.

Watch it in action in the video embedded below, just under the page break. There are a few more different photos on [ClownVamp]’s X account.

Continue reading The Junk Machine Prints Corrupted Advertising On Demand”

FLOSS Weekly Episode 785: Designing GUIs And Building Instruments With EEZ

This week Jonathan Bennett chats with Dennis and Goran about EEZ, the series of projects that started with an Open Source programmable power supply, continued with the BB3 modular test bench tool, and continues with EEZ Studio, a GUI design tool for embedded devices.

Continue reading “FLOSS Weekly Episode 785: Designing GUIs And Building Instruments With EEZ”

FLOSS Weekly Episode 783: Teaching Embedded With The Unphone

This week Jonathan Bennett and Rob Campbell talk with Gareth Coleman and Hamish Cunningham! It’s all about the Unphone, an open source handset sporting an ESP32, color touchscreen, and LoRa radio. It’s open hardware, and used in a 3rd year university course to teach comp sci majors about hardware and embedded development.

Continue reading “FLOSS Weekly Episode 783: Teaching Embedded With The Unphone”

A Deep Dive On Battery Life

There are all kinds of old wives’ tales surrounding proper battery use floating around in the popular culture. Things like needing to fully discharge a battery every so often, unplugging devices when they’re fully charged, or keeping batteries in the fridge are all examples that have some kernel of truth to them but often are improperly applied. If you really want to know the truth about a specific battery, its behavior, and its features, it helps to dig in and actually take some measurements directly like [Tyler] has done with a vast array of embedded batteries in IoT devices.

[Tyler] is a firmware engineer by trade, so he is deeply familiar with this type of small battery. Battery performance can change dramatically under all kinds of scenarios, most important among them being temperature. But even the same type of battery can behave differently to others that are otherwise identical, which is why it’s important to have metrics for the batteries themselves and be able to measure them to identify behaviors and possible problems. [Tyler] has a system of best practices in place for monitoring battery performance, especially after things like firmware upgrades since small software changes can often have a decent impact on battery performance.

While working with huge fleets of devices, [Tyler] outlines plenty of methods for working with batteries, deploying them, and making sure they’re working well for customers. A lot of it is extremely useful for other engineers looking to develop large-scale products like this but it’s also good knowledge to have for those of us rolling out our own one-off projects that will operate under battery power. After all, not caring for one’s lithium batteries can have disastrous consequences.