Adorable ASCII Aquarium Lives On Your Desk

[Kert Gartner]’s ASCII Aquarium turns a cheap yellow display (CYD) into a tiny simulated aquarium, complete with ASCII sea creatures each with their own behaviors. There’s all kinds of options and even timekeeping functionality, so the miniature water world can also pull its weight as a desk clock.

The fish and other animal movements are not a series of canned animations; each creature has its own behaviors and responses to things like feeding, which is accomplished by tapping on the screen. A hidden menu offers a wide range of configuration and display options, and there’s even an option to export screen contents as bitmaps.

Add a 3D-printed enclosure and the whole thing looks like a pretty nice weekend project. There’s even a display flip mode, just in case you have a spare 50 mm beamsplitter kicking around.

It’s a very clever use of a CYD that shows how good color and graphics can look when one designs with the hardware’s capabilities (and limitations) in mind.

The CYD is an ESP32-based development board with integrated touchscreen display, and is known for its affordable price and wide availability. This one would look great next to a CYD electric jellyfish.

Passive Bug Zapper Tracks Its Kill Count

If it’s summer in a warm, humid climate, bugs can be the bane of your existence. A natural solution is to place a passive bug zapper to catch bugs at night. But what if that isn’t fancy enough? [Nicolas Boichat] spices it up with a passive bug zapper that tracks its kill count.

But how exactly do you detect a bug zap? With an antenna, of course! When a bug gets caught, it arcs, creating an electromagnetic pulse. A small loop antenna on the backside of the zapper receives the signal.
Continue reading “Passive Bug Zapper Tracks Its Kill Count”

Autonomous Submarine Relies On Color Detection

We talk about all kinds of autonomous vehicles here at Hackaday, from aerial drones to rugged rovers. A little less common are the submarine builds, likely due to their technical complexity. That said, though they perhaps benefit most from autonomy given they’re so hard to talk to while underwater. In any case, [Ayman] has built an impressive sub that uses some rudimentary techniques to navigate around while under the surface. 

The build uses typical construction techniques for DIY subs of this size, with a clear acrylic tube serving as the body of the craft. It’s carefully sealed to ensure water ingress doesn’t send it to the bottom, using nifty tricks like a magnetic coupling for the prop. Inside, there’s a Raspberry Pi 4, kitted out with an Arducam IMX708 camera with a wide angle lens. It’s joined by a BNO085 inertial measurement unit, along with two BMP280 pressure sensors for keeping track of motion and the sub’s vital signs, while a DRV8833 motor controller runs the main drive motor.

There’s also an ESP32 which helps out with motor and servo control for steering, and ballast control. Sinking and floating the sub is handled with a pair of two ballast tanks constructed out of 5 mL syringes that are driven in and out with high-torque output gear motors. The build uses an antenna buoy so that communication can be maintained with the sub when it’s within a certain range of the surface.

A neat addition to the sub is its autonomous navigation code. [Ayman] whipped up some simple object avoidance routines, which rely on the Raspberry Pi’s camera. The code uses HSV values to track specific colored objects and avoid them, which proves more reliable than RGB as it allows tracking color in a largely brightness-independent manner.

Although we’ve featured other builds that use similar construction techniques, seeing a transparent submarine gliding through the water will always make us think of the incredible Open Source Underwater Glider that won the 2017 Hackaday Prize.

Continue reading “Autonomous Submarine Relies On Color Detection”

Building Festival Badges That Sync Themselves Up

Lots of music events these days hand out various glowing tchotchkes that flash and sync up with the performance. [Tony Goacher] has whipped up his own badges that can do just that, all without needing any sort of pairing or infrastructure to speak of.

The CrowdClock badges each feature a ring of 16 addressable RGB LEDs. Running the LEDs is an ESP32 microcontroller, which has lots of neat wireless capability baked in from the factory. [Tony] decided to leverage the ESP-NOW wireless communication protocol to enable each badge to broadcast its current local clock tick. Each device also listens out for clock ticks from other badges in the area, and updates its current clock tick value if it receives a higher one from another badge. This behaviour allows a bunch of badges within radio range to all sync up automatically in short order, and then run their LED sequences in sync. There’s no need for a master designation or anything, the devices just all sync to whichever badge has the highest clock value and go from there.

