Looks Like A Pi Zero, Is Actually An ESP32 Development Board

ATMegaZero ESP32- S2, showing optional color-coded 40-pin header (top)

The ATMegaZero ESP32-S2 is currently being funded with a campaign on GroupGets, and it’s a microcontroller board modeled after the Raspberry Pi Zero’s form factor. That means instead of the embedded Linux system most of us know and love, it’s an ESP32-based development board with the same shape and 40-pin GPIO header as the Pi Zero. As a bonus, it has some neat features like a connector for inexpensive SSD1306 and SH1106-based OLED displays.

Being able to use existing accessories can go a long way towards easing a project’s creation, and leveraging that is one of the reasons for sharing the Pi Zero form factor. Ease of use is also one of the goals, so the boards will ship with CircuitPython (derived from MicroPython), and can also be used with the Arduino IDE.

If a microcontroller board using the Pi Zero form factor looks a bit familiar, you might be remembering the original ATMegaZero which was based on the Atmel ATMega32U4, but to get wireless communications one needed to attach a separate ESP8266 module. This newer board keeps the ATMegaZero name and footprint, but now uses the Espressif ESP32-S2 to provide all the necessary functions.

CircuitPython has been a feature in a wide variety of projects and hacks we’ve seen here at Hackaday, and it’s a fine way to make a microcontroller board easy to use right out of the box.

Wireless MicroPython Programming With Thonny

I’ve been playing with a few MicroPython projects recently on several different embedded platforms, including a couple of ESP32 WiFi modules. There are various ways to program these modules:

  • Use a serial terminal and ampy (maintained by [devxpy] since being dropped by Adafruit in 2018).
  • If you use Pycom boards or WiFy firmware, there are the pymakr plugins for Atom and Visual Studio.
  • If you prefer the command-line like me, there is rshell by one of the top MicroPython contributors [Dave Hylands].

For over a year, I have been quite happy with rshell until I started working on these wireless nodes. Being lazy, I want to tinker with my ESP32 modules from the sofa, not drag my laptop into the kitchen or balcony to plug up a USB cable. Can’t I work with them wirelessly?

Well, you can use WebREPL. While its functional, it just didn’t strike my fancy for some reason. [Elliot] mentioned in a recent podcast that he’s using telnet to access his wireless nodes, but he’s using esp-link on an ESP8266, which means throwing another chip into the mix.

The Thonny IDE

I had all but given up when by chance I saw this video on the Dronebot Workshop channel about running MicroPython on the new Raspberry Pi Pico boards. Bill was using Thonny, a Python IDE that is popular in the education community. Thonny was introduced in 2015 by Aivar Annamaa of the University of Tartu in Estonia. Thonny was designed to address common issues observed during six years of teaching Python programming classes to beginners. If you read about the project and its development, you’ll see that he’s put a lot of effort into making Thonny, and it shows.

Leaning about Thonny got me curious, and after a little digging I discovered that it has WebREPL support for MicroPython right out-of-the-box. Although this is a new feature and classified as experimental, I found it reasonably stable to use and more than adequate for home lab use. Continue reading “Wireless MicroPython Programming With Thonny”

The Evil Crow Is Ready To Cause Some RF Mayhem

There’s no doubt that the RTL-SDR project has made radio hacking more accessible than ever, but there’s only so far you can go with a repurposed TV tuner. Obviously the biggest shortcoming is the fact that you can only listen to signals, and not transmit them. If you’re ready to reach out and touch someone, but don’t necessarily want to spend the money on something like the HackRF, the Evil Crow RF might be your ideal next step.

This Creative Commons licensed board combines two CC1101 radio transceivers and an ESP32 in one handy package. The radios give you access to frequencies between 300 and 928 MHz (with some gaps), and the fact that there are two of them means you can listen on one frequency while transmitting on another; opening up interesting possibilities for relaying signals. With the standard firmware you connect to a web interface running on the ESP32 to configure basic reception and transmission options, but there’s also a more advanced RFQuack firmware that allows you to control the hardware via Python running on the host computer.

Using the Evil Crow RF without a computer.

One particularly nice feature is the series of buttons located down the side of the Evil Crow RF. Since the device is compatible with the Arduino IDE, you can easily modify the firmware to assign various functions or actions to the buttons.

In a demonstration by lead developer [Joel Serna], the physical buttons are used to trigger a replay attack while the device is plugged into a standard USB power bank. There’s a lot of potential there for covert operation, which makes sense, as the device was designed with pentesters in mind.

As an open source project you’re free to spin up your own build of the Evil Crow RF, but those looking for a more turn-key experience can order an assembled board from AliExpress for $27 USD. This approach to hardware manufacturing seems to be getting popular among the open source crowd, with the Open-SmartWatch offering a similar option.

[Thanks to DJ Biohazard for the tip.]

An ESP32 Development Board For Sailors

[Matti Airas] wanted to have a better electronics platform for making his boat smarter, more connected, and safer. He found traditional marine electronics expensive and not suited for hacking and tinkering. There was also the issue of lack of interoperability between device generations from the same supplier and between different brands. This led him to design the Sailor Hat with ESP32 — a marine specific, open source hardware development board.

Applications include all kinds of sensor and control interfaces for the boat, such as measurement of fuel or water level, engine RPM, anchoring chain length counter, or setting up smart lighting or smart refrigeration control. The board is designed to work with the traditional NMEA 2000 standard, as well as with Signal K. NMEA 2000 is standardized as IEC 61162-3, but isn’t open source or free. Signal K, on the other hand, is free and open source, and can co-exist alongside NMEA 2000.

