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?

An RP2040 Board Designed For Machine Learning

Machine learning (ML) typically conjures up ideas of fancy code requiring oodles of storage and tons of processing power. However, there are some ML models that, once trained, can readily be run on much more spartan hardware – even a microcontroller! The RP2040, star of the Raspberry Pi Pico, is one such chip up to the task, and [Arducam] have announced a board aiming to employ it to those ends – the Pico4ML.

The board goes heavy on the hardware, equipping the RP2040 with plenty of tools useful for machine learning tasks. There’s a QVGA camera on board, as well as a tiny 0.96″ TFT display. The camera feed can even be streamed live to the screen if so desired. There’s also a microphone to capture audio and an IMU, already baked into the board. This puts object, speech, and gesture recognition well within the purview of the Pico4ML.

Running ML models on a board like the Pico4ML isn’t about robust high performance situations. Instead, it’s intended for applications where low power and portability are key. If you’ve got some ideas on what the Pico4ML could do and do well, sound off in the comments. We’d probably hook it up to a network so we could have it automatically place an order when we yell out for pizza. We’ve covered machine learning on microcontrollers before, too – with a great Remoticon talk on how to get started!

Antique Map Of Paris With Modern Tech

There’s plenty to love about antiques, from cars, furniture, to art. While it might be a little bit of survivorship bias, it’s easy to appreciate these older things for superior quality materials, craftsmanship, or even simplicity. They are missing out on all of our modern technology, though, so performing “restomods” on classics is a popular activity nowadays. This antique map of Paris, for example, is made of a beautiful hardwood but has been enhanced by some modern amenities as well.

At first the creator of this project, [Marc], just wanted to give it some ambient lighting, but it eventually progressed over the course of two years to have a series of Neopixels hidden behind it that illuminate according to the current sun and moon positions. The Neopixels get their instructions from an ESP8266 which calculates these positions using code [Marc] wrote himself based on the current date. Due to the limitations of the ESP8266 it’s not particularly precise, but it gets the job done to great effect.

To improve on the accuracy, [Marc] notes that an ESP32 could be used instead, but we can give the ESP8266 a pass for now since the whole project is an excellent art installation even if it is slightly off on its calculations. If you need higher accuracy for tracking celestial objects, you can always grab a Raspberry Pi too.

An Open Source Smart Watch You’d Actually Wear

We’ve seen a number of open source smart watches over the years, and while they’ve certainly been impressive from a technical standpoint, they often leave something to be desired in terms of fit and finish. Exposed PCBs and monochromatic OLED displays might be fine for a trip to the hackerspace, but it wouldn’t be our first choice for date night attire.

Enter the Open-SmartWatch from [pauls_3d_things]. This ESP32 powered watch packs a gorgeous circular 240×240 TFT display, DS323M RTC, BMA400 three-axis accelerometer, and a 450 mAh battery inside of a 3D printed enclosure that can be produced on your average desktop machine. WiFi and Bluetooth connectivity are a given with the ESP32, but there’s also an enhanced edition of the PCB that adds another 4 MB of RAM, a micro SD slot, and a Quectel L96 GPS receiver.

The GPS edition of the PCB

As it’s an open source project you’re free to download the PCB design files and get the board produced on your own, but [pauls_3d_things] has actually partnered with LILYGO to do a run of the Open-SmartWatch electronics which you can pick up on AliExpress right now for just $24 USD. You’ll still need to order the battery separately and 3D print your own case, but it still seems like a pretty sweet deal to us.

On the software front, things are pretty basic right now. The watch can update the time from NTP using a pre-configured WiFi network, and there’s a Bluetooth media controller and stopwatch included. Of course, as more people get the hardware in their hands (or on their wrists, as the case may be), we’ll likely start seeing more capabilities added to the core OS.

