sparkfun / arduino_boards Goto Github PK
View Code? Open in Web Editor NEWBoard definitions for SparkFun-manufactured AVR, ARM, and ESP-based Arduino boards.
Board definitions for SparkFun-manufactured AVR, ARM, and ESP-based Arduino boards.
One in
Arduino_Boards/sparkfun/avr/Qduino
and one in
Arduino_Boards/sparkfun/avr/libraries/Qduino
they both have the same files.
Thanks guys, keep up the good work.
Cheers
JP
Originally reported an issue based on a misunderstood warning. There is no issue.
Hey folks,
There was a forum post from a user stating that he was getting identical analog readings from both A0 and A1 when using the MicroMod SAMD51 and ATP Carrier Board.
Looking at variant.h
, it appears that both A0 and A1 are defined as A0. Could this be causing his issue?
Arduino_Boards/sparkfun/samd/variants/SparkFun_SAMD51_MicroMod/variant.h
Lines 143 to 144 in 5f1bc3c
Cheers,
Adam
Similar/Same to #23
I had trouble burning the bootloader for any SFE samd21 boards and replaced the OpenOCD sketch upload section of sparkfun samd21 package platform.txt, with the the one from the aruduino samd platform.txt and that seemed to have allowed me to burn bootloaders.
tldr:
sparkfun package path:
tools.openocd.path={runtime.tools.openocd-0.9.0-arduino6-static.path}
Arduino package path:
tools.openocd.path={runtime.tools.openocd-0.10.0-arduino7.path}
Arduino_Boards/sparkfun/samd/variants/SparkFun_SAMD51_Thing_Plus/variant.cpp
https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/samd/variants/SparkFun_SAMD51_Thing_Plus/variant.cpp
Lines 83 to 87:
// 27..29 - USB // -------------------- { NOT_A_PORT, 0, PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable DOES NOT EXIST ON THIS BOARD { PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM { PORTA, 27, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
Should it not be 24 & 25 ?
// 27..29 - USB // -------------------- { NOT_A_PORT, 0, PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable DOES NOT EXIST ON THIS BOARD { PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM { PORTA, 25, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
Using the Thing Plus as an I2C slave:
onRequest
or onReceive
callbacks.This issue also affects Adafruit SAMD51 boards, an issue tracking a fix for their Wire lib and variants is in the ArduinoCore-samd repo.
Sample Program:
#include <Wire.h>
void setup() {
Serial.begin(115200);
Wire.begin(0x08);
Wire.onRequest(requestHandler);
Serial.println("Setup complete");
}
void loop() {
Serial.println(millis());
delay(100);
}
void requestHandler() {
Serial.println("Req: responding 6 bytes");
Wire.write("bytess");
}
Upon running i2cdetect
the device stops printing timestamps in the loop. i2cdetect
is sluggish, and shows no available addresses, not even other devices on the bus:
$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
i2cget
is unable to read values from the board:
$ i2cget -y 1 8
Error: Read failed
Thing Plus' Wire lib was written for a SAMD21, which has a single Sercom interrupt for I2C slave operations. Whereas, the SAMD51 uses 4 Sercom Interrupts when being used as an I2C slave.
Near the top of the repro sketch sketch declare each of the 4 SERCOM3 interrupt handlers:
void SERCOM3_0_Handler() { Wire.onService(); }
void SERCOM3_1_Handler() { Wire.onService(); }
void SERCOM3_2_Handler() { Wire.onService(); }
void SERCOM3_3_Handler() { Wire.onService(); }
Now both i2cdetect
and i2cget
are nominal:
$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- 08 -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- 1a -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
$ i2cget -y 1 8
0x62
Update Wire.h
to support 4 sercom interrupt handlers for a wire interface in addition to declaring the handlers in the Thing Plus variant.h
.
I'm submitting a PR to Adafruit and can also submit one here.
Tried to uninstall and reinstall. Noticed now that the directory for the new board is not there. That is all the other boards have directories in "variants" and so guess we are missing that code.
I don't seem to be able to find the SparkFun Thing Plus in the platformio board registry.
I've done pio platform install atmelsam --with-package framework-arduino-samd-sparkfun
(installed version 1.7.4) but afterwards platformio boards | grep sparkfun_thing
only shows the sparkfun_thing_plus_v
(which doesn't use the SAMD51 chip apparently). The Platformio online board registry doesn't seem to show the Thing Plus either.
Is there some part of the platformio ecosystem that needs to be rebuilt to pick up the board definitions in this repo?
should be
"archiveFileName": "sparkfunboards.1.1.12.tar.bz2"
Thanks
JP
Hi,
i just updated both Arduino to 1.6.6 and the sparkfun boards definition to 1.0.3 (as proposed by the Arduino IDE), and now i can't compile for any of the sparkfun boards.
For instance if i choose makey makey, i get this error :
Board makeymakey (platform avr, package SparkFun) is unknown
Any idea on what's going down ?
Thanks
I'm using the Lilypad Protosnap Plus setup and trying to load a super simple sketch:
#include <SoftwareSerial.h> //All I'm doing is including this header file
void setup() {
//Setup nothing
}
void loop() {
//Loop nothing
}
This results in the following error:
In file included from /Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/avr/io.h:99:0,
from /Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/avr/interrupt.h:38,
from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/src/SoftwareSerial.cpp:41:
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/src/SoftwareSerial.cpp: In member function 'void SoftwareSerial::begin(long int)':
/Users/x/Library/Arduino15/packages/SparkFun/hardware/avr/1.1.8/variants/lilypadusbplus/pins_arduino.h:159:219: error: expected ':' before ')' token
#define digitalPinToPCMSKbit(p) ( ((p) == 1) ? 0 : ((p) == 21) ? 1 : ((p) == 22) ? 2 : ((p) == 23) ? 3 : ((p) == 6) ? 7 : (((p) == 4)||((p) == A4)) ? 4 : (((p) == 8)||((p) == A8)) ? 5 : (((p) == 12)||((p) == A10)) ? 6 )
^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/src/SoftwareSerial.cpp:364:28: note: in expansion of macro 'digitalPinToPCMSKbit'
_pcint_maskvalue = _BV(digitalPinToPCMSKbit(_receivePin));
^
/Users/x/Library/Arduino15/packages/SparkFun/hardware/avr/1.1.8/variants/lilypadusbplus/pins_arduino.h:159:219: error: expected primary-expression before ')' token
#define digitalPinToPCMSKbit(p) ( ((p) == 1) ? 0 : ((p) == 21) ? 1 : ((p) == 22) ? 2 : ((p) == 23) ? 3 : ((p) == 6) ? 7 : (((p) == 4)||((p) == A4)) ? 4 : (((p) == 8)||((p) == A8)) ? 5 : (((p) == 12)||((p) == A10)) ? 6 )
^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/src/SoftwareSerial.cpp:364:28: note: in expansion of macro 'digitalPinToPCMSKbit'
_pcint_maskvalue = _BV(digitalPinToPCMSKbit(_receivePin));
^
exit status 1
Error compiling for board LilyPad USB Plus.
Basically, in the file pins_arduino.h (provided by Sparkfun) and line 159, the final nested ternary operator is missing a colon and an else operation.
(((p) == 12)||((p) == A10)) ? 6 // missing something like "? 6:11" but I don't know what the else number should be
Without SoftwareSerial.h, I can't have my lilypad USB plus (protosnap plus) communicate with my XBee. What should the else statement be? Is there a workaround? Should there be a unit test for this?
I was investigating this comment:
Just so you know, installing the tiny branch for the Atto84 (as per your instructions) will cause Arduino IDE 1.8.10 to overwrite the file that contains artemis board definitions with a file that doesn't contain them.
And found it to be true - at least sorta. Although the installed Apollo3 files aren't modified or removed the package index JSON file was replaced. This happened because the filename was the same in both the master
and tiny
branches. Not sure why Arduino chose to keep the Atto84 version over Apollo3 (it happened no matter what order I placed the URLs in the additional boards manager URLs field).
Without the package index JSON file to guide Arduino to the installed package it appears that the package is no longer installed.
tiny
branch I changed the filename to package_sparkfun_tiny_index.json
. The package name on the inside is still 'SparkFun' so the packages still get put together.Windows 10
Arduino 1.8.7
SparkFun SAMD Boards 1.5.2
Trying to upload to a SparkFun SAMD21 Mini Breakout, I get the following error:
Found upload port: COM15
C:\Users\sgmustadio\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.8.0-48-gb176eee/bossac.exe -i -d --port=COM15 -U true -i -e -w -v C:\Users\SGMUST~1\AppData\Local\Temp\arduino_build_882835/samd_timer_01.ino.bin -R
bossac.exe: extra arguments found
Try 'bossac.exe -h' or 'bossac.exe --help' for more information
An error occurred while uploading the sketch
The only workaround I have found so far is to download bossac 1.7.0 and put it in
C:\Users\%USERNAME%\AppData\Local\Arduino15\packages\arduino\tools\bossac
Then, change line 134 of
C:\Users\%USERNAME%\AppData\Local\Arduino15\packages\SparkFun\hardware\samd\1.5.2\platform.txt
to
tools.bossac.path={runtime.tools.bossac-1.7.0.path}
Not sure exactly what has changed in bossac 1.8.0, but that command does not seem to like it.
"url": "http://arduino.esp8266.com/win32-xtensa-lx106-elf-gb404fb9-2.tar.gz"
found in our JSON file returns a 404 and that breaks the ability to add the Blynk board to the IDE.
The fix for #32 does is not sufficient for 14.04. I guess bossac should be built so it does not depend on shared libraries. Or it should be compiled on Ubuntu 14.04. bossac 1.7.0 included with the Arduino SAMD board package works on 14.04 on Adafruit m0 boards but does not work on the SparkFun samd21 mini.
/home/me/ardtmp/arduino-1.8.5-m0/portable/packages/SparkFun/tools/bossac/1.4.0/bossac -i -d --port=ttyACM1 -U true -i -e -w -v /tmp/arduino_build_43069/Blink.ino.bin -R
/home/me/ardtmp/arduino-1.8.5-m0/portable/packages/SparkFun/tools/bossac/1.4.0/bossac: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/me/ardtmp/arduino-1.8.5-m0/portable/packages/SparkFun/tools/bossac/1.4.0/bossac)
/home/me/ardtmp/arduino-1.8.5-m0/portable/packages/SparkFun/tools/bossac/1.4.0/bossac: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/me/ardtmp/arduino-1.8.5-m0/portable/packages/SparkFun/tools/bossac/1.4.0/bossac)
An error occurred while uploading the sketch
I found you can only install either the generic esp8266 board definitions or SparkFun's esp8266 board definitions. This explains why I was seeing a file path conflict when installing both board definitions. (When, I tested this issue on a few systems (Windows and Mac using Arduino IDE version 1.8.5) and sometimes both folders are included, but other times the folders get overwritten by the new board definitions. Overall, the Arduino IDE is only able to see one of the board definition folders (or package) in either situation.)
I created a pdf with instructions for a teacher, a few months back, to remove all definitions and only install SparkFun's board definitions. This should workaround the issue until the .json file is updated.
Originally posted by @santaimpersonator in #48 (comment)
When using the ESP8266 board manager URL, attempting to install the Sparkfun AVR board definitions results in a failure due to a CRC error with the sparkfunboards.tar.bz2
file. The issue arises from the current version of the AVR package having been upgraded to 1.0.1 while the ESP8266 package still has the SHA information for the 1.0.0 version.
I have created a pull request, issue #7, which should resolve this temporarily by updating package_sparkfun_index.json
in the ESP8266 branch to include the AVR board 1.0.1 package information.
Why are there 3 PIDs for the MaKey MaKey?
Hi folks,
Recently, I was trying to figure out why not all of the analog pins on my Qwiic Micro boards were working properly. I started looking at the graphical datasheet and EAGLE board files and realized there a couple of small mistakes in the board defintion.
Issue:
A4 (D5) & A5 (D6) are tied to PA00 and PA01, but these pins don't actually have ADC functionality on the SAMD21E (see figure below). D7 is tied to PA04, which should be A4, but in variants.cpp
looks to be mapped to A5.
Solution:
The Qwiic Micro only makes use of 5/6 available ADC pins. Both the board definition files and graphical datasheet should be updated to reflect the correct pins. I've included a table below of what I believe are the correct ADC/IO/GPIO pins combinations.
ADC | I/O Pin | Digial Pin |
---|---|---|
A0 | PA02 | D1 |
A1 | PA06 | D2 |
A2 | PA05 | D3 |
A3 | PA07 | D4 |
N/A | PA00 | D5 |
N/A | PA01 | D6 |
A4/A5 | PA04 | D7 |
Please let me know if you require additional clarificaiton.
Cheers,
Adam
Hello,
I was having trouble compiling sketches using the Sparkfun board definition for the nRF52832, and I ended up identifying that the nrfutil executable linked in platform.txt was faulty. I am running OSX 10.10 with Xcode CLT 7.2 and Anaconda 4.1.6. I suspect it's because the version of nrfutil in this repository was built for a later version of OSX (it says it was built for 10.12)
I found that replacing the nrfutil in the Sparkfun/tools folder with a symlink to the executable whose path is found using which nrfutil
fixed the problem. However, probably something more robust is in order.
Please add the RedBot to this list. It'll reduce confusion and simplify things if we have people just select "RedBot" from the boards list.
This appears to bundle an outdated avrdude.conf file that doesn't contain information on the ATMEL-ICE device used as an ISP. I can burn bootloaders on non-SparkFun devices using it, but trying to flash a Pro Micro 5V/16MHz bootloader uses this command line and has this output (using Arduino 1.6.13 with latest Arduino AVR boards pack)
C:\Users\Ryan\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\Ryan\AppData\Local\Arduino15\packages\SparkFun\hardware\avr\1.1.5/avrdude.conf -v -patmega32u4 -catmelice_isp -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0xCB:m -Uhfuse:w:0xD8:m -Ulfuse:w:0xFF:m
avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\Ryan\AppData\Local\Arduino15\packages\SparkFun\hardware\avr\1.1.5/avrdude.conf"
avrdude: Can't find programmer id "atmelice_isp"
When I try to install Apollo 3 boards in my IDE I am getting error "CRC doesn't match. File may be corrupted..". Can you please let me know how to proceed
VersionSpecs:
Windows 10
Arduino 1.8.9
SparkFun SAMD Boards 1.6.1
Arduino SAMD Boards 1.8.1
Trying to upload to a SparkFun 9DoF Razor IMU M0, I get the following error:
java.io.IOException: Cannot run program "{runtime.tools.bossac-1.7.0.path}/bossac.exe": CreateProcess error=2,
...
I found that the variable runtime.tools.bossac-1.7.0.path
is now called runtime.tools.bossac-1.7.0-arduino3.path
in arduinos SAMD boards plattform.txt
Two fixing alternatives found:
C:\Users\%USERNAME%\AppData\Local\Arduino15\packages\SparkFun\hardware\samd\1.6.1\platform.txt
from : tools.bossac.path={runtime.tools.bossac-1.7.0.path}
to tools.bossac.path={runtime.tools.bossac-1.7.0-arduino3.path}
and restart the arduino IDE to reload files.Please update your guide if you can reproduce this Issue since I followed the listed steps for the problem to arise (https://learn.sparkfun.com/tutorials/9dof-razor-imu-m0-hookup-guide/all#installing-the-9dof-razor-arduino-core)
I updated sparkfunboards from v1.1.3 to v1.1.4 and now get this.
Arduino:` 1.6.8 (Windows 7), Board: "SparkFun Pro Micro, ATmega32U4 (3.3V, 8 MHz)"
Board promicro (platform avr, package SparkFun) is unknown
Error compiling for board SparkFun Pro Micro.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
In the files:
in the function "readFrom()", the Wire.requestFrom()
is followed by a Wire.endTransmission()
. That Wire.endTransmission()
may be removed. It is at the moment at line 284 (for both files).
Explanation: Common-mistakes#2
Arduino: 1.8.2 (Mac OS X), Board: "SparkFun SAMD21 Mini Breakout"
{runtime.tools.openocd-0.9.0-arduino.path}/bin/openocd -d2 -s {runtime.tools.openocd-0.9.0-arduino.path}/share/openocd/scripts/ -f /Users/fokkovisser/Library/Arduino15/packages/SparkFun/hardware/samd/1.3.2/variants/SparkFun_SAMD_Mini/openocd_scripts/arduino_zero.cfg -c telnet_port disabled; init; halt; at91samd bootloader 0; program {{/Users/fokkovisser/Library/Arduino15/packages/SparkFun/hardware/samd/1.3.2/bootloaders/zero/SparkFun_SAMD21_Dev.bin}} verify reset; shutdown
java.io.IOException: Cannot run program "{runtime.tools.openocd-0.9.0-arduino.path}/bin/openocd": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:485)
at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:11)
at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:129)
at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:412)
at processing.app.Editor.lambda$handleBurnBootloader$14(Editor.java:2486)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 7 more
Error while burning bootloader.
The OpenOCD .path link does not work, tools.openocd.path={runtime.tools.openocd-0.9.0-arduino.path}
. With the arduino Zero is is now tools.openocd.path={runtime.tools.openocd-0.9.0-arduino6-static.path}
Platform: OSX 10.11.6
Arduino IDE: 18.2
Sparkfun library: Sparkfun SAMD boards 1.3.2
Ah see now I have the wrong Arduino SAMD library: 1.6.15 (should be 1.6.9)
The SAMD21 code is currently using a busy-loop for writing to UART devices. I consider that moderately unacceptable.
The Arduino core added txbuffer support in July 2017; it looks like the Sparkfun branch has not picked up that change. (You could do better than they did: I'm not thrilled that the Arduino core forces the use of the same-sized buffer for transmit and receive.)
arduino/ArduinoCore-samd@b24c9e5#diff-9aa55b794319d1ec143466ac42b86e54
Can we consolidate the two Pro Micro boards in the drop-down to a single entry and use the "Processor" drop-down to select which Voltage \ Speed you're running at? The Pro / Pro Mini uses this feature.
Please?
#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT)))))
associates
INT4 to Arduino PIN7 (atmega PIN PE6) but this is wrong. Right interrupt would be INT6
java.io.IOException: Cannot run program "{runtime.tools.bossac-1.7.0-arduino3.path}/bossac.exe": CreateProcess error=2
New arduino and sparkfun SAMD boards
Ubuntu 16.04 LTS
Arduino: 1.8.5 (Linux), Board: "SparkFun SAMD21 Mini Breakout"
Sketch uses 9440 bytes (3%) of program storage space. Maximum is 262144 bytes.
Forcing reset using 1200bps open/close on port /dev/ttyACM0
PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } => {}
...
PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } => {}
Uploading using selected port: /dev/ttyACM0
/home/me/arduino-1.8.5/portable/packages/SparkFun/tools/bossac/1.4.0/bossac -i -d --port=ttyACM0 -U true -i -e -w -v /tmp/arduino_build_180311/Blink.ino.bin -R
java.io.IOException: Cannot run program "/home/me/arduino-1.8.5/portable/packages/SparkFun/tools/bossac/1.4.0/bossac": error=13, Permission denied
Setting the executable bits fixes the problem.
chmod +x ./portable/packages/SparkFun/tools/bossac/1.4.0/bossac
I had to dig around in the forums to find a pro micro driver, shouldn't they be inside the Arduino_Boards/sparkfun/avr/driver/ folder?
The variant configuration for the SAMD51 MicroMod is incorrect in boards.txt
which results in compilation errors. The config specifies SparkFun SAMD51 MicroMod
while the variant directory is SparkFun_SAMD51_MicroMod
.
In file included from /Users/$USER/Library/Arduino15/packages/SparkFun/hardware/samd/1.7.6/cores/arduino51/Arduino.h:81:0,
from /var/folders/wy/vc_834_n67j2fj8xqnqk0n4r0000gn/T/arduino_build_747408/sketch/Blink.ino.cpp:1:
/Users/$USER/Library/Arduino15/packages/SparkFun/hardware/samd/1.7.6/cores/arduino51/delay.h:24:21: fatal error: variant.h: No such file or directory
#include "variant.h"
^
compilation terminated.
exit status 1
Error compiling for board SparkFun SAMD51 MicroMod.
I have uninstall Arduino IDE 1.6.7, re-installed it, unistalled the SparkFun board package, re-installed it but I still get this compile error.
I noticed that board manager library files don't seem to go into the Arduino IDE program files installation folder but I'm not sure if this was an IDE change, bug or related to this issue.
I get the error Cannot run program "/home/user/sketchbook/hardware/esp8266/tools/xtensa-lx106-elf/bin/xtensa-lx106-elf-g++" (in directory "."): error=2, No such file or directory
I saw someone had that here before but apparently 'solved'it by removing a space in the "preference dialog" but there is no space there. Also, I seem to remember it has worked before.
What is causing this and what can I do. I am on 32 bit ubuntu
Sketch uses 4,194 bytes (14%) of program storage space. Maximum is 28,672 bytes.
Global variables use 151 bytes (5%) of dynamic memory, leaving 2,409 bytes for local variables. Maximum is 2,560 bytes.
java.io.IOException: Cannot run program "{runtime.tools.avrdude.path}/bin/avrdude": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:485)
at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:11)
at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:115)
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:160)
at processing.app.debug.Compiler.upload(Compiler.java:163)
at processing.app.Sketch.upload(Sketch.java:1220)
at processing.app.Sketch.exportApplet(Sketch.java:1194)
at processing.app.Sketch.exportApplet(Sketch.java:1166)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2487)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 11 more
Shit's broke yo. Arduino 1.6.6, Fedora 24
The Sparkfun Pro Micro Hookup Guide links to this repo with the words: " It should be a folder named ‘SFE32U4_Drivers’.". Apparently this repo has changed since and I guess there is not a Windows x64 Driver anymore to support the Sparkfun Pro Micro v5?
Hi there,
This morning I received the SparkFun Qwiic Micro - SAMD21 Development boards I ordered. The first thing I did was to measure the quiescent draw when in deep sleep and I noticed immediately that something was up. After cutting the power LED trace, I placed the board into deep sleep using the Arduino Low Power library. I ended up measuring a sleep current draw of ~350 uA and an active current draw of ~9.0 mA. This definitely gave me a sense of déjà vu, as I encountered the very same issue with my SAMD-based Adafruit Feather boards.
The good news it's a simple fix! The following lines of code need to be commented out in the wiring.c file in the SAMD board definition (lines 83-87). The SAMD21 pins are tri-stated by default, which is their lowest power consumption configuration (Section 42.6 of SAMD21 manual). Commenting out (or removing) these lines of code prevents the digital and analog pins from being set to INPUT mode.
// Setup all pins (digital and analog) in INPUT mode (default is nothing)
for (uint32_t ul = 0 ; ul < NUM_DIGITAL_PINS ; ul++ )
{
pinMode( ul, INPUT ) ;
}
After doing so, I was able to achieve a sleep current of ~60 uA, which is about as low as you're going to get with this board and the AP2112 LDO.
Cheers,
Adam
First, I tried adding the SparkFun Board Manager json file mentioned on the ESP8266 tutorial and it didn't work correctly. (this is the broken link: https://raw.githubusercontent.com/sparkfun/Arduino_Boards/esp8266/IDE_Board_Manager/package_sparkfun_index.json)
Because that didn't work, I downloaded this repo instead, switched to the ESP8266 branch, and copied the hardware directory to my Sketchbook's hardware directory. After that, I selected the ESP8266 Thing from the board menu, set up my FTDI port, copy and pasted the blink demo code, and hit compile.
It gave me this error:
Cannot run program "{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-g++" (in directory "."): error=2, No such file or directory
Thanks!
If you try importing an Arduino project into Atmel Studio while having this library installed, you will get a "length cannot be zero" error and the boards list won't load.
The Apollo_3 boards.txt (from the Apollo 3 repo) as well as the 1.0.9 boards list in package_sparkfun_index.json here list the "RedBoard" variants:
boards.txt:
$ grep "name" boards.txt
artemis.name=SparkFun Artemis Module
amap3redboard.name=SparkFun RedBoard Artemis
amap3nano.name=SparkFun RedBoard Artemis Nano
amap3atp.name=SparkFun RedBoard Artemis ATP
amap3thing.name=SparkFun Artemis Thing Plus
edge.name=SparkFun Edge
edge2.name=SparkFun Edge2
package_sparkfun_index.json:
"name": "SparkFun Apollo3 Boards",
"architecture": "apollo3",
"version": "1.0.9",
....
"boards": [
{ "name": "SparkFun Artemis Module" },
{ "name": "SparkFun RedBoard Artemis" },
{ "name": "SparkFun RedBoard Artemis ATP" },
{ "name": "SparkFun RedBoard Artemis Nano" },
{ "name": "SparkFun Artemis Thing Plus" },
{ "name": "SparkFun Edge" },
{ "name": "SparkFun Edge2" }
],
However the 1.0.9 tar file still has the old "BlackBoard" directories in variants:
$ ls variants/
SparkFun_Artemis SparkFun_Artemis_Thing_Plus SparkFun_BlackBoard_Artemis
SparkFun_BlackBoard_Artemis_ATP SparkFun_BlackBoard_Artemis_Nano
SparkFun_Edge SparkFun_Edge2
Packaging issue?
According to the comments in variant.h:
// These serial port names are intended to allow libraries and architecture-neutral
// sketches to automatically default to the correct port name for a particular type
// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
// the first hardware serial port whose RX/TX pins are not dedicated to another use.
//
// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor
However, the Sparkfun SAMD21 boards seem to have copied the Arduino Zero variant.h file, which has it's hardware serial port connected through the EDBG chip to the "programming" USB port, and this use "Serial" at the default "monitor" port
#define SERIAL_PORT_USBVIRTUAL SerialUSB
#define SERIAL_PORT_MONITOR Serial
But the Sparkfun boards all lack a USB/Serial converter of any kind, and IMO should therefore have
#define SERIAL_PORT_MONITOR SerialUSB
(Not that I've ever seen anyone use SERIAL_PORT_MONITOR, but I did just write a sketch that could use it!)
This may be intended behaviours (or I may be doing something a bit wrong), but it looks like there are some pin definitions missing from the Micromod SAMD51
Running the Example1_DisplayTest from the HyperDisplay 4DLCD-320240 Arduino Library with the samd51 in the Input And Display board, I get errors that D1, D0 and PWM0 aren't defined. It runs fine when the values are set as follows:
#define PWM_PIN PIN_A2 // Pin definitions
#define CS_PIN 0
#define DC_PIN 1
Hello,
Can you add support for SparkFun Arduino Pro 328 (5V / 16Mhz) and (3,3V / 8Mhz) boards in the "Board definitions for SparkFun-manufactured AVR, ARM, and ESP-based Arduino boards. " software ?
I use Card Type : Arduino Duemilanove or Diecimila and Processor : ATmega328P in the Arduino IDE 1.8.5 for my SparkFun Arduino Pro 328 (5V / 16Mhz) board. It works with a basic example blink DEL.
I use this for uploading : LilyPad FTDI Basic Breakout - 5V https://www.sparkfun.com/products/10275
I try to update the SparkFun boards.txt to add support for SparkFun Arduino Pro 328 with the following lines but it does NOT works (compilation failed) :
################################################################################
################################### Arduino Pro 328 ############################
################################################################################
arduinopro328.name=SparkFun Arduino Pro 328
arduinopro328.upload.tool=avrdude
arduinopro328.upload.protocol=arduino
arduinopro328.bootloader.tool=avrdude
arduinopro328.bootloader.low_fuses=0xFF
arduinopro328.bootloader.unlock_bits=0x3F
arduinopro328.bootloader.lock_bits=0x0F
arduinopro328.build.board=AVR_ARDUINOPRO
arduinopro328.build.core=arduino:arduino
arduinopro328.build.variant=arduino:standard
arduinopro328.build.mcu=atmega328p
################################# Arduino Pro 328 3.3V ################################
arduinopro328.menu.cpu.atmega328p3V3=ATmega328P (3.3V / 8 MHz)
arduinopro328.menu.cpu.atmega328p3V3.upload.maximum_size=30720
arduinopro328.menu.cpu.atmega328p3V3.upload.maximum_data_size=2048
arduinopro328.menu.cpu.atmega328p3V3.upload.speed=57600
arduinopro328.menu.cpu.atmega328p3V3.bootloader.high_fuses=0xDA
arduinopro328.menu.cpu.atmega328p3V3.bootloader.extended_fuses=0xFD
arduinopro328.menu.cpu.atmega328p3V3.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
arduinopro328.menu.cpu.atmega328p3V3.build.mcu.f_cpu=8000000L
################################# Arduino Pro 328 5V ################################
arduinopro328.menu.cpu.atmega328p5V=ATmega328P (5V / 16 MHz)
arduinopro328.menu.cpu.atmega328p5V.upload.maximum_size=30720
arduinopro328.menu.cpu.atmega328p5V.upload.maximum_data_size=2048
arduinopro328.menu.cpu.atmega328p5V.upload.speed=57600
arduinopro328.menu.cpu.atmega328p5V.bootloader.high_fuses=0xDA
arduinopro328.menu.cpu.atmega328p5V.bootloader.extended_fuses=0xFD
arduinopro328.menu.cpu.atmega328p5V.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
arduinopro328.menu.cpu.atmega328p5V.build.mcu.f_cpu=16000000L
Lines 199-203 in samd/variants/SparkFun_RedBoard_Turbo/variant.cpp now reads as follows:
// 44 - RGB LED
{ PORTA, 30, PIO_DIGITAL, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE } // 44: RGB LED
//45
{ PORTB, 3, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // 31/RX: SERCOM5/PAD[3]
The pin definition for Pin 44 needs to end in a comma, after the closing right brace, so that the new Pin 45 definition that follows it is valid. As it is now, compiling a sketch on the Redboard Turbo generates a compiler error here.
Variant.cpp file for RedBoard Turbo needs additional PinDescription entries in g_APinDescription array for FLASH_MISO (PB03) . There does not currently appear to be an entry for PORTB pin 3 (PB03) in the g_APinDescription array. I believe the entry should be as follows:
{ PORTB, 3, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }
FLASH_MOSI (PB22) and FLASH_SCK (PB23) already have entries in g_APinDescription.
In the file "Arduino_Boards/sparkfun/samd/libraries/Wire/examples/master_reader/master_reader.ino", the reading and writing with the Wire library is mixed in the "master" branch. The comment in the line with the Wire.requestFrom()
is also wrong.
See also my alternative explanation of the functions of the Wire library.
What is the source/origin of that file ? There are many "master_reader.ino" files, but I can't find this one.
The bug is only in the "master" branch. I don't know if the other versions are newer.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.