Display Hardware Rationale

Display Hardware Rationale

This content is archived.

🌍 Overview

This is the hardware design of the display, including the panel as well as any graphics driving hardware associated with it.


 Problem statement


Controls must show the driver critical information relating to the state of the car (i.e. speed, backup video feed, BPS faults, etc.). Controls is also tasked with ensuring the driver has enough information for simple actions such as turning.

 Research insights


There are many different configurations for the display. We can drive the display using an external computing device such as a Raspberry Pi. We also have a choice of display panels, display size, and display interface.

 Solution hypothesis


The solution is successful if we are able to view pertinent data in readable formats (i.e. speed is displayed as decimal numbers, icons if used can be rendered, etc.).

 Design options - Graphics Driving Hardware

There are multiple ways we can display graphics. We want to have some nice graphics and a better time programming them than the previous design that utilized Nextion software. With that, we have 3 options.

 

Option 1 - Raspberry Pi Zero

Option 2 - Raspberry Pi 4/5

Option 3 - Custom board + display library

Option 4 - Raspberry Pi CM 4 + custom IO board

 

Option 1 - Raspberry Pi Zero

Option 2 - Raspberry Pi 4/5

Option 3 - Custom board + display library

Option 4 - Raspberry Pi CM 4 + custom IO board

Overview

Use an off the shelf device for running a graphical application and keep it small.

https://www.raspberrypi.com/products/raspberry-pi-zero/

Use an off the shelf device for running a graphical application but including some ports like Ethernet and full size USB.

https://www.cytron.io/p-raspberry-pi-4-model-b-2gb

Use the integrated graphics processing library and a controls board we design to drive graphics. [OLD DESIGN]

(i.e. Daybreak’s Nextion display)

Use an off the shelf device for running a graphical application and keep all IO decision up to us.

https://www.raspberrypi.com/products/compute-module-4/?variant=raspberry-pi-cm4001000

Pros and cons

Low power

Cheaper

  • $15

Python/C development

Adds complexity

Micro USB (not full USB)

No Ethernet port

Lowish power usage

  • slightly higher (15W)

Cheap

  • $50

Python/C development

Full size ports (USB & Ethernet)

Adds complexity

Larger in z plane (stacked IO ports)

Cheapest

  • Included with display and we can integrate the graphics commands in the LSOM or a PSOM

Full size ports (USB & Ethernet)

No added complexity

Proprietary software library development

  • No control over functionality implementation

Inflexible design

  • We must design layout to fit what could be reasonably possible in library calls

Fastest CPU

  • Cortex A72

Python/C development

Custom IO board is flexible

  • We can condense the need for any IO hubs (i.e. USB hub for cameras) onto this board as well as including only the IO we need

Custom IO board is flexible

Adds complexity

Need to make more hardware

Decision 1

  1. Option 4 - Raspberry Pi CM4

We prioritize compact circuitry as well as being able to develop in a more developer friendly environment with hardware built to our needs.

 


 Design options - Display Panel Type

There are also multiple panel options we can consider. We want the ability to display graphics in color through a medium that is robust in light/dark environments, refreshes decently fast, consumes as little power as possible, and is cost effective.

 

Option 1 - IPS/LCD Panel

Option 2 - OLED Panel

Option 3 - TN Panel

 

Option 1 - IPS/LCD Panel

Option 2 - OLED Panel

Option 3 - TN Panel

Overview

LCD panels are commonly used in industrial and consumer electronics applications because they have pretty solid color accuracy, viewing angle allowance, and brightness.

OLED panels are more common in artistic environments and gaming because they have the best color accuracy and vividness as well as good viewing angle ranges.

TN panels are falling out of favor because even though they typically update the fastest, they have much worse colors, brightness, and viewing angle range.

Pros and cons

Good color

Good viewing angle range

Bright (600+ nits)

Mid-range pricing

  • ~$50-150

OK-ish clarity in direct sunlight

  • Bad clarity in direct sunlight but may work with an anti-glare coating

Power consumption

  • ~ 2-10W for <10”

  • ~ 10-20W for 10-15”

Best color

Good viewing angle range

Good dark contrast,
OK light contrast

Most expensive

  • ~ $200+

Least durable

  • Risk of image burn in over time

Power consumption

  • ~ 3-15W for <10”

  • ~ 15-30W for 10-15”

Very fast response time

Cheapest

  • ~ $30-100

Power consumption

  • ~ 2-8W for <10”

  • ~ 8-15W for 10-15”

Bad color (not vivid)

Limited viewing angle range (causes distortion)

Limited contrast


Decision 2

  1. Option 1 - IPS/LCD Display

We want a display that can be viewed from multiple angles while prioritizing the power efficiency. IPS/LCD offer a compromise between the two.

Visibility in sunlight:

This is an important consideration as the car is operating in a directly sunlit environment. Any display is less visible in direct sunlight but this problem is worse for dimmer displays (<600 nits). In our search for displays, we prioritize a display with >600 nits.


 Design options - Display Communication Interface

There are multiple ways we can communicate with the display from the graphics driving hardware. We want an interface that is reasonably implementable (meaning we could make it or buy it easily), is suitable for video streaming, and is manageable to wire.

 

Option 1 - HDMI

Option 2 - UART

Option 3 - SPI

 

Option 1 - HDMI

Option 2 - UART

Option 3 - SPI

Overview

HDMI is used for monitors, TVs, and other video media. It is a proprietary protocol that transmits video and audio (depending on the HDMI version). This protocol specifically is optimized for streaming audio/video feeds.

UART is a simple protocol for asynchronous serial communication. It's widely implemented (it only uses a few IO pins). It also is what we already use with our current leader board and display. [OLD DESIGN]

SPI is a common communication protocol used in embedded systems. The protocol allows for one controlling device (the master) to send data over short distances to several receiving devices (the slaves).

Pros and cons

Simple wiring

Easy integration with raspberry pi (any model)

Plug and play

  • If a device has a HDMI port, it will have HDMI drivers

Supports higher resolutions >720p

  • We likely will not need this feature for our display but it would be nice to future-proof the design in case we later decide to get a larger display with a higher resolution

Can only have as many displays as there are ports on the graphics driving hardware

  • Raspberry pi zero has 1x miniHDMI

  • Raspberry pi 4 has 1x HDMI

  • Raspberry pi 5 has 2x HDMI

Signal degrades over distances >15ft

Normal HDMI port is not an automotive grade connection

Easily implementable

Low power transmission

Used by many displays

  • Many programmable displays exist that take commands over UART

  • Not intended for video; better for data transmission

  • Not suitable for higher resolutions

Not intended for video

  • Not good at transmitting a continuous stream; better at short data packets

Signal degrades

  • Signal degradation varies per situation, depends on surrounding noise, cable length, and sheilding

Easily implementable

High speed

  • up to 10s of MHz

Low latency (ideal for real time updates)

Complex wiring (has additional chip select lines)

Limited bandwidth

  • 1 or 2 B per packet

Signal degrades

  • Signal degradation varies per situation, depends on surrounding noise, cable length, and sheilding


Decision 3

  1. Option 1 - HDMI

We want something simple and robust. In the past, we have had issues with SPI, so we used UART in Daybreak (2023-24 car). However, wiring one HDMI would be even better, especially if we use a device like a raspberry pi to drive our display interface graphics.


 Design options - Panel Configuration

We can have many different sizes and configurations for our display. This decision is motivated by what things we want to specifically include on the display(s). We have 3 options motivated by how we want to compartmentalize certain graphics, namely video feeds.

 

Option 1 - Long boi display

Option 2 - iPad size display

Option 3 - Multiple sizes

Option 4 - Small boi display

 

Option 1 - Long boi display

Option 2 - iPad size display

Option 3 - Multiple sizes

Option 4 - Small boi display

Overview

This allows us to display everything on one horizontal line. It essentially extends the current display size only horizontally. (i.e. 1300x400)

This allows us even more screen real estate to display everything. It’s what you would expect an infotainment screen to be at minimum size (7”-12” diagonal).

This allows us to compartmentalize video feeds into different screens. We could use our current display architecture for displaying important data like speed, battery voltage, etc. and have other displays for each video feed.

Use the same or similar small boi display that we already have. This is optimal to only include important information and have different screens in software for additional views. [OLD DESIGN]

Theoretical Display Layout

image-20241013-020257.png
image-20241013-021118.png
image-20241013-021323.png
image-20241013-021542.png

Pros and cons

Better for wiring (only 1 panel)

HDMI is an option

Easier to manage (only 1 display out)

Moderate power consumption

  • ~ 8-10W

Non standard aspect ratio may be wacky

May not have room for multiple video feeds

Better for wiring (only 1 panel)

HDMI is an option

Much more room for information

  • Can make information bigger (for driver visibility) or add more information (for driver information)

  • Either case leads to more flexibility in design which is good

Available in standard aspect ratios (4:3, 16:9, 16:10)

High power consumption

  • 10+ W

Generally more expensive

Can reuse current configuration and standardize displays

  • We can reuse layout of 1 main display with car information and another with the rear view camera feed

  • Peripheral cam feed is an add-on if we choose to have peripheral cameras

Flexibility in display arrangement

To use HDMI, the graphics driving hardware must have an equal number of HDMI ports as displays

  • If we want 2 or 3 displays, we need a raspberry pi with at least 2-3 ports; only the r pi 5 has 2 ports

More points of failure

More complexity in wiring

Can reuse current configuration

  • We can reuse our 1 main display with car information and the existing rear camera system

Don’t have to worry about video feeds since it’s an external system

Old display looks bad

Does not consider peripheral views for the future

Old display does not use HDMI

  • If we change the display for the sake of HDMI, we might as well rethink the size & configuration (there are better options)

 

Potential Candidates


Decision 4

  1. Option 2 - iPad size display

https://www.bhphotovideo.com/c/product/1828414-REG/lilliput_719_c_7_1000_nits_non_touch.html/specs
Yippee!!