The Problem
The Silva Nexus Classic instrument system on our sailboat consists of a server, three transflective LCD displays, and sensors (knotmeter, depthsounder, wind speed, wind angle, and GPS). The 20 year old system continues to work; however, the displays have lost their contrast and antireflection (AR) coatings making them nearly impossible to read. Futhermore, the Nexus system is closed source and I've always been frustrated that I can't have more control of the processing of the sensor data. So before I replace the whole system, I'd like to see if I can build my own instrument system using the existing sensors. The outputs of all of the sensors are 5V pulses with information coded into the pulse frequency and/or pulse width which are easy to read with a microcontroller. A harder task (for me) is finding and packaging a suitable data display. Our Nexus data displays are mounted above deck, on the mast under the boom. The new displays will go in the same place so they must meet the following requirements:
- The digits of the new display must be visible from about 15 feet away in the cockpit
- The display must be sunlight readable
- The display must be readable at high angles
- The display must be waterproof to something like IP67
- The display must have an update rate of less than 1 second
In this Hackaday project I'm only going to consider identifying a display solution. I'll pick up the other tasks of the larger project separately.
The Transflective LCD Display Solution
Most above deck marine instruments use transflective LCD displays. They rarely have touch screens because the extra layers of the touch screen increase glare from the display. To protect the LCD from water it is mounted inside of a waterproof enclosure behind a clear plastic or glass plate. The front of the LCD is bonded to the back/inside surface of the plate using a liquid optically clear adhesive (LOCA). The front/outside surface of the plate also has an antireflective coating to reduce glare. The number of choices of and interactions between the LCD, LOCA, plate, and AR coating are sufficiently intimidating that I'm choosing to consider an alternative solution first.
The E-Paper Display Solution
Requirements
E-paper displays are well known for their excellent readability under direct sunlight so I soon found Waveshare's 2.9 inch EPD offering. This display matches up well to my requirements:
- In landscape orientation with three digits in the full viewable area of the display the digits are larger than the top line of data in the Nexus display
- The sunlight readability of the EPD is at least as good as the transflective LCD
- The high angle readability of the EPD is superior to the transflective LCD
- The display is made of waterproof materials but may have to be packaged to prevent water from getting to its edges and to where the FPC ribbon cable leaves the package
- This EPD has a 0.3s partial update rate which can be applied to the individual changed digits
The picture below shows our Nexus displays with an EPD taped to the front of the middle display. The improvement of the EPD over the Nexus displays in terms of character size, contrast, and display glare is obvious.
E-paper Display Driver Software
I investigated three different Arduino libraries to drive the EPD:
I got the Arduino EPD demo software for all three libraries to run with a little effort; however, I ran into difficulties when I tried to use GxEPD and U8G2 with very large fonts and/or partial updates so I ended up back with epd2in9. GxEPD and U8G2 are still very impressive libraries with excellent support from Jean Mark and Oli, respectively, and I highly...
Read more »
Awesome! Few questions:
Do you have your old code available somewhere? I saw the iteration logs in the zip file.
Did you ever implement multiple displays? If so, did you have them running off one controller or multiple?