So I’ve been having problems uploading to my TinyFPGA BX. I’m on macOS Catalina (10.15.5).
I came across this post from two years ago which appeared to be having a similar problem. The solution was to install the ch340g-ch34g-ch34x-mac-os-x-driver package. However, from the GitHub of that driver:
Do not install if you have the current macOS Mojave 10.14 or later. macOS Mojave 10.14 (released in October 2018) includes a CH34x driver by Apple.
So this cannot be the issue.
What happens is when uploading via the Atom apio-ide, I always get this error at the end of a program:
File "/usr/local/lib/python3.7/site-packages/usb/backend/libusb1.py", line 595, in _check raise USBError(_strerror(ret), ret, _libusb_errno[ret]) usb.core.USBError: [Errno 5] Input/Output Error
The program appears to work. But if I unplug the device and plug it back in it goes back directly into bootloader mode. I believe this is most likely not the desired operation. Trying to upgrade the bootloader gives the same problem. It says complete and that it’s up to date, but when I unplug the tinyfpga and plug it back in it’s out of date again.
If I run
apio upload directly from the commandline I get the same error.
Additionally, many times when uploading I actually get the following error:
Using device id 1d50:6130 No port was specified and no active bootloaders found. Activate bootloader by pressing the reset button.
Despite the FPGA being in bootloader mode. If I run the same command many times in a row, after 2-5 tries it eventually works. So why would tinyprog be able to find the device SOMETIMES seemingly randomly?