USB Blaster example

Hi,

I have some compile errors with USB Blaster example.

Arduino: 1.8.5 (Windows 10), Board: "Arduino MKR Vidor 4000"
...... cut .....
Using board 'mkrvidor4000' from platform in folder: D:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25
Using core 'arduino' from platform in folder: D:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25
Detecting libraries used...
"D:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10805 -DARDUINO_SAMD_MKRVIDOR4000 -DARDUINO_ARCH_SAMD_BETA  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x8056 -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino MKR Vidor 4000"' -DUSE_BQ24195L_PMIC "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.5.0/CMSIS/Include/" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\CMSIS-Atmel\1.2.0/CMSIS/Device/ATMEL/" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25\cores\arduino" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25\variants\mkrvidor4000" "D:\Users\limba\AppData\Local\Temp\arduino_build_795560\sketch\USB_Blaster.ino.cpp" -o "nul"
"D:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10805 -DARDUINO_SAMD_MKRVIDOR4000 -DARDUINO_ARCH_SAMD_BETA  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x8056 -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino MKR Vidor 4000"' -DUSE_BQ24195L_PMIC "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.5.0/CMSIS/Include/" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\CMSIS-Atmel\1.2.0/CMSIS/Device/ATMEL/" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25\cores\arduino" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25\variants\mkrvidor4000" "-ID:\Users\limba\Documents\Arduino\libraries\USBBlaster\src" "D:\Users\limba\AppData\Local\Temp\arduino_build_795560\sketch\USB_Blaster.ino.cpp" -o "nul"
Generating function prototypes...
"D:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10805 -DARDUINO_SAMD_MKRVIDOR4000 -DARDUINO_ARCH_SAMD_BETA  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x8056 -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino MKR Vidor 4000"' -DUSE_BQ24195L_PMIC "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.5.0/CMSIS/Include/" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\CMSIS-Atmel\1.2.0/CMSIS/Device/ATMEL/" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25\cores\arduino" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25\variants\mkrvidor4000" "-ID:\Users\limba\Documents\Arduino\libraries\USBBlaster\src" "D:\Users\limba\AppData\Local\Temp\arduino_build_795560\sketch\USB_Blaster.ino.cpp" -o "D:\Users\limba\AppData\Local\Temp\arduino_build_795560\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\APPS\arduino-1.8.5\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "D:\Users\limba\AppData\Local\Temp\arduino_build_795560\preproc\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"D:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -MMD -DF_CPU=48000000L -DARDUINO=10805 -DARDUINO_SAMD_MKRVIDOR4000 -DARDUINO_ARCH_SAMD_BETA  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x8056 -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino MKR Vidor 4000"' -DUSE_BQ24195L_PMIC "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.5.0/CMSIS/Include/" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\CMSIS-Atmel\1.2.0/CMSIS/Device/ATMEL/" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25\cores\arduino" "-ID:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25\variants\mkrvidor4000" "-ID:\Users\limba\Documents\Arduino\libraries\USBBlaster\src" "D:\Users\limba\AppData\Local\Temp\arduino_build_795560\sketch\USB_Blaster.ino.cpp" -o "D:\Users\limba\AppData\Local\Temp\arduino_build_795560\sketch\USB_Blaster.ino.cpp.o"
Compiling libraries...
Compiling library "USBBlaster"
Compiling core...
Using previously compiled file: D:\Users\limba\AppData\Local\Temp\arduino_build_795560\core\clockout.c.o
Using previously compiled file: D:\Users\limba\AppData\Local\Temp\arduino_build_795560\core\variant.cpp.o
Using precompiled core
Linking everything together...
"D:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4/bin/arm-none-eabi-g++"  "-LD:\Users\limba\AppData\Local\Temp\arduino_build_795560" -Os -Wl,--gc-sections -save-temps  "-TD:\Users\limba\AppData\Local\Arduino15\packages\arduino\hardware\samd_beta\1.6.25\variants\mkrvidor4000/linker_scripts/gcc/flash_with_bootloader.ld" "-Wl,-Map,D:\Users\limba\AppData\Local\Temp\arduino_build_795560/USB_Blaster.ino.map" --specs=nano.specs --specs=nosys.specs -mcpu=cortex-m0plus -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -o "D:\Users\limba\AppData\Local\Temp\arduino_build_795560/USB_Blaster.ino.elf" "D:\Users\limba\AppData\Local\Temp\arduino_build_795560\sketch\USB_Blaster.ino.cpp.o" "D:\Users\limba\AppData\Local\Temp\arduino_build_795560\core\clockout.c.o" "D:\Users\limba\AppData\Local\Temp\arduino_build_795560\core\variant.cpp.o"  -Wl,--start-group "-LD:\Users\limba\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.5.0/CMSIS/Lib/GCC/" -larm_cortexM0l_math -lm "D:\Users\limba\AppData\Local\Temp\arduino_build_795560/..\arduino_cache_121649\core\core_arduino_samd_beta_mkrvidor4000_9905c625ab12965dad04252731657ebd.a" -Wl,--end-group
D:\Users\limba\AppData\Local\Temp\arduino_build_795560\sketch\USB_Blaster.ino.cpp.o: In function `setup':

D:\Users\limba\Documents\Arduino\USB_Blaster/USB_Blaster.ino:8: undefined reference to `USBBlaster_::begin(bool)'

D:\Users\limba\Documents\Arduino\USB_Blaster/USB_Blaster.ino:11: undefined reference to `USBBlaster'

D:\Users\limba\AppData\Local\Temp\arduino_build_795560\sketch\USB_Blaster.ino.cpp.o: In function `loop':

D:\Users\limba\Documents\Arduino\USB_Blaster/USB_Blaster.ino:14: undefined reference to `USBBlaster_::loop()'

D:\Users\limba\Documents\Arduino\USB_Blaster/USB_Blaster.ino:15: undefined reference to `USBBlaster'

collect2.exe: error: ld returned 1 exit status

Using library USBBlaster at version 1.0.0 in folder: D:\Users\limba\Documents\Arduino\libraries\USBBlaster 
exit status 1
Error compiling for board Arduino MKR Vidor 4000.

It seems that it can't find precompiled library.

Other question about this. Does this allow also use normal USB blaster in same system like used in DE0-Nano?

Hi Limba,
IDE 1.8.5 does not contain the minimum arduino-builder version to link precompiled libraries (I know it sucks but we still can't release the source code for the Blaster library).
Updating to 1.8.8 should fix the issue with no side effect :wink:

Didn't notice any update messages. All libraries were updated through software but no waringns that core is not up to date :slight_smile:

Edit:
It seems to detect the device with official drivers. now testing to upload bitstream

Edit2:
It seems that "template_bare" didn't take use pinmap constraints. maybe something from my setup
Using GUI. Also noticed that CONF_DONE was connected to pin headers. I'm not sure did they changed these behaviour but you can't drive them low when configuring device (At least this was case in Cyclone V).

Check that it seems to work with official drivers (signal tap)