Custom BLE firmware for Hanshow E-Paper Shelf Labels / Price Tags

Overview

ATC_TLSR_Paper

Custom BLE firmware for Hanshow E-Paper Shelf Labels / Price Tags using the TLSR8359 ARM SOC

You can support my work via PayPal: https://paypal.me/hoverboard1 this keeps projects like this coming.

As BLE can be enabled on the Telink TLSR8359 so i decided to make a custom firmware instead of reversing the stock firmware and its 2.4Ghz RF Protocol

This repo is made together with this explanation video:(click on it)

YoutubeVideo

WebSerial Firmware flasher Tool: https://atc1441.github.io/ATC_TLSR_Paper_UART_Flasher.html

Compiling:

Python needs to be installed

Windows:

To compile under windows navigate with a command prompt to the "Firmware" folder

Enter "makeit.exe" and wait till the Compiling is done.

Linux:

Navigate with a Terminal into the "Firmware" Folder

Enter "chmod 777 -R ./"

Enter "make" and wait till the Compiling is done.

Flashing:

Open the Compiled .bin firmware with the WebSerial Flasher and write it to Flash.

On first Connection it is needed to Unlock the flash of the TLSR8359

Comments
  • Implements a BLE service for rendering images

    Implements a BLE service for rendering images

    This PR adds a BLE service & characteristic to which clients can write raw bitmaps.

    Here's a sample of uploading an image with rbaron/pricetag-printer:

    image

    opened by rbaron 8
  • Upload failed

    Upload failed

    Hi, I've tried to upload the firmware but nothing changed. I've got no error messages but the image doesn't changed and the display did not even blink. I've used 2 different USB2TTL devices: based on cp2102 and ch340 chips. Is there any special thing that I must consider when making the upload ? Thanks.

    opened by defconhaya 4
  • Latest commit breaks previous working upload image using BLE

    Latest commit breaks previous working upload image using BLE

    Last working stable commit is this one:

    commit ff957594fc5747ecaf2c789c4abadef7b54c6be9 Author: atc1441 Date: Sat Jan 15 17:24:03 2022 +0100

    Final CRC check working
    

    Sorry but I would really like to recommend to make a feature branch where others can test and only after testing merge in master. Otherwise it's not so cool to break existing working behavior and just push it to main branch without letting at least other developers test the new feature, specially when you can now make a BLE OTA Firmware update (In case you remove Serial flashing cables) and you find out that it does not update. I could not update.

    opened by martinberlin 4
  • Barcode and unique identifier of each ESL tag

    Barcode and unique identifier of each ESL tag

    Hi @atc1441 ,

    Would it be possible to have a:

    const char * serial = "517714";
    

    I was just analyzing the Barcode and it seems to me an unique identifier: Barcode location Which has this number in my device: Serial number

    Then if we build this firmware using that constant, we could get a bluetooth name like: ESL_517714

    My idea would be that we could scan this Barcode with a custom App and then we could automatically guess what is the device name. This can help to associate a device faster instead of browsing the hundred bluetooth around this days. But is just an idea, would be cool to have an unique serial and I just wanted to know where is the part of the code that generates the ESL_number. For this device the name I get is: ESL_545778

    On another topic, I'm designing a small 3D-printable tiny placement, in case you want to place this vertically in your table with a nice inclination so you can see it more clearly. Will share it in Thingiverse once done and tested! It would be possible to add in the Readme also a link to https://cale.es/epaper/en/Hanshow/27 just to mention you can send the image using our free service?

    opened by martinberlin 2
  • cppcheck warning

    cppcheck warning

    https://github.com/atc1441/ATC_TLSR_Paper/blob/5a85959211960cedfa7b98291301c23ef63a250e/Firmware/src/obd.inl#L2314

        iPitch = pOBD->width;
    
        if (pDestination == NULL || pOBD == NULL || pOBD->ucScreen == NULL)
            return -1;
    

    Looks fishy to me, too. :-)

    opened by holgerlembke 1
  • Paper_Image_Upload

    Paper_Image_Upload

    Hi. I successfully flashed the e paper label and i saw u have a image uploader but there is no clear way (for me) to make my own image could you reccomed a program that could be useful for this (i saw one but i cant find it) or any other solution that could help.

    opened by garobcsi 12
  • M3N@ / BWR213 won't detect right version?

    [email protected] / BWR213 won't detect right version?

    As reported in another thread here, the [email protected] version doesn't refresh its display properly. I flashed it thru UART and can now update it OTA. But the problem with the garbled display might come from not detecting the right BWR213 version. It displays it as BW213 which is not correct. Forcing the model version OTA, has no effect.

    opened by artelse 6
  • Hanshow Stellar-XLN@

    Hanshow [email protected]

    I have a [email protected] model which is a larger display of 84.22*63.02 mm and a battery life of 5 years. I have no idea what CPU is on board. I opened up the battery departments, and it reveals a test connector with following labels:

    | O | O | VCC  | GND  |
    | O | O | TMS  | NRST |
    | O | O | RXD  | TO?  |
    | O | O | TEST | TXD  |
    

    The labels on the second row are hidden behind the plastic casing, but I think they are correct, except TO? The other Stellar tags have a SWS connection that I don't see here. Any idea what TMS and TEST refer to, is one a SWS pin? Thanks for your great work on the Hanshow ESLs.

    opened by artelse 9
  • BLE not working on Stellar-MN@ E31H 401013

    BLE not working on [email protected] E31H 401013

    Hello!

    I tried flashing various versions of this firmware with no luck getting BLE working, flashing works as flashing some test firmware that makes LED flash works.

    How exactly is BLE working with TLSR8359? How can we test it's presence in hardware?

    Thank you

    opened by leo-lb 2
  • i2c NFC datasheet?

    i2c NFC datasheet?

    I saw in the code there was some written for the initialisation of the NFC chip. I do want to expand this myself.

    On the internet there isn't anything to find or how to address this bus or to write to the EEPROM. Anyone here have a non Chinese datasheet with the bus and register information on it?

    opened by Jeroen207 2
Owner
null
nrf52832 nrf52810 ble keyboard firmware

BLEKeyboard nrf52832 nrf52810 ble keyboard firmware WHY Learm more about hardware design and engineering. WHAT Implement a full featured powerful and

Jason Zhou ε‘¨ζ­£ζ˜Œ 42 Dec 1, 2022
Tree-sitter grammar for comment tags like TODO, FIXME(user).

Tree-sitter grammar for comment tags like TODO:, FIXME(user):, etc. Useful to be embedded inside comments.

Santos Gallegos 83 Nov 23, 2022
Reverse engineered source code of the engineowning cheat for cod9 (tags, ignore. Fortnite cheat, engineowning, engineowning cracked, cheat cracked, cod cracked cheat, cod cheat source)

engineowning-cod9 Reverse engineered source code of the engineowning cheat for cod9 Cracked by CODEX notinjector = C:\Windows\Release\ .exe drSYS = C:

null 8 Oct 12, 2022
A method from GH on how to stream a dll without touching disk, TAGS: fortnite cheat fortnite injector dll injector

dll-encryptor People who make pay hacks typically have down syndrome and are incapable of using their brains in any fashion, and yet these bath salt s

Micca 2 Nov 24, 2021
Tuple but with tags.

tagged_tuple Tuple but with tags. Example code: #include <iostream> #include "tagged_tuple.hpp" int main() { // defines binding between types (na

null 2 Nov 17, 2021
Custom firmware for Quicko and KSGER T12 soldering stations

STM32 Soldering Station Firmware Project details Compatibility Operations guide Frequently asked questions Building Creating a .ioc file from scratch

null 201 Dec 1, 2022
A custom firmware for the EleksTube IPS Clock

EleksTubeHAX - An aftermarket custom firmware for the EleksTube IPS clock Buy your own clock here: EleksTube IPS Clock Reddit discussion on the hack i

Mark Smith 68 Nov 19, 2022
A simple utility for loading custom firmware onto the PS5 camera, using libusb.

A simple utility for loading custom firmware onto the PS5 camera, using libusb.

Raleigh Littles 21 Nov 10, 2022
Toolchain and dockerfile to build the Miyoo Custom Firmware (CFW)

Miyoo Toolchain Toolchain and dockerfile to build the Miyoo Custom Firmware (CFW) See https://github.com/TriForceX/MiyooCFW/wiki/Build-Source for more

Nathan Friedly 3 Aug 5, 2022
A custom, freestanding, experimatal kernel / firmware for the n3ds

A little experiment where I build a toy kernel for the new nintendo 3ds (n3ds).

V01D 9 Oct 17, 2022
Allows for multiple SwitchBot buttons and curtains to be controlled via MQTT sent to ESP32. ESP32 will send BLE commands to switchbots and return MQTT responses to the broker. Also supports Meter/Temp Sensor

SwitchBot-MQTT-BLE-ESP32 Switchbot local control using ESP32. no switchbot hub used/required. works with any smarthub that supports MQTT https://githu

null 332 Nov 26, 2022
πŸͺ΄πŸ’§ A Bluetooth Low Energy (BLE) soil moisture sensor.

b-parasite b-parasite is an open source Bluetooth Low Energy (BLE) soil moisture and ambient temperature/humidity sensor. Features Soil moisture senso

null 1.3k Nov 27, 2022
Arduino Sketch and a Web Bluetooth API for loading models and running inference on the Nano Sense 33 BLE device.

TF4Micro Motion Kit This repo contains the Arduino Sketch and a Web Bluetooth API for loading models and running inference on the device. Install and

Google Creative Lab 52 Nov 24, 2022
Bluetooth low energy (BLE) tracker for ESP32

BLEcker Bluetooth low energy (BLE) tracker for ESP32 This software is written for ESP32 boards to track BLE devices. It can be used for your smart hom

Vârâs Ákos 41 Oct 16, 2022
sc-ble-bridge is a utility that for every connected Steam Controller creates a virtual one acting as a bridge between SC and Steam

sc-ble-bridge The main goal of this utility is to provide workaround for steam-for-linux issue which makes Valve's Steam Controller unusable in BLE mo

null 5 Apr 19, 2022
WisBlock API takes care of all the LoRaWAN, BLE, AT command functionality

WisBlock-API Targeting low power consumption, this Arduino library for RAKwireless WisBlock Core modules takes care of all the LoRaWAN, BLE, AT comman

Bernd Giesecke 18 Nov 16, 2022
ControllaBLE - A retro-controllers to Bluetooth BLE adapter

ControllaBLE - A retro-controllers to Bluetooth BLE adapter This is an ESP32 based controller adapter that outputs as a dual joypad through Bluetooth

null 14 Oct 16, 2022
BLE keyboard for Japanese Kana typing

FlickInput BLE keyboard for Japanese Kana typing. BLEフγƒͺックε…₯εŠ›γ‚­γƒΌγƒœγƒΌγƒ‰ M5Paperγ‚’η”¨γ„γŸθ»½ι‡γͺフγƒͺックε…₯εŠ›γ‚­γƒΌγƒœγƒΌγƒ‰γƒ•γ‚‘γƒΌγƒ γ‚¦γ‚§γ‚’γ§γ™γ€‚ 片手でPCに文字ε…₯εŠ›γ‚’η΄ ζ—©γθ‘Œγ†γ“γ¨γŒγ§γγΎγ™γ€‚ 使い方 γ‚΅γ‚€γƒ‰γƒœγ‚Ώγƒ³γ‚’ι•·ζŠΌγ—γ™γ‚‹γ¨ι›»ζΊγŒε…₯γ‚Šγ€θ΅·

Yuki MIZUNO 19 Sep 28, 2022
ESPHome BLE Keyboard

ESPHome BLE Keyboard The firmware implements the ability to connect your esp32 device as a BLE keyboard and send keystrokes via Home Assistant Table o

Dmitry Mamontov 29 Nov 30, 2022