Build Your Own Supercomputer with ESP32s

If the computer you have isn’t particularly fast, there’s a well-documented way to get more out of it. You just need more of the same computer, and you can run your tasks on them all at the same time. Building computer clusters is an effective way of decreasing the time it takes for computers to solve certain problems, even if the computers themselves aren’t top-of-the-line hardware. Of course, with cheap enough hardware, people will build clusters out of just about anything, including the ESP32.

For this project, [Wei Lin] admits that this isn’t really a serious attempt at building speedy hardware, but rather an interesting exercise in creating a cluster as a sort of learning experience. ESP32 boards can be found for around $10 so building an experimental cluster with these is even more feasible than using the Raspberry Pi. [Wei Lin] goes into a great amount of detail on his GitHub page about all of his goals with the project, most of which involve exploring the functionality of the new cluster and its underpinnings.

While this might seem like little more than a thought experiment, it does have the advantage of being a great solution for problems that involve gathering data from points that are physically very far from one another. If you’ve ever been interested in parallel computing or computing clusters, this is a great project to check out. If you have more Raspberry Pis on hand than ESP32s and still want to build a cluster, check out this project that used a mere 750 of them for one.

 

Emulating OBD-II on the ESP32

It used to be that you could pop the hood and with nothing more than flat head screwdriver, some baling wire, and tongue held at the optimal angle, you could fix anything that ailed your car. But today, for better or for worse, the average automobile is a rolling computer that runs on gasoline and hope (if it even still has a gasoline engine, that is). DIY repairs and maintenance on a modern car is still possible of course, but the home mechanic’s toolbox has needed to evolve with the times. If you want to do anything more advanced than changing a tire, you’ll really want to have the gear to interface with the vehicle’s computer via the OBD-II port.

But for some, even that isn’t enough. [limiter121] recently wrote in to tell us of an interesting project which doesn’t read the OBD-II port in a vehicle, but actually emulates one. Like so many others this hack was born out of necessity, as a way to test an OBD-II project without having to sit out in the driveway all day. It allows you to create fictitious speed and engine RPM values for the OBD-II device or software under test to read, complete with a slick web interface to control the “car”.

So what makes it tick? Surprisingly little, actually. At the most basic level, an ESP32-WROOM-32 is connected up to a SN65HVD230 CAN transceiver chip. You’ll also need a 3.3V power supply, as well as a USB to serial adapter to do the initial programming on the ESP32. From there it’s just a matter of compiling and flashing the code [limiter121] has made available in the GitHub repo.

If you’re wondering if such products don’t already exist on the commercial market, they do. But like so many other niche projects, the price is a bit hard to swallow for the home hacker. Compared to the nearly $300 USD list price of commercial offerings such as the Freematics OBD-II Emulator, building one of these ESP32 based emulators should only cost you around $20.

Unless you’re developing an OBD-II reader, you probably don’t have much use for an OBD-II emulator. But this project could still be useful for anyone who wants to learn more about OBD from the comfort of their couch.

Monitor Foot Traffic Using Radio

We talk a lot about information security around here, but in reality it’s not at the forefront of everyone’s minds. Most people are content to walk around with their phones constantly looking for WiFi or Bluetooth connections despite the dangers. But if you’re not a black hat sort of person, you can do something like [Verkehrsrot] did and use all of these phones to do something useful and harmless.

[Verkehrsrot]’s project involves building a radio listening device in order to get an estimate of the amount of traffic in a particular area. The device polls for and detects WiFi and Bluetooth devices nearby and tallies them. For the privacy-minded, it doesn’t persistently store any information about the people or the devices that it detects. The project also runs on a variety of platforms, although you can get the whole thing up and running with little more than an ESP32 and a small lithium-ion battery.

If you’re looking for a useful way to tally the number of people in a given area, this project could be the thing for you. Not everyone keeps their WiFi and Bluetooth turned on, but even so this is still a good way to estimate. But if you need to count everyone going into a room, for example, you’ll need another way to count them.

Yellow Robot Wheels Rolling Out

Small wheeled robots are great for exploring robotics and it’s easier than ever to get started, thanks to growing availability and affordability of basic components. One such component is a small motorized wheel assembly commonly shown when searching for “robot wheel”: a small DC motor mounted in a gearbox to drive a single plastic wheel (inevitably yellow) on which a thin rubber tire has been mounted for traction. Many projects have employed these little motor + gearbox + wheel modules, such as these three entries for 2018 Hackaday Prize:

