Serial port (Ubuntu) is detected but not receiving data from Nucleo-F 446RE

Hi,

I want to use UART on mbed Nucleo -F 446RE to communicate with PC.
I can correctly receive data when the board sends data to a Windows PC, but when using a Ubuntu PC I cannot receive data, though Ubuntu PC detects a serial port as /dev/ttyACM0. To be precise, Ubuntu PC seems to get one character from Nucleo board, but cannot continuously receive data. After it falls in the bug, the PC comes to be unable to detect /dev/ttyACM0.
I use mbed OS 6 framework and printf(); function to send data to PC.
Furthermore, when I use an Arduino UNO board instead of the Nucleo board, the Ubuntu PC could correctly receive data.

I tried
sudo usermod -a -G dialout whoami
sudo chmod 666 /dev/ACM0
but nothing has been improved.

I want the Ubuntu PC to receive data correctly from the Nucleo board.
Does anyone have advice?
Sincerely

Hello Takashi,

I’m on Ubuntu 22.04.1 LTS and have no problems to receive data over the serial port from my NUCLEO-F446RE. I don’t know which application do you use as serial monitor but I installed moserial for myself and it works fine:

sudo apt-get install moserial

Similar to you I’m also in the dialout group and I have found the following file in the /dev/serial/by-id directory:
usb-MBED_MBED_CMSIS-DAP_101067432f1726508f8ab7d686e14a6e78ee-if01
(but I don’t know whether this file is for NUCLEO boards).
And I also see the ttyACM0 device in the /dev directory after connecting the NUCLEO board to the PC.
Below is the moserial print screen:

Maybe it helps.

Zoltan

Hello Zoltan,

Thank you for replying.

I tried the same method with cleanly reinstalled Ubuntu 22.04.01 PC, but there was no improvement.
I bought this board about 7 years ago, so there might be something wrong with it… (though it is strange that this board works well on Windows PC)

By the way, I have used Arduino Serial Monitor, but moserial is also very simple and easy to use. Thank you for introducing good software!

Takashi

I bought this board about 7 years ago, so there might be something wrong with it…

Install the STM32CubeProgrammer. When your NUCLEO-F446RE board is connected to the PC you’l see something as below. Click on the Firmware upgrade button and install the latest ST-Link firmware.

Programmer

Best regards,

Zoltan

Zoltan,

Great!!!
After I updated the firmware, the Nucleo board could easily communicate with Ubuntu PC!
I didn’t expect that the firmware was wrong.

Thank you for your good solution!!

Sincerely
Takashi