2023 Hackaday Prize: Two Bee Or More Bee Swarm Detection

In the bustling world of bees, swarming is the ultimate game of real estate shuffle. When a hive gets too crowded or craves a change of scenery, colonies scout out swarms for a new hive. [Captain Flatus O’Flaherty] is a beekeeper trying to capture more native honey bees, and a custom LoRa-enabled capture hive helps him do that.

A catch hive, perched high and mighty, lures scouting as potential new homes. If selected, a swarm of over a thousand bees can move in, where [Flatus]’s detector comes in. Many catch hives are scattered around, and manually checking them is difficult. While the breath of one bee is hard to see, a thousand bees produce enough CO2 to be detected by a sensor. A custom PCB with a solar-powered  +30dB LoRa radio measures CO2 and reports back. The PCB contains an ESP32 D4 and a 1-watt Ebyte E22-400M30S LoRa module. If the CO2 levels are still elevated at nightfall, [Flatus] can be pretty confident a swarm has moved in.

Using the data collected, he massaged it to create a dataset suitable for training on XGBoost. With weather data and other conditions, the model tries to predict when a swarm is more or less likely to happen. Apis Mellifera (the local honeybee around [Flatus]) loves sun-kissed, warm, humid afternoons with little wind.

We’ve seen beehive monitors before and love exploring what the data could be used for—video after the break.

Continue reading “2023 Hackaday Prize: Two Bee Or More Bee Swarm Detection”

Adding MMIO RAM On The RP2040

[Dmitry Grinberg] is an adept tinkerer who wanted a much larger RAM space on his Raspberry Pi 2040 (RP2040) than the measly 264kb on-board SRAM. The chip does support 16MB of off-flash memory via a QSPI bus, but this must be accessed explicitly rather than being memory mapped. With clever trickery involving XIP (Execute in Place), Dmitry mapped 8MB of external QSPI RAM into the address space.

XIP mode allows the chip to fetch data on-demand from an external chip and place it into RP2040 caches mapped at 0x10xxxxxx. The RP2040, although incredibly versatile, has a limitation – it can only perform read and execute operations in its XIP mode. The first step to solving this was to get data from persistent storage to RAM on boot. Armed with a dual-OR gate IC, an inverter, and two resistors, [Dmitry] can toggle the nCS pin that selects between flash and RAM. A first-stage bootloader copies the program from flash to RAM, then sets up XIP mode and launches into a second-stage loader.

Continue reading “Adding MMIO RAM On The RP2040”

the PCB without the case on, showing the screen, battery, and removable sensor

2023 Hackaday Prize: A Reusable Plant Monitor

[Ovidiu] cares for their house plants, trying to dial in the perfect soil humidity and light levels. However, many cheap monitors tend to rust after a few weeks of sitting in a damp, slightly acidic environment. By creating a custom plant monitor with a removable probe, not only can [Ovidiu] integrate better with their Home Assistant setup, but it will also be less wasteful.

The build starts with an ESP32-S3, a TP4056 charging circuit, a small e-ink display, and an AHT20 IC for air humidity and temperature. The ESP32 reads the probe using the capacitance measuring devices for touchpads built into the chip. Or course, a 450mAh battery provides a battery life of about 11 days. The probe is just a bare PCB with a connector at the top, making them cheap and easy to swap. They included pads on the probe for a thermistor for reading soil temperature, but this is optional. A handsome 3D-printed case wraps it all up nicely.

Continue reading “2023 Hackaday Prize: A Reusable Plant Monitor”

UChaser Follows You Anywhere

If you’ve been making up for lost years of travel in 2023, you might have seen a fellow traveler in the airport terminal or train station walking with their luggage happily careening behind them. [Jesse R] and [Brian Lindahl] wanted more of that. They wanted an open-source, low-cost system that could be put in anything.

The basic principle is that they will have a transmitter that sends both a radio signal and an ultrasonic pulse. The receiver receives the radio signal and uses it as a reference for the two ultrasonic sensors. The time since the radio signal is compared between the two, and a distance and direction are established.

In practice, the radio is an ESP32-S3 using ESP-NOW (which we’ve seen relatively recently on another project), a protocol from Espressif that offers low latency 250 bytes payloads. The ultrasonic transceiver is based on Sparkfun’s HC-SR04. For prototyping purposes on the receiver, they just removed the transmitter to avoid populating the airwaves, as to listen, you had to transmit. The prototype was an electric wheelbarrow that would happily follow you around the yard wherever you go.

With the concept validated, they moved to a custom ultrasonic setup with a custom buffer amp and damp transistor, all centered around 20kHz. The simulations suggested they should have been better than the HC-SR04 from Sparkfun, but the 30-foot (9 meters) range went to 10 feet (3 meters). They ultimately returned to using Sparkfun’s circuit rather than the custom amp.

