Page 1 of 1

Universal e-Paper Name Badge

Posted: Tue Aug 10, 2021 9:50 pm
by parkview
I have been fascinated by e-Paper since the technology was announced long time ago now. Back in 2017 a few of us did a group buy and purchased some black and white and a tri-coloured black/white and red e-Paper displays. These worked with the Waveshare ESP8266 and ESP32 universal e-Paper controllers, but I have always wanted to have a go at making my own controller. Mine is based on the Waveshare ESP32 universal controller, but I have added on a LM75 i2C temperature sensor and BME280 i2C temperature, humidity and air pressure sensor for the first prototype.

The aim is to develop a universal e-Paper controller, but also act as a name badge/room temperature sensor. The first version is larger than I wanted, but it has a number of handy test points and a Li-ion battery charger/booster circuit based on the TP5400 IC. It's also made on a 2 layer PCB. While I checked all the ESP32 pins I had chosen, at the last minute, I changed the two LED GPIO pins to use some closer GPIO pins. Unfortunately the ones I chose where input only, and I needed them to be output capable, so I have had to add in some bodge wires to some spare GPIO pins. Here is the board being tested with a 2.13" e-Paper display:
e-paper_sml.jpg (67.27 KiB) Viewed 4012 times
Lots of software to be written and tested, then the next version of the PCB will be designed up using a smaller 4 layer PCB layout.

Re: Universal e-Paper Name Badge

Posted: Thu Aug 26, 2021 3:50 pm
by parkview
The Adelaide Makerspace hosted a show and tell evening as part of the National Science week. I was luckily enough to be able to attend and display some of my PCB I have recently created. This included the current version of the e-Paper Name Badge project. I am on the road, so I have some time for software development. I now have the i2C bus IC's working well, and I have figured out how to display different fonts on the display:
e-Paper_Display_sml.jpg (253.32 KiB) Viewed 3992 times
Next up is to fix a couple of PCB errors, and change the PCB from 2 layer to a 4 layer PCB. This will allow the PCB to be designed up quite a bit smaller. The next version will include a MPU-6050 accelerometer, so the ESP32 will know which way is up, and adjust the text display appropriately.

In the current (first) version of the PCB, I included some test points around the e-Paper circuitry, so I could monitor how it works. I was surprised to see that each e-Paper uses different voltages. I have seen up to +-22 being used to setup the display!

I included two temperature sensors 1) LM75; 2) BME280. The former costs (2021), around A$0.47 and can be purchased in a very small form factor. The later is in even a smaller form factor, however its currently very expensive at A$11.00ea, but it is much more accurate at +- 0.5 deg C vs +-2 deg C for the LM75!

This version included a CP2102 UART, to make it easier to program, however, I might move to a ESP32-C3, which includes a built in UART, therefore freeing up some space where I can place the accelerometer.

Re: Universal e-Paper Name Badge

Posted: Wed Sep 08, 2021 1:15 pm
by parkview
Today I upload the next PCB revision design to JLCPCB to manufacture. This will fix a couple of wiring issues and will include a MPU-6050 accelerometer, so the board will be able to rotate the text depending on which way your mounting the unit. I am also trialling a ESP32-C3 MCU. This is being billed as a ESP8266 replacement. It doesn't have many GPIO pins, but it comes with a built in USB UART, so I can now connect the USB data pins directly to the ESP32-C3 MCU. This helps lower the board BOM costs, and lowers the PCB real estate needed for the project. I have lots of spare PCB space, but I wanted to have a go at using the new MCU.

The ESP32-C3 isn't available from LCSC yet, it's too new, but I have purchased a Dev board and two version 2 modules from Aliexpress. While these are only a sample version, I believe the mass produced version 3 modules will be released very soon, and I can just hot air off the old V2 modules and insert the new V3 versions when they arrive.
e-Paper-Display-Controller_V0.7.jpg (79.51 KiB) Viewed 3971 times
This PCB will be done in a Blue solder mask (but KiCAD is showing it above in Green).

