One Less Binary Blob

Open-source software has gone a long way into making modern technology the way it is today. The Linux kernel alone is almost single-handedly holding up the entire Internet, and various other open-source projects allow for more access to computing resources not just because the software is often free, but because it’s possible to look under the hood and modify it for specific needs. Without open-source software available we often run into problems both expected, such as software licensing costs, and unexpected, which often come up because a developer can’t or won’t fix issues or add features. To that end, a group at Ghent University in Belgium are attempting to rectify a problem with the ESP32 by eliminating one of its binary blobs and replacing it with an open source driver.

The ESP32 is famously a low-cost microcontroller with on-board wireless capabilities, but its Wi-Fi functionality currently relies on closed-source software from Espressif. The team is currently working on building a fully working open-source networking stack with the hopes of enabling greater flexibility of these devices but also making things like security auditing possible. The other major goal is to improve low-cost mesh networking which is currently not available with the proprietary driver. Reverse engineering is the name of the game here, both from a hardware and a software level, but current versions of the software already able to send and receive packets.

The source code for the project is available on the team’s GitHub page for any open-source aficionados to take a look at. We certainly hope the project gains some steam, as any new open source project helps all of us using the platform. Open source projects frequently get stymied by a single or small handful of binary blobs too, often with little hope for recourse. Examples include Android being an open-source operating system but generally using the closed-source Google Play suite in practice, or Firefox including support for Adobe Flash. Another great example is that even computers running 100% open-source code once they boot their operating systems, there’s still some black boxes running in the background few of us think about.

Thanks to [Crote] for the tip!

Wio Terminal Makes Passable Oscilloscope

There was a time when getting a good oscilloscope not only involved a large outlay of capital, but also required substantial real estate on a workbench. The situation has improved considerably for the hobbyist, but a “real” scope can still cost more than what a beginner is looking to spend. Luckily, plenty of modern microcontrollers are capable of acting as a basic oscilloscope in a pinch, provided there’s a display available to interface with it. Combined with the right software, the Wio Terminal looks like a promising option.

The Wio Terminal is a platform gaining some popularity due to its fairly capable SAMD51 microcontroller and also its integration with a display and a number of input buttons. On the hardware side, [mircemk] mounted the Terminal in a convenient vertical orientation and broke out a pair of connectors for the inputs.

But it’s the software that really makes this project work. [Play With Microcontroller] originally developed the firmware for the PIC24 back in 2017, but ported the code over to the Wio Terminal a couple years back. Noting that the microcontroller is not particularly fast, the project doesn’t exactly match the specifications or capabilities of a commercial unit. But still, it does an impressive job of recreating the experience of using a modern digital scope

The Wio Terminal is a device we’ve seen around here for a few unique projects, among them a device for preventing repetitive strain injuries while using a computer mouse and another that is a guide for game development in MicroPython. And if you’re just itching to port oscilloscope software to accessible but under-powered microcontrollers, be sure to check out [mircemk]’s other oscilloscope projects like this one built around the STM32 microcontroller.

Continue reading “Wio Terminal Makes Passable Oscilloscope”

Converting Bluetooth Sensors To Zigbee

With the increase in popularity of Internet of Things (IoT) devices and their need to communicate wirelessly,  there’s been a corresponding explosion of wireless protocols to chose from. Of course there’s Wi-Fi and Bluetooth, but for more specialized applications there are some other options like Z-Wave, LoRa, Sigfox, and Thread. There’s a decent amount of overlap in their capabilities too, so when [SHS] was investigating some low-cost Xiaomi sensors it was discovered that it is possible to convert them from their general purpose Bluetooth protocol over to the more IoT-specialized Zigbee protocol instead.

These combination temperature and humidity sensors have already been explored by [Aaron Christophel] who found that it’s possible to flash these devices with custom firmware. With that background, converting them from Bluetooth to Zigbee is not a huge leap. All that’s needed is the Zigbee firmware from [Ivan Belokobylskiy] aka [devbis] and to follow the steps put together by [SHS] which include a process for flashing the firmware using an over-the-air update and another using UART if the wireless updates go awry. Then it’s just a short process to pair the new Zigbee device to the network and the sensor is back up and running.

Converting from one wireless protocol to another might not seem that necessary, but using Bluetooth as an IoT network often requires proxy nodes as support devices, whereas Zigbee can communicate directly from the sensor to a hub like Home Assistant. Other Zigbee devices themselves can also act as a mesh network of sorts without needing proxy nodes. The only downside of this upgrade is that once the Bluetooth firmware has been replaced, the devices no longer has any Bluetooth functionality.

Thanks to [RoganDawes] for the tip!

Monitoring Energy Use And Saving Money

On the surface, the electric grid might seem like a solved piece of infrastructure. But there’s actually been a large amount of computerized modernization going in the background for the past decade or so. At a large scale this means automatic control of the grid, but for some electric utility customers like [Alex] this means the rates for electricity can change every hour based on demand. By keeping an eye on the current rate, you can extract the most value from these utilities.

