mirror of
https://github.com/seemoo-lab/openhaystack.git
synced 2026-05-03 23:26:38 +00:00
48 lines
1.8 KiB
Markdown
48 lines
1.8 KiB
Markdown
# OpenHaystack Firmware for nRF51822
|
|
|
|
This project contains a PoC firmware for Nordic nRF51822 chips such as used by the [BBC micro:bit](https://microbit.org).
|
|
After flashing our firmware, the device sends out Bluetooth Low Energy advertisements such that it can be found by [Apple's Find My network](https://developer.apple.com/find-my/).
|
|
|
|
## Disclaimer
|
|
|
|
Note that the firmware is just a proof-of-concept and currently only implements advertising a single static key. This means that **devices running this firmware are trackable** by other devices in proximity.
|
|
|
|
## Requirements
|
|
|
|
You need to [GNU Arm Embedded Toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads) to build the firmware.
|
|
On macOS, you can install it via [Homebrew](https://brew.sh):
|
|
|
|
```bash
|
|
brew install --cask gcc-arm-embedded
|
|
```
|
|
|
|
## Build
|
|
|
|
You need to specify a public key in the firmware image. You can either directly do so in the [source](offline-finding/main.c) (`public_key`) or patch the string `OFFLINEFINDINGPUBLICKEYHERE!` in the final firmware image.
|
|
|
|
To build the firmware, it should suffice to run:
|
|
|
|
```bash
|
|
make
|
|
```
|
|
|
|
from the main directory, which also takes care of downloading all dependencies. The deploy-ready image is then available at `offline-finding/build/offline-finding.bin`.
|
|
|
|
## Deploy
|
|
|
|
To deploy the image on a connected nRF device, you can run:
|
|
|
|
```bash
|
|
make install DEPLOY_PATH=/Volumes/MICROBIT
|
|
```
|
|
|
|
*We tested this procedure with the BBC micro:bit V1 only, but other nRF51822-based devices should work as well.*
|
|
|
|
## Author
|
|
|
|
- **Milan Stute** ([@schmittner](https://github.com/schmittner), [email](mailto:mstute@seemoo.tu-darmstadt.de), [web](https://seemoo.de/mstute))
|
|
|
|
## License
|
|
|
|
This firmware is licensed under the [**MIT License**](LICENSE).
|