The Inner Machinations Of The Arduino Are An Enigma

Arduinos have been the microcontroller platform of choice for nearly two decades now, essentially abstracting away a lot of the setup and lower-level functions of small microcontrollers in favor of sensible IDEs and ease-of-use. This has opened up affordable microcontrollers to people who might not be willing to spend hours or days buried in datasheets, but it has also obscured some of those useful lower-level functions. But if you want to dig into them, they’re still working underneath everything as [Jim] shows us in this last of a series of posts about interrupts.

For this how-to, [Jim] is decoding linear timecodes (LTCs) at various speeds. This data is usually transmitted as audio, so the response from the microcontroller needs to be quick. To make sure the data is decoded properly, the first thing to set up is edge detection on the incoming signal. Since this is about using interrupts specifically, a single pin on the Arduino is dedicated to triggering an interrupt on these edges. The rest of the project involves setting up an interrupt service routine, detecting the clock signal, and then doing all of the processing necessary to display the received LTC on a small screen.

The project page goes into great detail about all of this, including all of the math that needs to be done to get it set up correctly. As far as general use of interrupts goes, it’s an excellent primer for using the lower-level functionality of these microcontrollers. And, if you’d like to see the other two projects preceding this one they can be found on the first feature about precision and accuracy, and the second feature about bitbanging the protocol itself.

ESP32 Adds Bluetooth To An IPod Nano

The iPod Nano was one of Apple’s masterworks, but it’s really tied down by its dependence on wired headphones. At least, that’s what [Tucker Osman] must have thought, as he spent an unreasonable amount of time designing a Bluetooth mod for the 3rd gen Nano. And it’s a thing of beauty — temperamental, brutally difficult to build, and fragile in use, but still beautiful. And while some purists try to keep their signal analog, [Tucker]’s coup d’etat is to intercept the iPod’s audio signal before the DAC chip, keeping the entire signal path digital to the Bluetooth speaker. Oh, and he also managed to make the volume and track skip buttons work, back across the wireless void.

Continue reading “ESP32 Adds Bluetooth To An IPod Nano”

This Pico-W IoT Starter Project Gets You Into Home Assistant Quick As A Flash

Many of us hacker types with some hardware knowledge and a smattering of embedded experience would like to get into home automation, but there can be quite a learning curve. If you’re looking for a hackable starting point; something to deploy, learn about and then later expand upon, then look no further than the PicoW Home Assistant Starter project from [Danilo Campos].

The project is based upon the arduino-pico core, which supports a whole pile of RP2040-based boards, so you don’t need to restrict yourself to the “official” Pico-W, so long as you have working networking, Wi-Fi or otherwise. Integration is provided by the arduino-home-assistant library, which acts as the bridge between your sensors and other widgets, MQTT, and thence the network beyond. Events and sensor data on the end-point are packaged up with MQTT and published out to the broker via the network provided, all for minimal initial effort. Once you’ve got the basic connectivity to your Home Assistant instance working, there are many code examples in the arduino-home-assistant GitHub page to give you a helping start to connect whatever tickles your fancy.

It turns out we’ve covered HA quite a bit on these fair pages, like for example, these sweet automated window blinds. Another hack uses load cells under the bed legs to detect if someone is in bed or not, and if this isn’t your thing, maybe your idea of a home assistant is a bit more like this one?

Custom Calculator Brings Us Back To The 70s

There are certain design aesthetics from every era that manage to survive the fads of their time and live throughout history. Ancient Greek architecture is still drawn upon for design inspiration in modern buildings, the mid-century modern style from the 60s still inspires various designs of consumer goods, and the rounded, clean looking cars from the 90s are still highly desirable qualities in automotive design. For electronics, though, we like this 70s-inspired calculator that [Aaron] recently built.

The calculator hearkens back to the days of calculators like the HP-29C with its large buttons and dot-matrix display. [Aaron] built the case out of various woods with a screen angled towards the user, and it uses a LCD display similar to those found in antique calculators. The brain of the calculator is an Arduino which fits easily into the case, and [Aaron] also built the keyboard from scratch with Cherry MX-style mechanical keys soldered together into a custom shape.

