Solved - Bootloader stops working after ~10 seconds on linux


My BX board is not a complete brick yet, but it feels like its getting close.

After pressing reset or reconnecting, the bootloader fading LED pattern works for between 10-15 seconds before exiting and starting the user program. The time that the bootloader is actually functioning is even less than that, as I can only get 40-50% of a download to complete before it fails. This is driven by something time-related, because the amount downloaded before fail depends on how quickly I download after pressing reset. I have a desktop and a laptop both with ubuntu 18.04. Both exhibit the same behaviour with slightly different times. If I connect it to my Win7 laptop, the bootloader works fine indefinately and downloads without issue.

At one stage I did successfully download from my ubuntu desktop multiple times without issue.

I haven’t had any failed attempts to update the bootloader, only failed attempts to download my own program. I assume they’re targeting different areas?

I’m not a linux native, so I’m a bit stuck where to start looking.

Should I refresh the bootloader from my Win7 machine? If so, how do you do that when it’s up to date?

Update: turns out it was ModemManager. Created a rule to have it not target this device and the rest is history. Sorry for not researching harder.


ModemManager is such a pain, I’ll see if I can’t put the instructions to disable it in a more visible location.

Glad you figured it out and got it working! :smile:


I use this form with Espruino to exclude modem manager.
Maybe it will also work with TinyFPGA with correct idProduct and idVendor.

#Makes Espruino's serial port accessible to non-SU users, and stops the Modem Manager trying to enumerate it
ATTRS {idProduct} == "5740", ATTRS {idVendor} == "0483", ENV {ID_MM_DEVICE_IGNORE} = "1", MODE = "0666", GROUP = "plugdev"


I created an issue on the modem manager site. Feel free to comment :stuck_out_tongue:


The good news is that this was actually fixed in 1.10! :crossed_fingers: