The Parkside (Lidl brand for DIY electronics) Smart Battery PAPS 204 A1 (20V 4Ah) has its "smarts" in the form of Bluetooth connectivity and an accompanying app. While I'm not a fan of such things, I do like firmware hacks! So I skipped the app altogether and did a teardown of the battery straight out of the shop.
Pleasantly surprised I found the BT7L module in there which takes care of all the Bluetooth stuff, and since those Tuya modules are usually easy to work with, this project will document my attempt to combine this with a previous Find My project of mine: https://github.com/biemster/FindMy to create the world's most clunky key finder! Or just a way to locate your lost power tools, whichever suits your needs.
Files
FindMy.bin
TLSR825X firmware which advertises on the Find My network
This was a really quick project. Implementing the FindMy advertisement was basically the same as what was done for the Lenze st17h66, and is implemented in https://github.com/biemster/tlsr825x_FindMy
This repo also contains a small python script that will exchange the dummy key in the firmware with one you control yourself, as generated with the generate_keys.py script in biemster/FindMy.
Precompiled firmware can be found in both the biemster/FindMy and biemster/tlsr825x_FindMy repositories, so no compilation required to get started with this!
This concludes the updates here, but there are a couple minor enhancements that can be done which will be tracked in the github repository. For example advertising the battery status can be added, and maybe also key rotation and advertising to the Google FindMy network are three things I might pick up soon.
In the description I already mentioned that this project might be quite straightforward. Since those are usually famous last words I was prepared for defeat, but no!
I had the pleasure of receiving his help on the FindMy implementation on the Lenze st17h66, and this work on the telink 8250 in the BL7T did not disappoint either. With only 3 wires connected via an USB UART I can read and write the firmware in a pinch.
Second, the SDK. These are usually not easy to find, and if one is found require extensive modifications to get even a basic blinky out of it. But also here we are in luck: https://github.com/Ai-Thinker-Open/Telink_825X_SDK
This SDK has instructions on installing the toolchain (tc32) in Chinese, but it's basically just extracting a tarball to /opt and then you're good to go. The example/8258_feature_test is configured to test the power consumption of an advertisement, which is already very close of what I want to do. A simple "make" in that directory will produce a flashable bin in the "out" directory. That's all there is to it!
The following command will flash this firmware to the BT7L: