Skip to content

Commit 00587f8

Browse files
committed
extend number of supported hardware serial ports to 6
Signed-off-by: Petros Angelatos <petrosagg@gmail.com>
1 parent a1a3067 commit 00587f8

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

utility/SerialFirmata.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,18 @@ Stream* SerialFirmata::getPortFromId(byte portId)
252252
case HW_SERIAL3:
253253
return &Serial3;
254254
#endif
255+
#if defined(PIN_SERIAL4_RX)
256+
case HW_SERIAL4:
257+
return &Serial4;
258+
#endif
259+
#if defined(PIN_SERIAL5_RX)
260+
case HW_SERIAL5:
261+
return &Serial5;
262+
#endif
263+
#if defined(PIN_SERIAL6_RX)
264+
case HW_SERIAL6:
265+
return &Serial6;
266+
#endif
255267
#if defined(SoftwareSerial_h)
256268
case SW_SERIAL0:
257269
if (swSerial0 != NULL) {

utility/SerialFirmata.h

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
#define HW_SERIAL1 0x01
3838
#define HW_SERIAL2 0x02
3939
#define HW_SERIAL3 0x03
40+
#define HW_SERIAL4 0x04
41+
#define HW_SERIAL5 0x05
42+
#define HW_SERIAL6 0x06
4043
// extensible up to 0x07
4144

4245
#define SW_SERIAL0 0x08
@@ -56,6 +59,12 @@
5659
#define RES_TX2 0x05
5760
#define RES_RX3 0x06
5861
#define RES_TX3 0x07
62+
#define RES_RX4 0x08
63+
#define RES_TX4 0x09
64+
#define RES_RX5 0x0a
65+
#define RES_TX5 0x0b
66+
#define RES_RX6 0x0c
67+
#define RES_TX6 0x0d
5968

6069
// Serial command bytes
6170
#define SERIAL_CONFIG 0x10
@@ -96,6 +105,18 @@ namespace {
96105
#if defined(PIN_SERIAL3_RX)
97106
if (pin == PIN_SERIAL3_RX) return RES_RX3;
98107
if (pin == PIN_SERIAL3_TX) return RES_TX3;
108+
#endif
109+
#if defined(PIN_SERIAL4_RX)
110+
if (pin == PIN_SERIAL4_RX) return RES_RX4;
111+
if (pin == PIN_SERIAL4_TX) return RES_TX4;
112+
#endif
113+
#if defined(PIN_SERIAL5_RX)
114+
if (pin == PIN_SERIAL5_RX) return RES_RX5;
115+
if (pin == PIN_SERIAL5_TX) return RES_TX5;
116+
#endif
117+
#if defined(PIN_SERIAL6_RX)
118+
if (pin == PIN_SERIAL6_RX) return RES_RX6;
119+
if (pin == PIN_SERIAL6_TX) return RES_TX6;
99120
#endif
100121
return 0;
101122
}
@@ -128,6 +149,24 @@ namespace {
128149
pins.rx = PIN_SERIAL3_RX;
129150
pins.tx = PIN_SERIAL3_TX;
130151
break;
152+
#endif
153+
#if defined(PIN_SERIAL4_RX)
154+
case HW_SERIAL4:
155+
pins.rx = PIN_SERIAL4_RX;
156+
pins.tx = PIN_SERIAL4_TX;
157+
break;
158+
#endif
159+
#if defined(PIN_SERIAL5_RX)
160+
case HW_SERIAL5:
161+
pins.rx = PIN_SERIAL5_RX;
162+
pins.tx = PIN_SERIAL5_TX;
163+
break;
164+
#endif
165+
#if defined(PIN_SERIAL6_RX)
166+
case HW_SERIAL6:
167+
pins.rx = PIN_SERIAL6_RX;
168+
pins.tx = PIN_SERIAL6_TX;
169+
break;
131170
#endif
132171
default:
133172
pins.rx = 0;

0 commit comments

Comments
 (0)