Achieving Ultra Low Power Bluetooth with BG22

When a company claims that I can get 1uA power consumption in a standby state for a wireless device, I have to test that claim. 1uA effectively means 100,000 hours on a single CR2032 coin cell battery. And 100,000 hours means 10 years of running on a single coin cell. Compare against Nordic’s excellent nRF52840. It is very popular amongst hobbyists, and it has seen some inroads into commercial products due to its low power features, but the current draw when transmitting under the same conditions as the BG22 (0 dBm, DCDC) draws 1.5x more current (6.40mA vs 4.4mA ). Another popular choice for BLE is the CC2520 from Texas Instruments which I’ve seen featured amongst many commercial Bluetooth products: beacons, dongles, exercise bands… you name it, it probably has a CC2520 or some variant of that inside. But it doesn’t do 1uA of current ...

December 12, 2020 · 5 min

Opinion: Why I don't use Rust for embedded

Yet. Rust is amazing. It has types, the compiler is robust and provides actual useful error reports instead of freaking out when I forget a ; somewhere. You completely sidestep security problems that you commonly find in C simply because of how Rust is designed. However, as much as I would love to use Rust as my tool for everything, the workflow for embedded devices still needs work. Limited support for Rust - This is the biggest stopper for me I think. Embedded development is firmly entrenched in C/C++ and most companies have no active plans to transition. If you want to work with a particular chip, you either have to write the crate yourself or rely on someone having already written the crate for it. This is okay if you’re building stuff with popular ICs like the STM32 but the moment you venture out into the world of wireless or a slightly lesser known IC and you are on your own. As far as I can tell at the time of this writing, there are no embedded Bluetooth stacks in Rust, which is a big bummer for me. Workflow - This is down to personal taste, but I prefer to be debugging in an IDE where everything has been set up for me than to set up and customize a gdb server and workflow. For some people, there is value to setting up a workflow, but for me, I rather spend that time writing embedded code. This is relevant because most IDEs don’t support development in Rust. Vs C/C++ - I think there is more mileage to be had if you developed in C and C++ than in Rust, for the reasons stated above. Outside of embedded development, there is a whole host of projects that are written in C/C++. So it makes sense (to me at least) to gain proficiency in C than in Rust when doing embedded development. For me at least, until we start seeing official support from manufacturers on Rust, I think I’ll stick to using C and C++ for embedded development.

December 2, 2020 · 2 min

A pretty Chicago CTA Train Display

Months ago I came across this project: Traintrackr. It gives you a live view of where the trains are arriving in each station. I made one for Chicago. Tldr; I made a pretty thing that isn’t (really) IoT but involves trains and many LEDs. Chicago CTA line Mounted on acrylic backing Tracking methods Live To track the trains live, you would need access to CTA’s API, which only requires you to sign up. ...

November 27, 2020 · 9 min

Better Soil Sensor

I often get asked: “Ben, that soil sensor you used is too complex! I$^2$C for some capacitive sensing? Have you thought about using something cheaper?” Literally no one has asked me this question, but that’s okay. Tldr; I found a a soil sensor that costs 10% of the first one I used and got it to work with the Bluetooth device from Silabs, BG22. The Big Circle Skip this part if you are not interested in origin stories. ...

November 21, 2020 · 6 min

Opinion: No Cloud Please

I’ve come to a rule of thumb that I feel is quite useful in measuring the longevity of an IoT product: does it require the cloud? Please note that I am in no way recommending for or against any of the companies that are listed below as examples. They simply provide useful examples to illustrate the point. Requires Cloud to work, no subscription These are the riskiest class of products. The company can turn off cloud access at any moment, rendering the product useless. Without a subscription model, it is unlikely the company will be able to keep funding their cloud services, even if it is promised to be ’lifetime’ in the marketing material. ...

November 16, 2020 · 6 min

Fairy Light Teardown

It is a fairly interesting to me that you can get a cheap (~$6) solar powered device that controls a bunch of long fairy lights. Think about it: a battery, a solar panel, a string of LEDs, and a PCB to control it all, housed in a water resistant case for $6. That’s a lot of things for $6. These devices require a low voltage source for power, and are often deployed in open spaces where power outlets are not easily accessible, which makes them perfect candidates for solar power. This is actually quite close to the use-case of wireless devices, where in order for them to be useful, they should be as independent as much as possible so that they aren’t tethered to an outlet, especially so for wireless sensor nodes. ...

November 8, 2020 · 5 min

BreatheDot 2

BreatheDot by West Side Electronics on TindieA Portable Meditation AidTindieExtra units available for purchase A BreatheDot for modern times. A fully featured meditation aid now comes with GPS 🛰️, WiFi 🌐, Bluetooth, and a mindfulness app 🧘. Just joking! We certainly learnt our lesson from the IoT Table Lamp debacle didn’t we? BreatheDot 2 features quality of life improvements (for me), and some design changes that will make it easier to use. The most useless IoT table lamp in existenceHow I made the most useless IoT table lamp in existence. Now comes with mechanical and electrical design comments!West Side Electronics·Benjamen Lim It serves the same purpose as the original BreatheDot: an aid for guided breathing exercise in a small form factor. It also helps as a focus object when experiencing high stress or anxiety. The design is deliberately simple to remove all distractions and possibilities of failure. ...

November 7, 2020 · 2 min

IKEA SYMFONISK Sound Remote Teardown

Another day, another teardown. Today the focus of my prying screwdriver is the Symfonisk Sound Remote from IKEA. It is quite nice to use. It has a brushed plastic texture that keeps it from becoming a fingerprint magnet. It turns smoothly, and the rubber feet that is used for the base is sticky enough to give the sensation of weight. What I didn’t like was the wobble of the button. It is not noticeable at first if you use a finger to spin the knob, however if you hold the button and wiggle it, there is about 1mm of wobble. ...

November 3, 2020 · 6 min

IKEA TRÅDFRI On/Off Switch Teardown

Tldr; well-designed button with multiple interesting design features. If exposed, well-labelled, debugging pins excite you, you’ve come to the right place. I am a big fan of IKEA products. I’m also a big fan of checking out the electronics of low-cost products. So when I saw this smart LED bulb and wireless button bundle during my quarterly sojourn to IKEA, I simply could not resist the temptation to open it up and see what IKEA has decided to use for their Home Smart™ products. ...

October 25, 2020 · 8 min

Bus App, Redux

I triumphantly declared that the Cloud was simply too expensive for me in my second post about the bus app, and migrated from Google Firebase to my own hosted instance to save costs. Building a better bus arrival appBus App V2! In this installment, we are rewriting the app in Node and React.West Side Electronics·Benjamen Lim Yeah, about that. Turns out to be quite involved the deeper you get into it ...

October 20, 2020 · 4 min