ESP32 Hosts SolarPunk Message Board

Solarpunk is sometimes thought of as the “good ending” to cyberpunk– there’s technology, but it’s community-focused instead of in the hands of evil conglomerates, and– if the name doesn’t give it away– renewably powered. [Victor Frost] found that image of the future inspiring enough to create this ESP32-hosted community hub. Yes, it looks like a lantern, but it’s actually a very-local webserver.

It looks like a lantern, but it’s got a server inside. Plus two 18650 cells to charge from a solar panel that’s presumably off-camera.

Local webserver sounds like an oxymoron, but this device does serve a page over HTTP… just, not on the world-wide web. Instead the only way to access it is via its own Wireless Network– he’s using the ‘captive portal’ that forces you to log into public wifi to direct people to a community message board.

It’s unmoderated, and unfiltered– users can post what they like, but given that they have to be within a few meters of the device, it’s not exactly anonymous. It’s a lot like the community center corkboard brought into the 21st centruy, which is very in keeping with the solarpunk ethos.

For ease of updates, he’s subdivided the ESP32’s flash into three partitions: one for the data, and two for the software, using LittleFS. This allows live updates and keeping a known-good backup for the quickest possible turnaround and/or rollback. One interesting thing is that his who UI– the actual web site, HTML, CSS, and JS– is all crammed into a single string in PROGMEM rather than files on the little file system. It’s an interesting choice, and makes for quick updates, firmware and UI in one go. Not everyone will like it, but it works for [Victor]. The code is, of course, on GitHub under the GPL— there’s a lot of overlap between the open source and solarpunk ethos, after all.

It’s a bit of a pity that he missed our Green Powered Challenge, as this project would have fit right in to the PV category, considering it runs on a 6W panel. For all the cyberpunk and solar power you see on this website, you’d think the “solarpunk” tag would be more popular, but no– all we have is this stained-glass robot.

Thanks to [Victor] for the tip! If you missed our contest, too, no worries– we take projects of all colours, green or otherwise, all the time. Just drop us a tip. 

Three-Axis Camera Slider From 3D Printer Parts

There’s a great reason 3D printers are made with things like extruded aluminum rails and other commodity, off-the-shelf parts. These things are designed not only for ease of construction and prototyping, but they’re also fairly strong especially given how modular they are. And they are excellent platforms for other projects as well. [CNCDan] has been using plenty of on-hand 3D printer parts to build a three-axis camera slider to film parts of his other projects, and this video documents his build and the latest upgrades to this platform.

After sorting out some issues with underpowered motors by improving their gear ratios, he found that many of the sizes and clearances on the existing platform changed enough that he needed to redo other parts of the carrier, including the mounting plate. He cut a new plate from steel and pressed bearings in, and then started putting together the other axes including a quick release mechanism for his camera. With a camera that weighs about 1.4 kg, getting the motors to move the camera smoothly was its own challenge. He re-worked all of his driver code over the course of a few weeks and eventually got his new system working much better than the original version.

With everything said and done, the camera slider can be controlled wirelessly with a GUI on another computer. Everything runs on an ESP32, and the slider can support other cameras besides his heavier one, including smartphones. He notes that this wasn’t the easiest way to build a project like this, but worked for him eventually because he had the parts and tools on hand to make it work. He’s also put the project files up on a GitHub page for anyone interested. Camera sliders like these have some niche uses as well; take a look at this high-speed camera slider for some examples.

Continue reading “Three-Axis Camera Slider From 3D Printer Parts”

This Handy Synth Packs An ESP32

Since the first electronic hobbyist wired up a multivibrator to a keyboard many decades ago, electonic synthesisers have been a staple of home-made projects. Now with the proliferation of significantly powerful microcontrollers it’s possible to make a synth that surpasses many of the high-end models from days gone by.

Among those we’ve seen of late perhaps none does this better than [Povle] with their Spark portable keyboard. It’s a tiny thing that reminds us of those little Casio synths of the 1980s, but in its 3D printed case it packs a load of features.

Hardware wise it’s an ESP32 with a 3D printed keyboard using keyswitches. There are a load of pots for sound adjustment, and buttons for functions. A small OLED display shows what’s going on. Software wise it relies upon the AMY synth library, and there are repositories for both its hardware and software.

There’s a demo video we’ve placed below, and in it you hear the keyboard at work. And here maybe we’ve saved the best until last, because alongside being a fully featured synth, it’s also a sampler and a Bluetooth MIDI keyboard. Is there nothing this thing can’t do!

Continue reading “This Handy Synth Packs An ESP32”

Compact Calendar Display Reduces Phone Dependency

Phones can be distracting objects if you’re not an enlightened master of the mental arts. Even just reading an email or glancing at your calendar can get you caught up checking other apps and notifications and waste your time. [Paul Lagier] built a device to eliminate this problem by showing him critical information right on his desk.

The device is based around an off-the-shelf Waveshare ESP32 board which packs in a small 8×8 RGB LED matrix on one side. It’s a neat way to get an LED project up and running quickly, but [Paul] noted that it didn’t look that great out of the box. He had to experiment with some different solutions for diffusing the light, eventually wrapping the board in a 3D printed housing with a black grid to separate the light output from each LED to make a clear pixelated display.

The ESP32’s wireless connectivity comes in handy, because it’s able to query web services for [Paul’s] calendar and other useful data. The user interface is minimal—you merely flip the housing into a different orientation to display different information, relying on the onboard QMI8658 6-axis sensor. The main display shows [Paul’s] calendar in 15 minute blocks so he can keep track of meetings without having to open his phone. Shaking the device in this mode will display the events as scrolling text. There’s also an ambient mode that looks pretty, and a pairing mode for setting up the wireless connectivity.

The great thing about modern electronic hardware is that it’s very easy to produce productivity aids like this to suit your own lifestyle.

Continue reading “Compact Calendar Display Reduces Phone Dependency”

ESP32Synth : An Audio Synthesis Library For The ESP32

With MCUs becoming increasingly more powerful it was only a matter of time before they would enable some more serious audio-processing tasks. [Danilo Gabriel]’s ESP32Synth library is a good example here, which provides an ESP-IDF based 80+ voice mixing and synthesis engine. If you ever wanted to create a pretty impressive audio synthesizer, then all you really need to get started is an ESP32, ESP32-S3 or similar dual-core Espressif MCU that has the requisite processing power.

Audio output goes via I2S, requiring only a cheap I2S DAC like the UDA1334A or PCM5102 to be connected, unless you really want to use the internal DAC. With this wired up you get 80 voices by default, with up to 350 voices demonstrated before the hardware cannot keep up any more. You can stream multiple WAV files from an SD card for samples along with the typical oscillators like sinewave, triangle, sawtooth and pulse, as well as noise, wavetables and more.

In order to make this work in real-time a number of optimizations had to be performed, such as the removal of slow floating-point and division operations in the audio path. The audio rendering task is naturally pinned to a single core, leaving a single core for application code to use for remaining tasks. While the code is provided as an Arduino project, it uses ESP-IDF so it can likely be used for a regular ESP-IDF project as well without too much fuss.

A Solar Powered Plant Monitor That Almost Works

Keeping plants alive is easy if you’re diligent and never forget to check on your green friends. However, a little electronic help never hurts. To that end, [Narrow Studios] built a simple solar powered monitor to assist in plant maintenance, and it mostly does the job.

An ESP32-C3 development board serves as the brains of the operation. It’s set up with a capacitive soil moisture sensor, a great choice because they tend to last longer than other types. Power is courtesy of a small lithium-polymer battery and a solar panel, which keeps everything running off the juice from interior lighting alone. SK6812 addressable LEDs are used to show current soil moisture status. To avoid excessively draining the batteries with the limited power available, a HCSR505 PIR motion sensor is used to only light the status LEDs if the device detects someone in the vicinity.

There were some issues in the build. The voltage regulator doesn’t supply enough current to enable the ESP32 to jump on WiFi, so soil dryness indication is via LED only. The solar setup is a little weak, too. Still, the project was a great learning experience and with a few mods, would be even more capable.

We’ve featured some great plant monitors over the years, like this Hackaday Prize entry from 2023.

Continue reading “A Solar Powered Plant Monitor That Almost Works”

ESP32 Hosts A Public Website

If you wanted to host a website, you could use any one of a number of online services, or spin up a server on a spare computer at home. If you’re a bit more daring, you could also do what [Tech1k] did, and run one on an ESP32 microcontroller.

The site in question is available (or at least, should be) at HelloESP.com. The first revision ran entirely on an ESP32, serving pages from a SPIFFS filesystem. The device was also fitted with a BME280 environment sensor and an OLED screen. It had an uptime of 500 days before the board failed.

The site has since been relaunched, running on a board that is framed on [Tech1k]’s wall. It runs on an ESP32-WROOM-32D, paired with a BME280 again, along with a CCS811 CO2 and air quality sensor and a DS3231 RTC for accurate timekeeping. The ESP32 is setup to hold an outbound WebSocket to a Cloudflare worker, with the Worker routing HTTP requests to the site via that route. This avoids the need for port forwarding for the ESP32 to be visible to the outside world, and the Cloudflare Worker will also serve a static version of the page in the case of WiFi dropouts or other temporary failures.

It’s true that this isn’t a completely unheard of project—microcontrollers have been working as simple web servers for a long time now. Still, [Tech1k] did a great job of making this as robust as possible and more like a real functional webserver rather than just something that runs on a local network to serve up a config page. That’s worthy of note.

You can run webservers on all kinds of chips these days, even the Raspberry Pi Pico. If you’re doing web stuff on something weird, you know we always wanna hear about it on the tipsline!