Skip to content

An E-paper shelf label (electronic shelf label or ESL) base station based on said shelf label and an ESP32

Notifications You must be signed in to change notification settings

jjwbruijn/ESP32-epaper-station

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32-epaper-station

An E-paper shelf label (electronic shelf label or ESL) base station based on an Electronic Shelf Label and an ESP32. One tag is used as a zigbee radio to send packets to other tags/labels/esl's. It's based on the work of epaper/tag heroes listed below

Disclaimer

  • By using this software you acknowledge that I am in no way liable if you burn down your PC, set your hair on fire or other potential things that may or may not happen due to the use of this software.
  • THIS IS PRETTY MUCH IN ALPHA STATE RIGHT NOW - IT KINDA WORKS, BUT IT IS SOMEWHAT UNSTABLE AND VERY MUCH UNSUPPORTED -

Big thanks

Howto

You're going to need a couple of things

  • ESP32 (whatever board, a minimum of two GPIO pins for a serial connection)
  • Solum ZBS243 SOC-based ESL (I tried and built it for the 2.9"/1.54" board). The EPD panel can be disconnected or removed
    • ZBS_Flasher- ESP32/ESP8266/Arduino Nano based flasher for the ESL. We'll try to integrate this into the first ESP32 in the future
  • Optional: Webserver running PHP
  • Shelf labels running the custom firmware (originally version from dmitry)

Getting stuff up and running

  • Flash the shelf label/tag with the binary provided in the firmware_zigbee_base directory. Guides to flash label can be found here
  • Make sure to enter a valid mac address on the infopage 0x10 offset (8 bytes) and write it back to the tag
  • Open the ESP32 firmware and edit settings.h, make sure your webserver is filled in correctly.
  • Build the ESP32 firmware and flash to your ESP32 board. I like to use PlatformIO. Whatever works for you!
  • Connect the base-station-ESL to the ESP32 using the designated pins. Pin configuration can be changed in serial.cpp!
  • Connect the ESL VCC and ground pins to the ESP32. Make sure to hook it up to 3.3v [optional]
  • Add the wwwdir folder to your webserver, rename to esl or whatever you've entered in settings.h
  • Write access to the 'img' directory is needed
  • Boot the ESP32 and use WifiManager/config portal to connect the ESP32 to your network

Next steps / errata

Omg where to start... It's unstable, only happy flow is implemented, there is almost 0 error handling. These tags aren't meant to be used as base stations, the radio interface may be unstable and can stop/drop out. Your milage may vary, and is very much dependent on network congestion and RF environment.

When connected to a valid board, it'll automatically flash it and set the correct mac address. Very little to do!

Connect to it's ip adres using http://<ip?>/edit and add image files to display there!

Todo

  • Improve radio latency/speed
  • Built-in flasher
  • Error handling
  • Web interface
  • Improved PHP side - database for tags?
  • Remove crypto from both custom firmware/ESP32 should improve speed
  • Use the display of an ESL as a base-station status screen
  • Wifi stability
  • Code clean-up
  • ...

FAQ

  • Q: OMG Your code is a hot mess / unmitigated dumpster fire / whatever

    • A: Yeah I know. This isn't my day gig, feel free to clean it up and hit me up with a PR
  • Q: Can the base-station run on microcontroller board X

    • A: Maybe. Feel free to port it and hit me up with a PR when you do. I wouldn't recommend it per-se, ESP32's are cheap and highly effective for something like this
  • Q: Does this work for other labels/tags?

    • A: Not that I'm aware of. They need to be running custom firmware anyway; this base station currently uses dmitry-style communication with tags
  • Q: Can you help me build this?

    • A: Sorry, no. My time is very much limited. If you can't figure this out on your own, you are probably not the intended audience. Once again, sorry.
  • Q: When will X be done?

    • A: Maybe tomorrow, maybe never

About

An E-paper shelf label (electronic shelf label or ESL) base station based on said shelf label and an ESP32

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages