Hello David, Just leave it blank so your line would look like this: palSetPadMode(GPIOB, 12, PAL_MODE_OUTPUT_PUSHPULL Why exactly are you modifying the SPI config registers in your SPI struct? I cannot remember the default values provided by ChibiOS/RT but experience says that it will work for 99% sure if you leave it as it is. Just set a higher prescaler to be sure that your LCD controller can handle it. I know that distributors often write «SPI Freq = 10MHz» in their example codes but those are very often just copied and copied and copied and copied so the comments are not up to date. static const SPIConfig spi2cfg1 = { NULL, /* HW dependent part.*/ GPIOB, 12, SPI_CR1_BR_2 | SPI_CR1_BR_1 }; Furthermore I can see that you seem to directly access your registers in the board file. Why do you do this? I advice you to do everything through the SPI driver provided by the ChibiOS/RT HAL because the spiSend() command already handles the busy flag and so on. One more thing: How long are your wires? ~ Tectu