So, you buy an Internet of Things light bulb, it’s a fun toy that allows you to bathe your environment in pretty colours at the touch of an app, but eventually you want more. You start to wonder how you might do more with it, and begin to investigate its inner workings. Then to your horror you discover that far from having bought a device with a convenient API for you to use, it has an impenetrable closed protocol that defies easy access.
This was the problem facing [Ayan Pahwa] when he bought a Syska Smartlight Rainbow LED bulb, and discovered that its Bluetooth Low Energy interface used a closed protocol. But instead of giving up, he proceeded to reverse engineer the communication between bulb and app, and his write-up makes for an interesting read that provides a basic primer on some of BLE’s workings for the uninitiated.
BLE allows a device manufacturer to define their own device service specific to their functionality alongside standard ones for common device types. Using a handy Android app from Nordic Semiconductor he was able to identify the services defined for the light bulb, but sadly they lacked any human-readable information to help him as to their purpose. He thus had to sniff BLE packets directly, and lacking dedicated hardware for this task he relied on a developer feature built into Android versions since KitKat, allowing packets to be captured and logged. By analysing the resulting packet files he was able to identify the Texas Instruments chip inside the bulb, and to deduce the sequences required to control its colours. Then he was able to use the Bluez utilities to talk directly to it, and as if by magic, his colours appeared! Take a look at the video we’ve placed below the break.
Many of us may never need to reverse engineer a BLE device. But if we are BLE novices, after reading [Ayan]’s piece we will at least have some idea of its inner workings. And that can only be a positive thing.
Continue reading “Reverse Engineering A BLE Service To Control A Light Bulb”
It seems these days all the electronics projects are wireless in some form. Whether you choose WiFi, Bluetooth Classic, Bluetooth Low Energy, ZigBee, Z-Wave, Thread, NFC, RFID, Cell, IR, or even semaphore or carrier pigeon depends a lot on the constraints of your project. There are a lot of variables to consider, so here is a guide to help you navigate the choices and come to a conclusion about which to use in your project.
We can really quickly reduce options down to the appropriate tech with just a few questions.
Continue reading “Which Wireless Tech is Right For You?”
It is a good bet that you have at least one Bluetooth device hanging around. Headsets, mice, keyboards, and speakers have become increasingly common. Bluetooth forms a short range wireless network and can also perform file transfers and create virtual serial ports.
If you have ever had to stop listening to music to recharge a Bluetooth headphone, you know Bluetooth won’t run long on batteries. In 2006, Nokia introduced Wibree, which would later become Bluetooth Low Energy (or BLE). These days it’s used in everything and it’s well worth your time to gather a basic understanding of this technology.
Continue reading “Lazy Bluetooth: Build with BLE, Don’t Reinvent It”
With the launch of the Raspberry Pi 3, Bluetooth Low Energy (BLE) is now at our disposal. With BLE, there are a few technologies for implementing one-way beacons that broadcast data. Apple has been pushing iBeacon since 2013, and Google just launched their Eddystone solution last year.
If you’re looking to target Google’s Eddystone on your RPi 3, [Yamir] has you covered. He’s put together a guide on setting up an Eddystone-URL beacon within Raspbian. This type of beacon just broadcasts a URL. Users within range will get a notification that the URL is available, and can navigate through to it. Eddystone-URL works on both iOS and Android.
The process for setting this up is pretty simple. The
hcitool commands do all the work. [Yamir] was even nice enough to make a calculator tool that generates the
hcitool command for your own URL. While is hack is a simple one, it’s a nice five-minute project. It’s also handy for broadcasting the URL of your Raspberry Pi if it’s running a web server as part of a more intricate hack.
Like many programmers, [Daniel Nugent] loves his old mechanical keyboard (a WASD Code Keyboard). What he didn’t love was the cord. Sure, you can get a modern wireless keyboard, but it won’t be the same as the keyboard you’ve spent so much time with. Armed with a Bluetooth Low Energy (BLE) module, a rechargeable battery and some coding, he kept his keyboard but got rid of the wires.
Although he has some specific handling for the WASD, the code would very likely handle any PS/2 keyboard. The PS/2 interface is a simple synchronous serial port with a single clock and single data line. Handling it with a microcontroller isn’t very difficult.
Continue reading “Mechanical Keyboard Goes BLE”
Everyone’s heard of the “World’s Smallest Violin,” but we think it’s time for something more upbeat. [Simone Giertz] of Punch Through Design has created a mini electric ukulele using a LightBlue Bean. The Bean is an Arduino-compatible microcontroller that you can wirelessly program using Bluetooth low energy (BLE).
The ukulele’s frame is made of laser-cut plywood. Four 1M ohm resistors are soldered to individual wire strings. A different set of wire strings in the ukulele’s neck are connected to the same ground as the Bean. In order to play this tiny instrument, a finger must be kept on the “ground” strings while the other “tone” strings are touched by a different finger. [Simone] uses Arduino’s Capacitive Sensing Library to determine which string is being touched and what the tone will be (indicated in Hz). A piezo buzzer provides the sound. There is no need to fret when the battery is depleted from using this at an all-night luau: the frame can be unscrewed with easy access to the battery. [Simone] has uploaded the Bean’s code to GitHub.
There’s no shame going solo, but we’d enjoy a show of dueling mini-ukuleles. A duet with the 3D-printed ukulele is always a possibility. Or, play this little guy while running up and down some piano stairs while the kettle fife blows off some steam. It’ll be a musical way to brighten anyone’s day. Check out the video of the mini ukelele after the break. You can also see more of [Simone’s] work at her website.
Continue reading “Create a Buzz with the Mini Electric Ukulele”