7.4" E-Ink Shelf Label used as a Weather Station

Modified Chroma74 shelf label to be my weather station display. It is 7.4" 3-Color E-Ink units that cost $12 on eBay.

Similar projects worth following
The November Hack-a-day podcast encouraged me to share my e-paper journey. It seems I’m not the only one who is fascinated by its potential. I was interested in the technology for over two decades when I saw it during CES (Consumer Electronics Show). I remember e-Ink paper sheets that could be used repeatedly with an e-paper printer/scanner combo. Many trees were going to be saved by the promise of sheets of paper that keep images without power and can be reused 1000 times. Today, the e-paper is married to the controller; that is an improvement, but the price and sizes are far from desirable. Nevertheless, technology progresses, and new RGB displays are being developed. Is the technology ready for hackerspace?
I converted a 7.5” three-color E-Ink Electronic Shelf Lable to a weather station and a message board. Those units are used by my local hardware store and can be bought for $12 on eBay. The details section contains my long journey to make it happen.

    The e-paper technology looks perfect for periodic update information boards, such as door message sign or a custom weather display. And I want one with an atmospheric pressure graph, but not a little 2-inch display. I want a roomy display to hang on any wall regardless if there is no outlet near it. But a price for a decent size display such as 7.5” seemed still more than I was willing to pay, especially since I would like to put them in a few rooms. I already bought a few small displays, but I couldn’t find a good use for them. Meanwhile, every time I went to my local hardware store, I saw a big two-color E-paper display on every appliance. They looked like a full-blown solution for my use if I could get my hand on it. The device could not be costly, including the wireless interface, batteries, and a case, if they can have hundreds in every store just as labels. Thus, I took a picture of the back of the display and did some research.

      The store is using Chroma 74, Black and Yellow, Electronic Shelf Label. The yellow would be perfect for the sun on my weather display. The “74” stands the screen size, 7.4” and the size is almost identical to the Waveshare 7.5inch E-Ink sold on Amazon. It also has the same display resolution of 640x384. I probably was not the first who had that idea, but I could not find much on the web. The display is sold to retailers only and has a proprietary wireless interface. I was able to find the FCC certification with the internal pictures. The display cable and electronics matched a typical Waveshare E-Ink connector and circuit sold as a module on Amazon, plus a microcontroller and battery. Those displays do have good documentation and Arduino libraries. Encouraged by this find, I turned to eBay to see if I can get some. There were a few sellers with a surplus of brand new units for ~$12 (plus a few bucks for shipping). So I got a few. With decades of professional embedded design experience, how hard it’s going to be?

    Chroma74 units came quickly and looked perfect. I was hoping I will be able to get the display part number and download the datasheet. Then I will connect to an ESP32 through the E-Ink HAT, and I’ll be done. Unfortunately, too often, things are more challenging than they initially seem. I found the display part number (WFD0750BF19) on the display cable.  It was Wuxi Vision Peak Technology Co. 7.5 color display, but I could not find a published datasheet. The datasheets for other smaller modules were available, so I had something to try. The big surprise was that the display connector was epoxied to the controller board, unlike the FCC pictures. It’s not surprising that they glue the connector. It’s not only cheaper, but it is less prone to vibration.  Additionally, the cable had reversed pinout (or up-side-down connection).  The unit contained a single PCB with four sections and a set of six 2450 batteries in parallel. Per the unit brochure, they will power the display for five years – talking about efficiency.

     To see if there is an easy path, I decided to connect the display to the E-Ink HAT with a generic e-paper Arduino sketch for a 7.5” display. The connector was unglued with a lot of heat and patient. One wrong move and the cable would be damaged. The extra epoxy was cleaned with alcohol. The display’s flat cable was too tin, and I glued some thin plastic to match the regular connector thickness to ensure a good connection. The Waveshare E-Ink display HAT extension socket allows top or bottom connections; two steps forward, one step back. The glue connector has extra width to provide a glue surface on both sides. The sides needed to be trim to fit into the socket, but there is very little room for error. The connector has a 0.5mm pitch. With all the surgery behind, I connected to a generic e-paper HAT and the controller. No surprise, the display did work....

Read more »

Arduino ESP32 sketch that displays a test page and a color pattern. This sketch is using my guess LUT update black-and-white and color profiles.

x-zip-compressed - 23.63 kB - 11/28/2020 at 06:02


  • New LUT and GxEPD library

    YodaLogic11/28/2020 at 17:10 1 comment

    Huge thanks to Aaron for joining the project. He was able to extract the stock LUT from the flash and get vibrant back and yellow colors. You can find a link to his Modded GxEPD library in the discussion section.  I already converted all of my displays to the ESP32, but Arron has many more to play with. He was able to program onboard CC1110 processor with a custom firmware and exercise RF module.  The RF module is bi-directional, so we can dedicate one unit to be a bridge with others. The battery-operated units then can register periodically and download the rendered image. I wish we all could get more of those displays.

View project log

Enjoy this project?



aldolo wrote 2 days ago point

40€ is a little bit pricey. even on aliexpress there is nothing under 20$ for a bare display

  Are you sure? yes | no

JVS wrote 4 days ago point

Too bad the resolution is so low, it would make for a kickass FOSH ebook, or even B&W photoframe

  Are you sure? yes | no

Interzen wrote 4 days ago point

Check out @dmitrygr on twitter.  He has a custom photoframe firmware working with greyscale, rf upload, and 1.25 µA standby.  l think the 640x384 resolution is ok for greyscale photos.  A little grainy like an old time tinplate.  Could even add artificial yellowing in the corners to enhance the effect.

  Are you sure? yes | no

Aaron Christophel wrote 4 days ago point

new updates on the custom firmware

  Are you sure? yes | no

Interzen wrote 4 days ago point

Been following your progress with bated breath.  I have a rough serial=>SPI passthrough working and some rf code complete but my relevant experience is limited and I can always use more reference code.

  Are you sure? yes | no

Interzen wrote 4 days ago point

One more thing. Are you using custom firmware on the ESL too or just a custom base station for the stock cc1110 firmware?

  Are you sure? yes | no

Aaron Christophel wrote 4 days ago point

the displays are untouched, the custom ESP32 is emulating a stock Ap  to control the displays with stock firmware

  Are you sure? yes | no

Chris Jones wrote 5 days ago point

Awesome project, can't wait for the new firmware to be available, I need to get to messing around with my Chroma74 display.

Hey I figured I would also send a tip that it looks like there a huge batch of the epop 900-rb ESL's now showing up on ebay, they have a 6.9" display which appears to be 3 color (red) and are going for quite a bit cheaper than the Chroma's..

I picked up a 5 pack for $20 shipped, not sure how long this will last though..

  Are you sure? yes | no

Aaron Christophel wrote 4 days ago point

the EPOP900 is known and already tested with the firmware.

BUT! They have a bistable LCD and only Black/Greyish like a normal lcd, the red bar is only a foil behind the first layer of the display.

The price is nice for what they are but no E-Ink/E-paper

  Are you sure? yes | no

Aaron Christophel wrote 02/05/2021 at 18:30 point


to make a new update on the Arduino control firmware i got this new video. Its very stable and the only big unknown reversing missing is still the Arithmetic compression

  Are you sure? yes | no

Aaron Christophel wrote 01/16/2021 at 09:58 point

Hey everyone, another small update.

Since i was able to get my hands on 370pcs CHROMA29 displays

i also extracted the LUT from then and noticed a big image quality difference when testing the extracted LUT on more than one display.

It looks like every displays has its own LUT to show the best image, @Interzen that maybe explains your quality problem you mentioned in the other comment.

So whe  using an arduino to control the display it would be the best to read out the external flash to get the best LUT for that specific display

The Custom Access point is being worked on and has some good progress to use the displays with the stock firmware

  Are you sure? yes | no

Colin Ng wrote 01/16/2021 at 00:02 point

I am really excited at what you are doing! 

I too was thinking of doing a weather station. Or maybe I would make an energy usage display (i.e. how many GJ of gas, how many kW•h of electricity) we are using in our home, as a way to make our conservation efforts tangible. And this project would allow the status display itself to use hardly any energy at all. i.e. its energy usage is 6 coin cells per 5 years, with rechargeable ones for < $2 each. 

Thanks to everyone for your efforts on this. Thanks for making us have something fun to look forward to. 

  Are you sure? yes | no

marazm wrote 01/03/2021 at 20:59 point

zastanawiałeś się nad mruby? w esp32 powinno się zmieścić

  Are you sure? yes | no

Aaron Christophel wrote 01/03/2021 at 20:04 point

Yet another update is ready :)

Activating an sending CMDs to the Pricetags is now possible and quite dynamic via the WebServer and Arduino

Here is again a short demo

  Are you sure? yes | no

Aaron Christophel wrote 01/03/2021 at 02:04 point

here is a new update to the reverse engeneering of the RF protocol

Most cmds are understoud now and a very first Arduino image WebUploader is ready 

Here is a short demo

The Sync, Wakeup and Activation works very relaiable. Now comes the part where a nice web interface and database backend needs to be created.

The status counts for the CHROMA74 as well as it uses the same protocol

  Are you sure? yes | no

Interzen wrote 01/03/2021 at 03:12 point

Thanks for the great work Aaron.  I sent a Chroma 74 today to Larry the Performance Whisperer.  Hopefully my cc1101 modules show up this week so I can keep up.

  Are you sure? yes | no

Aaron Christophel wrote 12/20/2020 at 20:58 point

Hey everyone,

A first Arduino custom firmware is now working.

Also a fully stock CHROMA74 was now possible to refresh with the custom firmware.

Here is a short video about it:

  Are you sure? yes | no

Mike Szczys wrote 12/25/2020 at 18:28 point

Superb work on this! Is there any secret sauce to the RF? I'm hoping any 433 MHz transmitter will work.

  Are you sure? yes | no

Aaron Christophel wrote 12/25/2020 at 18:32 point

The best one for the job is the CC1101 as i write the software for that one, 

be carefull to select the 868mhz version like it is here:

  Are you sure? yes | no

Aaron Christophel wrote 12/16/2020 at 09:26 point

just as a smaller update.

I am currently very ocupied with reversing and rewriting the RF protocol. snyc messages are fully working already and the next step is wakeup messages, then followed by sending data to an actual display.

The hardest part then will be to do an full activation but it will work it self out after the base is running. 

Getting good progress so far.

Also a very good news is that the CHROMA74 displays get fully detected by the Communicator and Software including the resolution and software version but will then get deleted as they are not in the list of valid displays. But that means they will work on the custom firmware :)

OT: is there a way to get notified for every comment in this project? Need to look everyday to see if there is a new one

Everyone who wants to play with it later should already get one of these cheap CC1101 moduled from ebay for 2$ as these will be most likely used and not a modified display with the CC1110 to have better timing precision

  Are you sure? yes | no

Pops wrote 12/15/2020 at 21:17 point

Aaron Christophel, do you plan to sell any of those smaller displays you show in your youtube video?  Good Grief you have a bunch!

  Are you sure? yes | no

Aaron Christophel wrote 12/16/2020 at 09:20 point

hey. Yes will most likely end doing so. 

Just bear in mind that the batterys are dead and everyone needs to be opened to replace it as it does not have a battery cover

  Are you sure? yes | no

Pops wrote 12/16/2020 at 14:20 point

Excellent !  

  Are you sure? yes | no

donaldej wrote 12/08/2020 at 06:38 point

I found a communicator device on ebay, but they said the software does not include a license with the purchase (but does have the software) :(

  Are you sure? yes | no

Aaron Christophel wrote 12/08/2020 at 08:43 point

i did bought a communicator and the license from different places so it may not be needed to buy another one, just waiting for both items to arrive

  Are you sure? yes | no

Aaron Christophel wrote 12/10/2020 at 02:37 point

the communicator did arrive today and i showed it on a live stream

Half of the software did also arrive the other parts are still being uploaded.

The AT91SAM7S256 in the communicator is the most important part as it does the protokol handling, luckily they included the firmware for it in the software so it can be reversed to look at how things work.

  Are you sure? yes | no

Interzen wrote 12/10/2020 at 19:09 point

Great news on the communicator progress.  I got a cc debugger in and have been playing with your example firmware.  You are right this is much more useful then the alternatives and was only $14USD via Amazon prime.

This is my first foray into e-paper and I was surprised by the amount and duration of flashing during the initialization and updating phases.  I replaced the 2 pixel data byte that you had iterating with the address with 0x44 and got a nice vivid yellow display but when I write 0x00 to all the pixel pairs in an attempt to turn the screen black I get some light vertical banding and the image seams to be a somewhat yellow tinted black.  0x33 gives a nice clean white but If I use 0x30 for the data byte I get the expected vertical black lines every other pixel and see a yellow tint to the other pixels that should be white.  If I alternate 0x03 and 0x33 I get black lines every fourth pixel and don't detect much if any yellow in the white pixels.  I was wondering if you observed similar behavior?

@YodaLogic mentioned that you extracted the LUTs from the original flash and I verified my cc1110 had the exact same flash contents before I replaced it.  I wonder if variations in display lots will require tuning the LUTs.  I am going to play with @YodaLogic's LUTs in your code next and compare.  My ultimate goal is to port the graphics and display libraries to the TI chip and graft on an ethernet port with POE support for a weather/irrigation display and thermostat controller.

  Are you sure? yes | no

Interzen wrote 12/05/2020 at 17:18 point

 OK, I have the extra chroma 74s in hand.  I figured out shipping and paypal fees and have the first shipment mailed out.  The total cost for single units is $16 + $4.57 shipping (USPS first class pkg to US address) + $0.94 paypal fee for a total of $21.51.  I can also ship 2 units via first class pkg if I remove the batteries from one to get the weight under 16oz with packaging. The cost for that is $32 + $5.79 1st class pkg + $1.44 paypal  = $39.23.  (prices updated 12/6/2020 after I shipped a few and found the exact figures)

If you want two or more with all the batteries they have to ship usps parcel select ground and I will need the destination address to calculate shipping from Denver.  If anyone knows of a cheaper way to ship these let me know.

Private message me with how many units you are interested in and your address and I can give you a quote and my email address.  I am doing payment through paypal which gives buyer protection and lets me do invoicing and shipping from their site.

Edit: If someone wants just the display and attached pcb I can send several of them via 1st class pkg without the weight of the enclosures and batteries.

  Are you sure? yes | no

Aaron Christophel wrote 12/05/2020 at 02:13 point

Just added an working SDCC example to the Pricetag repo,

This will use the Stock PCB to refresh the screen and set it to sleep mode, the SOC will continue to run and still draws around 7mA but its a POC, the repo includes everything needed so no tools needed to compile except the CC-Flasher and Debugger to flash the CC1110, will add more later especially the pinout.

Also i would as well sell some of the Displays i got, they are a bit more expensive than Interzen ones as i paid a bit more to import them from the US to Germany, but on the other hand for people from EU its maybe easier to get them.

Also i was able to buy an Access Point to sniff the RF data and hopefully get the Stock firmware running, this one comes from Spain and was another expense as it includes 500 additional small Bistable LCD Pricetags but still waiting on them. In addition i got a license for the software to use the Access point for another ~100€ to be able to update the screens with the stock hardware

I did found a good paper on how the RF protocol in general works, it is very unique but clever solved, will be a bit harder to get a custom Access Point working when only wanted to use 1 to 10 displays as it is made for 65000 devices

  Are you sure? yes | no

Tom Nardi wrote 12/05/2020 at 03:54 point

Very exciting stuff, eventually being able to build our own AP and use the stock firmware would be the Holy Grail for these sort of displays. Much respect for the time/money you're willing to put out for these projects, some legendary dedication.

  Are you sure? yes | no

Interzen wrote 12/05/2020 at 22:37 point

Thanks @Aaron Christophel  for the update and your continued efforts.

For those that don't want to spend $12 on the flasher debugger, and wait for shipping from China, these alternative methods should work with our boards: 

I have not tried either yet.  

EDIT: hold of on this for now.  It seems there may be a difference in flash control register address size and I have not confirmed that the OSS flashing utilities in that link are backwards compatible from the cc25xx chips to our cc1110. -END EDIT

The programming pinouts are:

VCC --- tp14 or tp4
GND --- tp18 or tp8
RST  --- tp12 or tp2
DC   --- tp15 or tp5 (debug clock)
DD   --- tp13 or tp3 (debug data)

Edit: Looks like the USART1 is controlling the spi flash using USART1 pin config alt 1.  This UART(USART) could also possibly be used to communicate with an external µc or with an esp8266 to add a wifi gateway.  The test pads tp17 and tp19 (or tp7 & tp9) connect to p1_6 and p1_7 which are tx/rx alt 2 pinout for UART1

  Are you sure? yes | no

Aaron Christophel wrote 12/06/2020 at 12:05 point

Hey, also the problem with the alternative flashing methods is the time it takes, from 3 minutes to 3 hours flashing time... 

With the CC-Debugger its just 10 seconds.

  Are you sure? yes | no

Interzen wrote 11/29/2020 at 20:20 point

I have a lot of 48 of these ordered.  I only need a couple and will pass the rest on.  I didn't get the best deal so I will probably be asking about ~Edit: $16 + actual shipping cost ~.  PM me if you want some before I list them elsewhere.

Thanks @YodaLogic and @Aaron Christophel for the great work.  I can't wait to get these in my hands and start playing.

  Are you sure? yes | no

Aaron Christophel wrote 11/28/2020 at 16:40 point

Just added support for the CHROMA74 Yellow display to my Modded GxEPD2 library:

this uses now the stock LUT and make a very bright Yellow as intended 

The RED version is using a different LUT that still needs to be reversed.

  Are you sure? yes | no

Mike Szczys wrote 12/01/2020 at 00:57 point

This is awesome! I use your library for a silly project of mine[1] and picked up the Chroma 74 screen based on the work seen here. Very excited to have the library already sorted so I can upgrade to this! Thank you for making your library open source 😊

  Are you sure? yes | no

Aaron Christophel wrote 11/27/2020 at 15:35 point

@YodaLogic i am currently working on the same displays/pricetag and got 35pcs of it. I reversed the cc1110 firmware very far but was not able to drive the display but wrote a custom firmware for the CC1110 so i think it would be great to connect on that one to make a fully firmware for the stock PCB ?

  Are you sure? yes | no

kkrell2016 wrote 12/01/2020 at 11:23 point

Fascinating, great job.
I had a look at the GitHub repo. Unfortunately I could not find the CC1110 custom firmware. Only the backup of the original one. How far have you come with your project? Working on getting such a display.

  Are you sure? yes | no

Interzen wrote 12/01/2020 at 21:50 point

I am also interested in how far you have gotten on replacement firmware.  I used this as an excuse to learn Ghidra but could not open your project because it was not created as a 'shared project'.  I'm working through a tutorial now and then I will try to copy your project files into a new one that I can work with.

What are you using for a development environment and for accessing the two-wire debug interface?

  Are you sure? yes | no

Aaron Christophel wrote 12/03/2020 at 11:33 point

sorry wasnt notified.

The custom firmware is still in its beta and not shareable for now, as it was not refreshing the display until the LUTs where found, the spi communication is already working as expected.

I am using SDCC and just notepad++ as editor. 

This repo is a good starting point

Right now i am still trying to get the stock firmware running so the development of a new firmware is not needed as deep sleep is harder to archive

Bought a stock Access point today and wait till it arrives.

  Are you sure? yes | no

Tom Nardi wrote 12/02/2020 at 04:50 point

A complete custom firmware for this device, where we could simply send images over RF, would really be the dream. I could imagine having these devices all over the house, with each one getting room-appropriate displays over the air.

Very excited to see where this project goes.

  Are you sure? yes | no

Tom Nardi wrote 11/23/2020 at 04:22 point

I've seen these at the Home Depot and was wondering how long it would take for somebody to crack them open. Looks like bending it to our will isn't exactly plug-and-play yet, but good to see some first steps made.

Are you planning on releasing the profile you've created for the screen?

  Are you sure? yes | no

YodaLogic wrote 11/23/2020 at 14:33 point

The current profile is sufficient for me, but it's my best guess without a datasheet, and the initialization has to run twice. I want to provide a proper GxEPD device library, but I need the WFD0750BF19 datasheet. I hope someone from the Hackaday community can point me to it. Otherwise, I'll attach my current profile to this project. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates