If someone were able to find a reliable source for the same band this work could turn into the nucleus of many wearable projects. It's hard for beginners to build electronics that are 1. small 2. comfortable 3. power efficient. These bands already take care of all of that.
There are many applications for this sort of platform. One could easily build a discreet pen testing tool which records information it sees about Bluetooth devices nearby. Or create an embedded engineering Swiss Army knife which exposes IO on your wrist to an app on your phone so you can jack into gadgets you find and poke around on the spot. Fun social applications to try too, like buying one of these for every attendee at your conference and building peer-to-peer applications on top.
Mapping out the programming interface is essential to enabling all that fun, but so is finding a reliable source for these devices.
One simple hack I can imagine is a text-to-morse transmitter. He's figured out how to vibrate the motor, if one can have an app that reads the phone's notification and talks over Bluetooth, one could convert it to morse so the user can receive his messages through vibrations in his wrist.
Although I suppose it would remain as a hack, if my I programmed this and bracelet starts vibrating the first thing I would do is pick up my phone to use my eyes instead of the morse code...
Power efficiency is mostly down to firmware, not the hardware itself. For example, using the synthesized low-frequency clock (like the article does) will increase current consumption tenfold.
If anyone is looking for a business idea, if you could hack these things to be a remote control so that dance teachers can use it to pause/play and skip-to-next on the cheap and without having to run to their phone, that would sell like hotcakes. Typical scenario now is: teacher plugs phone into amp, then needs to run up and down to phone every 5 minutes. Having a bluetooth connection so that the bracelet can work as a play/skip remote for the phone would be enough. Range might be an issue, needs to be 30 meters (reliably) or so.
I do this regularly with my Pebble. One of my side gigs is acting as the announcer for a colorguard contest (basically a dance contest with flags) and for sound checks, I can run Spotify on my phone, run around the gym listening to speakers, and control the music from my wrist. This is super useful, as I'm usually setting up the sound equipment by myself and don't always have a reliable assistant.
Oh look at that, I've searched long and wide and never have been able to find it - I guess I just didn't use the right keywords. Ok all, ignore the gp :)
Can't most (or at least, many) of these BLE fitness bands act as music controls for smartphones already? I know that every smartwatch under the sun does this, and since it's just a software feature, I feel it's such low-hanging fruit that every off-brand manufacturer must have implemented it a long time ago. But maybe I'm wrong?
I'm curious about the level of expertise you need in order to do this. I also have a cheap bracelet and I wanted to do the same thing, but reading this article seems like you need to be an expert in electronics/lowlevelprogramming.
Hi, author here. I can honestly say that I’m definitely not an expert. I tried to systematically write down questions on a text file and solve them one after the other. Solving one usually added a few other ones. “What chip is this?”, “how to program this chip?”, “do I need a development board?”, “what’s SWD?”, “how to pull an output high?” Etc. Lots of these are specific to this chip, too, so a lot of it is just reading the documentations and drilling down on libraries.
It’s something I find refreshing to read and like to state when I can: none of this was easy for me. But it was definitely fun. Having no deadlines helps. Having no practical goal and just enjoying the process was also refreshingly nice.
Hi author, nice hacking and writeup!. Nordic employee here. Note that if instead of the SoftDevice and the SDK you would've used Zephyr then you'd be able to do the same you did but with a fully open source software stack, including all layers of the BLE protocol stack. More here https://github.com/zephyrproject-rtos/zephyr
Hi. I use Jekyll and a Makefile that pushes the generated html to S3. I also needed to set up a cloudfront distribution instead of using a bare web-enable S3 bucket so I could use aws’s https certificate automation. Let me know if you need more details.
Some background helps, but there's nothing someone sufficiently determined couldn't do.
Recognising the I2C/TWI pins for example is a really quick win when looking at the OLED display. Otherwise, there's nothing much to do but spend a day googling - but you would find it with tenacity.
The difference in experience here is in turning it from a year long learning project for a beginner to "uncountable hours over several weeks" of exploration for someone a little more seasoned.
You need to have some experience, and the whole thing probably took a considerable amount of time, but basically it's not rocket science. It's a specific set of technical skills rather than stuff that's conceptually hard. Starting with a standard ARM dev kit like STM32F4 would give you most of the skills.
Electronics is a similar situation to programming: from the right perspective, it's quite easy: all of the details are very small and simple. The complexity is all to do with the way that many (MANY) small details are packaged together into a larger whole. Experience just helps you recognize common patterns, because you've seen them before. In theory, anyone with patience and determination can do this. The original article is well detailed for someone with knowledge of (or willingness to research) all the things called out, generally by name.
What I'm reading (I mostly skimmed the article) is that if you've connected an arduino with an OLED display, you should be pretty far along already. But, it does involve knowing how to read technical specifications. (as well as a steady hand, this stuff is tiny!)
I'm in the middle of a project using a related microcontroller (the nRF52832). When I started, I had very little electronics/embedded experience, and now I have more! It's absolutely doable.
Awesome work and inspiring write up. I’ve started doing similar things lately and I can imagine exactly how much grinding was involved to get the end result. You must have felt great when the display finally showed the image :)
> I look very much forward to rellocate it all the way to the back of my drawer and leave it there for some time.
This is funny - I feel the same way about a lot of side projects I undertake. Great writeup btw. I feel like this type of stuff gets harder and harder as ICs fit into tighter packages. Glad someone is taking the time to explore.
As far as I can see it doesn't do the heart rate monitoring - the only thing on the features list a smartphone can't do. What I really want (writing it here just in hope somebody might know a suitable model) of a hackable fitness device is to supply reasonably precise real-time heart rate data letting my DIY Android app react on its change.
There are many applications for this sort of platform. One could easily build a discreet pen testing tool which records information it sees about Bluetooth devices nearby. Or create an embedded engineering Swiss Army knife which exposes IO on your wrist to an app on your phone so you can jack into gadgets you find and poke around on the spot. Fun social applications to try too, like buying one of these for every attendee at your conference and building peer-to-peer applications on top.
Mapping out the programming interface is essential to enabling all that fun, but so is finding a reliable source for these devices.