picocom v3.1
port is : /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AG0JNTJ3-if00-port0
flowcontrol : none
baudrate is : 115200
parity is : none
databits are : 8
stopbits are : 1
escape is : C-a
local echo is : no
noinit is : no
noreset is : no
hangup is : no
nolock is : no
send_cmd is : sz -vv
receive_cmd is : rz -vv -E
imap is :
omap is :
emap is : crcrlf,delbs,
logfile is : none
initstring : none
exit_after is : not set
exit is : no
Type [C-a] [C-h] to see available commands
Terminal ready
And it just hangs.
I have placed the default rpi4 erlinit.config into the overlay directory and changed the output to ttyS0 but it is not showing up in the final firmware build. What is displayed is tty1.
I don’t have any Nerves specific advice, but some basic general UART troubleshooting steps I go through (you may already know all this):
is the voltage jumper set correctly on the adapter (should be 3.3V for the Pi)
are Tx/Rx connected correctly? Tx of the Pi should be connected to Rx of the adapter and vice-versa
is ground connected between the adapter and the Pi?
If all that is hooked up right, even if the UART baudrate and framing configuration is wrong you should at least get “non-printable” characters. If you do get characters out of the UART then great, you’re either done or just need to figure out your UART config. If you don’t, either you missed something above, something is broken, or the Pi really isn’t talking. Personally, my next troubleshooting step would involve an oscilloscope but I’m not sure if you have that available or not. Without an oscilloscope, I would double check all connections again, then hook the adapter up in a loopback (Tx to Rx) and send some bytes through it on it’s own to make sure that’s not broken. Assuming that all checks out, either the Pi has a hardware problem (unlikely) or there is an actual nerves configuration issue (which I don’t have any advice for).
Which GPIO or physical pins on the RPi4B are you expecting a UART to operate on ?
I notice my RPi4B has both /dev/ttyAMA0 and /dev/ttyS0 ( the lower-spec UART )
Note that Elixir IEx runs usually on /dev/console mapped to physical pins 8 (TxD) and 10 (RxD)