[Solved but don't know why] Bootloader/USB strange behavior


Hello everyone!

I wanted to ask about the bootloader behavior. The situation is like this:

  • TinyFPGA Bx connected through USB
  • Then , programmed through tinyprog -p
  • The program is correctly written, both power and boot LEDS switch off less than one second and my FPGA configuration start to work…
  • But my configuration only works for one second or so! I can see the blinking example working as expected during that second.
  • Then the bootloader comes again and my configuration stop being active, only bootloader.
  • I can repeat many times using tinyprog -b but again it switches into my configuration only for one second and then come back to the bootloader.

This is the intended behavior when the USB cable is connected? I should just use the USB for programming and then use the power supply during development?

My computer is Lenovo Thinkpad X1 carbon with Ubuntu 18.04.

Also the installation of tinyprog (or apio, not sure) already modified the udev rules for preventing the ModemManager to send commands so I think that is not the problem.

Thank you for your help.


No, that is not the intended behavior. It should stay in your configuration until reset is pressed or the device powered off.

It looks like your device is rebooting possibly due to a short circuit or a power problem. The power LED should not go off when you program the device. Have you tried a different USB cable?


Hi, thank you for answering.
This is actually the third cable I use, two of them failed before!

I will try a new one and report the results.


Hello again,

ok, this is getting really weird.
I tried 4 new cables, all of them consistently produce the same behavior: bootloader is active until tinyprog -b then the user configuration start to work for only one second and then it come back to the bootloader…

But! using a new fifth cable it behaves completely opposite! After connecting the USB it goes directly to the user configuration and if I press the reset button it goes to the bootloader for only one second and then it turn back to the user configuration… and tinyprog never detects the board anyway.

Please, please, I need some advice… what can I do?

Thank you for your time


Are you running Linux directly on your machine or via a VM? Others such as @gundy say they get the same behavior as you are now getting from a Linux VM on Windows. They can program the BX by pressing reset after starting tinyprog.


Hi Lawrie,
Thank you so much for answering.

I am running Linux directly on my machine.
Is there any output or logs that can help to figure it out what is the problem?
Do you think is a hardware problem or a software problem?


The bootloader produces no diagnostics other than its led. You might get information from dmesg about the connection and disconnection of the device.

This thread is about the B2 board but could be relevant:

You could try using a USB hub.


Thank you, good idea. I’m going to try using a USB hub.
By the way, I checked what happens if I connect it to my Raspberry Pi with Raspbian to compare but I get exactly the same behavior with every cable. No difference from my computer.

Trying USB hub…


I have been testing 5 cables:

  • Four of them were having the behavior of always switching to the bootloader after the user confiiguration run during one second.
  • One of them was producing the opposite behavior, after one second of bootloader it changes to the user configuration. Pressing reset only produces one second of bootloader.

And then… if I use a USB hub:

  • Two of them still behaving like the four cables before with the USB hub.
  • Three of them work correctly with the USB hub!!!

I am very glad of having this working but I would really want to know what is going on here. Any theories?

@lawrie.griffiths Thank you so much for spending time helping me with this issue. Really appreciate it :smile:

Recognizing TinyFPGA BX in WSL