The software to run the calculator is fairly straightforward, but we are most impressed with the woodworking, styling, and keyboard design in this build. [Aaron] is also still ironing out some bugs with the power supply as it uses a DC-DC converter to power the device from a single lithium battery. For those who are more fond of early 2000s graphing calculators instead, be sure to take a look at this graphing calculator arcade cabinet.

Continue reading “Custom Calculator Brings Us Back To The 70s”

Water Level Sensor Does Not Use Water Level Sensor

When interfacing with the real world, there are all kinds of sensors available which will readily communicate with your microcontroller of choice. Moisture, pH, humidity, temperature, location, light, and essentially every other physical phenomenon are readily measured with a matching sensor. But if you don’t have the exact sensor you need, it’s sometimes possible to use one sensor as a proxy for another.

[Brian Wyld] needed a way to monitor the level of a remote body of water but couldn’t use a pressure or surface-level sensor, so he used a sensor typically intended for geolocation instead. This particular unit, an STM-type device with a built-in accelerometer, is attached to a rotating arm with a float at one end. As the arm pivots, the microcontroller reports its position and some software converts the change in position to a water level. It’s also paired with a LoRa radio, allowing it to operate off-grid.

Whether there is a design requirement to use an esoteric sensor to measure something more common, or a personal hardware limitation brought about by a shallow parts drawer, there’s often a workaround like this one that can accomplish the job. Whatever the situation, we do appreciate hacking sensors into other types of sensors just as much as anything else.

LoRa Air Quality Monitor Raises The Bar On DIY IoT

We’ve seen an incredible number of homebrew environmental monitors here at Hackaday, and on the whole, they tend to follow a pretty predicable pattern. An ESP8266 gets paired with a common temperature and humidity sensor, perhaps a custom PCB gets invited to the party, and the end result are some values getting pushed out via MQTT. It’s a great weekend project to get your feet wet, but not exactly groundbreaking in 2022.

Which is why we find the AERQ project from [Mircea-Iuliu Micle] so refreshing. Not only does this gadget pick up temperature and humidity as you’d expect, but its Bosch BME688 sensor can also sniff out volatile organic compounds (VOCs) and gases such as carbon monoxide and hydrogen. The datasheet actually claims this is the “first gas sensor with Artificial Intelligence (AI)”, and while we’re not sure what exactly that means in this context, it’s a claim that apparently warrants a price tag of $15+ USD a pop in single quantities.

There’s an AI hiding in there someplace.

But the fancy sensor isn’t the only thing that sets AERQ apart from the competition. Instead of a member of the ubiquitous ESP family, it’s using the Wio-E5, a relatively exotic STM32 package that integrates a long-range LoRa radio. [Mircea-Iuliu] has paired that with a Linx USP-410 chip antenna or, depending on which version of the four-layer PCB you want to use, a u.Fl connector for an external antenna. The whole thing is powered by a simple USB connection, and its Mbed OS firmware is setup to dump all of its collected data onto The Things Network.

All told, it’s a very professional build that certainly wouldn’t look out of place if it was nestled into some off-the-shelf air quality monitor. While the high-end detection capabilities might be a bit overkill for home use, [Mircea-Iuliu Micle] points out that AERQ might provide useful insight for those running indoor events as COVID-19 transitions into its endemic stage.

Share Screen To RGB Panel With Pi Pico W

RGB LEDs are great for adding a bit of color to your life, and it’s even more satisfying to use a matrix of them as a graphic display. [bitluni] built an RGB LED display with Pi Pico to which you can share a pixelated version of your PC’s screen.

[bitluni] wanted to gain some experience with MicroPython on the Raspbery Pi Pico W, and had previously used WebSockets to transmit display data over WiFi. Unfortunately, the available MicroPython WebSockets implementation didn’t leave enough RAM for the rest of the code. Instead, he set up a simple HTTP server on the Pico that receives the pixel data as a POST request. This makes for a slow refresh rate but still looks great, especially with the 3D printed rear-projection frame.

To send display data from the computer, [bitluni] uses a simple locally hosted HTML page that takes the Pico’s IP address, and prompts you to select the display or window you want to share. It uses JavaScript to grab the display data, generate the required low-res pixel values, and send the POST request.

This looks like a fun weekend project to add to your lab or home and only costs about $20 in parts. It’s basically a scaled-down version of his giant ping pong ball wall display.

Continue reading “Share Screen To RGB Panel With Pi Pico W”