tinyvision-ai-inc/pico-ice-sdk

Mac OS Bug

Opened this issue · 1 comments

On the Pico-Ice, I can install a soft core on Linux, and talk to it with the following command:

sudo picocom --baud 115200 --imap crcrlf,lfcrlf /dev/ttyACM1

When I then try to talk to it on Mac OS with the following command:

sudo picocom --baud 115200 --imap crcrlf,lfcrlf /dev/ttyACM1

I get many copies of the following message:

cdcd_control_xfer_cb: coding=200014B2 itf=0
tud_cdc_line_coding_cb: coding=200014B2 baud=9600

You can read the details here:

sudo picocom --omap crcrlf /dev/tty.usbmodem2201 picocom v3.1

port is : /dev/tty.usbmodem2201
flowcontrol : none
baudrate is : 9600
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 : crcrlf,
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

cdcd_control_xfer_cb: coding=200014B2 itf=0
tud_cdc_line_coding_cb: coding=200014B2 baud=9600
cdcd_control_xfer_cb: coding=200014B2 itf=0
tud_cdc_line_coding_cb: coding=200014B2 baud=9600
cdcd_control_xfer_cb: coding=200014B2 itf=0
tud_cdc_line_coding_cb: coding=200014B2 baud=9600
cdcd_control_xfer_cb: coding=200014B2 itf=0
tud_cdc_line_coding_cb: coding=200014B2 baud=9600
cdcd_control_xfer_cb: coding=200014B2 itf=0
tud_cdc_line_coding_cb: coding=200014B2 baud=9600

pico-ice default firmware
https://github.com/tinyvision-ai-inc/pico-ice/tree/main/Firmware/pico-ice-default

Serial port #0 - this shell, with commands:
v - print pico-ice-sdk version

Serial port #1 - forwarding to UART
UART TX on RP0 = ICE27
UART RX on RP1 = ICE25

Serial port #2 - forwarding to SPI:
https://pico-ice.tinyvision.ai/group__ice__usb.html#autotoc_md2

pico-ice>

When I then try to talk to the soft core on Mac OS
sudo picocom --omap crcrlf /dev/tty.usbmodem2203

It gives me the following response,

sudo picocom --omap crcrlf /dev/tty.usbmodem2203 Password: picocom v3.1

port is : /dev/tty.usbmodem2203
flowcontrol : none
baudrate is : 9600
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 : crcrlf,
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

but then it just locks up on me. I cannot type anything to it.

Thank you for this detailed report! There looks like being some kind of debug messages just in this condition, so this is a good clue for us to look into the source. Maybe adding more debug logs is also something to try.

I am wondering if the debug logs are accumulated in /dev/tty.usbmodem2201 whenever characters are typed in /dev/tty.usbmodem2203.

Note that unless there is something that connects UART TX to RX in way or another, nothing is expected to show-up.

Something else that could be tried is to regularly print a character over the UART from the FPGA and see if they are visible: the other direction.