[Alex] is located in the United Kingdom and has an energy provider whose rates can change every half hour. This information is freely available well enough in advance to download the data and display it visibly in with a NeoPixel LED ring around a clock. The colors displayed by the LEDs represent an increase or decrease in price for the corresponding time and allow him to better plan out the household’s energy use for the day. The clock uses a TinyPICO ESP32 module to gather the data and handle the clock display. A second wall-mounted device shows real-time energy readings for both gas and electricity using two old analog voltmeters modified to display kilowatt-hours.

While not everyone has a utility which allows this sort of granularity with energy pricing, having one can make a bit of a difference as electricity rates under this system can sometimes go negative. [Alex] estimates that using these two displays to coordinate his energy usage has saved around £50 a month. Even if your utility offers minimal or no price adjustments for time-of-use, it’s still a good idea to monitor energy use in your home. Here’s a fairly comprehensive project that does that without modifying any existing wiring.

A Modernized Metric Clock

Much to the chagrin of many living in North America who still need to do things like keep two sets of wrenches on hand, most of the rest of the world has standardized to a simpler measurement system using metric units exclusively. The metric system is widely adopted worldwide, but we still use a base-60 system for timekeeping that predates the rest of the metric system. The French did attempt to “decimalize” timekeeping as well with the French Republican Calendar at around this same time, but this “metric” timekeeping system never caught on particularly well. It’s still an interesting historical tidbit, and [ClassTech] built this modern metric clock to explore it a little more.

The system itself uses ten-day weeks, ten-hour days, and 100-minute hours which makes it more in line with the base-10 system common to the rest of the metric system. But this means that a second in the French Republican system actually works out to a little less than one and a half SI seconds, meaning that a modern timekeeping computer needs to do a little more math to display the correct time at the correct interval. [ClassTech] is using a Particle Photon IoT processor getting the time from a NTP server, converting it to “metric time”, and displaying the time on a Nextion touch display.

While the device is reported to update the time once per second, we’re not sure if this is every SI second or every French Republican second. Either way, there are plenty of reasons this timekeeping system never gained widespread adoption, and a surprising one is that timekeeping tends to be easier in a base-60 system due to its capability of having more divisors. Many other reasons are less technical and more cultural, and timekeeping tends to be surprisingly difficult to coordinate even among shared numbers systems and languages.

Machining A Reciprocating Solenoid Engine

The reciprocating engine has been all the rage for at least three centuries. The first widely adopted engine of this type was the steam engine with a piston translating linear motion into rotational motion, but the much more common version today is found in the internal combustion engine. Heat engines aren’t the only ways of performing this translation, though. While there are few practical reasons for building them, solenoid engines can still do this job as well and, like this design from [Maciej Nowak Projects], are worth building just for the aesthetics alone.

The solenoid engine is built almost completely from metal stock shaped in a machine shop, including the solenoids themselves. The build starts by making them out of aluminum rod and then winding them with the help of a drill. The next step is making the frame to hold the solenoids and the bearings for the crankshaft. To handle engine timing a custom brass shutter mechanism was made to allow a set of infrared emitter/detector pairs to send signals that control each of the solenoids. With this in place on the crankshaft and the connecting rods attached the engine is ready to run.

Even though this solenoid engine is more of a project made for its own sake, solenoid engines are quite capable of doing useful work like this engine fitted into a small car. We’ve seen some other impressive solenoid engine builds as well like this V8 from [Emiel] that was the final iteration of a series of builds from him that progressively added more solenoid pistons to an original design.

Continue reading “Machining A Reciprocating Solenoid Engine”

DIY Loading Coil Shortens Antenna Lengths

A newly licensed amateur radio operator’s first foray into radios is likely to be a VHF or UHF radio with a manageable antenna designed for the high frequencies in these radio bands. But these radios aren’t meant for communicating more than a double-digit number of kilometers or miles. The radios meant for long-distance communication use antennas that are anything but manageable, as dipole antennas for the lowest commonly used frequencies can often be on the order of 50 meters in length. There are some tricks to getting antenna size down like folding the dipole in all manner of ways, but the real cheat code for reducing antenna size is to build a loading coil instead.

As [VA5MUD] demonstrates, a loading coil is simply an inductor that is placed somewhere along the length of the antenna which makes a shorter antenna behave as a longer antenna. In general, though, the inductor needs to be robust enough to handle the power outputs from the radio. There are plenty of commercial offerings but since an inductor is not much more than a coil of wire, it’s entirely within the realm of possibility to build them on your own. [VA5MUD]’s design uses a piece of PVC with some plastic spacers to wind some thick wire around, and then a customized end cap with screw terminals attached to affix the antenna and feedline to. Of course you’ll need to do a bit of math to figure out exactly how many turns of wire will be best for your specific situation, but beyond that it’s fairly straightforward.

It’s worth noting that the coil doesn’t have to be attached between the feedline and the antenna. It can be placed anywhere along the antenna, with the best performance typically being at the end of the antenna. Of course this is often impractical, so a center-loaded coil is generally used as a compromise. Coils like these are not too hard to wind by hand, but for smaller, lower-current projects it might be good to pick up a machine to help wind the coils instead.

Continue reading “DIY Loading Coil Shortens Antenna Lengths”