# How to use 8-bit parallel display on STM32F4 for Arcade?

**URL:** https://forum.makecode.com/t/how-to-use-8-bit-parallel-display-on-stm32f4-for-arcade/4819
**Category:** Arcade
**Created:** [December 6, 2020, 8:34pm UTC](https://forum.makecode.com/t/how-to-use-8-bit-parallel-display-on-stm32f4-for-arcade/4819 "2020-12-06T20:34:05Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![204maker](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/204maker/32/447_2.png) [@204maker](https://forum.makecode.com/u/204maker)
#### Post date: [December 6, 2020, 8:34pm UTC](https://forum.makecode.com/t/how-to-use-8-bit-parallel-display-on-stm32f4-for-arcade/4819/1 "2020-12-06T20:34:05Z")

</div>

May I ask how to setup the config pins for the 8-bit parallel (D0 to D7 of LCD) connection of the ILI9341 LCD display to an STM32F4 device as suggested on the [Arcade documentation](https://arcade.makecode.com/hardware/adding#generating-bootloader)?

```
320x240 based on ILI9341 via 8-bit parallel

On F4, this requires an 8 bit parallel interface because SPI at 42Mhz is unstable; int this case STM32F412RE or better is required.

```

I only found these lines from the default config.h on the patcher.  
#define CFG\_PIN\_LCD\_DATALINE4 0x3f3  
#define CFG\_PIN\_LCD\_DATALINE5 0x3f4  
#define CFG\_PIN\_LCD\_DATALINE6 0x3f5  
#define CFG\_PIN\_LCD\_DATALINE7 0x3f6

---

<div class="post-metadata">

### Author: ![204maker](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/204maker/32/447_2.png) [@204maker](https://forum.makecode.com/u/204maker)
#### Post date: [January 21, 2021, 5:39pm UTC](https://forum.makecode.com/t/how-to-use-8-bit-parallel-display-on-stm32f4-for-arcade/4819/2 "2021-01-21T17:39:58Z")

</div>

Has there been any successful attempt of using 8-bit parallel connection for an ILI9341 with an STM32F4 board with arcade bootloader?

The document suggests using parallel connection for faster FPS on the display but I have not seen any bootloader config that worked, only with SPI using Feather F405 or F411 Black Pill.

Also, there was no definition for the RD and WR pins of the LCD on the configkeys.h to assign these LCD pins to the mcu (i.e. STM32F4) pins.

 ![8-bit-parallel-ili9341](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/7/7a159f6cb35731279fa2e48430652eee1137f666.png)

---

<div class="post-metadata">

### Author: ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)
#### Post date: [January 21, 2021, 5:40pm UTC](https://forum.makecode.com/t/how-to-use-8-bit-parallel-display-on-stm32f4-for-arcade/4819/3 "2021-01-21T17:40:55Z")

</div>

@mmoskal

---

<div class="post-metadata">

### Author: ![204maker](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/204maker/32/447_2.png) [@204maker](https://forum.makecode.com/u/204maker)
#### Post date: [January 21, 2021, 5:58pm UTC](https://forum.makecode.com/t/how-to-use-8-bit-parallel-display-on-stm32f4-for-arcade/4819/4 "2021-01-21T17:58:45Z")

</div>

Also, is it right to assume that the 8-bit parallel pins are setup using the PIN\_D0 to D7 on the config?  
I do not see any DISPLAY\_DATA0… to DISPLAY\_DATA7 mentioned too.

As an example:

```auto
PIN_D0 = PB01
PIN_D1 = PA02
PIN_D2 = PA03
PIN_D3 = PB15
PIN_D4 = PB14
PIN_D5 = PB13
PIN_D6 = PB10
PIN_D7 = PB03

```

My understanding is that the definitions for PIN\_D1…to PIN\_D7 above is used to define the pins as Digital I/O to the mcu pins on the config, which can also be used by the LCD 8-bit parallel interface of course.

---

<div class="post-metadata">

### Author: ![mmoskal](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/mmoskal/32/20_2.png) [@mmoskal](https://forum.makecode.com/u/mmoskal)
#### Post date: [January 21, 2021, 8:15pm UTC](https://forum.makecode.com/t/how-to-use-8-bit-parallel-display-on-stm32f4-for-arcade/4819/5 "2021-01-21T20:15:42Z")

</div>

You need F412 to run the parallel display.

The data pins are not defined in the bootloader, they are fixed as described in documentation. You do have a choice for the WR pin, and you set in bootloader using DISPLAY\_MOSI key. DISPLAY\_MISO should be either set to PC5 when it’s connected to RD, or undefined otherwise. Note that if your display has a level-shifter you may want to connect the RD to get the shifters in the right state.
