Files

67 lines
2.1 KiB
Markdown

# CDashDisplay
The 'C' is for Cheap.
This project uses a cheap yellow display (ESP32-8048S043) as its foundation. It
can be acquired for round 30-40€ on Aliexpress, for example.
Currently I have a way to mount it on a G29 because its what I have.
To drive it I one of my other projects: [ESDI](https://github.com/ESilva15/ESDI)
## Many thanks
- to [mgaman/ESP32-4827S043-LVGL](https://github.com/mgaman/ESP32-4827S043-LVGL):
don't remember exactly how but it helped me understand how to set up this ESP32
for development.
![example of the display](./images/example_of_display.jpg)
## Assembly
It requires a very simple modification to the G29. The display will seat between
the base and the steering wheel and for the stock G29 paddles to remain functional,
the steering wheel must be spaced.
I used simple spacers that I had laying around with OD≃8mm and ID≃5mm. They will
go on the screws that screw the wheel to the base:
![example of the display](./images/spacer_in_screw.jpg "spacer in the screw")
![example of the display](./images/spacer_in_g29.jpg "spacer in the g29")
# Roadmap
- [ ] Simhub support
- [ ] Better layout tooling
- [ ] Dynamic layout/data
### Development
#### Debugging wires
| CYD | Serial Cable |
| -------------- | ------------ |
| Yellow [RX 18] | Green |
| Blue [TX 19] | White |
The `RX18` and `TX19` pins are the `IO18` and `IO19` pins on the board and
probably are labeled as `UART1` and `USB`.
This is the `Serial2` we define on `main.cpp` currently.
Then we listen to it with something like ``.
### Cool fonts I like:
- u8g2_font_bubble_tr (really cool for splash screens)
- u8g2_font_helvR10_tr (very readable, should really try this one)
- u8g2_font_6x12_tf (monospace)
### Weird font rendering stuff going on
When the cursor is set to a position, the text will actually render
from the left bottom corner, so 0,0 will actually render text that
can't be viewed.
Solution, for now:
```cpp
U8G2 u8g2;
u8g2.setFont(u8g2_font_9x18_tf);
int ascent = u8g2.getAscent();
// will probably vary from font to font tho, right now I'm using
// monospace and that's enough
```