The marine environment can be pretty harsh with extremes of temperature, rain, humidity, condensation and vibration. Boats, just like automobiles, have a notoriously noisy electrical environment and [Matti] has paid special attention to noise and surge suppression throughout the board. The board can work with either 12 V or 24 V bus systems since the on board DC-DC converter is rated up to 32 V input. Connections between the board and the outside world need to be very robust, so it is designed to accept various types of connectors depending on how robust you want it to be.

The Sailor Hat is based around a standard ESP32-WROOM-32 module. Interfaces include a CAN bus transceiver, opto-coupled input and output, I2C, 1-wire and QWIIC interfaces, USB Micro-B programming conector, plus a couple of buttons and LEDs. All of the ESP32 GPIO pins are terminated on a GPIO header, with jumper options to disable terminations to the standard interfaces and instead route them to the GPIO header as needed. Additionally, there’s a generous prototyping area to add additional hardware to the board. Hardware design files are hosted on the project repository on GitHub.

On the software side, there are several frameworks that can be used, with PlatformIO, SensESP, ESPHome and Visual Studio Code being the recommended choices. Or you could use any of the widely available SDK’s for the ESP32 platform — Espressif SDK, Arduino Core for ESP32, MicroPython, NodeMCU or Rust.

[Matti]’s NMEA 2000 USB gateway example is a good way to get a grip on hardware assembly and software installation required to build a practical project using the Sailor Hat. The board is designed to withstand a harsh electrical environment. But it’s mechanical installation obviously requires greater care if it has to survive marine applications. The Sailor Hat can be installed in commonly available, 100x68x50 mm or larger plastic waterproof enclosures, rated for IP65 or higher. The bulkhead connectors and cable glands also need to be appropriately rated, and the enclosure may possibly need a IP68 rated ventilation plug to take care of environmental cycling within the enclosure.

Fertilizing Plants With A Custom 3D-Printed Pump

For all but the most experienced gardeners and botanists, taking care of the soil around one’s plants can seem like an unsolvable mystery. Not only does soil need the correct amount of nutrients for plants to thrive, but it also needs a certain amount of moisture, correct pH, proper temperature, and a whole host of other qualities. And, since you can’t manage what you can’t measure, [Jan] created a unique setup for maintaining his plants, complete with custom nutrient pumps.

While it might seem like standard plant care on the surface, [Jan]’s project uses a peristaltic pump for the nutrient solution that is completely 3D printed with the exception of the rollers and the screws that hold the assembly together. With that out of the way, it was possible to begin adding this nutrient solution to the plants. The entire setup from the pump itself to the monitoring of the plants’ soil through an array of sensors is handled by an ESP32 running with help from ESPHome.

For anyone struggling with growing plants indoors, this project could be a great first step to improving vegetable yields or even just helping along a decorative houseplant. The real gem is the 3D printed pump, though, which may have wider applications for anyone with a 3D printer and who also needs something like an automatic coffee refilling machine.

The Beat Goes On With This ESP32 Page Turner

Looking for a hands-free way to page through sheet music on an iPad, [The_Larch] came up with this simple Bluetooth input device based on the ESP32. The microcontroller just needed to have two switches wired into the GPIO pins, in this case the same heavy-duty plungers you’d find on a guitar pedal, and a USB bulkhead pass-through to provide power. Thanks to the excellent ESP32-BLE-Keyboard library, it only took a few lines of code to fire off the appropriate key strokes when the left or right button was pressed.

While undeniably a simple project from an electronics standpoint, the wooden enclosure [The_Larch] built is an interesting change of pace from the 3D printed fare we normally see around these parts. It started life as strips of oak reclaimed from an old kitchen table, which were laminated together to make a solid block. A large spade bit was then used to bore into the block to make a void for the electronics, and a second flat piece of oak was fashioned into a front panel.

Creating Bluetooth input devices with the ESP32 is so incredibly straightforward that we’re honestly a little surprised we don’t see the trick used more often. Especially when you consider all of the custom made keyboards that have graced these pages over the last couple of years. The tools are available for anyone who wants them, so you have to wonder if hackers just aren’t fond of using Bluetooth for something as important as a keyboard?

Remote Controlled Car Gets Active Suspension

Active suspensions are almost a holy grail for cars, adding so much performance gain that certain types have even been banned from Formula 1 racing. That doesn’t stop them from being used on a wide variety of luxury and performance cars, though, as they can easily be tuned on the fly for comfort or improved handling. They also can be fitted to remote controlled cars as [Indeterminate Design] shows with this electronic servo-operated active suspension system for his RC truck.

Each of the four servos used in this build is linked to the mounting point of the existing coilover suspension on the truck. This allows the servo to change the angle that the suspension is positioned while the truck is moving. As a result, the truck has a dramatic performance enhancement including a tighter turning radius, more stability, and the capability of doing donuts. The control system runs on an Arduino with an ESP32 to enable live streaming of data, and also includes an MPU6050 to monitor the position of the truck’s frame while it is in motion.

There’s a lot going on in this build especially with regard to the control system that handles all of the servos. Right now it’s only programmed to try to keep the truck’s body relatively level, but [Indeterminate Design] plans to program several additional control modes in the future. There’s a lot of considerations to make with a system like this, and even more if you want to accommodate for Rocket League-like jumps. Continue reading “Remote Controlled Car Gets Active Suspension”