@@ -200,12 +200,19 @@ writePort(port, value, bitmask): Write an 8 bit port.
200200#define TOTAL_ANALOG_PINS 16
201201#define TOTAL_PINS 70 // 54 digital + 16 analog
202202#define VERSION_BLINK_PIN 13
203+ #define PIN_SERIAL1_RX 19
204+ #define PIN_SERIAL1_TX 18
205+ #define PIN_SERIAL2_RX 17
206+ #define PIN_SERIAL2_TX 16
207+ #define PIN_SERIAL3_RX 15
208+ #define PIN_SERIAL3_TX 14
203209#define IS_PIN_DIGITAL (p ) ((p) >= 2 && (p) < TOTAL_PINS)
204210#define IS_PIN_ANALOG (p ) ((p) >= 54 && (p) < TOTAL_PINS)
205211#define IS_PIN_PWM (p ) digitalPinHasPWM(p)
206212#define IS_PIN_SERVO (p ) ((p) >= 2 && (p) - 2 < MAX_SERVOS)
207213#define IS_PIN_I2C (p ) ((p) == 20 || (p) == 21)
208214#define IS_PIN_SPI (p ) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
215+ #define IS_PIN_SERIAL (p ) ((p) > 13 && (p) < 20)
209216#define PIN_TO_DIGITAL (p ) (p)
210217#define PIN_TO_ANALOG (p ) ((p) - 54)
211218#define PIN_TO_PWM (p ) PIN_TO_DIGITAL(p)
@@ -217,11 +224,18 @@ writePort(port, value, bitmask): Write an 8 bit port.
217224#define TOTAL_ANALOG_PINS 12
218225#define TOTAL_PINS 66 // 54 digital + 12 analog
219226#define VERSION_BLINK_PIN 13
227+ #define PIN_SERIAL1_RX 19
228+ #define PIN_SERIAL1_TX 18
229+ #define PIN_SERIAL2_RX 17
230+ #define PIN_SERIAL2_TX 16
231+ #define PIN_SERIAL3_RX 15
232+ #define PIN_SERIAL3_TX 14
220233#define IS_PIN_DIGITAL (p ) ((p) >= 2 && (p) < TOTAL_PINS)
221234#define IS_PIN_ANALOG (p ) ((p) >= 54 && (p) < TOTAL_PINS)
222235#define IS_PIN_PWM (p ) digitalPinHasPWM(p)
223236#define IS_PIN_SERVO (p ) ((p) >= 2 && (p) - 2 < MAX_SERVOS)
224237#define IS_PIN_I2C (p ) ((p) == 20 || (p) == 21) // 70 71
238+ #define IS_PIN_SERIAL (p ) ((p) > 13 && (p) < 20)
225239#define PIN_TO_DIGITAL (p ) (p)
226240#define PIN_TO_ANALOG (p ) ((p) - 54)
227241#define PIN_TO_PWM (p ) PIN_TO_DIGITAL(p)
@@ -233,12 +247,15 @@ writePort(port, value, bitmask): Write an 8 bit port.
233247#define TOTAL_ANALOG_PINS 0
234248#define TOTAL_PINS 21 // 21 digital + no analog
235249#define VERSION_BLINK_PIN 6
250+ #define PIN_SERIAL1_RX 2
251+ #define PIN_SERIAL1_TX 3
236252#define IS_PIN_DIGITAL (p ) ((p) >= 0 && (p) < TOTAL_PINS)
237253#define IS_PIN_ANALOG (p ) (0)
238254#define IS_PIN_PWM (p ) digitalPinHasPWM(p)
239255#define IS_PIN_SERVO (p ) ((p) >= 0 && (p) < MAX_SERVOS)
240256#define IS_PIN_I2C (p ) (0)
241257#define IS_PIN_SPI (p ) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
258+ #define IS_PIN_SERIAL (p ) ((p) == 2 || (p) == 3)
242259#define PIN_TO_DIGITAL (p ) (p)
243260#define PIN_TO_ANALOG (p ) (0)
244261#define PIN_TO_PWM (p ) PIN_TO_DIGITAL(p)
@@ -250,12 +267,15 @@ writePort(port, value, bitmask): Write an 8 bit port.
250267#define TOTAL_ANALOG_PINS 12
251268#define TOTAL_PINS 25 // 11 digital + 12 analog
252269#define VERSION_BLINK_PIN 11
270+ #define PIN_SERIAL1_RX 7
271+ #define PIN_SERIAL1_TX 8
253272#define IS_PIN_DIGITAL (p ) ((p) >= 0 && (p) < TOTAL_PINS)
254273#define IS_PIN_ANALOG (p ) ((p) >= 11 && (p) <= 22)
255274#define IS_PIN_PWM (p ) digitalPinHasPWM(p)
256275#define IS_PIN_SERVO (p ) ((p) >= 0 && (p) < MAX_SERVOS)
257276#define IS_PIN_I2C (p ) ((p) == 5 || (p) == 6)
258277#define IS_PIN_SPI (p ) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
278+ #define IS_PIN_SERIAL (p ) ((p) == 7 || (p) == 8)
259279#define PIN_TO_DIGITAL (p ) (p)
260280#define PIN_TO_ANALOG (p ) (((p)<22)?21-(p):11)
261281#define PIN_TO_PWM (p ) PIN_TO_DIGITAL(p)
@@ -267,11 +287,18 @@ writePort(port, value, bitmask): Write an 8 bit port.
267287#define TOTAL_ANALOG_PINS 14
268288#define TOTAL_PINS 38 // 24 digital + 10 analog-digital + 4 analog
269289#define VERSION_BLINK_PIN 13
290+ #define PIN_SERIAL1_RX 0
291+ #define PIN_SERIAL1_TX 1
292+ #define PIN_SERIAL2_RX 9
293+ #define PIN_SERIAL2_TX 10
294+ #define PIN_SERIAL3_RX 7
295+ #define PIN_SERIAL3_TX 8
270296#define IS_PIN_DIGITAL (p ) ((p) >= 0 && (p) <= 34)
271297#define IS_PIN_ANALOG (p ) (((p) >= 14 && (p) <= 23) || ((p) >= 34 && (p) <= 38))
272298#define IS_PIN_PWM (p ) digitalPinHasPWM(p)
273299#define IS_PIN_SERVO (p ) ((p) >= 0 && (p) < MAX_SERVOS)
274300#define IS_PIN_I2C (p ) ((p) == 18 || (p) == 19)
301+ #define IS_PIN_SERIAL (p ) (((p) > 6 && (p) < 11) || ((p) == 0 || (p) == 1))
275302#define PIN_TO_DIGITAL (p ) (p)
276303#define PIN_TO_ANALOG (p ) (((p)<=23)?(p)-14:(p)-24)
277304#define PIN_TO_PWM (p ) PIN_TO_DIGITAL(p)
@@ -283,12 +310,15 @@ writePort(port, value, bitmask): Write an 8 bit port.
283310#define TOTAL_ANALOG_PINS 8
284311#define TOTAL_PINS 46 // 38 digital + 8 analog
285312#define VERSION_BLINK_PIN 6
313+ #define PIN_SERIAL1_RX 2
314+ #define PIN_SERIAL1_TX 3
286315#define IS_PIN_DIGITAL (p ) ((p) >= 0 && (p) < TOTAL_PINS)
287316#define IS_PIN_ANALOG (p ) ((p) >= 38 && (p) < TOTAL_PINS)
288317#define IS_PIN_PWM (p ) digitalPinHasPWM(p)
289318#define IS_PIN_SERVO (p ) ((p) >= 0 && (p) < MAX_SERVOS)
290319#define IS_PIN_I2C (p ) ((p) == 0 || (p) == 1)
291320#define IS_PIN_SPI (p ) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
321+ #define IS_PIN_SERIAL (p ) ((p) == 2 || (p) == 3)
292322#define PIN_TO_DIGITAL (p ) (p)
293323#define PIN_TO_ANALOG (p ) ((p) - 38)
294324#define PIN_TO_PWM (p ) PIN_TO_DIGITAL(p)
@@ -300,28 +330,35 @@ writePort(port, value, bitmask): Write an 8 bit port.
300330#define TOTAL_ANALOG_PINS 12
301331#define TOTAL_PINS 30 // 14 digital + 12 analog + 4 SPI (D14-D17 on ISP header)
302332#define VERSION_BLINK_PIN 13
333+ #define PIN_SERIAL1_RX 0
334+ #define PIN_SERIAL1_TX 1
303335#define IS_PIN_DIGITAL (p ) ((p) >= 0 && (p) < TOTAL_PINS)
304336#define IS_PIN_ANALOG (p ) ((p) >= 18 && (p) < TOTAL_PINS)
305337#define IS_PIN_PWM (p ) ((p) == 3 || (p) == 5 || (p) == 6 || (p) == 9 || (p) == 10 || (p) == 11 || (p) == 13)
306338#define IS_PIN_SERVO (p ) ((p) >= 0 && (p) < MAX_SERVOS)
307339#define IS_PIN_I2C (p ) ((p) == 2 || (p) == 3)
308340#define IS_PIN_SPI (p ) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
341+ #define IS_PIN_SERIAL (p ) ((p) == 0 || (p) == 1)
309342#define PIN_TO_DIGITAL (p ) (p)
310343#define PIN_TO_ANALOG (p ) (p) - 18
311344#define PIN_TO_PWM (p ) PIN_TO_DIGITAL(p)
312345#define PIN_TO_SERVO (p ) (p)
313346
347+
314348// Intel Galileo Board
315349#elif defined(ARDUINO_LINUX )
316350#define TOTAL_ANALOG_PINS 6
317351#define TOTAL_PINS 20 // 14 digital + 6 analog
318352#define VERSION_BLINK_PIN 13
353+ #define PIN_SERIAL1_RX 0
354+ #define PIN_SERIAL1_TX 1
319355#define IS_PIN_DIGITAL (p ) ((p) >= 2 && (p) <= 19)
320356#define IS_PIN_ANALOG (p ) ((p) >= 14 && (p) <= 19)
321357#define IS_PIN_PWM (p ) digitalPinHasPWM(p)
322358#define IS_PIN_SERVO (p ) (IS_PIN_DIGITAL(p) && (p) - 2 < MAX_SERVOS)
323359#define IS_PIN_I2C (p ) ((p) == SDA || (p) == SCL)
324360#define IS_PIN_SPI (p ) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
361+ #define IS_PIN_SERIAL (p ) ((p) == 0 || (p) == 1)
325362#define PIN_TO_DIGITAL (p ) (p)
326363#define PIN_TO_ANALOG (p ) ((p) - 14)
327364#define PIN_TO_PWM (p ) PIN_TO_DIGITAL(p)
@@ -490,7 +527,7 @@ writePort(port, value, bitmask): Write an 8 bit port.
490527// Pic32 chipKIT MAX32
491528#elif defined(_BOARD_MEGA_ ) && defined(__PIC32 ) // NOTE: no _BOARD_MAX32_ to use
492529#define TOTAL_ANALOG_PINS NUM_ANALOG_PINS // 16
493- #define TOTAL_PINS NUM_DIGITAL_PINS // 87
530+ #define TOTAL_PINS NUM_DIGITAL_PINS // 87
494531#define MAX_SERVOS NUM_DIGITAL_PINS
495532#define VERSION_BLINK_PIN PIN_LED1
496533#define IS_PIN_DIGITAL (p ) ((p) >= 2)
@@ -534,6 +571,10 @@ writePort(port, value, bitmask): Write an 8 bit port.
534571#define IS_PIN_SPI (p ) 0
535572#endif
536573
574+ #ifndef IS_PIN_SERIAL
575+ #define IS_PIN_SERIAL (p ) 0
576+ #endif
577+
537578/*==============================================================================
538579 * readPort() - Read an 8 bit port
539580 *============================================================================*/
0 commit comments