Skip to content

Commit ae028fb

Browse files
Merge pull request firmata#337 from sandeepmistry/mkrzero
Add support for Arduino MKRZero
2 parents 0eb25f2 + 999f95f commit ae028fb

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

Boards.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,23 @@ writePort(port, value, bitmask): Write an 8 bit port.
260260
#define PIN_TO_SERVO(p) (p) // deprecated since v2.4
261261

262262

263+
// Arduino MKRZero
264+
#elif defined(ARDUINO_SAMD_MKRZERO)
265+
#define TOTAL_ANALOG_PINS 7
266+
#define TOTAL_PINS 34 // 8 digital + 3 spi + 2 i2c + 2 uart + 7 analog + 3 usb + 1 aref + 5 sd + 1 bottom pad + 1 led + 1 battery adc
267+
#define IS_PIN_DIGITAL(p) ((((p) >= 0 && (p) <= 21) || (p) == 32) && !IS_PIN_SERIAL(p))
268+
#define IS_PIN_ANALOG(p) (((p) >= 15 && (p) < 15 + TOTAL_ANALOG_PINS) || (p) == 33)
269+
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
270+
#define IS_PIN_SERVO(p) (IS_PIN_DIGITAL(p) && (p) < MAX_SERVOS) // deprecated since v2.4
271+
#define IS_PIN_I2C(p) ((p) == 11 || (p) == 12) // SDA = 11, SCL = 12
272+
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
273+
#define IS_PIN_SERIAL(p) ((p) == PIN_SERIAL1_RX || (p) == PIN_SERIAL1_TX) //defined in variant.h RX = 13, TX = 14
274+
#define PIN_TO_DIGITAL(p) (p)
275+
#define PIN_TO_ANALOG(p) ((p) - 15)
276+
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
277+
#define PIN_TO_SERVO(p) (p) // deprecated since v2.4
278+
279+
263280
// Arduino Zero
264281
// Note this will work with an Arduino Zero Pro, but not with an Arduino M0 Pro
265282
// Arduino M0 Pro does not properly map pins to the board labeled pin numbers

0 commit comments

Comments
 (0)