AN ESP32 Walkie-Talkie, For Those Spy Radio Moments

One of the most thrilling childhood toys for the adventurous 1970s or 1980s kid was probably the toy walkie-talkie. It didn’t matter that they were a very simple AM low-end-VHF radio with a range of about 500m and a Morse key of debatable utility, you could talk clandestinely with your friends, and be a more convincing spy, or commando, or whatever was the game of the moment. It’s a memory conjured up for grown-ups by [Chris G] with his ESP32 walkie-talkie, which replaces a shaky 49MHz connection with one a bit more robust through the magic of WiFi.

The hardware is a collection of modules on a custom PCB, aside from the ESP32 there’s an I2S microphone and I2S audio amplifier, which along with battery and speaker are housed in a neat 3D printed case. I2S is used for simplicity, but there is no reason why analogue components couldn’t be used with a few code changes. Connection is made via UDP over a WiFi network, or should there be no network via ESP-NOW. We’re not sure the range will be brilliant with those little on-board chip antennas, but with the wide range of 2.4GHz antennas to be had it’s likely a better result could easily be achieved if the stock item disappoints.

We like this project, and it’s one that’s especially pleasing to see given that we saw the potential a few years ago in a less successful walkie-talkie using the ESP8266.

USB Comes To The ESP32

Since the ESP8266 came on the scene a few years ago and revolutionized the way microcontrollers communicate with other devices, incremental progress on this chip has occurred at a relatively even pace. First there was the realization that code could be run on the chip itself. Next the ESP32 was released which built more on that foundation. The next step in that process of improvement may be here now as well, with this project which turns the ESP32 into a USB host.

USB is not a native feature on all microcontrollers or even Arduino-compatible boards. While some do have it built in like those based on the 32u4 for example, most either don’t have it at all or rely on a separate on-board chip to do some form of translating. The ESP32 is lacking this advanced feature so the USB needs to be cobbled together from scratch if you want this specific board to be able to interface directly with peripherals. This project does just that, allowing for four USB 1.1 devices to be connected directly to the ESP32 without a separate dedicated chip.

If you’ve been waiting for USB on this tiny, capable microcontroller this might be your chance to try it out. All of the project’s code is available on the project page. And, while it is limited in scope, it’s easily able to handle a keyboard or mouse. This might be a more cost-effective way of doing something like a KVM switch rather than doing it with three Arduinos.

 

The IEEE Builds A Smart Watch

It used to be that building your own watch was either a big project or it meant that you didn’t really care about how something looked on your wrist. But now with modern parts and construction techniques, a good-looking smart watch isn’t out of reach of the home shop. But if you don’t want to totally do it yourself, you can turn to a kit and that’s what [Stephen Cass] did. Writing in IEEE Spectrum, he took a kit called a Watchy and put it through its paces for you.

Watchy is an open source product that uses an ESP32, an E-ink display, and costs about $50. The display is 1.5 inches — good enough for a watch — and it has a real time clock, a vibration motor, an accelerometer, and four buttons. The whole thing runs on a 200 mAh lithium polymer battery. The charger is microUSB and you can also upload software to it using the usual Arduino tools.

However, [Stephen] found that none of the examples he tried would work at first. He found problems with the Mac software, but he also had problems under Windows. The answer? Switching to a Raspberry Pi seemed to work and once the watch was wiped clean, the Mac tools would work, too. It sounds like this isn’t a common problem, but he has to erase the watch with the Pi before each programming cycle.

Unlike a normal Arduino program, all the work in a typical Watchy program happens in setup() so the watch can mostly sleep and it updates the 200×200 typically just once a minute. As an example, [Stephan] wrote a watch face that uses an old Irish alphabet to tell time. He plans to add code to grab online data, too, and the phone has support for connecting wirelessly and parsing JSON to make tasks like that easier.

We always thought the EZ430-Chronos was a good-looking watch, but its screen is dated now. You can also pick up a lot of cheap import watches that can be hacked.

Inspire Dev Kit Drops Price Of MSLA Printer To Just $30

Over the last couple of years, we’ve seen massive price reductions on consumer 3D printers based on masked stereolithography (MSLA) technology. As the name implies, these machines use a standard LCD panel to selectively mask off the ultraviolet light coming from an array of LEDs. Add in a motorized Z stage, and you’ve got a simple and cheap way of coaxing UV resin into three dimensional shapes. These days, $200 USD can get you a turn-key MSLA printer with resolution far beyond the capabilities of filament-based FDM machines.

But [JD] still thinks we can do better. His project aims to produce a fully-functional MSLA printer for $30, and perhaps as low as $15 if manufactured in sufficient quality. He believes that by making high-resolution 3D printing more accessible, it will allow users all over the globe to bring their ideas to life. It’s no wonder he’s calling his machine the Inspire 3D Printer.

A test fixture for the LCD module.

This isn’t just some pie in the sky concept rolling around in [JD]’s head, either. You can order the Inspire Development Kit right now for just $30, though he makes it clear what you’ll receive isn’t quite a functional MSLA printer. By leveraging a common LCD module, the ESP32, and several 3D printed parts, he’s proven his price point for the kit is achievable; but there’s still plenty of work that needs to be done before the machine is ready for the general public.

For one thing, he’s still working the kinks out of the Z movement. The current design is 3D printed, but [JD] says he’s not quite happy with the amount of slop in the movement and is considering replacing the entire thing with the linear actuator from an optical drive. We’ve already seen these parts reused for accurately positioning lasers, so there’s certainly precedent for it. The firmware for the ESP32 is also in its infancy, and currently only allows the user to print from a selection of simple hard-coded shapes as a proof of concept.

We’ve seen DIY attempts at resin printers in the past, but they’ve often been based on more complex techniques involving projectors or UV lasers. Masked stereolithography is much more approachable for the home gamer, and projects like the Inspire 3D Printer show just how little it really takes to pull solid objects out of a puddle of goo.

Cycling Cadence Display With ESP32

Terry Pratchett once said “Wisdom comes from experience. Experience is often a result of lack of wisdom.” This is as true with technical skills as it is with the rest of life, and you won’t truly understand a specific topic unless you’ve struggled with it a bit. [publidave] wanted a simple wireless display for a bluetooth cycling cadence sensor, and soon found himself deep down the rabbit hole of Micropython and Bluetooth Low Energy on the ESP32.

[publidave] had converted his bicycle for indoor training during lockdown and winter, and realized he can’t use the guided training app and view his cadence simultaneously, so he needed a dedicated cadence display. Since [publidave] was comfortable with Python, he decided to give Micropython on the ESP32 ago. Bluetooth Low Energy can be rather confusing if you haven’t implemented it before, especially if good examples are hard to come by. In short, the ESP32 needs to find the sensor, connect to it, select the right service, and listen for the notifications containing the data. The data is then converted to RPM and displayed on a small OLED display. [publidave] does an excellent job of describing what exactly he did, highlighting the problems he encountered, and how he solved them.

In the end, he had a functional display, a good idea of what he would do differently next time, and a lot of additional knowledge and understanding. In our book that’s a successful project.

Since so much of the health related devices work with Bluetooth Low Energy, it could be handy to know the technology and how to interface with it. It would allow you to do things like unbrick a $2000 exercise bike,

Wireless, Low Power E-Ink Weather Gadget

Not that long ago, making a low-power and wireless weather display complete with an e-ink screen would have required a lot of work and almost certainly would have been larger than the device [Dmitry] created.

(1) Weather alert indicator, (2) Current temperature, (3) Humidity and wind, (4) 24-hour temperature graph, (5) 24-hour precipitation probably graph

His low power e-ink weather gadget takes advantage of one of the niftier developer boards out there to create a useful and slim device that does exactly what he needs and not a lick more. It’s fast to look up weather online, but not as fast as glancing at a display in a convenient location.

The board [Dmitry] selected is a LilyGO TTGO T5s, an ESP32-based board that integrates an e-ink display, which requires no power unless being updated. It has been loaded with just enough smarts to fetch weather information using the OpenWeather API, and update the display accordingly.

Powering up the WiFi to fetch an easily-parsed JSON file and update the display only once per hour means that a battery can provide months of runtime. As a bonus, the LilyGO board even includes the ability to charge the battery, making things awfully convenient.

The bill of materials is here and code for the device, including setup directions, is on the project’s GitHub repository. And if your tastes happen to run more towards the artistic than utilitarian, we have just the weather display for you.

Laser Galvos And An ESP32 Recreate Old-School Asteroids

Playing Asteroids now isn’t quite what it used to be when it came out 40 years ago. At the time, the vector-scan display was part of the charm; making do with an emulator running on a traditional raster display just doesn’t quite do it for purists. But if you manage to build your own laser-projector version of the game like [Chris G] did, you’re getting close to capturing some of the original magic of the game.

There’s a lot to unpack about this project, and the video below does a good job explaining it. Where the original game used a beam of electrons flashing inside a CRT to trace out each object in the game, [Chris] substituted an off-the-shelf two-axis galvanometer from eBay and a 5-mW laser LED. This can project a gamefield on a wall up to two meters on a side, far bigger than any version of the machine ever built. The galvos are driven by op-amp drivers and an SPI DAC on a custom PCB. And in comparison to the discrete logic chips and 6502 running the original game, [Chris] opted for an ESP32.

As interesting as the hardware for this is, the real story is in the software. [Chris] does an excellent job running through his design, making the bulk of the video feel like a master class in game programming. His software is from scratch — no emulations here. As such it doesn’t perfectly reproduce the original games — no flying saucers and no spaceship explosion animations (yet) — but when coupled with the laser vector display, it certainly captures the feel of the original.

Being devoted Asteroids fans from back in the day, this one really pushes our buttons. We’ve seen laser-based recreations of the game before, but this one makes us think we can finally afford to recapture the glory of our misspent youth.

Continue reading “Laser Galvos And An ESP32 Recreate Old-School Asteroids”