Skip to content
This repository was archived by the owner on Aug 1, 2024. It is now read-only.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit ae27cea

Browse files
committedNov 6, 2022
Add support for the AZTouch MOD board with ILI9341
This commit adds basic support to run the demo on the AZTouch MOD board.
1 parent f886b68 commit ae27cea

File tree

2 files changed

+67
-1
lines changed

2 files changed

+67
-1
lines changed
 

‎Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ qemu = []
3737
# Enable this feature in case you have a Kaluga board and would like to see a LED screen demo
3838
kaluga = []
3939

40+
# Enable this feature in case you have a AZTouch MOD board and would like to see a LED screen demo
41+
aztouchmod = []
42+
4043
# Enable this feature in case you have a TTGO board and would like to see a LED screen demo
4144
ttgo = []
4245

‎src/main.rs

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ compile_error!("The `ip101` feature can only be built for the `xtensa-esp32-espi
1111
#[cfg(all(feature = "kaluga", not(esp32s2)))]
1212
compile_error!("The `kaluga` feature can only be built for the `xtensa-esp32s2-espidf` target.");
1313

14+
#[cfg(all(feature = "aztouchmod", not(esp32)))]
15+
compile_error!("The `aztouchmod` feature can only be built for the `xtensa-esp32-espidf` target.");
16+
17+
1418
#[cfg(all(feature = "ttgo", not(esp32)))]
1519
compile_error!("The `ttgo` feature can only be built for the `xtensa-esp32-espidf` target.");
1620

@@ -88,7 +92,7 @@ use embedded_graphics::prelude::*;
8892
use embedded_graphics::primitives::*;
8993
use embedded_graphics::text::*;
9094

91-
use ili9341;
95+
use ili9341::{DisplaySize240x320, Ili9341, Orientation};
9296
use ssd1306;
9397
use ssd1306::mode::DisplayConfig;
9498
use st7789;
@@ -166,6 +170,17 @@ fn main() -> Result<()> {
166170
pins.gpio26,
167171
)?;
168172

173+
#[cfg(feature = "aztouchmod")]
174+
aztouchmod_hello_world(
175+
pins.gpio15,
176+
pins.gpio4,
177+
pins.gpio22,
178+
peripherals.spi3,
179+
pins.gpio18,
180+
pins.gpio23,
181+
pins.gpio5,
182+
)?;
183+
169184
#[cfg(feature = "kaluga")]
170185
kaluga_hello_world(
171186
pins.gpio6,
@@ -873,6 +888,54 @@ fn kaluga_hello_world(
873888
}
874889
}
875890

891+
#[cfg(feature = "aztouchmod")]
892+
fn aztouchmod_hello_world(
893+
backlight: gpio::Gpio15<gpio::Unknown>,
894+
dc: gpio::Gpio4<gpio::Unknown>,
895+
rst: gpio::Gpio22<gpio::Unknown>,
896+
spi: spi::SPI3,
897+
sclk: gpio::Gpio18<gpio::Unknown>,
898+
sdo: gpio::Gpio23<gpio::Unknown>,
899+
cs: gpio::Gpio5<gpio::Unknown>,
900+
) -> Result<()> {
901+
info!(
902+
"About to initialize the AZTouchMod ILI9341 SPI LED driver",
903+
);
904+
905+
let config = <spi::config::Config as Default>::default()
906+
.baudrate(40.MHz().into());
907+
908+
let mut backlight = backlight.into_output()?;
909+
backlight.set_low()?;
910+
911+
let di = SPIInterfaceNoCS::new(
912+
spi::Master::<spi::SPI3, _, _, _, _>::new(
913+
spi,
914+
spi::Pins {
915+
sclk,
916+
sdo,
917+
sdi: Option::<gpio::Gpio19<gpio::Unknown>>::None,
918+
cs: Some(cs),
919+
},
920+
config,
921+
)?,
922+
dc.into_output()?,
923+
);
924+
925+
let reset = rst.into_output()?;
926+
927+
let mut display = ili9341::Ili9341::new(
928+
di,
929+
reset,
930+
&mut delay::Ets,
931+
Orientation::LandscapeFlipped,
932+
ili9341::DisplaySize240x320,
933+
)
934+
.map_err(|e| anyhow::anyhow!("Display error: {:?}", e))?;
935+
936+
led_draw(&mut display).map_err(|e| anyhow::anyhow!("Display error: {:?}", e))
937+
}
938+
876939
#[cfg(feature = "heltec")]
877940
fn heltec_hello_world(
878941
rst: gpio::Gpio16<gpio::Unknown>,

0 commit comments

Comments
 (0)
This repository has been archived.