Using ttyAMA0 as serial interface on raspberry3

I am developping a snap software which needs to communicate with another board through an RS232 interface.
I tried using ttyS0 (but at 38400 baud it’s buggy)
I found a way to use the PL11 UART (ttyAMA0)
by adding dtoverlay=pi3-disable-bt to config.txt : raspberry doesn’t boot
by adding dtoverlay=pi3-miniuart-bt : raspberry boots but interface is still ttyS0

What operating system are you using? Are you using Ubuntu Core?

I’m using ubuntu core16:

classic 16.04 26 edge canonical✓ devmode
core 16-2.41 7715 stable canonical✓ core
pi2-kernel 4.4.0-1120.129 99 stable canonical✓ kernel
pi3 16.04-0.5 x1 - - gadget
wifi-ap 25 307 stable canonical✓ -

config.txt with added lines:

target board is connected on GPIO14 and GPIO15
it is responding to ttyS0 but not ttyAMA0

@ogra any thoughts on this?

hey, sorry, i was on vacation for two weeks …

try using this but also adjust your cmdline.txt to point to “console=serial0,115200” (or serial1, i dont remember) … else it will boot but then try to write to a non-existing console device.

Thank you,
I tried it, but with no success … , I noticed that there are no “serial0” or “serial1” symlink in /dev directory, could that be the reason ?

suprascal@localhost:/dev$ suprascal@localhost:/dev$ ls -l | grep serial
-bash: suprascal@localhost:/dev$: No such file or directory

no, this is handled internally by the pi bootloader and u-boot so a device entry in /dev should not be needed

This is from some time ago now, but FWIW the approach that worked for me is as follows:

  • Add dtoverlay=pi3-miniuart-bt to config.txt to set Bluetooth to use ttyS0 rather than ttyAMA0.
  • Remove the console=serial0,115200 bit from cmdline.txt. This frees up the port to be used as an RS232 port rather than used for the console.

Mostly derived from (and targeted at Raspbian, but should be more or less equivalent for Ubuntu Core).

Hope that helps!

I googled already this site, i tried the raspbians solution.
Some tutorials ask to to remove hciuart.service , some to disble getty.

So far had no success on Ubuntu Core
my understanding is that on raspberry 3 :

  • bt uses uart0 mapped on ttyAMA0 and serial console uses uart1 mapped on ttyS0 on gpio 14 and 15
  • pi3-miniuart-bt swaps uart0 to ttyS0 and uart1 to ttyAMA0 so that gpio pi 14 and 15 are now connected to uart1

I tried to read the pi3-miniuart-bt overlay file, it’s obviously not a human readable file, but a readable part is (…function brcm,pull phandle target-path serial0 serial1 fake_bt_cts uart0 uart0_pins uart1 uart1_pins bt_pins gpio …) refers to uart0, uart1, serial0 and serial1
On my ubuntu Core system there is no serial0 or serial1 alias.

I will download a raspbian system and try on my board today