While getting our own code running on commercially produced smartwatches holds a lot of promise, the Open-SmartWatch is arguably the best of both worlds. The partnership with LILYGO brings professional fabrication to the open hardware project, and the GPLv3 licensed firmware is ripe for hacking. We’re very excited to see where the community takes this project, and fully expect to start seeing these watches out in the wild once we can have proper cons again.

Continue reading “An Open Source Smart Watch You’d Actually Wear”

18650 Brings ESP8266 WiFi Repeater Along For The Ride

We’re truly fortunate to have so many incredible open source projects floating around on the Internet, since there’s almost always some prior art you can lean on. By combining bits and pieces from different projects, you can often save yourself a huge amount of time and effort. It’s just a matter of figuring out how all the pieces fit together, like in this clever mash-up by [bethiboothi] that takes advantage of the fact that the popular TP4056 lithium-ion battery charger module happens to be almost the exact same size of the ESP-01.

By taking a 3D printed design intended to attach a TP4056 module to the end of an 18650 cell and combining it with an ESP8266 firmware that turns the powerful microcontroller into a WiFi repeater, [bethiboothi] ended up with a portable network node that reportedly lasts up to three days on a charge. The observed range was good even with the built-in PCB antenna, but hacking on an external can get you out a little farther if you need it.

While it doesn’t appear that [bethiboothi] is using it currently, the esp_wifi_repeater firmware does have an automatic mesh mode which seems like it would be a fantastic fit for this design. Putting together an impromptu mesh WiFi network with a bunch of cheap battery powered nodes would be an excellent way to get network connectivity at an outdoor hacker camp, assuming the ESP’s CPU can keep up with the demand.

Totally Useless Coffee Dispenser Is Anything But

Good coffee is nice to have, sure, but frankly, caffeine is caffeine and we’ll take it any way we can get it. That includes freeze-dried, if that’s all you’ve got. We won’t judge anyone for their taste in caffeinated beverages, and to call this coffee dispenser ‘totally useless’ is just patently untrue. It clearly has a use, and even if you don’t like freeze-dried coffee, you could sacrifice one jar worth of Nescafe and fill it with Skittles or anything else that will fit in the little collector basket.

In this machine, the cup is the trigger — the 3D-printed plate underneath activates a micro switch embedded in the scrap wood base, and this triggers a micro:bit around back to actuate the stepper motor that twirls the collector basket around. Although [smogdog] has provided all the files, you’d have to come up with your own connector to suspend the thing over the cup and carve your own base.

We love it when we can see what a machine is doing, so not only is it useful, it’s beautiful. And it worked, at least for a little while. For some reason, it keeps burning out stepper motors. Check it out in proof-of-concept action after the break.

We’ve seen the Micro:bit do a lot, and this pinball machine is among the most fun.

Continue reading “Totally Useless Coffee Dispenser Is Anything But”

Honey, I Shrunk The Arduino Core

High-level programming languages do a great job of making a programmer’s job easier, but these languages often leave a lot of efficiency on the table as a compromise. While a common thought is to move into a lower-level language like assembly to improve on a program’s speed or memory use, there’s often a lot that can be done at the high level before resorting to such extremes. This, of course, is true of the Arduino platform as well, as [NerdRalph] demonstrates by shrinking the size of the Arduino core itself.

[NerdRalph] had noticed that the “blink” example program actually includes over 1 kB of extraneous code, and that more complicated programs include even more cruft. To combat this issue, he created ArduinoShrink, which seeks to make included libraries more modular and self-contained. It modifies some of the default registers and counters to use less memory and improve speed, and is also designed to improve interrupt latency as well by changing when the Arduino would otherwise disable interrupts.

While there are some limits to ArduinoShrink, such as needing to know specifics about the pins at compile time, for anyone writing programs for Arduinos that are memory-intensive or need improvements in timing, this could be a powerful new tool. If you’d prefer to go in the opposite direction to avoid ever having to learn C or assembly, though, you can always stick with running Python on your embedded devices.