BoxBotics takes the idea of an affordable entry point and runs with it: build robot chassis for these wheels out of cardboard boxes. (Maybe even the exact box that shipped the yellow wheels.) Cardboard is cheap and easy to work with, making cardboard projects approachable to any creative mind. There will be an audience for something like a Nintendo Labo for robotics, and maybe BoxBotics will grow into that offering.

Cing also intends to make a friendly entry point for robotics and they offer a different chassis solution. Instead of cardboard, they use a circuit board. The yellow gearbox is mounted directly to the main circuit board making it into the physical spine, along with its copper traces serving as the spinal cord of the robot. While less amenable to mechanical creativity than BoxBotics, Cing’s swappable modules might be a better fit for those interested in exploring electronics.

ROS Starter Robot caters to those who wish to go far beyond simple “make it move” level of robot intelligence. It aims to lower the barrier to enter the world of ROS (robot operating system) which has historically been the domain of very capable (but also very expensive) research-oriented robots. This project could become the bridge for aspiring roboticists who wish to grow beyond hobbyist level software but can’t justify the cost typical of research level hardware.

All three of these projects take the same simple motorized wheel and build very different ideas on top of them. This is exactly the diversity of ideas we want to motivate with the Hackaday Prize and we hope to see great progress on all prize contestants in the month ahead.

Software Defined Television on an ESP32

Composite video from a single-board computer? Big deal — every generation of Raspberry Pi has had some way of getting composite signals out and onto the retro monitor of your choice. But composite video from an ESP32? That’s a thing now too.

There are some limitations, of course, not least of which is finding a monitor that can accept a composite input, but since [bitluni]’s hack uses zero additional components, we can overlook those. It really is as simple as hooking the monitor up to pin 25 and ground because, like his recent ESP32 AM radio station, the magic is entirely in software. For video, [bitluni] again uses his I²S tweaks to push a lot of data into the DAC really fast, reproducing the sync and image signals in the 0-1 volt range of the PAL composite standard. His code also supports the NTSC standard, but alas because of frequency limitations in the hardware it’s monochrome only for both standards, at least for now. He’s also got a neat trick to improve performance by running the video signal generation and the 3D-rendering on separate cores in the ESP32. Check out the results in the video below.

It looks like the ESP32 is getting to be one of those “Is there anything it can’t do?” systems. Aside from radio and video, we’ve seen audio playback, vector graphics, and even a Basic interpreter easter egg.

Continue reading “Software Defined Television on an ESP32”

Handheld GPS Tracks All The Things

With a GPS on every smartphone, one would be forgiven for forgetting that handheld GPS units still exist. Seeking to keep accurate data on a few upcoming trips, [_Traveler] took on a custom-build that resulted in this GPS data logger.

Keeping tabs on [_Traveler] is a Ublox M8N GPS which is on full-time, logging data every 30 seconds, for up  to 2.5 days. All data is saved to an SD card, with an ESP32 to act as a brain and make downloading the info more accessible via WiFi . While tracking the obvious — like position, speed, and time — this data logger also displays temperature, elevation, dawn and dusk, on an ePaper screen which is a great choice for conserving battery.

The prototyping process is neat on this one. The first complete build used point-to-point soldering on a protoboard to link several breakout modules together. After that, a PCB design embraces the same modules, with a footprint for the ESP’s castellated edges and header footprints for USB charing board, SD card board, ePaper, etc. All of this finds a hope in a 3D printed enclosure. After a fair chunk of time coding in the Arduino IDE the logger is ready for [_Traveler]’s next excursion!

As far as power consumption in the field, [_Traveler] says the GPS takes a few moments to get a proper location — with the ESP chewing through battery life all the while — and plans to tinker with it in shorter order.

Not all GPS trackers are created equal: sometimes all you need is a stripped-down tracker for your jog, or to know exactly where every pothole is along your route.

[Via /r/electronics]

Laser Galvo Control via Microcontroller’s DAC

Mirror galvanometers (‘galvos’ for short) are the worky bits in a laser projector; they are capable of twisting a mirror extremely quickly and accurately. With two of them, a laser beam may be steered in X and Y to form patterns. [bdring] had purchased some laser galvos and decided to roll his own control system with the goal of driving the galvos with the DAC (digital to analog) output of a microcontroller. After that, all that was needed to make it draw some shapes was a laser and a 3D printed fixture to hold everything in the right alignment.

The galvos came with drivers to take care of the low-level interfacing, and [bdring]’s job was to make an interface to translate the 0 V – 5 V output range of his microcontroller’s DAC into the 10 V differential range the driver expects. He succeeded, and a brief video of some test patterns is embedded below.

Continue reading “Laser Galvo Control via Microcontroller’s DAC”