An ESP-IDF firmware that impersonates a generic iTag-style Bluetooth LE tracker, so client software can be developed and debugged against a device whose behaviour is known.
iTag clones advertise the same services while implementing different subsets of them, so a client that works against one tag may fail against the next. This tool allows for a client to be easily tested by giving access to what a client is receiving rather than what a bluetooth library reports it is sending.
sdkconfig.defaults is deliberately target-agnostic, so idf.py set-target <chip> picks up
the working NimBLE configuration for any supported part rather than only the one it was
developed on.
idf.py set-target esp32h2 # or any other NimBLE-capable target
idf.py build
idf.py flash
idf.py monitor # CTRL+T then CTRL+X to exit
idf.py fullcleanscripts/get_services.sh [-m MAC] dumps the GATT table of a device from a Linux host, which
is the quickest way to confirm the firmware is advertising what you expect.
- ESP-IDF, installed and sourced so
idf.pyis on the path. - A NimBLE-capable ESP32 part. Developed on the ESP32-H2.
scripts/get_services.shneeds BlueZ (gatttool/bluetoothctl) on the host.