Writing Custom Software For Smart Bluetooth IoT Devices By Reverse Engineering On Mac And iPhone

Jan Kammerath
17 min readDec 30, 2024

The amount of smart devices that communicate through Bluetooth, specifically BLE (Bluetooth Low Energy) keeps on growing. Everything claims to be “smart”, “cloud” and “AI” today. This includes washing machines, coffee makers, and even electric tooth brushes. I recently got a remote controlled toy race track with four vehicles and several race track parts. It came with the usual challenges of “smart things”; software is immature, doesn’t work the way I’d expect and it requires a number of phones to even play — and of course it’s always online. Not surprising.

Smart toy race cars for a toy race track with an embedded System On Chip

As an indie developer, my first reaction is always: how can I build software for it? In this article we’ll be going through the process of reverse engineering the BLE protocol and building a custom app for macOS, iOS, iPadOS, watchOS or tvOS using Xcode and Swift with SwiftUI. Further, we’ll look into writing software for BLE on the Mac. Although this is all possible to do on Windows and Linux as well, we’ll focus on the Mac as it’s not just popular among developers, but also comes with very useful tools and libraries. At the end we’ll have some quick insights into building your own smart things for iPhone apps.

What are these smart devices exactly?

--

--

Jan Kammerath
Jan Kammerath

Written by Jan Kammerath

I love technology, programming, computers, mobile devices and the world of tomorrow. Check out kammerath.com and follow me on github.com/jankammerath

No responses yet