🏷️ Making custom tracking tags easy
HayStacker is a GUI application & framework for all platforms that lets you create and track tags via Apple's FindMy network. Tags don't need to connect to a network and can be tracked on any system; Windows, Linux, and Mac! The goal is to allow the everyday person to create tracking tags to track everyday objects (Backpacks, Bicycles, Keys, etc), and to provide a simple, cross-platform GUI interface that makes this accessible to anyone.
Thanks to the hard work and research by the folks over at Seemoo Lab, the basis for querying Apple servers was established:
Next, credit is given to Dadoum for the anisette-v3-server project and Biemster for the FindMy project. These two established the grounds for moving OpenHayStack's frameworks away from being MacOS-only:
This project finishes the job off by porting all that hard work to cross-platform compatible Python, wrapping it all up in a nice little package, and developing a GUI. And here you are!
In an effort to be modular and easy to update, this project doesn't need to be compiled.
- 🌟 Simply download the code, extract (if necessary), and double-click the launch script for your platform
Windows:
winLaunch.bat
MacOS / Linux:
macLinuxLaunch.sh
Fun Fact! This project includes the binary and/or readme for each type of firmware, meaning you can customize HayStacker tag behavior to your liking if you're willing to build the firmware yourself!
Chip Name | Status | Options | Note |
ESP32 Generic | Fully Supported | Constant ping, hibernate 5 minutes, sleep 2 seconds | Every board except for ESP32-C3 & S2 (Thanks to OpenHaystack) |
ESP32 C3 & S2 | Fully Supported | Constant ping, hibernate 5 minutes | Binary developed as part of HayStacker |
Lenze_ST17H66 | Manual Flashing | Constant ping | Copied from FindMy |
Telink_TLSR825X | Manual Flashing | Constant ping | Copied from FindMy |
WCH_ch592 | Manual Flashing | Constant ping | Copied from FindMy |
Note: Tag MAC addresses do not rotate, meaning using these tags can be tracked by local area bluetooth scanners
The MAC address acts like a name for your device, so scanners could see your device's name in the coffee shop, and then see the same device name the next day in the grocery store, and know that specific tag has gone from the coffee shop to the grocery store. They won't know your name or any other details, and this only works if they are monitoring a scanner within the range of your device's antenna (usually ~10 meters/30ft)
- Choose a tag to deploy, or create a new one using the
+
button - Plug in your ESP32
- Click
Deploy
next to your desired tag - Choose your COM port to deploy to
- Choose a board type and firmware type
- Watch as the software deploys!
- Click the
⟳
orLogin to Apple
button in the top-right - Follow the log-in instructions. Your Apple account is necessary to pull data from Apple servers.
- Your tags, if pinging and near an Apple device, will appear on the map.
- Unfortunately, HayStacker only supports ESP32 via GUI right now.
- Flashing other devices must be done via the command line, using python
- Supported binaries and flashing scripts are bundled with HayStacker at
HayStacker/App/FindMyIntegration/YourBoardType
- Any binary from the following sources can also be used: