Add ST7735 driver to Quantum Painter (#17848)
This commit is contained in:
		
							parent
							
								
									09ea5f6337
								
							
						
					
					
						commit
						2bdd73f801
					
				
					 6 changed files with 264 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -27,6 +27,7 @@ Hardware supported:
 | 
			
		|||
| ILI9488       | RGB LCD            | 320x480          | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = ili9488_spi` |
 | 
			
		||||
| SSD1351       | RGB OLED           | 128x128          | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = ssd1351_spi` |
 | 
			
		||||
| ST7789        | RGB LCD            | 240x320, 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = st7789_spi`  |
 | 
			
		||||
| ST7735        | RGB LCD            | 132x162, 80x160  | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = st7735_spi`  |
 | 
			
		||||
 | 
			
		||||
## Quantum Painter Configuration :id=quantum-painter-config
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -727,4 +728,30 @@ The maximum number of displays can be configured by changing the following in yo
 | 
			
		|||
#define ST7789_NUM_DEVICES 3
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
!> Some ST7789 devices are known to have different drawing offsets -- despite being a 240x320 pixel display controller internally, some display panels are only 240x240, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered.
 | 
			
		||||
!> Some ST7789 devices are known to have different drawing offsets -- despite being a 240x320 pixel display controller internally, some display panels are only 240x240, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered.
 | 
			
		||||
 | 
			
		||||
### ST7735 :id=qp-driver-st7735
 | 
			
		||||
 | 
			
		||||
Enabling support for the ST7735 in Quantum Painter is done by adding the following to `rules.mk`:
 | 
			
		||||
 | 
			
		||||
```make
 | 
			
		||||
QUANTUM_PAINTER_ENABLE = yes
 | 
			
		||||
QUANTUM_PAINTER_DRIVERS = st7735_spi
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Creating a ST7735 device in firmware can then be done with the following API:
 | 
			
		||||
 | 
			
		||||
```c
 | 
			
		||||
painter_device_t qp_st7735_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The device handle returned from the `qp_st7735_make_spi_device` function can be used to perform all other drawing operations.
 | 
			
		||||
 | 
			
		||||
The maximum number of displays can be configured by changing the following in your `config.h` (default is 1):
 | 
			
		||||
 | 
			
		||||
```c
 | 
			
		||||
// 3 displays:
 | 
			
		||||
#define ST7735_NUM_DEVICES 3
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
!> Some ST7735 devices are known to have different drawing offsets -- despite being a 132x162 pixel display controller internally, some display panels are only 80x160, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered.
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue