ESP32 Turned Open Source COVID-19 Contact Tracer

Over the past few months we’ve heard a lot about contact tracers which are designed to inform users if they’ve potentially come into close proximity with someone who has the virus. Generally these systems have been based on smartphone applications, but there are also hardware solutions that can operate independently for those who are unable or unwilling to install the software. Which is precisely what [Tom Bensky] has implemented using an ESP32 and a USB battery bank.

The idea is simple: the software generates a unique ID which is broadcast out by the ESP32 over Bluetooth Low Energy. Appended to that ID is a code that indicates the person’s current physical condition. There’s no centralized database, each user is expected to update their device daily with any symptoms they may be experiencing. If your tracker is blinking, that means somebody has come in close enough proximity that you should look at the collected data and see how they were feeling at the time.

It’s not a perfect system, of course, as for one thing the number of people that are willing and able to flash this firmware onto a spare ESP32 and carry the thing around with them all day is going to be extremely small. This might have filled an interesting niche if we were still going to hacker and maker cons this summer, but all of those have gone virtual anyway. That said, it’s an interesting look at how a decentralized contact tracing system can be implemented cheaply and quickly.

Another detail worth taking a look at is how [Tom] handled the user experience in his firmware. In an effort to make the tracer as easy as possible to configure, he’s using the Web Bluetooth capability of Google Chrome. Just open up the local web page in your browser, and it will handle talking to the hardware for you. Even if you’re not in the market for a contract tracer, we think this is a great example for how to handle end-user configuration on the ESP32.

We’ve already looked at contact tracer APIs from Google and Apple, dedicated COVID-19 hardware tokens, and even other open source attempts at decentralized proximity tracking. It’s a lot to process, and everyone seems to have their own idea on how it should be done. In the end, the most practical solution is probably to just stay at home as much as possible.

A Portable Home Air Quality Meter With The ESP32

Around the world, rolling pandemic lockdowns have left many working from home. [kn100] is in just such a predicament, and while spending nearly 24 hour a day in a residential flat, got wondering about air quality. Thus, it was time to build some gear to keep an eye on things!

Grafana may require a database and some work to set up, but the results are to die for.

The build consists of an ESP32 hooked up to a Bosch BME680 air quality sensor. It measures pressure, temperature, humidity and gas resistance, and then with a closed source library, uses this to calculate an “Air Quality Index” as well as estimate CO2 and VOC levels in the air. Data is passed from the ESP32 over MQTT to a Raspberry Pi. This runs Mosquitto for handling the MQTT queries, saving the data in an Influxdb instance. Grafana is then used to query this database and produce attractive graphs of the data.

It’s a build that not only helps keep an eye on things in the flat, but is great practice for building solid Internet of Things devices with top-notch data visualisation. We’ve talked about how to do this before, too – so if you need this capability in your life, there’s no excuse not to get hacking!

The Mother(board) Of All CNC Controllers

If you’re building a CNC machine from scratch, the number of decisions you have to make is nearly boundless. Metal or wood construction? Welded or bolted? Timing belts or lead screws? And even once the mechanical bits are sorted, you still face a universe of choices in terms of control electronics. That’s where something like this modular CNC controller could really prove to be a game-changer.

The idea behind [Barton Dring]’s latest creation started with his port of GRBL to the ESP32. In fact, the current controller bears a strong family resemblance to his version 1.0 dev board, with a few conspicuous and intriguing additions. First, everything is modular — the main PCB is basically a motherboard with little more than a 5-volt power supply and some housekeeping electronics, plus a lot of headers. There’s support for up to six channels of steppers, either directly on the board with Pololu-style modules or as external drivers using pluggable screw terminal blocks. There’s also room for five IO modules; the current collection of modules includes a four-channel switch input, a relay output, an RS-485 module and a 0-10-V interface for talking to a variable frequency drive (VFD) spindle controllers, and buffered 5-V output module. The best part is that the IO module spec is completely open, so designing custom modules should be a snap.

The video below gives a quick tour of the controller. We’re really impressed with the thought that went into this, and we’ll venture a guess that having something like this available is going to kickstart a lot of stalled CNC machine projects. We can think of one shop that finally lost its last excuse for making the move.

Continue reading “The Mother(board) Of All CNC Controllers”

Bubbles, The People-Pleasing Pandemic Panda

This year, [Thomas]’ neighborhood has gone from a quiet burg to a bustling lane full of families and children who go out walking for exercise and a change of scenery. Early on, a game emerged to distract children from the pandemic by turning these walks into bear hunts — that is, looking for stuffed bears sitting in the windows of houses and keeping count of them.

With no stuffed bears in the house, he decided to join in the fun by pasting up a 2D panda bear in the window that’s cute enough to calm anyone’s nerves. That was fun for a while, but then he turned it up to eleven by making an interactive 3D version named Bubbles the Bear that blows bubbles and speaks in a friendly voice.

Bubbles sits in a second-story window and waits for passers-by to press one of the buttons mounted on the utility pole below. Both buttons are wired to a 433MHz remote that sends a signal to an ESP32 in Bubbles’ habitat that says it’s time to perform.

We particularly like the bubble maker that [Thomas] designed, which aims a blower fan with an air concentrator at a carousel of 3D printed bubble wands. Both the fan and the carousel can be controlled with a custom web app, and he gets an email every time Bubbles has a visitor that tells him how much bubble liquid is left. Check out the fun-size demo after the break.

Bubbles are fun, especially if you can make them in extremely large quantities. Bubbles can also do work — remember this next time you need a random number generator.

Continue reading “Bubbles, The People-Pleasing Pandemic Panda”

Your Microcontroller Is Your IDE

What if your microcontroller IDE was running on the microcontroller itself and not hosted on the computer you use to do the programming? The greatest legacy of Arduino in all its forms has arguably been a software one, in that it replaced annoying proprietary development environments with one that installed easily on a range of operating systems, was easy to use, and above all, worked. The next level of portability is to get rid of any specialize computer-side software. [Ronny Neufeld] wrote MicroIDE for ESP32 as an IDE accessible through a web browser, which interestingly is hosted on the target device itself.

Using the IDE is easy enough, install a binary, connect to the ESP with a web browser, start writing MicroPython code. There is a choice of connecting directly to the chip as a hotspot, or connecting via another WiFi network. The interface is looking pretty slick but he’s at pains to remind us that it’s a work in progress. Sadly there is no source code yet as it’s a binary distribution that is free for non-commercial use, we’d hope that an open-source release might one day happen. It’s not for everyone, but the convenience of accessing the same interface from almost any modern device should help attract a healthy community.

This appears to be the first web-based on-chip ESP IDE we’ve shown you. But it’s not the first on-chip coding example, as this BASIC interpreter shows.

[Main image source: Ubahnverleih / CC0]

The Open Source Mars Rover, One Year Later

As the name implies, here at Hackaday we strive to bring you interesting projects every single day. But that doesn’t necessarily mean a project only gets one day to grace these storied pages. Quite the opposite, in fact. We’re always happy to revisit a project and find out how far it’s evolved since we last crossed paths with it, especially when the creators themselves reach out to give us an update.

Which is exactly what happened when [Jakob Krantz] recently wrote in to get us up to speed on this incredible open source rover project. We first saw this 3D printed Curiosity inspired robot a little less than a year ago, and at that point it was essentially just a big box with the distinctive NASA rocker-bogie suspension bolted on. Now it not only looks a lot closer to the Martian rovers that inspired it, but it’s also learned a number of new tricks that really take this project to the next level.

The articulated head and grabber arm don’t just help sell the Curiosity look, they’re actually functional. [Jakob] notes that he doesn’t have kinematics integrated yet, so moving the arm around is more for show than practical application, but in the future it should be able to reach out and grab objects. With the new cameras in the head, he’ll even be able to get a first person view of what he’s picking up.

Last year [Jakob] was using a standard RC transmitter to drive the rover around, but he’s since put together a custom controller that’s truly a thing of beauty. It uses an ESP32 and LoRa module to communicate with matching hardware inside the rover, as well as a smartphone clipped onto the top that’s displaying telemetry and video over WiFi. The controller is actually its own separate project, so even if you aren’t in the market for a scaled down Mars rover, its controller could come in handy for your next robotics project.

Presumably the multi-mission radioisotope thermoelectric generator (MMRTG) on the back of the rover is just pretend….but with this guy, we’re not so sure. Give him another year, and who knows.

BlueRetro Is The Ultimate Console Controller Adapter

Retro consoles are great fun, packed with classic games and plenty of nostalgia. However, they also lack the polish and ergonomics of more modern hardware. Serious gamers will often find their original gamepads wearing out, too. A solution to all these problems and more is BlueRetro.

BlueRetro is a Bluetooth controller adapter for a wide variety of vintage console platforms. Developed by [Jacques Gagnon], it uses an ESP32 for its powerful wireless capabilities. One core of the ESP32 is used to speak Bluetooth and handle controller interfacing, while the other processor core handles speaking to the attached console.

The level of attention to detail is where this project really shines. [Jacques] has implemented many advanced features, like mapping axes to buttons and vice versa – essential when swapping controllers across varied systems. The output of BlueRetro is a DB25 connector, which is then used with adapter cabling to hook up to the controller ports of various consoles. It’s even capable of emulating multitap adapters for up to 7-player action.

In a video, [Jacques] shows off the hardware in use with his collection of vintage consoles, hooked up on a shelf with an impressive A/V switcher setup. It’s clear that this is the build of a hacker that doesn’t skimp on doing things the right way. We’ve seen his work before too, with a tidy RGB input mod for CRT TVs. Video after the break.

Continue reading “BlueRetro Is The Ultimate Console Controller Adapter”