It’s a really neat way to create propagating self-syncing behaviour in distributed wireless nodes. Files are on Github for those curious to learn more. Meanwhile, if you’ve ever wondered how those concert wristbands work, we’ve looked at that too. Video after the break.

Continue reading “Building Festival Badges That Sync Themselves Up”

A render of the moon, on a circular display.

Put The Moon On Your Desk

Most people take the Moon for granted, not considering its slow cycle where the sun gradually illuminates different parts of it. A recent project from [Karsten Mueller] helps you keep our nearest celestial neighbor in mind by putting a tiny version on your desk. (German)

The device itself is made with a circular display, an ESP32-S3, and a simple 3D printed case. But the interesting part is the software — it’s not just a moon phase display, it actually takes your local time, latitude and longitude into account. The resulting image is an approximation of what the moon looks like if you were to look at it, even if you wouldn’t actually be able to see it, such as when it is obscured by the Earth or barely visible during the daylight sky. Initially the project actually used a photograph of the Moon that [Karsten] personally snapped, but there’s also an option to pull the imagery from NASA.

The original write-up is in German, but there’s also an English page for the project on Hackaday.io, and the source is available on GitHub if you’d like to put one together yourself.

Building A Device To Map Magnetic Fields

Magnetic fields are all around us. We can’t really feel or see them ourselves, per se, but we can map them with the right hardware, like this device built by [edosari50].

The build uses an ESP32 microcontroller, which is built on to a board with an integrated 4.3″ touchscreen LCD. It’s paired with an Arduino Nano, which does the work of actually talking to a pair of EMS100 Fluxgate magnetic sensors. The slower, less capable Arduino handles the low-level chatter and then passes the readouts to the ESP32 over a UART connection. Power is courtesy of a pair of 18650 lithium-ion cells, and a XL4005 DC-DC converter. A lithium-ion charging module is on hand to keep the batteries topped off safely.  Scan results are visualized on the device itself using a heatmap representation, and can also be exported to SD card for later analysis if so desired.

Unless you’re in the geological field or otherwise hunting for stuff underground, this probably isn’t a tool you’ll have a lot of use for. However, if you like finding magnetic anomalies and investigating them, it might be very much in your wheelhouse. We’ve featured other tools for magnetic visualization before, too. Video after the break.
Continue reading “Building A Device To Map Magnetic Fields”

A black screen with green text is shown. The green text logs events from a VPN gateway.

Running A VPN Gateway On An ESP32

If you need a VPN gateway to access your home network, the fastest and most cost-effective way is probably by using a Raspberry Pi Zero. But in [Samir Makwana]’s view, an ESP32-S3 is just as capable for moderate use, and in some respects even superior.

This was possible thanks to the MicroLink project, which is a full implementation of a Tailscale client for the ESP32 family. In some ways the ESP32 worked better than a Raspberry Pi: it boots in two seconds rather than thirty, draws 0.5 Watts rather than 1.5, and there’s no chance of it failing due to a corrupted SD card. Compared to a Raspberry Pi, however, which can be set up as a Tailscale client in a few minutes, this took several hours to get running. The biggest issue was making sure that there was enough memory available for TLS handshakes, which was solved by enabling the ESP32’s PSRAM.

Once the VPN client is running, the ESP32 can be used as an SSH jump machine to access other devices on the home network, without needing to expose those machines to the open Internet. The ESP32 also hosts an HTTP server which can send a wake-on-LAN magic packet to another device on the local network, letting unused devices sleep without impairing their availability.

The ESP32 doesn’t provide much bandwidth — streaming video would cause issues — but it works well enough for lightweight applications. If you’re wanting to stream video from an ESP32, though, it is technically possible.