Watterott’s new RPi-ShieldBridge

With the ili9341fb driver I wrote for notro’s fbtft driver suite you can easily connect and use a Watterott MI0283QT9A display with your Raspi. For now you had to wire the display yourself to the Pi and a nice plate connecting the display was missing. Now the wait is over: Watterott designed the RPi-ShieldBridge! This nice little plate features the display connector (but also contains a full fledged Arduino board with shield connector)!

Watterott was so kind and sent me a prototype v1.0 of the ShieldBridge (Thanks again, guys!). In this post I give you a short roundup of this nice hardware that will hit the stores in early/mid August…

Here is the PCB triple you need: the Pi, the Display, and the new RPi-ShieldBridge:

Display, Pi, and the Watterott's new RPi-ShieldBridge

Display, Pi, and the Watterott’s new RPi-ShieldBridge

Another shot: the bridge alone: The RPi extension connector is on the lower right, the display connector next to it. The chip at the center is an Arduino compatible ATmega 328 with some level shifters for the serial and I2C signals around it. The pin headers top and bottom form the Arduino shield connector.

Watterott's new RPi-ShieldBridge

Watterott’s new RPi-ShieldBridge

As you might have expected: The HW works like a charm with the driver…

Get started!

Here is a short summary of the steps necessary to get you started with the new hardware. (Its mostly a write up of notro’s fbtft Wiki and my old posts – but its handy to have everything in one place/post for reference):

  • Get and install a kernel with fbtft modules included. Just download a pre-build image on notro’s fbtft Wiki (see section Download)
  • Attach the RPi-ShieldBridge and your display and start the Pi with the new kernel
  • In a terminal issue the following commands to load and setup the display driver:
sudo modprobe fbtft_device name=ili9341fb cs=1 rotate=1
sudo modprobe ili9341fb

Note: v1.0 uses chip select 1 for the display (see cs=1 command) while the release version of the board will use chip select 0 (cs=0). Adjust the call accordingly. rotate=1 ensures that the display is in landscape and not portrait mode.

  • Now your display is already configured and you could give it a try: I use mplayer to play a sample movie
mplayer -vo fbdev2:/dev/fb1 -vf scale=320:-3 BigBuckBunny_320x180.mp4
Playing Big Buck Bunny

Playing Big Buck Bunny

  • The next thing is to enable the touch sensor (see notro’s extensive description on this topic in his wiki):
sudo modprobe ads7846_device cs=0 speed=2000000 model=7846 \
 swap_xy=1 pressure_max=255 x_min=250 x_max=3780 y_min=160 y_max=3930 \
 x_plate_ohms=60 gpio_pendown=25 keep_vref_on=1

Note: v1.0 of the RPi-ShieldBridge uses chips select 0 (cs=0) for the touch controller but the release version will use chip select 1 (cs=1). So adjust this call, too.

Note2: You must first connect the two solder points labeled JIRQ on the ShieldBridge otherwise the touch pen event interrupt will not work! The solder points can be found right next to the display connector. See the following snapshot for details and use RPi ShieldBridge schematic for reference:


Solder points JIRQ to enable the touch controler interrupt

  • Now you can start e.g. X11 on the framebuffer and use touch input:
FRAMEBUFFER=/dev/fb1 startx &
DISPLAY=:0 xinput --set-prop 'ADS7846 Touchscreen' 'Evdev Axis Inversion' 0 1

Note: the last command inverts the events so they match the display orientation.

That’s it! Have fun…


Leave a Reply