I don’t understand previous post. Does that mean that their ESLs can be flashed with OpenEPaperLink firmware? Or that there is a HA BT integration for their protocol? Or that Zhsunyco uses some kind of standardized protocol that can be readily integrated into HA?
It is a bunch of search results for people who have done this before with other epaper Bluetooth shelf tags. You can either apply what they learned to your displays or use the hardware that is already working.
I’ve purchased one of these ESLs from AE and I’m experimenting in communication with it using the information you’ve posted above @DonLuigi . Unfortunately, whilst it responds to bluetooth connections, I’m not getting positive responses from it. Perhaps the “custom security lock” needs someone smarter than I to work out how to connect to it.
NotFoundError: No Services matching UUID 33323032-4c53-4545-4c42-4b4e494c4f57 found in Device.
or
NotFoundError: No Services matching UUID 31323032-4c53-4545-4c42-4b4e494c4f57 found in Device.
Just looked through the android app to see what it was doing. Once working I used Claude to generate samples because why wouldn’t you. And Gemini to reword protocol docs because “me not do words good.”
Did a bit of a deeper dive on another branch “deeper-dive-into-protocol”.
Stopped looking now as I can now do bin collection day eink tags which was my aim.
Great. Just, it seems you have an ESL from different manufacturer, not Zhsunyco. Or maybe Zhsunyco have different lines of products? Mine looks like this, yours looks different. I opened a ticket on github with more info
Thanks a lot! I have a differently sized display apparently because the image appears distorted for me but I’m just happy that it works at all!
Now its just a matter of throwing AI at the issue until its working properly.
Edit: or just fixing the resolution in the parameters apparently. lol. I’m getting lazy.
I had a look - the OEPL bluetooth lib is a bit … hmmm. In THEORY it should be doable - just needs a little refactor so it can support multiple BLE vendors. I know it works on an ESP32 inc C because I use it for my bin display.
Hi,
I’ve been doing a lot of work on the OEPL BT library recently (in my own fork).
There are a ton of bugs in it, that I’ve been fixing as I go.
I’m looking to get a few of these RWBY tags, and see if I can program them.
Do you have a link to your c code? I’ll have a look through the python as well.
Subject: ESL-15BWRY (WOESL) BLE Protocol - Reverse Engineering Progress
Hi all, particularly @roxburghm — I’ve been trying to get a Zhsunyco ESL-15BWRY (1.54" 4-colour BWRY tag) working over BLE and have made significant progress reverse engineering the protocol but hit a wall. Hoping someone here can help fill in the gaps.
From reverse engineering libapp.so (Flutter/Dart AOT):
AES-CBC key: wolinkwolink~123
AES-CBC IV: wolinkwolinkiv!@
Magic identifier string: wolink
Internal function names: wrImgDat, wrDriver, parseChunk, decodeChunk
Encryption type enum includes CT_xor — unclear if AES or XOR is actually used
Working transfer pipeline (Python/bleak):
Connect
Subscribe to notifications on 34323032
Write payload size as 4-byte big-endian to 33323032 — accepted
Write payload in 16-byte chunks to 33323032 — accepted up to ~900 bytes
Write 0x01 0x00 0x00 0x00 to 31323032 (no response) — tag disconnects/reboots
What’s not working: The tag accepts all data and reboots on the commit command, but the LED never flashes and the screen never updates. We’ve tried:
RLE compressed 2-plane and 3-plane payloads (FC/FC8 format from roxburghm’s protocol docs)
Unencrypted and AES-CBC encrypted payloads
Multiple colour plane mappings for BWRY
Commit command values 0x01 through 0x10
The tag clearly has a ~900 byte payload limit which matches RLE-compressed image data for this resolution. The protocol flow seems correct but either the image format, encryption, or commit command is wrong for the BWRY variant.
Has anyone got a BWRY tag working, or does @roxburghm’s deeper-dive branch cover BWRY? Any pointers on what’s different vs the BWR tags would be massively appreciated.