Status | DONE |
Owner | @Akshay Gaitonde |
|---|---|
Contributors | @Akshay Gaitonde |
Approver | @Diya Rajon |
Due date | ? |
On this page |
🌍 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 |
|---|---|---|---|---|
Overview | Use an off the shelf device for running a graphical application and keep it small. | Use an off the shelf device for running a graphical application but including some ports like Ethernet and full size USB. | 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
Python/C development Adds complexity Micro USB (not full USB) No Ethernet port | Lowish power usage
Cheap
Python/C development Full size ports (USB & Ethernet) Adds complexity Larger in z plane (stacked IO ports) | Cheapest
Full size ports (USB & Ethernet) No added complexity Proprietary software library development
Inflexible design
| Fastest CPU
Python/C development Custom IO board is flexible
Custom IO board is flexible Adds complexity Need to make more hardware
|
Decision 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 |
|---|---|---|---|
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
OK-ish clarity in direct sunlight
Power consumption
| Best color Good viewing angle range Good dark contrast, Most expensive
Least durable
Power consumption
| Very fast response time Cheapest
Power consumption
Bad color (not vivid) Limited viewing angle range (causes distortion) Limited contrast |
Decision 2
- 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 |
|---|---|---|---|
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
Supports higher resolutions >720p
Can only have as many displays as there are ports on the graphics driving hardware
Signal degrades over distances >15ft Normal HDMI port is not an automotive grade connection
| Easily implementable Low power transmission Used by many displays
Not intended for video
Signal degrades
| Easily implementable High speed
Low latency (ideal for real time updates) Complex wiring (has additional chip select lines) Limited bandwidth
Signal degrades
|
Decision 3
- 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 |
|---|---|---|---|---|
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 | ||||
Pros and cons | Better for wiring (only 1 panel) HDMI is an option Easier to manage (only 1 display out) Moderate power consumption
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
Available in standard aspect ratios (4:3, 16:9, 16:10) High power consumption
Generally more expensive | Can reuse current configuration and standardize displays
Flexibility in display arrangement To use HDMI, the graphics driving hardware must have an equal number of HDMI ports as displays
More points of failure More complexity in wiring | Can reuse current configuration
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
|
Potential Candidates |
|
|
Decision 4
- Option 2 - iPad size display
https://www.bhphotovideo.com/c/product/1828414-REG/lilliput_719_c_7_1000_nits_non_touch.html/specs
Yippee!!