In the realm of DIY electronics, an intriguing endeavor emerges – the transformation of commonplace supermarket electronic price tags into dynamic e-ink displays. This exploration focuses on the Hanshow Stellar-M model, a canvas for innovation as captured in the accompanying image. Delving into pin configurations, the article uncovers the hidden potential within these unassuming devices.
In fact, many people have disassembled and modified this before. It's generally confirmed that the pins of the screen are consistent with those of Waveshare's e-ink screens, with just a few additional unused pins.
Below are the accurate pin definitions I figured out by using a multimeter to measure each one:
Those two rows of black dots are part of the microcontroller chip's pins. The diagram indicates the correspondence between the microcontroller pins and the screen's signal line names. If you don't intend to use the MSP430 microcontroller, you can remove the chip and solder the wires.
There are two more noteworthy points:
1. The design of this electronic price tag aims to minimize power consumption. It uses a P-channel MOSFET to control the screen's power supply. If you don't want to add an extra wire, you can directly connect the Gate (G) to ground to forcefully enable it. Refer to the diagram below for the specific location.
2. The screen has a signal line called BS (connected to P3.1 in the diagram) that selects the interface mode. According to the datasheet: "This pin (BS) is for 3-line SPI or 4-line SPI selection. When it is 'Low,' 4-line SPI is selected. When it is 'High,' 3-line SPI (9 bits SPI) is selected."
If you don't understand why this line is connected to the microcontroller's IO port, you can temporarily ignore it and directly connect it to GND to choose the 4-line SPI mode.
After the jumper wires are connected:
After testing several versions of the 2.13-inch screen program, only the oldest one seems to successfully light up.
Note: After running partial screen updates for more than a week with an ESP32, it's no longer possible to refresh properly. The screen displays artifacts, as shown in the following image:
Because e-ink screens can't be continually partially refreshed, they need a full refresh after a few partial updates. If your display looks like the image above, you'll need to start over.
About the driver: The FPC on this screen reads HINK-E0213A04-G01. If you can't find this product online, you can use Waveshare's driver as a substitute.
The screen driver program mainly references Waveshare's sample code. I converted the program entirely to C; mixing C++ and C could be cumbersome, so I won't go into further detail here.
It has been developed the following features:
· Full screen refresh and partial screen refresh
· Decoding and displaying JPG images with image dithering, capable of displaying color JPG images directly
· MP3 audio playback
· Webpage updates for internal image and audio files
· Webpage configuration
· SNTP time synchronization
· Displaying UTF-8 and GB2312 characters
The program isn't complete yet, as each feature has been implemented separately. If you have time, you can add interactive logic to assemble these features on your own.
Finally, here's a demonstration of the image effect:
In retrospective, the journey to convert mundane supermarket price tags into versatile e-ink screens blends creativity and technical prowess. Microcontrollers, circuits, and inventive tinkering converge to turn numerical displays into dynamic imagery accompanied by audio resonance. From dissection to customized functionalities, this voyage highlights the boundless potential in electronics transformation.