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