Unable to communicate with SAMD21 Mini Breakout serial USB using Linux

Hello everyone. I was hoping the community could help me out. I’m not sure what I’m doing wrong. I’m having trouble trying to send a command from a Linux Debian 12 computer to a Sparkfun SAMD21 Mini Breakout via serial monitor.

I connected a USB to USB-C adaptor cable from the USB port on my Linux device to the USB-C connector on the Mini breakout. Here is my current sketch.

When I try this using the Serial Monitor on Arduino IDE on my Windows laptop it works fine.
I see the “Please Press 1 to Generate PIN” message. When I press “1” and then “Enter” I get the “Success” message sent back to me.

I’m trying to reproduce this, using a linux Debian 12 device to send the command. I’m trying send the command “1” from the Linux computer through the USB-C connector on the Sparkfun SAMD21 Mini breakout. I have tried using the programs screen, picocom, and minicom, without any success.

When I log into my linux device via ssh I can see that the Sparkfun Mini Breakout is “ttyACM0.” When I try to use the program "screen for example, I use the command “screen /dev/ttyACM0 115200.” I had set my baud rate to 115200 in my sketch.

However it doesn’t seem to do anything. I just see a blinking cursor. I don’t even get the “Please press 1 to Generate PIN” message from the Mini breakout. When I press the buttons on my keyboard I don’t see them on screen.

What’s odd is that I tried something similar with an Arduino UNO and I was able to send this command using screen from my linux device. I got the response message from the Arduino UNO as well.

Here’s the link to Sparkfun’s website explaining the serial USB port works on the SAMD21 Mini breakout. Are there any drivers that I need to install on Linux to fix this problem? Thanks.

learn.sparkfun.com

No driver should be needed for SAMD21 on linux

It could be a few things, linux can be fiddly at times… I tossed this to Claude.ai and it had some suggestions that are probably worth a shot

Are you absolutely sure your USB cable will pass data and isnt a charge only cable?

Update: I discovered that if I unplug the USB cable between the Linux device and the SAMD21 Mini Breakout and then plug it back in it suddenly starts to communicate. I can send commands from my Linux device to the Mini breakout using “screen.” I have tried this several times. I will reboot my Linux device, fail to communicate with the mini breakout using screen, unplug and replug the USB cable, and then I’m suddenly able to send a command.

Have you guys ever seen anything like this? Is there any way to fix this so that I can send commands after my Linux device reboots, without having to unplug and replug the USB cable? Thanks for your help.

Thank you. I will look through that. I appreciate it.

That’s odd…does the same thing occur with an alternate cable?

You might be able to whip up a quick script that dumps/flushes usb devices and then re-enumerate them…AI models are good at small stuff like that if you want some help