Skip to content

Commit bdb8e80

Browse files
committed
Consolidate infos about supported devices in README
1 parent d1731c6 commit bdb8e80

File tree

3 files changed

+31
-16
lines changed

3 files changed

+31
-16
lines changed
File renamed without changes.

Firmware/Linux_HCI/README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# OpenHaystack HCI Script for Linux
2+
3+
This script enables Linux devices to send out Bluetooth Low Energy advertisements such that they can be found by [Apple's Find My network](https://developer.apple.com/find-my/).
4+
5+
## Disclaimer
6+
7+
Note that the script is just a proof-of-concept and currently only implements advertising a single static key. This means that **devices running this script are trackable** by other devices in proximity.
8+
9+
## Requirements
10+
11+
The script requires a Linux machine with a Bluetooth Low Energy radio chip, a Python environment, and `hcitool` installed. We tested it on a Raspberry Pi running the official Raspberry Pi OS.
12+
13+
## Usage
14+
15+
Our Python script uses HCI calls to configure Bluetooth advertising. You can copy the required `ADVERTISMENT_KEY` from the app by right-clicking on your accessory and selecting _Copy advertisement key (Base64)_. Then run the script:
16+
17+
```bash
18+
sudo python3 HCI.py --key <ADVERTISMENT_KEY>
19+
```

README.md

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ OpenHaystack is a framework for tracking personal Bluetooth devices via Apple's
2626
## What is _OpenHaystack_?
2727

2828
OpenHaystack is an application that allows you to create your own tags that are tracked by Apple's [Find My network](#how-does-apples-find-my-network-work). All you need is a Mac and a [BBC micro:bit](https://microbit.org/) or any [other Bluetooth-capable device](#how-to-track-other-bluetooth-devices).
29-
By using the app, you can track your micro:bit tag anywhere on earth without cellular coverage. Nearby iPhones will discover your tag and upload their location to Apple's servers when they have a network connection.
29+
By using the app, you can track your tags anywhere on earth without cellular coverage. Nearby iPhones will discover your tag and upload their location to Apple's servers when they have a network connection.
3030

3131
### History
3232

@@ -66,14 +66,9 @@ Our plugin does not access any other private data such as emails (see [source co
6666
**Adding a new tag.**
6767
To create a new tag, you just need to enter a name for it and optionally select a suitable icon and a color. The app then generates a new key pair that is used to encrypt and decrypt the location reports. The private key is stored in your Mac's keychain.
6868

69-
**BBC Microbit**
70-
Upon deploying, the app will try to flash our firmware image with the new public key to a USB-connected [BBC micro:bit v1](https://microbit.org/).
71-
72-
**ESP32**
73-
Since version 0.3.1 we also ship a simple ESP32 firmware that supports the same features as our firmware for the BBC micro:bit. To flash an ESP32 connect it via USB and select the correct serial port when deploying. It can take up to 3 minuites, a Python 3 version is required.
74-
75-
**Manual**
76-
However, you may also copy the public key used for advertising and deploy it via some other mechanism.
69+
**Deploy to device.**
70+
Connect a [supported device](#how-to-track-other-bluetooth-devices) via USB to your Mac and hit the _Deploy_ button next to the accessory's name and choose the corresponding.
71+
Instead of using OpenHaystack's integrated deployment, you may also copy the public key used for advertising (right click on accessory) and deploy it manually.
7772

7873
**Display devices' locations.**
7974
It can take up to 30 minutes until you will see the first location report on the map on the right side. The map will always show all your items' most recent locations. You can click on every item to check when the last update was received.
@@ -108,14 +103,15 @@ We use our Apple Mail plugin, which runs with elevated privileges, to access the
108103

109104
## How to track other Bluetooth devices?
110105

111-
Currently, we only provide a convenient deployment method of our OpenHaystack firmware for the BBC micro:bit.
112-
However, you should be able to implement the advertisements on other devices that support Bluetooth Low Energy based on the [source code of our firmware](Firmware) and the specification in [our paper](#references).
113-
114-
In addition, you can easily turn any Linux machine (including **Raspberry Pi**) into a _tag_ that can be tracked via the Find My network. Our Python script uses HCI calls to configure Bluetooth advertising. You can copy the required `ADVERTISMENT_KEY` from the app by right-clicking on your accessory. Then run the script:
106+
In principle, any Bluetooth device can be turned into an OpenHaystack accessory that is trackable via Apple's Find My network.
107+
Currently, we provide a convenient deployment method of our OpenHaystack firmwares for a small number of embedded devices (see table below). We also support Linux devices via our generic HCI script.
108+
Feel free to port OpenHaystack to other devices that support Bluetooth Low Energy based on the [source code of our firmware](Firmware) and the specification in [our paper](#references). Please share your results with us!
115109

116-
```bash
117-
sudo python3 HCI.py --key <ADVERTISMENT_KEY>
118-
```
110+
| Platform | Tested on | Deploy via app | Comment |
111+
|----------|-----------|:--------------:|---------|
112+
| [Nordic nRF51](Firmware/Microbit_v1) | BBC micro:bit v1 || Only supports nRF51288 at this time (see issue #6). |
113+
| [Espressif ESP32](Firmware/ESP32) | SP32-WROOM, ESP32-WROVER || Deployment can take up to 3 minutes. Requires Python 3. Thanks **@fhessel**. |
114+
| [Linux HCI](Firmware/Linux_HCI) | Raspberry Pi 4 w/ Raspbian | | Should support any Linux machine. |
119115

120116
![Setup](Resources/Setup.jpg)
121117

0 commit comments

Comments
 (0)