Swapping Vinyl For Cardboard With This ESP32 Turntable

Cardboard is a surprisingly durable material, especially in its corrugated form. It’s extremely lightweight for its strength, is easy to work, can be folded and formed into almost any shape, is incredibly inexpensive, and when it has done its duty it can be recycled back into more paper. For these reasons, it’s often used in packaging material but it can be used to build all kinds of things outside of ensuring that products arrive at their locations safely. This working cardboard record player is one example.

While the turntable doesn’t have working records in the sense that the music is etched into them like vinyl, each has its own RFID chip embedded that allows the ESP32 in the turntable’s body to identify them. Each record corresponds to a song stored on an SD card that instructs the ESP32 to play the appropriate song. It also takes care of spinning the record itself with a small stepper motor. There are a few other details on this build that tie it together too, including a movable needle arm held on with a magnet and a volume slider.

As far as a building material goes, cardboard is fairly underrated in our opinion. Besides small projects like this turntable, we’ve also seen it work as the foundation for a computer, and it even has the strength and durability to be built into a wall or even used as shelving material. And, of course, it’s a great material to use when prototyping new designs.

Continue reading “Swapping Vinyl For Cardboard With This ESP32 Turntable”

screenshot of the code defining a hid descriptor by using essentially macros for common descriptor types

Coupling STM32 And Linux? Consider HID Over I2C

If you’re pairing a tiny Linux computer to a few peripherals — perhaps you’re building a reasonably custom Pi-powered device — it’s rightfully tempting to use something like an STM32 for all your low-level tasks, from power management to reading keyboard events.

Now, in case you were wondering how to tie the two together, consider HID over I2C, it’s a standardized protocol with wide software and peripheral support, easily implementable and low-power. What’s more, [benedekkupper] gives you an example STM32 project with a detailed explanation on how you too can benefit from the protocol.

There are several cool things about this project. For a start, its code is generic enough that it will port across the entire STM32 lineup nicely. Just change the pin definitions as needed, compile it, flash it onto your devboard and experiment away. Need to change the descriptors? The hid-rdf library used lets you define a custom descriptor super easily, none of that building a descriptor from scratch stuff, and it even does compile-time verification of the descriptor!

The project has been tested with a Raspberry Pi 400, and [benedekkupper] links a tutorial on quickly adding your I2C-HID device on an Linux platform; all you need is DeviceTree support. Wondering what’s possible with HID? We’ve seen hackers play with HID aplenty here, and hacking on the HID standard isn’t just for building keyboards. It can let you automate your smartphone, reuse a laptop touchpad or even a sizeable Wacom input surface, liberate extra buttons on gamepads, or build your own touchscreen display.

Showing a Raspberry Pi 4 board connected to an ESP32 devboard using jumper wires for the purposes of this project

ESP-Hosted Turns ESP32 Into Linux WiFi/BT Adapter

