{"id":13801269,"url":"https://github.com/mcauser/micropython-aioble-itag","last_synced_at":"2026-04-30T18:31:23.261Z","repository":{"id":221001673,"uuid":"743068517","full_name":"mcauser/micropython-aioble-itag","owner":"mcauser","description":"Examples using aioble to interact with iTag BLE keychain tags","archived":false,"fork":false,"pushed_at":"2024-01-14T08:19:02.000Z","size":2391,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T12:33:00.905Z","etag":null,"topics":["aioble","ble","bluetooth-low-energy","esp32","itag","itag-device","micropython"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcauser.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-14T08:16:05.000Z","updated_at":"2024-08-20T00:58:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"7c26d476-417a-4224-b0d9-0e14c3236da8","html_url":"https://github.com/mcauser/micropython-aioble-itag","commit_stats":null,"previous_names":["mcauser/micropython-aioble-itag"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mcauser/micropython-aioble-itag","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcauser%2Fmicropython-aioble-itag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcauser%2Fmicropython-aioble-itag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcauser%2Fmicropython-aioble-itag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcauser%2Fmicropython-aioble-itag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcauser","download_url":"https://codeload.github.com/mcauser/micropython-aioble-itag/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcauser%2Fmicropython-aioble-itag/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32473804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aioble","ble","bluetooth-low-energy","esp32","itag","itag-device","micropython"],"created_at":"2024-08-04T00:01:21.089Z","updated_at":"2026-04-30T18:31:23.245Z","avatar_url":"https://github.com/mcauser.png","language":null,"funding_links":[],"categories":["Libraries"],"sub_categories":["Communications"],"readme":"# MicroPython AIOBLE iTag\n\nExamples for interacting with iTag BLE (Bluetooth 4.0) keychain devices using [aioble](https://github.com/micropython/micropython-lib/blob/master/micropython/bluetooth/aioble/README.md) on a TinyPICO (ESP32).\n\n![thumb](docs/thumb.jpg)\n\nThe tag is a simple [Bluetooth Low Energy](https://en.wikipedia.org/wiki/Bluetooth_Low_Energy) device with a single push button powered by a 3V CR-2032 Lithium cell.\n\nYou can connect to it, send a command to make it beep, read it's battery percentage and get notified when the button is pressed.\n\n### Installation\n\nUsing mip via mpremote:\n\n```bash\n$ mpremote mip install aioble\n```\n\nSee [examples](/examples).\n\n### BLE GATT\n\nGATT is an acronym for the Generic Attribute Profile.\nIt defines the way two Bluetooth Low Energy devices transfer data back and forth using concepts called Services and Characteristics.\n\nThe device presents 3 GATT services, each with a characteristic.\n\n* Immediate Alert (0x1802)\n\t* Alert Level (0x2a06) - write\n\n* Battery Service (0x180f)\n\t* Battery Level (0x2a19) - read\n\n* Custom Service (0xffe0)\n\t* Custom Characteristic (0xffe1) - read/notify\n\n### Mobile app\n\nThe tag can be interacted with using an app called \"iSearching\", found in the iOS an Android app stores.\n\n### Powering\n\nPower on the tag by holding the push button.\nThe iTag beeps twice and blinks LED to indicate it's on.\n\nPower off the tag the same way.\nIt will long-beep once to indicate it's now off.\n\n### Beeping\n\nWrite a `0x01` to the Immediate Alert \u003e Alert Level characteristic and the tag will start fast-beeping.\n\nWrite a `0x00` to the characteristic to make the tag stop fast-beeping.\n\nThe tag will slow-beep after a connection has been made and then disconnected.\nThis is to let the user know the device is no longer in range (eg. has been left behind).\nPress the tag button to acknowledge and mute.\n\n### Battery\n\nRead the Battery Service \u003e Battery Level characteristic and it will return the tags current battery level expressed as a percentage (0x60 = 96%).\n\n### Push button\n\nEach time the tags push button is pressed, it sends a notification to the Custom Service \u003e Custom Characteristic with a fixed value of 0x01.\n\nYou can listen for notifications on the Custom Characteristic to detect when the button is pressed.\n\n### Teardown\n\n![tag_colours](docs/tag_colours.jpg)\n\nComes in a variety of colours. I bought one of each.\n\n![inside](docs/inside.jpg)\n\nBattery compartment rotates to reveal the battery.\nCase is loosely press fit together (no glue).\nEasily pried apart with a pry tool or fingernail.\n\n![pcb_front](docs/pcb_front.jpg)\n\nv1.6 | v1.8 | v5.0\n\nMCU: ST17H26 TSSOP-16 RF Transceiver\n\n![pcb_back](docs/pcb_back.jpg)\n\nv1.6 | v1.8 | v5.0\n\nEven though they were all purchased on the same day, the PCBs show different versions and dates:\n\n* v1.6 - 2016-03-03 - green tag\n* v1.6 - 2016-03-03 - pink tag\n* v1.8 - 2019-08-01 - blue tag\n* v1.8 - 2019-08-01 - black tag\n* v5.0 - 2020-01-10 - white tag\n\n### Buy\n\nThese devices can be found on AliExpress under various names:\n\n* Mini Pet Smart Tracker Bluetooth 4.0 GPS Alarm Locator Keychain for Pet Dog Cat Child ITag Tracker Key Finder Collar\n* Mini GPS Tracker Bluetooth-compatible 4.0 Smart Dog Pets Anti-lost Alarm Tag Wireless Child Bag Wallet Key Finder Locator 25m\n* Smart Bluetooth GPS Tracker Work for Apple Find My APP ITag Anti Lost Reminder Device MFI Rated Locator Car Key Pet Kids Finder\n* Good Mini Pet Smart Tracker Bluetooth 4.0 GPS Alarm Locator Keychain for Pet Dog Cat Child ITag Tracker Key Finder Collar\n* Bluetooth Key Finder Smart Anti Lost Device GPS Locator Tracker Tag iTag Alarm Localizado for Kids Pet Dog Cat Wallet Bag\n\nDon't be fooled by the descriptions. There is NO GPS in the device!\n\nPrice ranges from $2 to $20 AUD.\n\n## Links\n\n* [micropython.org](http://micropython.org)\n* [ST17H26 datasheet](docs/st17h26.pdf)\n* [TinyPICO Getting Started](https://www.tinypico.com/gettingstarted)\n\n## License\n\nLicensed under the [MIT License](http://opensource.org/licenses/MIT).\n\nCopyright (c) 2024 Mike Causer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcauser%2Fmicropython-aioble-itag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcauser%2Fmicropython-aioble-itag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcauser%2Fmicropython-aioble-itag/lists"}