Mapping The Depths With An Autonomous Solar Boat

Ever look out at a pond, stream, or river, and wonder how deep it is? For large bodies of water that are considered navigable, it’s easy enough to pull up a chart and find out. But what if there’s no public data for the area you’re interested in?

Well, you could spend all day on a little boat taking depth readings and making your own chart, but if you’re anything like [Clay] you could build a solar-powered autonomous robot to do it for you. He’s been working on the boat, which he calls Gumption Trap, for the better part of a year now. If we had to guess, we’d say the experience of designing and building it has ended up being a bit more interesting to him than the actual depth of the water — but that’s fine by us.

The design of the boat is surprisingly economical, as far as marine designs go. Two capped four-inch PVC pipes are used as pontoons, and 3D printed brackets attach those to an aluminum extrusion frame that holds the electronics and solar panel high above the water. This arrangement provides an exceptionally stable platform that would be all but impossible to flip under normal circumstances.

Around the back of the craft, there’s a pair of massive 3D printed thrusters, complete with some remarkably chunky printed propellers. The lack of rudders keeps things simple, with differential thrust between the two motors enough to keep the Gumption pointed in the right direction.

Continue reading “Mapping The Depths With An Autonomous Solar Boat”

Bridging A Gap Between LLMs And Programming With TypeChat

By now, large language models (LLMs) like OpenAI’s ChatGPT are old news. While not perfect, they can assist with all kinds of tasks like creating efficient Excel spreadsheets, writing cover letters, asking for music references, and putting together functional computer programs in a variety of languages. One thing these LLMs don’t do yet though is integrate well with existing app interfaces. However, that’s where the TypeChat library comes in, bridging the gap between LLMs and programming.

TypeChat is an experimental MIT-licensed library from Microsoft which sits in between a user and a LLM and formats responses from the AI that are type-safe so that they can easily be plugged back in to the original interface. It does this by generating JSON responses based on user input, making it easier to take the user input directly, run it through the LLM, and then use the output directly in another piece of code. It can be used for things like prototyping prompts, validating responses, and handling errors. It’s also not limited to a single LLM and can be fairly easily modified to work with many of the existing models.

The software is still in its infancy but does hope to make it somewhat easier to work between user inputs within existing pieces of software and LLMs which have quickly become all the rage in the computer science world. We expect to see plenty more tools like this become available as more people take up using these new tools, which have plenty of applications beyond just writing code.

RFID Emulator + E-paper Badge Can Be Programmed With Sound

In a way, an e-paper display makes an excellent foundation for a reprogrammable RFID card. The display only needs power during a refresh, and 125 kHz RFID tags are passive in the sense that the power for the RFID transaction comes from the reader itself. [Georgi Gerganov] has put those together in the GGtag, an open-source project for a 3.52″ e-paper badge with a trick or two up its sleeve.

One clever function is that it is programmable with sound, a feature built off another project of [Georgi]’s called ggwave, a data-to-sound (and vice-versa) framework that has been ported to just about every hardware platform one cares to imagine — including mobile phones — and can reliably send data through the air.

Transmitting data over sound is limited in throughput but has a number of advantages, not least of which is the huge range of compatible devices. There’s a web-based tool for programming the GGtag with sound available at ggtag.io that will give you a preview and let you hear how it works. The data encoding method gives transmissions a charming beep-boop quality that’s a bit reminiscent of an analog modem handshake. GGtag can also be programmed over USB serial, a faster (but somewhat less exciting) option.

The project’s GitHub repository contains GGtag’s code and technical details, and the CrowdSupply project is in the works for anyone who would prefer to buy one once they become available.

2023 Cyberdeck Challenge: Crosberry Pi Loves Lo-Fi Hip Hop

As far as we can tell, the only real selling point that any portable record player offered was, well, its portability. To be clear, the sound is never that great. But perhaps a selling point for this crowd is that they usually come in hinged cases with handles, and you know what that means — cyberdeck that thing!

[Mx. Jack Nelson] started gutting this Crosley CR40 record player to make a Raspberry Pi housing, but it quickly turned into a cyberdeck project with the addition of a 10.1″ portable monitor, a Planck ortholinear keyboard, and a gutted trackball mouse.

We love that [Mx. Jack Nelson] made use of the Crosley’s original speakers — this was the wife’s idea! — as well as the volume and tone knobs. But our favorite part has to be the clear acrylic top that both protects the electronics and provides a platform for the keyboard and mouse buttons. Be sure to check out the demo video after the break.

Continue reading “2023 Cyberdeck Challenge: Crosberry Pi Loves Lo-Fi Hip Hop”

Root, On An Amazon Echo Dot

The Amazon Echo has become an indispensable device for many people unconcerned by its privacy implications. It’s easy to forget that it’s not quite a new product anymore, with the oldest examples now long in the tooth enough to no longer receive security updates. A surprise is that far from being mere clients to Amazon cloud services, they in fact run a version of Android. This makes old dots interesting to experimenters, but first is it possible to gain root access? [Daniel B] has managed it, on a second-generation Echo Dot.

In a sense, this is nothing new, as root has previously been achieved on an Echo Dot through means of a patched kernel. Echo devices use a chain of trust boot process in which each successive step must verify the Amazon signing of the previous one. The kernel patch method breaks the ability to reboot the device with root access. [Daniel’s] method bypasses that chain of trust by using a custom pre-loader injected over USB through an exploit.

As an example, [Daniel] created a web server on his Dot, which can serve audio captured by the device. Don’t panic just yet — an analysis of the other security features suggests that this is not the dangerous exploit it might seem. It does however open up these powerful but now pretty cheap devices as potentially usable for other purposes, which can only be a good thing.

We’ve previously brought you [Daniel]’s work freeing the WiFi details from a Dot.

The Moment A Bullet Turns Into A Flashlight, Caught On Film

[The Slo Mo Guys] caught something fascinating while filming some firearms at 82,000 frames per second: a visible emission of light immediately preceding a bullet impact. The moment it occurs is pictured above, but if you’d like to jump directly to the point in the video where this occurs, it all starts at [8:18].

The ability to capture ultra-slow motion allows us to see things that would otherwise happen far too quickly to perceive, and there are quite a few visual spectacles in the whole video. We’ll talk a bit about what is involved, and what could be happening.

Spotting something unusual on video replay is what exteme slo-mo filming is all about.

First of all, the clear blocks being shot are ballistic gel. These dense blocks are tough, elastic, and a common sight in firearms testing because they reliably and consistently measure things like bullet deformation, fragmentation, and impact. It’s possible to make homemade ballistic gel with sufficient quantities of gelatin and water, but the clear ones like you see here are oil-based, visually clear, and more stable (they do not shrink due to evaporation).

We’ve seen the diesel effect occur in ballistic gelatin, which is most likely the result of the bullet impact vaporizing small amounts of the (oil-based) gel when the channel forms, and that vaporized material ignites due to a sudden increase in pressure as it contracts.

In the video linked above (and embedded below), there is probably a bit more in the mix. The rifles being tested are large-bore rifles, firing big cartridges with a large amount of gunpowder igniting behind each bullet. The burning powder causes a rapid expansion of hot, pressurized gasses that push the bullet down the barrel at tremendous speed. As the bullet exits, so does a jet of hot gasses. Sometimes, the last bits of burning powder are visible as a brief muzzle flash that accompanies the bullet leaving the barrel.

A large projectile traveling at supersonic velocities results in a large channel and expansion when it hits ballistic gel, but when fired at close range there are hot gasses from the muzzle and any remaining burning gunpowder in the mix, as well. All of which help generate the kind of visual spectacles we see here.

We suspect that the single frame of a flashlight-like emission of light as the flat-nosed bullet strikes the face of the gel is also the result of the diesel effect, but it’s an absolutely remarkable visual and a fascinating thing to capture on film. You can watch the whole thing just below the page break.

Continue reading “The Moment A Bullet Turns Into A Flashlight, Caught On Film”

Who’s Afraid Of Assembly Language?

This week, [Al Williams] wrote a great thought piece about whether or not it was worth learning an assembly language at all anymore, and when. The comments overflowed, and we’re surprised that so many people basically agree with us: yes. Of course, it’s a Hackaday crowd, but I still didn’t expect the outpouring of love for the most primitive of languages.

Assembly language isn’t really one language, though. Every chip speaks its own dialect. Of course there are similarities: every CPU has an add function, right? But almost no CPU has just one add – there are variants with and without carry, storing and reading from working registers or RAM. And once you start talking about memory access, direct or indirect, the individual architectures of the chips demand different assembly languages.

But still, although the particular ways that CPUs do what they do can be incompatible from a strictly language perspective, they are a lot more similar in terms of the programming idioms that you’ll pick up along the way. Just as learning a set of solid algorithms will help you no matter which higher-level language you use, learning the concepts behind crafting loops and simple memory structures out of raw assembly language will serve you no matter which CPU you choose.

I have only written assembly language for a handful of CPUs, and not much of it at that, but I’ve found the microcontrollers to be the friendliest. So if you want to dip your toes in that water, pick up an AVR or an MSP430. Or maybe even the new hotness – a RISC-V. You’ll find the instruction sets small enough that you have to do most of the work yourself. And that is, after all, the point of learning an assembly language: learning to think like the silicon. If you treat it like a fun puzzle to solve, you’ll probably even enjoy the experience.

[Al]’s original question was when you should learn an assembly language: before or after a higher-level language. For 99% of our readers, I’d say the answer is right now.