Skip to content

Commit 061b38f

Browse files
Add RTS/CTS to Arduino Nano Connect Serial2(NINA) (#525)
Fixes #524
1 parent 9971bda commit 061b38f

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ See https://arduino-pico.readthedocs.io/en/latest/ along with the examples for m
1818
* Adafruit QTPy RP2040
1919
* Adafruit STEMMA Friend RP2040
2020
* Adafruit Trinkey RP2040 QT
21-
* Arduino Nano RP2040 Connect (preliminary)
21+
* Arduino Nano RP2040 Connect
2222
* Cytron Maker Pi RP2040
2323
* Cytron Maker Nano RP2040
2424
* DeRuiLab FlyBoard2040 Core

cores/rp2040/SerialUART.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,12 @@ bool SerialUART::setFIFOSize(size_t size) {
114114
return true;
115115
}
116116

117-
SerialUART::SerialUART(uart_inst_t *uart, pin_size_t tx, pin_size_t rx) {
117+
SerialUART::SerialUART(uart_inst_t *uart, pin_size_t tx, pin_size_t rx, pin_size_t rts, pin_size_t cts) {
118118
_uart = uart;
119119
_tx = tx;
120120
_rx = rx;
121-
_rts = UART_PIN_NOT_DEFINED;
122-
_cts = UART_PIN_NOT_DEFINED;
121+
_rts = rts;
122+
_cts = cts;
123123
mutex_init(&_mutex);
124124
mutex_init(&_fifoMutex);
125125
}
@@ -339,8 +339,17 @@ SerialUART::operator bool() {
339339
return _running;
340340
}
341341

342+
#if defined(PIN_SERIAL1_RTS)
343+
SerialUART Serial1(uart0, PIN_SERIAL1_TX, PIN_SERIAL1_RX, PIN_SERIAL1_RTS, PIN_SERIAL1_CTS);
344+
#else
342345
SerialUART Serial1(uart0, PIN_SERIAL1_TX, PIN_SERIAL1_RX);
346+
#endif
347+
348+
#if defined(PIN_SERIAL2_RTS)
349+
SerialUART Serial2(uart1, PIN_SERIAL2_TX, PIN_SERIAL2_RX, PIN_SERIAL2_RTS, PIN_SERIAL2_CTS);
350+
#else
343351
SerialUART Serial2(uart1, PIN_SERIAL2_TX, PIN_SERIAL2_RX);
352+
#endif
344353

345354
void arduino::serialEvent1Run(void) {
346355
if (serialEvent1 && Serial1.available()) {

cores/rp2040/SerialUART.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ extern "C" typedef struct uart_inst uart_inst_t;
3131
#define UART_PIN_NOT_DEFINED (255u)
3232
class SerialUART : public HardwareSerial {
3333
public:
34-
SerialUART(uart_inst_t *uart, pin_size_t tx, pin_size_t rx);
34+
SerialUART(uart_inst_t *uart, pin_size_t tx, pin_size_t rx, pin_size_t rts = UART_PIN_NOT_DEFINED, pin_size_t cts = UART_PIN_NOT_DEFINED);
3535

3636
// Select the pinout. Call before .begin()
3737
bool setRX(pin_size_t pin);

variants/arduino_nano_connect/pins_arduino.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ static const uint8_t A3 = (29u);
4747
#define PIN_SERIAL1_TX (D1)
4848
#define PIN_SERIAL1_RX (D0)
4949

50-
#define PIN_SERIAL2_TX (D25)
51-
#define PIN_SERIAL2_RX (D26)
50+
#define PIN_SERIAL2_TX (D25)
51+
#define PIN_SERIAL2_RX (D26)
52+
#define PIN_SERIAL2_CTS (D27)
53+
#define PIN_SERIAL2_RTS (D28)
5254

5355
// SPI
5456
#define PIN_SPI0_MISO (D12)

0 commit comments

Comments
 (0)