While we are used to USB WiFi adapters, embedded devices typically use SDIO WiFi cards, and for good reasons – they’re way more low-power, don’t take up a USB port, don’t require a power-sipping USB hub, and the SDIO interface is widely available. However, SDIO cards and modules tend to be obscure and proprietary beyond reason. Enter ESP-Hosted – Espressif’s firmware and driver combination for ESP32 (press release)(GitHub), making your ESP32 into a WiFi module for either your Linux computer (ESP-Hosted-NG) or MCU (ESP-Hosted-FG). In particular, ESP-Hosted-NG his turns your SPI- or SDIO-connected ESP32 (including -S2/S3/C2/C3/C6 into a WiFi card, quite speedy and natively supported by the Linux network stack, as opposed to something like an AT command mode.

We’ve seen this done with ESP8266 before – repurposing an ESP8089 driver from sources found online, making an ESP8266 into a $2 WiFi adapter for something like a Pi. The ESP-Hosted project is Espressif-supported, and it works on the entire ESP32 lineup, through an SDIO or even SPI interface! It supports 802.11b/g/n and even Bluetooth, up to BLE5, either over an extra UART channel or the same SDIO/SPI channel; you can even get BT audio over I2S. If you have an SPI/SDIO port free and an ESP32 module handy, this might just be the perfect WiFi card for your Linux project!

There are some limitations – for instance, you can’t do AP mode in the NG (Linux-compatible) version. Also, part of the firmware has blobs in it, but a lot of the firmware and all of the driver are modifiable in case you need your ESP32 to do even more than Espressif has coded in – this is not fully open-source firmware, but it’s definitely way more than the Broadcom’s proprietary onboard Raspberry Pi WiFi chip. There’s plenty of documentation, and even some fun features like raw transport layer access. Also, of note is that this project supports ESP32-C6, which means you can equip your project with a RISC-V-based WiFi adapter.

Title image from [zhichunlee].

ESP32 Brings New Features To Classic Geiger Circuit

There’s no shortage of Geiger counter projects based on the old Soviet SBM-20 tube, it’s a classic circuit that’s easy enough even for a beginner to implement — so long as they don’t get bitten by the 400 volts going into the tube, that is. Toss in a microcontroller, and not only does that circuit get even easier to put together and tweak, but now the features and capabilities of the device are only limited by how much code you want to write.

Luckily for us, [Omar Khorshid] isn’t afraid of wrangling some 0s and 1s, and the result is the OpenRad project. In terms of hardware, it’s the standard SBM-20 circuit augmented with a LILYGO ESP32 development board that includes a TFT display. But where this one really shines is the firmware.

With the addition of a few hardware buttons, [Omar] was able to put together a very capable interface that runs locally on the device itself. In addition, the ESP32 serves up a web page that provides some impressive real-time data visualizations. It will even publish its data via MQTT if you want to plug it into your home automation system or other platform.

Between the project’s Hackaday.io page and GitHub repository, [Omar] has done a fantastic job of documenting the project so that others can recreate it. That includes providing the schematics, KiCad files, and Gerbers necessary to not only get the boards produced and assembled, but modified should you want to adapt the base OpenRad design.

This project reminds us of the uRADMonitor, which [Radu Motisan] first introduced in 2014 to bring radiation measuring to the masses. This sort of hardware has become far more accessible over the last decade, bringing the dream of a globally distributed citizen-operated network of radiation and environmental monitors much closer to reality.

Continue reading “ESP32 Brings New Features To Classic Geiger Circuit”

ESP32 Powers Single-PCB ZX Spectrum Emulator

When word first got out that the Chinese board houses were experimenting with full color silkscreens, many in our community thought it would be a boon for PCB art. Others believed it would be akin to cheating by removing the inherent limitations of the medium. That’s not a debate that will be solved today, but here we have an example of a project that’s not only making practical application of the technology, but one that arguably couldn’t exist in its current form without it: a single-PCB ZX Spectrum emulator developed by [atomic14].

There basics here are, well, they’re pretty basic. You’ve got an ESP32-S3, a TFT display, a micro SD slot, and the handful of passives necessary to tie them all together. What makes this project stand out is the keyboard, which has been integrated directly into the PCB thanks to the fourteen pins on the ESP32-S3 that can be used as touch sensor input channels. There are issues with detecting simultaneous keypresses, but overall it seems to work pretty well.

Continue reading “ESP32 Powers Single-PCB ZX Spectrum Emulator”

ESP32 Powered Crunch-E Makes Beats On The Go

There’s no shortage of devices out there for creating electronic music, but if you’re just looking to get started, the prices on things like synthesizers and drum machines could be enough to give you second thoughts on the whole idea. But if you’ve got a well stocked parts bin, there’s a good chance you’ve already got most of what you need to build your own Crunch-E.

A Crunch-E built from stacked modules

Described by creator [Roman Revzin] as a “keychain form factor music-making platform”, the Crunch-E combines an ESP32, an MAX98357 I2S audio amplifier, an array of tactile buttons, and a sprinkling of LEDs and passives. It can be built on a perfboard using off-the-shelf modules, or you can spin up a PCB if you want something a bit more professional. It sounds like there’s eventually going to be an option to purchase a pre-built Crunch-E at some point as well.

But ultimately, the hardware seems to be somewhat freeform — the implementation isn’t so important as long as you’ve got the major components and can get the provided software running on it.

The software, which [Roman] is calling CrunchOS, currently provides four tracks, ten synth instruments, and two drum machine banks. Everything can be accessed from a 4 x 4 button array, and there’s a “cheat sheet” in the documentation that shows what each key does in the default configuration. Judging by the demo video below, it’s already an impressively capable platform. But this is just the beginning. If everything goes according to plan and more folks start jamming on their own Crunch-E hardware, it’s not hard to imagine how the software side can be expanded and adapted over time.

Over the years we’ve seen plenty of homebrew projects for producing electronic music, but the low-cost, simple construction, and instant gratification nature of the Crunch-E strikes us as a particularly compelling combination. We’re eager to see where things develop from here.

Continue reading “ESP32 Powered Crunch-E Makes Beats On The Go”

The End Of BLHeli_32: Long Live AM32?

An essential part of drones are the Electronic Speed Controller (ESC) which translate the commands from the flight computer into responses by the connected brushless motors (generally BLDCs). As the ESC determines a lot of the performance characteristics of a drone, it has its own firmware, which for (FPV) drones is overwhelmingly BLHeli, specifically the 32-bit version (BLHeli_32). Now the Norwegian company (BLHeli AS) behind this closed source firmware has thrown in the towel, citing illegal use of its firmware by sanctioned countries like Russia for purposes like warfare. This news and its implications are covered in detail in a video by the [Mads Tech]  YouTube channel, including the message sent to customers by the company’s lawyer.

So far the GitHub repository is still online, featuring binary images for BLHeli_32, as well as the open source BLHeli (8-bit Atmel/Silabs) firmware and BLHeli_S (multirotor 8-bit Silabs) firmware. Due to the open source nature of these earlier projects forks already exist, such as BlueJay for BLHeli_S, and with the AM32 project there is an open source 32-bit ESC alternative. For 8-bit platforms it would thus seem that even with BLHeli_32 vanishing there is no impact at all, while for 32-bit platforms AM32 seems to be largely a drop-in solution.

Regardless of the reasons behind BLHeli_32 vanishing like this, the community and businesses can now hopefully move their (financial) support over to the AM32 project, making this more of a blip than an outright disaster for those who are into their high-end multicopter drones.

Thanks to [Frank Zhao] for the tip.

Continue reading “The End Of BLHeli_32: Long Live AM32?”