How to enable UART1 on Pi3

Hi,

is there a way to enable the mini-UART on the GPIO header on the Pi3 in OSMC?
Under Raspbian Jessie - if I add enable_uart=1 to config.txt - I can use ttyS0 (or serial0), but under OSMC adding enable_uart=1 to config.txt doesn’t seem to have any effect.

Is this supposed to work? Am I missing something?

Thanks!

sudo systemctl enable serial-getty@ttyAMA0

Hi Sam,
I don’t need a serial console, ssh is fine. And isn’t ttyAMA0 bound to Bluetooth?
I just want to use the mini UART ttyS0, like the default Raspbian configuration for the Pi 3 with some self written software.

Thanks!

The above was an example. As explained in the Wiki:

sudo systemctl enable getty@ttyS0

Hi Sam,

thanks for your reply, but this doesn’t make ttyS0 appear in /dev.

The problem is, that ttyS0 doesn’t exist, even if I add “enable_uart=1” in config.txt.

You probably need to add some overlay to config.txt.

This is possible, but I don’t have to do this under raspbian, (except for the enable_uart=1 line in config.txt), so why would this be needed for OSMC?
Is the boot process / loader / firmware different?

What overlay would this be? I haven’t found anything useful in the overlays directory.

Or could it be, that the kernel doesn’t detect the actually (hardware wise) working uart1 configuration?

Anything I could try (modprobe?)?

Suggestions are welcome.

Thanks!

Hi Wuffzack & Sam,

Where you able to find a way to get access to the Mini-UART of the PI3 (AKA Serial port #2) from OSMC ?
I confirm that it appears as /dev/ttyS0 on Raspbian (alongside the traditionnal ttyAMA0)

With bluetooth now using the main UART on the PI3, beeing able to use the secondary mini-UART is a must-have to connect other projects to osmc (ie. remotes …).

One way is to disable bluetooh and use the main UART … But I don’t want to disable the bluetooth ! :slight_smile:

Any plan to get this enabled in the next update ?

Thanks,
Guillaume.

Hi Guillaume,
sorry, I wasn’t able to get it to work. No idea why…

On OSMC w/ RPi3 :: UART via GPIO14/15 is working for me now!

I don’t really know how I got there (luck really). In any case…

/boot/config.txt
“”"""""""""""""""""""
gpu_mem_1024=256
hdmi_ignore_cec_init=1
disable_overscan=1
start_x=1
disable_splash=1
force_turbo=1
gpu_mem_256=112
sdtv_aspect=1
gpu_mem_512=144
dtoverlay=pi3-disable-bt
core_freq=250

/boot/cmdline.txt
“”""""""""""""""""""""""
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Hi Nate,

unfortunately this kills Bluetooth, as this puts the full UART to serial pins. You can remove core_freq=250, as you are using the “big” UART.

What I need is the “big” UART assigned to BT and the mini UART assigned to the serial pins (default with Raspbian Jessie on Raspberry Pi 3, if enable_uart=1 is in config.txt).

Hi @sam_nazarko, do you think you can you have a look at this issue ?
It is a getting quite frustrating to loose access to the GPIO UART ports when using OSMC on a Rpi3 …
It broke some of my integrations, like ambilight clone, or a IR receiver, that both used UART.

I know that disabling Bluetooth allows to re-assign the hardware UART to GPIO to get the same features as the Rpi2, but it is not an option … I bought a Rpi3 to also use bluetooth as part of my projects, not to disable it :slight_smile:

As a reminder, Raspbian exposes 2 UART on the Rpi3 - we should get the same feature-set on OSMC:

  • /dev/ttyAMA0 which is the hardware UART of the BCM chip, and used by the Bluetooth chip (and you also use it in OSMC)

  • /dev/ttyS0 that needs to be enabled in config.txt (enable_uart=1) that connects to the UART GPIO ports (the same as Rpi2). It is a software based UART. This should be use in all projets needing GPIO UART. It is missing from OSMC.

Thanks for your support,
Guillaume.

1 Like

Might need to bump the kernel which would have necessary DT changes.

I will update to the next LTS kernel for Raspberry Pi in the near future,

Hi, is there any update, about the ttyS0?

Greetings Tobias

Did you try it?

The kernel has been updated recently (May update); and there have been improvements to how the UART is setup, i.e.

Hi,

i did:
sudo apt-get update
sudo apt-get dist-upgrade

and put in to the config.txt:
enable_uart=1

But still the ttyS0 is missing.

Thanks.

Greetings Tobias

What’s the output of ls -l /dev/serial*. With the Pi WiFi changes (added for Pi 0 WiFi support), you should find there is now a /dev/serial0 or /dev/serial1.

Sam

Hi
ls -l /dev/serial* -> lrwxrwxrwx 1 root root 7 Jul 12 19:41 /dev/serial1 -> ttyAMA0

But the ttyAMA0 ist the UART for the Bluethooth.
There should be a “software” UART-> serial0, but it is missing.

Thanks for your help.

Grettings

Tobias

What device do you have?
What is the contents of your config.txt?
What’s the output of:

cat /proc/device-tree/aliases/uart

Sam

Hi Sam,

config.txt:
gpu_mem_1024=256
hdmi_ignore_cec_init=1
disable_overscan=1
start_x=1
disable_splash=1

enable_uart=1

cat /proc/device-tree/aliases/uart0 -> /soc/serial@7e201000
cat /proc/device-tree/aliases/uart1 -> /soc/serial@7e215040

Greetings

Tobias