67 lines
2.1 KiB
Markdown
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.
|
|
|
|
|
|

|
|
|
|
## 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:
|
|

|
|

|
|
|
|
# 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
|
|
```
|