To make my ESP32 ZX Spectrum touch keyboard work even better, I needed to ensure every key was independent. The ESP32-S3 only has 14 touch pins, so I’ve been using a matrix approach. While this works well, it struggles with key combinations, critical for the ZX Spectrum. I explored touch detection and experimented with analog multiplexer ICs (4051 series) to expand the touch pins. Initial tests were promising. After prototyping with breadboard-friendly versions and ordering parts, the new keyboard was not only functional but exceeded my expectations. Scanning the keyboard now takes around 20ms, and the solution is ready for...
Hey folks, I revisited my flame lamp project from 2020 and gave it a serious upgrade - we're talking a leap from 300 to a whopping 1024 LEDs thanks to these nifty flexible WS2812 panels. I've kitted it out with a versatile PCB from my Crystal Balls project, tackled power injection challenges and kept things cool with a current-limiting power supply. I had to wrestle with 3D printing and getting the panels to behave inside the lamp's tube, but the end result? A mesmerizing blaze of colors with gorgeous fire effect, all orchestrated by the WLED software. It's like my...
Just upgraded my basic AliExpress crystal balls with some tech wizardry - I've thrown in an ESP32-S3-MINI, a mic, and made them battery powered. Thanks to WLED software, they're now smart and responsive! Shared the KiCAD project for fellow tinkerers. Check out my video to see these balls in action!
In my latest DIY adventure, I explored nickel plating to harden PCBs at home. I was inspired by a slick resistor box design I found through EEVBlog, which had an incredibly cool switching technique but left the PCBs vulnerable to wear from contact scraping. Despite some initial mix-ups and challenges—like dealing with steel instead of pure nickel, using the wrong voltage, and dealing with contamination—my experiments led to some promising results. I even compared the scratch resistance of plated vs. original PCBs in a very informal test. I wrapped up by sharing some handy links for anyone eager to dive...
As an enthusiast of the ESP32-S3's versatility, I recognized the importance of understanding which pins are best to avoid. Inspired by the Random Nerds page for the classic ESP32, I've created a comprehensive pinout for the ESP32-S3 available on GitHub. The community's input is highly valued – suggestions and corrections are welcome to refine this resource into a dynamic guide for developers.
In a thrilling DIY endeavour, I attempted to build the most minimalist ESP32 dev board possible. Diving deep into the schematic of the ESP32 S3 WROOM module, I chopped out the non-essentials and whittled our needs down to bare bones. The experiment saw me juggling USB data lines and voltage regulators, waving goodbye to an array of capacitors and connectors and boldly embracing the simplicity of direct connections. Despite a few hitches, the miniature Frankenboard came alive, proving that sometimes less is more...at least in the world of microcontrollers.
In a fun-filled deep dive into a Philip's Hue Color light bulb, I disassembled, analyzed, and ultimately restored it to working order. Over the course of the hack, I dismantled the bulb’s interior, from the aluminum PCB to the tiny ICs on the logic board, gave a detailed breakdown of their functions and even reverse engineered the signals controlling the colors. Most of the colors worked out pretty well, except for the dodgy yellow. Also, I tried running the hacked bulb setup with my old Moonlamp project. It was a great challenge and an exciting journey!
In this blog post, I embarked on a fun project to create a DIY power bank using two 10,000mAh lithium cells I had lying around, and a charge control board. After some tinkering and tests, I learned that measuring power bank efficiency requires more than looking at amp-hours. With some help from a friend, I found out our power bank was actually over 93% efficient, a pretty fantastic result. Despite some challenges with certain devices not drawing their full potential power from my power bank, I concluded that while it was an enjoyable project, buying a ready-made power bank might...
This blog post reveals how you can salvage lithium cells from the many discarded, disposable vape devices that get littered in our towns and cities. With a pair of pliers and some bravery, I managed to rescue some decent batteries, which still had a good amount of power in them. However, with no in-built protection in these cells, I also demonstrated the importance of adding a battery protection board to ensure they are safe for use in various projects. Conclusively, through rummaging in the trash, I not only acquired useful components for my projects but also took a step towards...
This post provides a comprehensive guide to building a do-it-yourself (DIY) Alexa using an ESP32 and Wit.ai. It illustrates how to create a wake word detection system, use Python for machine learning and employ TensorFlow for the 'wake' word identification. It also covers the usage of Wit.ai for intent recognition and managing commands. The post is fully backed with code snippets, examples and video tutorials to deliver an interactive learning experience to readers.
I've successfully used addressable WS2811 LED strings and an ESP-CAM board to create an adjustable lighting system. The best part is that the image processing code can be duplicated in JavaScript which allows you to use a plain dev board to drive the LEDs instead of needing a camera on your ESP32 board. If you want to replicate this project, you'll need your own ESP32 dev board and some addressable LEDs. After figuring out the location of each LED in 2D space, it's easy to map from each LED's x and y location onto a pattern you want to show...
In this fun tech adventure, I successfully managed to sync my infrared receiver to my Raspberry Pi. This involved correctly wiring up my IR sensor, installing and setting up LIRC, and creating a new lirc config file. I explained each step in detail and shared my major milestones, which included seeing a list of pulses when the remote was pointed at the receiver. Now my Raspberry Pi is fully controlled by my remote.