The Geometry Of Transistors

Building things in a lab is easy, at least when compared to scaling up for mass production. That’s why there are so many articles about fusion being right around the corner, or battery technology that’ll allow aviation to switch away from fossil fuels, or any number of other miraculous solutions that never come into being. They simply don’t scale or can’t be manufactured in a cost effective way. But even when they are miraculous and can be produced on a massive scale, as is the case for things like transistors, there are some oddities that come up as a result of the process of making so many. This video goes into some of the intricacies of a bipolar junction transistor (BJT) and why it looks the way it does.

The BJT in this video is a fairly standard NPN type, with three layers of silicon acting as emitter, base, and collector. Typically when learning about electronics devices the drawings of them are simplified two-dimensional block diagrams, but under a microscope this transistor at first appears nothing like the models shown in the textbook. Instead it resembles more of a bird’s foot with a few small wires attached. The bird’s foot shape is a result of attempting to lower the undesirable resistances of the device and improve its performance, and some of its other quirks are due to the manufacturing process. That process starts with a much larger layer of doped silicon that will eventually become the collector, and then the other two, much smaller, layers of the transistor deposited on top of the collector. This also explains while it looks like there are only two layers upon first glance, and also shows that the horizontal diagram used to model the device is actually positioned vertically in the real world.

For most of the processes in our daily lives, the transistor has largely been abstracted away. We don’t have to think about them in a computer that much anymore, and unless work is being done on high-wattage power electronics devices, radios, or audio amplifiers it’s not likely that an average person will run into a transistor. But this video goes a long way to explaining the basics of one of the fundamental building blocks of the modern world for those willing to take a dive into the physics. Take a look at this video as well for an intuitive explanation of the close cousin of the BJT, the field-effect transistor.

Continue reading “The Geometry Of Transistors”

Bluetooth As Proxy For Occupancy

During [Matt]’s first year of college, he found in a roundabout way that he could avoid crowds in the dining hall by accessing publicly available occupancy data that the dining hall collected. Presumably this was data for the dining hall to use internally, but with the right API calls anyone could use the information to figure out the best times to eat. But when the dining hall switched providers, this information feed disappeared. Instead of resigning himself to live in a world without real-time data on the state of the dining hall, he recreated the way the original provider counted occupancy: by using Bluetooth as a proxy for occupancy.

Bluetooth devices like smartphones, fitness sensors, and other peripherals often send out advertising packets into the aether, to alert other devices to their presence and help initiate connections between devices. By sniffing these advertising packets, it’s possible to get a rough estimate of the number of people in one particular place, assuming most people in the area will be carrying a smartphone or something of that nature. [Matt]’s Bluetooth-sniffing device is based on the ESP32 set up to simply count the number of unique devices it finds. He had some trouble with large crowds, though, as the first ESP32 device he chose didn’t have enough RAM to store more than a few hundred IDs and would crash once the memory filled. Switching to a more robust module seems to have solved that issue, and with a few rounds of testing he has a workable prototype that can run for long periods and log at least as many Bluetooth devices passing by as there are within its range.

While [Matt] hasn’t deployed this to the dining hall yet, with this framework in place most of the work has been done that, at least in theory, one of these modules could be easily placed anywhere someone was interested in collecting occupancy data. He has plans to submit his project to the university, to research the topic further, and potentially sell these to businesses interested in that kind of data. This isn’t an idea limited to the ESP32, either. We’ve seen similar projects built using the Raspberry Pi’s wireless capabilities that perform similar tasks as this one.

Thanks to [Adrian] for the tip!

A Ham Radio Answering Machine

For those who grew up with a cell phone in their hand, it might be difficult to imagine a time where the phone wasn’t fully integrated with voicemail. It sounds like a fantastical past, yet at one point a separate machine needed to be attached to the phone to record messages if no one was home to answer. Not only that, but a third device, a cassette tape, was generally needed as a storage device to hold the messages. In many ways we live in a much simpler world now, but in the amateur radio world one group is looking to bring this esoteric technology to the airwaves and [saveitforparts] is demonstrating one as part of a beta test.

The device is called the Boondock Echo, and while at its core it’s an ESP32 there’s a lot going on behind the scenes. It has an audio interface which is capable of connecting to a radio given the correct patch cable; in this case with a simple Baofeng handheld unit. The answering machine can record any sounds that come in. However, with a network connection the recordings are analyzed with an AI which can transcribe what it hears and even listen for specific call signs, then take actions such as sending emails when it hears triggers like that. Boondock also plans for this device to be capable of responding as well, but [saveitforparts] was not able to get this working during this beta test.

While an answering machine might seem like a step backwards technologically, an answering machine like this, especially when paired with Google Voice-like capabilities from an AI, has a lot of promise for ham radio operators. Even during this test, [saveitforparts] lost a radio and a kind stranger keyed it up when it was found, which was recorded by the Boondock Echo and used to eventually recover the radio. Certainly there are plenty of other applications as well, such as using AI instead of something like an Arduino to do Morse decoding.

Continue reading “A Ham Radio Answering Machine”

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.