Re: Universal e-Paper Name Badge

Posted: Tue Feb 08, 2022 12:37 pm
by parkview
I received the version 0.7 blue PCB, but due to the BME280 and MPU-6050 being unobtanium just now because of the silicon shortage, I decided to spin out another version of the e-Paper Name Badge PCB. Version 0.8 will be centered on a ESP32-Pico MCU, as it has more available pins and can be programmed in either ESP-IDF, or Arduino. I would have liked to have used the new ESP-S2, but the Arduino code is still in Beta.

This means that I will have to upload my programs (or at least the initial program), via an external serial UART, as I don't want to give up a lot of PCB real estate for a CP2102 UART IC. I have taken the opportunity to make the PCB smaller and as I still had some space available, I added on a VL53L1CXV IR swipe/distance sensor and a relatively power hungry (56mA), SGP30 CO2 sensor. This sensor runs at 1.8V, so I had to add in a SOT-23 sized 3.3V to 1.8V LDO regulator and a set of i2C voltage level translators. I think I will only run this sensor when it's on USB power, as the datasheet says that ideally it should run for 20 minutes at a time.

As per above, I ditched the BME280, and the LM75 and replaced them with a BMP388 air pressure and SHTC3 temperature and humidity sensors. Should be interesting to see how they all operate together on one board. The MPU-6050 was replaced with a tiny and 30 times cheaper LIS2DH12TR accelerometer.
ePaper-Name-Badge_V0.8.jpg (92.24 KiB) Viewed 3543 times

Re: Universal e-Paper Name Badge

Posted: Tue Jun 14, 2022 12:16 pm
by parkview
Well, somehow the Australian Postal system lost this and another PCB from JLCPCB during shipping. This was during C19 dark days here in WA, so fair enough. Since the loss, I have discovered two things about this PCB:

1) the WS2812 foot print was wrong
2) the MOSFET driving the e-Paper power was in backwards. It worked, but would not turn off power properly.

These have now all been fixed and PCB V0.8a has been uploaded for manufacture. I am still waiting for the outcome of the loss. That should be interesting so see if or what I get refunded. I note that in the last few days, JLCPCB prices for white soldermask has increased to A$16 and for Red, it's now A$25! Ouch! This board is being done in pretty Purple.

Re: Universal e-Paper Name Badge

Posted: Wed Jun 28, 2023 5:12 pm
by parkview
Well, this project has been a long journey and been a lot of fun. The Purple v0.8, was tricky to get going properly due to the hand assembled ESP32-Pico MCU. It worked for a few months, then I took it along to the 2022 Bunbury Science Fair and it got zapped by one of the thousands of people that touched it.
ePaper-name-badge_v0.8a.jpg (42.31 KiB) Viewed 1657 times

It did allow me to test the sensors and a few ePapers and all looked good, so on with the next design...

Re: Universal e-Paper Name Badge

Posted: Wed Jun 28, 2023 5:42 pm
by parkview
For this version, I ditched the ESP32-Pico MCU, and used the ESP32-S3-Mini. This comes with a built in UART, so it saves me having to add on a CP2102 UART and the cost of it. While it's easier to mount correctly, it's still a bit tricky, in that the pads are all hidden underneath, so the fix for an open circuit pad connection, is to use a different one (see all the small spare square pads on either side), or hot plate it off and back on again. Here is the final product:
Name-Badge_v0.9.jpg (233.53 KiB) Viewed 1657 times

I did have the ePaper CS pin open, so I fixed that with a bodge wire to a spare pin close by. It was easier than hot plating it on/off again. I spent two days troubleshooting the ePaper and then the i2C bus. Both wouldn't work. Then I noticed that with a Logic Analyzer attached, that if I did a simple i2C bus scan that the i2C bus worked (using a different code base). However, it failed to work with my normal code that had worked with v0.8 PCB. Also, the ePaper screen only showed noise, no text. Turns out I was calling the i2C bus setup BEFORE the SPI bus setup. Normally I don't think the sequence should matter, however if I reversed the setups, then both worked ok. Yay!
Name-Badge-v0.9_Testing.jpg (159.91 KiB) Viewed 1657 times
I have to say, having the ePaper breakout PCB was very handy, as I can see the state of the SPI bus and voltages all with a quick glance. Invaluable!

I wrote a new code base to test all the sensors and ePaper out. This will help me in future versions of the PCB and in quickly verifying it all works ok. One thing I noticed was that it's impracticable to use the SGP30 VoC/CO2 sensor on a battery powered PCB, as it needs to run for 12 hours to establish a baseline calibration. Also it doesn't like having the power turned on/off a lot.

One thing I did get wrong was the foot print of the SK6812. This was a very late minute addition and I was running late for a meeting, so I didn't check it well enough and got the footprint back to front. It does work, but on this board it has to face upwards, whereas it should shine through the PCB and ePaper display.

So, on with the next version. This one has the SGP30 VOC/CO2 sensor and associated circuitry has been removed. The light sensor has been moved to the PCB edge. The SK6812 RGB LED footprint has been fixed. The design was uploaded today, so might be back by mid July?

Re: Universal e-Paper Name Badge

Posted: Sun Jul 30, 2023 12:18 pm
by parkview
PCB version 0.10. All the sensors on the board turned out ok. I somehow fixed the SK6812 footprint - but then I must have reverted (CTL+Z) it back to the old footprint and I didn't notice. Ouch! I have coded up the LIS2 3Dof accelerometer so that the display text will be the correct way up to match the orientation of the PCB.
NB_v0.10_Demo.jpg (56.7 KiB) Viewed 1516 times
The main issue is with the ESP32-S3-MINI module connection tot he PCB. 41% of the GPIO failed, even after hotplating it off and back on again! Luckily I had brought out all ALL the unused GPIO out from underneath to a small 0.5x0.5mm square pad. This allowed me to budge wire in some fixes so I could test the board out:
NB_v0.10_Bodge-wires.jpg (97.63 KiB) Viewed 1516 times
Yes, yet another PCB has been designed up with the SK6812 fix and I changed the ESP32-S3 to the ESP-S3-WROOM to make it easier to assemble at home. In future I will leave the S3-MINI to people doing PCBA. Still, it's been great to get back working on software for the board again. I had hit a roadblock with the board resetting if both the display and WiFi where activated. Turns out it was a software miss-config on my part.

Next up is to think about a housing for it all and design something up in OpenScad, or FreeCAD.

Re: Universal e-Paper Name Badge

Posted: Wed Aug 16, 2023 9:29 am
by parkview
Yay, the board almost worked straight off the hot-plate. But there was a hidden short between the USB-Micro USB- pin and shield. It took a few attempts with the soldering iron turned up to 410 degrees and lots of flux to clear that one.
NameBadge_v0.11_PCB.jpg (237.33 KiB) Viewed 1383 times
As I mentioned in the last post, I changed the MCU to the ESP32-S3-WROOM and ditched the BMP288 air pressure sensor - it had a very tiny footprint that was hard to place 100% correctly, to a cheaper and larger PH203B. I finally got the SK6812 RGB LED footprint correct and working. As an aside, it seems to work well when powered from 5V, using a 3.3V data stream. In other projects, I have successfully a few powered from 3.3V, with a 3.3V data stream.

Hardware wise, I can't think of anything else to change or add to the board. There is a chunk of free space on the board, but can't think of another sensor that might work well on it. There is always more code that can be written :)

Overall, this has been a fun and interesting learning experience trialing a few different sensors along the way, and four different MCU's. Next up is learning FreeCAD to design up a 3D printed housing for it.

Project KiCAD and Code files can be found in the repo: