Code Monkey home page Code Monkey logo

arduino_boards's Introduction

SparkFun Arduino Boards

This repository contains support for the following SparkFun Arduino-compatible development boards.

IMPORTANT NOTE: These board files have been updated for compatibility with Arduino version 1.8 and higher. Some boards (e.g. SAMD) may not compile correctly with earlier versions of Arduino. If you need compatibility with earlier versions of Arduino, you can choose previous releases of these boards from the Boards Manager.

Apollo3 Boards

AVR Boards

SAMD (ARM Cortex-M0+) Boards

ESP8266 Boards

These boards are supported by Espressif. ๐Ÿ‘

ESP32 Boards

These boards are supported by Espressif. ๐Ÿ‘

nRF52 Boards

Installation Instructions

To add board support for our products, start Arduino and open the Preferences window (File > Preferences). Now copy and paste the following URL into the 'Additional Boards Manager URLs' input field:

https://raw.githubusercontent.com/sparkfun/Arduino_Boards/main/IDE_Board_Manager/package_sparkfun_index.json

Location of Additional Boards Manager URL input field

If there is already an URL from another manufacturer in that field, click the button at the right end of the field. This will open an editing window allowing you to paste the above URL onto a new line.

Apollo3 and AVR Installation Instructions

Open the Boards Manager window by selecting Tools > Board, scroll to the top of the board list, and select Boards Manager.

Boards Manager Menu

If you type "sparkfun" (without quotes) into the "filter your search" field, you will see options to install SparkFun's Apollo3 and AVR board files. Click in the desired box, and click the "Install" button that appears. Once installed, the boards will appear at the bottom of the board list.

Sparkfun Boards

SAMD Installation Instructions

When installing SAMD boards, you will need to first install Arduino SAMD support, then SparkFun's SAMD boards.

Open the Boards Manager window by selecting Tools > Board, scroll to the top of the board list, and select Boards Manager. Now type "samd" (without quotes) into the "filter your search" field at the top of the window. Two entries should show up, one for Arduino SAMD boards, and one for SparkFun SAMD boards. We'll install both of these, starting with Arduino SAMD boards.

Click anywhere in the "Arduino SAMD Boards" box, and click "Install". This is a large installation and will take a while.

Arduino SAMD Boards

Now click anywhere in the "SparkFun SAMD Boards" box, and click "Install". This is a small installation and will happen much faster.

SparkFun SAMD Boards

You're now ready to use SparkFun SAMD boards. They will appear at the bottom of the board list.

ESP Boards?

All support for our ESP based boards are supported within their respective Espressif's Repository.

Notes

  • Some boards such as the Arduino Pro and Pro Mini come in more than one flavor. For these you must select the correct processor in the 'Tools' menu.
  • Information on compiling and programming the bootloaders can be found in the bootloaders directory.

Have fun!
-Your friends at SparkFun

arduino_boards's People

Contributors

andyengland521 avatar awende avatar bboyho avatar brentwilkins avatar cmfrancis avatar edspark avatar eescott avatar epid avatar evenfowler avatar grudir avatar jimblom avatar johnex avatar jordanmajd avatar kisom avatar leeleahy2 avatar loricrotser avatar marshalltaylorsfe avatar miguelbalboa avatar myhd avatar npoole avatar nseidle avatar odewdney avatar per1234 avatar sandeepmistry avatar sfe-brudnerd avatar stonehippo avatar teachop avatar tedder avatar wenn0101 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arduino_boards's Issues

Variant.cpp file for RedBoard Turbo needs additional PinDescription entries in g_APinDescription array

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.

bossac fails on Windows 10

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.

Unable to install the Blynk board

"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.

Sparkfun Pro Micro Hookup Guide out of date

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?

Separate Branches Need Different Package Filenames

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.

Solutions

  • Different file names in different branches. This is the solution that I have temporarily employed, but I don't prefer it to other options. In the 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.
    both_indices
    together
  • Merge all the branches. If we don't like the idea of having several different URLs that customers need to put into their preferences then we could merge all the branches together. However in that case the customer has to download and install packages for all our boards just to get one. I don't like this idea personally.
  • Maintain package index files in different places. For example the Atto84 package could live with the Atto84 repo and the Apollo3 packag index could live inside the Apollo3 Arduino repo. They would still need to have unique names (like option 1) but (at east to me) it would feel a little more logical that they have different names.

SparkFun Qwiic Micro: Incorrect pin assignments

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

image

Cannot run program "/home/edwin/sketchbook/hardware/esp8266/tools/xtensa-lx106-elf/bin/xtensa-lx106-elf-g++" (in directory "."): error=2, No such file or directory

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

Add RedBot to this list

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.

add support for SparkFun Arduino Pro 328 (5V / 16Mhz) and (3,3V / 8Mhz)

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

SAMD21 mini: Error while burning bootloader

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)

promicro digitalPinToInterrupt wrong Interrupt

#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

Incorrect nrfutil linking for Sparkfun nRF52832 Breakout

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.

Board [***] (platform avr, package SparkFun) is unknown

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

where are the promicro drivers?

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?

Micromod SAMD51

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

3 PIDs

Why are there 3 PIDs for the MaKey MaKey?

Breaks Atmel Studio

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.

Usage of Wire library in master_reader.ino

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.

SAMD51 MicroMod variant name doesn't match directory name

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.

Apollo_3 boards packaged incorrectly

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?

bossac fails on Windows 10

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:

  • Update Sparkfun SAMD by changing line 134 of
    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.
  • Downgrade the installed Arduino Board to version 1.6.19 on your system (this one worked for me and seems to be latest still supported version)

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)

Issue in wire library for I2C Slave on SAMD51 Thing Plus

Issue

Using the Thing Plus as an I2C slave:

  • Hangs up the i2c bus and itself whenever an i2c operation occurs.
  • Does not show up on the bus at registered address.
  • Does not invoke 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.

Reproduction

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

Explanation

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.

Workaround

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

Fix

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.

USB Pin?

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

Broken Ternary Operation in lilypadusbplus pins_arduino.h

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?

sparkfunboards v1.1.4 borken

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.

Install error when loading AVR board using the ESP8266 package

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.

bossac fails on on Ubuntu 14.04 LTS

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

Issue #69 fix breaks samd/variants/SparkFun_RedBoard_Turbo/variant.cpp

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.

bossac not executable on Ubuntu 16.04 LTS

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

The ESP8266 branch is not loading the compiler correctly.

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!

SparkFun Qwiic Micro SAMD21 - High Sleep Current

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

Bundles outdated avrdude.conf

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"

Sparkfun SAMD21 boards don't #define SERIAL_PORT_MONITOR correctly.

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!)

Arduino 1.8.9/1.8.10, Openocd path needs update again

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}

SparkFun Thing Plus not showing up in platformio

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?

Cannot run program "{runtime.tools.avrdude.path}/bin/avrdude"

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

JSON Board file conflict causes one to disappear.

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.