We’re looking forward to seeing the project continue. There are various challenges, such as variability in the speed of sound, echos and reflections, and ultrasonic line of sight. We love the peak behind the curtain that allows us to see what decisions get made and the data that informs those decisions. All the code and PCB design files are available on GitHub under an MIT and Creative Common license, respectively. This project was submitted as part of the 2o23 Hackaday Prize.

Video after the break.

Continue reading “UChaser Follows You Anywhere”

2023 Hackaday Prize: A Reinvented Solar Tracker

It probably goes without saying that solar panels need to be pointed at the sun for optimal performance. The tricky bit is that the sun has a funny habit of moving on you. For those with a solar panel on their balcony or garden, mysoltrk tracks the sun to get the most out of a small solar panel.

[Fulvio] built the tracker to be solid, low cost, and sturdy enough to survive outdoors, which is quite a tall order. Low cost meant WiFi and GPS were out. The first challenge was low-cost linear actuators that were 3D printed with a mechanism to lock the shaft. An N20 6 volt 30 RPM geared motor formed the heart of the actuator. Four photo-resistors inside a printed viewfinder detect where the sun is, allowing the system to steer the array to get equal values on all the sensors. An Arduino Nano was chosen as it was low power, low cost, and easy to modify. A L298N h-bridge drives the motors, and a shunt is used instead of limit switches to reduce costs further.

There are a few other clever tricks. A voltage divider reads the power coming off the panel so the circuit doesn’t brown out trying to move the actuators. The load can also be switched off via an IRL540n. As of the time of writing, only the earlier versions of the code are up on GitHub, as [Fulvio] is still working on refining the tracking algorithm. But the actuators work wonderfully. We love the ingenuity and focus on low cost, which probably explains why mysoltrk was selected as a finalist in the 2023 Hackaday Prize Green Hacks challenge.

Continue reading “2023 Hackaday Prize: A Reinvented Solar Tracker”

Heartbeat packets of LKV373

Audio, Not Video Over The LKV373 HDMI Extender

[eta] found herself in a flat with several LKV373 HDMI extenders. Find the corresponding transmitter, plug it into your device, and you’ve got a connection to the TV/sound system, no fussing with wires behind the TV. However, [eta] wanted to get rid of the need to plug in a laptop and start sending packets directly to play music. As her flatmate [dan] had already reverse-engineered the receiver, she tested her prototype against their virtualized receiver, de-ip-hmdi.

The actual sending of images was surprisingly straightforward — just a JPEG sliced into 1024 bytes chunks and sent over. However, early testing showed nothing on the receiver. The end of a frame needed marking by setting the most-significant bit of the chunk number to one. Now de-ip-hdmi showed the image, but the actual hardware would not. With something missing, [eta] returned to Wireshark to scan packets. Noticing some strange packets on port 2067, she analyzed the pattern to reveal it sent another packet just before a new frame and included the frame number. With this tweak, it was still not enough. Ultimately, heartbeat packets sent every second synchronize things, but compared to the noise of the video packets, they were easy to miss. Now [eta] had some functioning video streaming rust code.

In theory, audio for the LKV373 followed the same thought process as video. Two channels of 32-bit big Endian integers at 44,100 hz chunked into 992-byte sections and sent as a packet formed the audio stream. With only 992 bytes, two streams, and 4 bytes per sample, each packet only held 2.812 milliseconds of sound. The first tests resulted in no audio output or distorted crunchy sound. Of course, this was every audio engineer’s worst nightmare: jitter. With a spin loop and an efficient ring buffer, the audio packets were soon slinging across the network reliably.

The code is available on a hosted version of GitLab. It’s a beautiful journey through reverse engineering some obscure but relatively cheap hardware. Along the way, there is nicely annotated Rust code, which makes it all the better.

Nail, Meet KiCad

You know the old saying. When all you have open is KiCad, everything looks like a PCB. That was certainly true for [Evan], who needed to replace a small part recently and turned to PCBs to get the job done.

The part in question was a sheered apart detent cam from a retractable cord reel. Glue and epoxy might have worked, and [Evan] was worried about how a 3D printed PLA part would have held up. The part is an extruded 2D shape, making PCBs a non-traditional but viable choice. Using the old scanner trick, he traced the outline in KiCad 7 (which adds image references). Then with the five boards stacked up, solid core wire, solder, and a propane torch worth of heat fused it. Ultimately, this machine’s tolerances are generous, so it worked wonderfully.

Was it the “right” tool for the job? Right or wrong, it is hard to argue that in terms of durability and ease per dollar, this doesn’t come out on top. PCB files are on GitHub if you have a 5020TF-4c retractable cord reel that needs a new cam. PCBs have a fun way of adopting different use cases like enclosures, but perhaps the idea of PCBs as a mechanical part could be applied elsewhere.