I’ve built the Arty E300 and flashed the board using Vivado. Now I have 3 leds on. LD6 turns off if I press BTN3 and LD4 turns off when I press ck_rst red button. Now I’m trying to upload the SDK example and I get this (with or without sudo)
Open On-Chip Debugger 0.10.0-dev-g9bab078 (2017-02-03-12:05)
Licensed under GNU GPL v2
For bug reports, read http://openocd.org/doc/doxygen/bugs.html
adapter speed: 10000 kHz
Info : auto-selecting first available session transport “jtag”. To override use 'transport select '.
Error: no device found
Error: unable to open ftdi device with vid 0403, pid 6010, description ‘Dual RS232-HS’, serial ‘’ at bus location '’
This is what I see with lsusb:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
This is a virtual machine and I have the USB device mapped into the VM, it does work with Vivado so I don’t know what is going on here. Any help is appreciated
Also, do you have the Olimex debugger attached? I do not see it on the lsusb output. The debugger uses a seperate USB interface than the Vivado and Serial communication.
Looks like reading the getting started guide for the Arty would have helped I’ve found the project through github and there was no mention of the guide in the readme, I’ve found it now. I don’t have an Olimex debugger, I’ll get one. Thanks for the quick response!
This reminds me a thought i had. It will be very nice if we had a bootloader that can be used to flash over serial. Not only would people would not have to have a separate debugger but a universal way to flash on different FPGA boards. I think it would make life easier for everyone.
BTW I also don’t see anything coming out of the serial I have with the regular USB connection in the board, but it looks like I need the Olimex for that too?
I wonder why the serial and JTAG that come with the Arty can’t be used as I can do if I put a Microblaze there and use the Xilinx SDK…
You do not need an Olimex for the Serial. You may need to properly set your permissions to see the output (or use sudo). This is described in the Getting Started Guide as well.
The Serial & JTAG on the Artix FPGA are hard-wired to their functionality, and user image doesn’t have access to those pins. That is why we have to use a user-accessible port for our soft core’s debug interface.
Agreed that a serial bootloader would be very useful. Contributions welcome!
I’m using sudo and opening with screen as the guide says, but nothing comes out of the serial when I reboot the board. As I can’t flash it for now the software it has is whatever comes with by default as I described in my original post, I’m not sure if that has serial output though.
The SW that comes as part of the MCS (loaded with Vivado) will print one message after reset. So you need to launch screen/minicom, and then press ‘reset’ to see the message.
I now tried the image from the web and that one works. The one I built locally doesn’t turn the multicolor led on and nothing comes out of the serial port. It only does what I described in the original post with the green leds and buttons. Why would my build be broken?
When we built the image that’s posted online, we used the FLASHED_PROGRAM variable to include a binary version of demo_gpio from the Freedom E SDK
This requires a binary format (slightly different than the actual ELF file that Freedom E SDK creates). You can generate it from the ELF with objcopy also installed as part of the SDK:
I am facing exactly the same problem, when I program the FPGA with the .mcs example file downloaded from the website it works just fine printing the message over to the serial interface. But when I use the .mcs file no output is printed, the Makefile is like in the picture above and I didn’t quite followed how to solve the problem (there is no /toolchain folder in freedom-e-sdk and I just finished building the tools ).
lsusb command:
Bus 002 Device 008: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
Bus 003 Device 005: ID 15ba:0004 Olimex Ltd. OpenOCD JTAG TINY
make upload PROGRAM=demo_gpio BOARD=freedom-e300-arty command:
Error: no device found
Error: unable to open ftdi device with vid 15ba, pid 0004, description ‘Olimex OpenOCD JTAG ARM-USB-TINY-H’, serial ‘’ at bus location '’
I have modified the .cfg file from
ftdi_vid_pid 0x15ba 0x002a
to ftdi_vid_pid 0x15ba 0x0004
Also from the Eclipse based IDE I get this error when running the Blinky program:
Info : auto-selecting first available session transport “jtag”. To override use 'transport select '.
Error: no device found
Error: unable to open ftdi device with vid 0403, pid 6010, description ‘Dual RS232-HS’, serial ‘’ at bus location '’
Is it possible that openOCD does not work properly? Thanks
first of all very great work all in all
I have also problems uploading new Code via the Olimex ARM-USB-TINY-H Adapter.
I am able to flash the FPGA with included software in the mcs file with:
After setting default flashed program and regenerating MCS (just deleted generated MCS, not recompile from RTL ), the new MCS just working as good as official released bitstream.
Can someone explain this magic? the previous MCS has the name “E300ArtyDevKitFPGAChip.mcs”, but the new one changed to “sifive.freedom.everywhere.e300artydevkit.E300ArtyDevKitConfig.mcs”. I didn’t change anything in Makefile excepted setting FLASHED_PROGRAM.
#Just wonder why don’t you update the source code.