For some unknown reason Feather M0 RFM69 modules do not show up in ports any more even though they did before. Could it have anything to do with the loaded example code ?
Can someone please help, I cannot find the serial-discover tool help from another post ?
Additional info: if I connect two devices only one shows up in lsusb and the only info is vendor:product i.e. 239a:800b.
When I remove the second device the single entry is removed.
The tricky thing about the boards with native USB capability like your board is that the USB code that creates the CDC serial port is running on the same microcontroller as your sketch. This means your sketch code can break the USB code, or stop it from running. When that happens, it no longer presents a port.
This can be unexpected to those who previously mainly worked with the boards like Uno and Mega with a dedicated USB chip that can never be affected by the sketch code.
The missing port makes it so you can't upload normally any more. However, the situation is really not so bad because there is an independent program called the bootloader in a separate section of memory from your sketch, and that program has its own USB CDC code. So even if the sketch is completely broken, you only need to activate the bootloader and you will get a port back and be able to upload.
Fortunately, there is an easy way to activate the bootloader and recover from this situation:
Press and release the reset button on your board quickly twice. You should now see the LED on the board pulsing, which means the bootloader is running. The double reset causes the bootloader to run indefinitely (until the board is reset normally, powered off, or an upload is done), which means you don't need to get the timing of the reset just right.
Select the port of your board from the Tools > Port menu. The port number may be different when the bootloader is running so don't assume you already have the correct port selected.
Start an upload in the Arduino IDE.
The upload should now finish successfully. After this, you should be able to go back to doing normal uploads without needing to press the reset button. If you still need to do the reset trick to do uploads after this, the problem may be caused by your code. You can verify this by uploading a simple sketch like File > Examples > 01.Basics > BareMinimum.
If the instructions above work, you won't need it. However, if you are still interested in finding the serial-discovery tool used by the Arduino IDE to identify the available serial ports on your computer, you can find it by doing this:
Open the command line terminal.
Run this command:
ls ~/.arduino15/packages/builtin/tools/serial-discovery
You will now see a list of the versions of serial-discovery which are installed on your computer. Take note of the highest version on the list (recent versions of Arduino IDE 2.x always use the newest one)
For example, if you see output like this:
I presume the soft usb code is interrupt driven and if so is there any milage in holding off the app code with a delay until it has registered the device or is there a flag that indicates the usb init code has completed ?
Also which usb stack do you recommend, the Tiny or Arduino ?
Many thanks in advance this is truly very helpful.