I personally am using a SKR 1.4 Turbo board, with a Raspberry Pi 3b+, powered from a DC Voltage converter on the same 24V input to the SKR. The Pi 2 and SKR 1.3 have minor differences from this. I also use the I2C connector for this, as described at the bottom.
Layout
The relevant Raspberry Pi GPIO pins are numbered 1-10 as below:
1 2
3 4
5 6
7 8
9 10
The SKR 1.3 has 5 pins for the TFT. With the SD card towards the bottom, I will refer to these as A to E.
This connector is reversed on the SKR 1.4
SKR1.3 - A B C D E
SKR1.4 - E D C B A
If you are unsure in any way, you can check for 5V on the pins with a multimeter. If you are not powering the Pi from the SKR, it will be the centre three pins, and incorrect connections should not be harmful to the boards, and you can rewire and attempt to reconnect(not thoroughly tested).
Connections - Power
Pins 2 and 4 are 5V lines. Pins 6 and 9 are ground. These can be used to power the Pi. If you are not powering from the SKR board, the ground voltage must be the same between the SKR and the Pi, or the communications are unlikely to work (Ground loop - Discovered that this is the case this evening).
Pin A is 5V, and should be suitable to power the Pi (not tested by me). Do not connect the 5V to anything else on the Pi. Only pins 2 and 4 are 5V safe, and you can break parts of your Pi if you get this wrong (also tested the hard way).
According to other forums, the Pi is rated to take between 4.75 and 5.25V on these pins, but no overload protection is present. I have found that the Pi generally draws less than 1A, but may potentially go slightly higher - the need for 3A is to provide power to USB ports.
TL;DR
- Pin 4 to Pin A only if powering Pi from SKR board
Connections - 3 wire serial
Note that Transmit and Receive must be cross connected between the two devices.
- Pin 6 to Pin B
- Pin 8 to Pin D
- Pin 10 to Pin C
Raspberry Pi configuration
The Raspberry Pi 2 has one serial port - /dev/ttyAMA0
The Raspberry Pi 3 has two serial ports - /dev/ttyAMA0 and /dev/ttyS0
/dev/ttyAMA0 is connected to the bluetooth adaptor on this model.
Although you can use the device tree overlay to change this configuration, there is no need to. Any changes to this will not change the GPIO pins in use.
Enabling the serial port can be achieved through editing config files, but it is far simpler to run the following:
sudo raspi-config
Select option 5 - Interfacing Options.
Select option P6 - Serial.
Select No - a serial console should not be available.
Select Yes - The serial hardware should be enabled.
running:
ls /dev/tty
The output should now include /dev/ttyS0 on a Pi 3 and /dev/ttyAMA0 on a Pi 2
Use this port to connect in OctoPrint.
SKR1.4 alternative
In addition to having the TFT connection reversed, the SKR 1.4 also includes a WiFi port and an I2C port.
The I2C connector has ports with the same layout as those on the TFT, without the E pin:
D C B A
If you wish to use the I2C port, it is on UART3. Use the following in Configuration.h:
#define SERIAL_PORT 3
#define SERIAL_PORT_2 0
This will disable the use of the USB port to control the board, but if you are only going to connect from the Pi, this is not needed. However, this will enable the use of the BTT TFT35 module as well as control from OctoPrint (although this may be confusing with two machines attempting to control the printer).
If you are not using the WiFi module, it may be possible to use the WiFi port for this, but I have not succeeded with this (The pins in use are a secondary connection for UART3, not enabled by arduino framework for this board. I don't know if Marlin uses software based serial for this). The WiFi Tx/Rx ports are on the top right and bottom left of the 2x4 connector (not 100% certain on Tx/Rx orientation), with Gnd on bottom right.
P x x C
D x x B