@@ -343,6 +343,36 @@ writePort(port, value, bitmask): Write an 8 bit port.
343343#define PIN_TO_SERVO (p ) (p)
344344
345345
346+ // Teensy 3.5 and 3.6
347+ // reference: https://github.com/PaulStoffregen/cores/blob/master/teensy3/pins_arduino.h
348+ #elif defined(__MK64FX512__ ) || defined(__MK66FX1M0__ )
349+ #define TOTAL_ANALOG_PINS 27 // 3.5 has 27 and 3.6 has 25
350+ #define TOTAL_PINS 70 // 43 digital + 21 analog-digital + 6 analog (64-69)
351+ #define VERSION_BLINK_PIN 13
352+ #define PIN_SERIAL1_RX 0
353+ #define PIN_SERIAL1_TX 1
354+ #define PIN_SERIAL2_RX 9
355+ #define PIN_SERIAL2_TX 10
356+ #define PIN_SERIAL3_RX 7
357+ #define PIN_SERIAL3_TX 8
358+ // The following 2 UARTs are not yet available via SerialFirmata
359+ #define PIN_SERIAL4_RX 31
360+ #define PIN_SERIAL5_TX 32
361+ #define PIN_SERIAL6_RX 34
362+ #define PIN_SERIAL6_TX 33
363+ #define IS_PIN_DIGITAL (p ) ((p) >= 0 && (p) <= 63)
364+ #define IS_PIN_ANALOG (p ) (((p) >= 14 && (p) <= 23) || ((p) >= 31 && (p) <= 39) || ((p) >= 49 && (p) <= 50) || ((p) >= 64 && (p) <= 69))
365+ #define IS_PIN_PWM (p ) digitalPinHasPWM(p)
366+ #define IS_PIN_SERVO (p ) ((p) >= 0 && (p) < MAX_SERVOS)
367+ #define IS_PIN_I2C (p ) ((p) == 18 || (p) == 19)
368+ #define IS_PIN_SERIAL (p ) (((p) > 6 && (p) < 11) || ((p) == 0 || (p) == 1))
369+ #define PIN_TO_DIGITAL (p ) (p)
370+ // A0-A9 = D14-D23; A12-A20 = D31-D39; A23-A24 = D49-D50; A10-A11 = D64-D65; A21-A22 = D66-D67; A25-A26 = D68-D69
371+ #define PIN_TO_ANALOG (p ) (((p) <= 23) ? (p) - 14 : (((p) <= 39) ? (p) - 19 : (((p) <= 50) ? (p) - 26 : (((p) <= 65) ? (p) - 55 : (((p) <= 67) ? (p) - 45 : (p) - 43)))))
372+ #define PIN_TO_PWM (p ) PIN_TO_DIGITAL(p)
373+ #define PIN_TO_SERVO (p ) (p)
374+
375+
346376// Teensy 3.0, 3.1 and 3.2
347377#elif defined(__MK20DX128__ ) || defined(__MK20DX256__ )
348378#define TOTAL_ANALOG_PINS 14
0 commit comments