Skip to content

Custom touchscreens

Tim Russell edited this page Nov 30, 2018 · 11 revisions

Screen orientation

Open the file crankshaft/crankshaft_env.sh on the boot partition (that's what you see when you open the SD card in Windows) with Sublime Text, then edit so it says FLIP_SCREEN=1 instead of FLIP_SCREEN=0. Save the file, put the card into the Pi and start it, then wait for it to restart.

Custom touchscreen

Crankshaft defaults to rendering OpenAuto in EGL mode which draws directly to the Pi screen.

If you're using a custom screen or touch layer, X11 mode is more likely to work. Whilst X11 might be a tiny bit less performant, it is very mature with 99% of all GUI apps on Linux using X11. Many touch layers and screens are optimised for X11, but not EGL.

To start OpenAuto in X11 mode, open crankshaft/crankshaft_env.sh on the boot partition (that's what you see when you open the SD card in Windows) and edit the START_X11=0 line to be START_X11=1.

Alternative touchscreens

Although by no way guaranteed, it is possible to add alternative touch screens. The information below is from a personal experience with an 5 inch 800x480 display from Elecrow. You may find after installing and booting CrankShaft the touch screen doesn't work. To fix this shutdown the RPi, put the SD card back into your laptop and then copy the relevant files into a subdirectory of the Boot partition (the one you see in your PC). Make sure these are unpacked and ready for installation. Change the DEV_MODE line to 1 in the file /crankshaft/crankshaft_env.sh, save it and reinsert the card into the RPi. Plug in a keyboard and then startup the RPi. Once the startup is complete change to the directory and run chmod +x to the file, in this case Elecrow-LCD5, then run it. The RPi will reboot, again into dev mode. Change this command back with the keyboard attached or in the laptop and you should be good to go.

For the Elecrow screen there is a calibration deb file included, instructions are to follow as to how to use this.

Clone this wiki locally