UNO Q: Serial as Monitor alias?

Release 0.4.0 - Serial as Monitor alias support · arduino-libraries/Arduino_RouterBridge

@ptillisch and all - Not sure the best place to ask this?

I have been noticing several commits in a few different places like Arduino_RouterBridge
with titles, like the release title for 0.4.0?

Looks like RouterBridge and the like won't be packaged with it soon?
libraries: remove Arduino_RouterBridge and Arduino_RPClite by pennam · Pull Request #396 · arduino/ArduinoCore-zephyr

There are also some draft ones like:
examples: revamp & improvements by eigen-value · Pull Request #58 · arduino-libraries/Arduino_RouterBridge

So my questions are:

  1. Has anything changed yet with Serial versus Monitor? or only the ground work has been been put in and more to come?

From the examples: like in the draft:
Arduino_RouterBridge/examples/test_serial_alias_monitor/test_serial_alias_monitor.ino at examples_revamp · arduino-libraries/Arduino_RouterBridge
Shows we still (or will still) need to still include the header file.

  1. What happens to existing sketches/Apps that use Serial to talk to pins 0,1? I assume
    we then use Serial1? I assume all of the existing code that currently uses Serial1 to talk to the other processor changes to Serial2?

Thanks
Kurt

1. In the datasheet of STM32U585 MCU, I have found the following names among many other serial port related names:

(1) USART1
(2) USART2
(3) USART3

(4) UART4
(5) UART5

(6) LPUART1
(7) LPUART2

2. For router bridge, they have used LPUART1 (Fig-2).

3. USART1 is connected with DPin-0 and DPin-1 of the header of UNO Q. To conform with UNO R3 style, the corresponding object name is: Serial.


Figure-1:

4.

(1) Serial link is the traditional UNO R3 style communication link through this path:
USART1 ---> Heard Pins (0, 1) ----> TTL <----> USB ----> USB-A -----> Virtual COM Port ----> Serial Monitor.

(2) Monitor link is the new communication link through this path:
MCU ---> Router Bridge ----> MPU ----> USB-C ---> USB-A ---> virtual COM Port ----> Console Pythone/Console Serial Monitor


Figure-2:

Thanks,

I have all of the pins broken out in my Excel document:

Arduino Pin usage Port AF0 AF1 AF2 AF3 AF4 AF5 AF6 AF7 AF8 AF9 AF10 AF11 AF12 AF13 AF14 AF15
0 D0 PB7 - LPTIM1_IN2 TIM4_CH2 TIM8_BKIN I2C1_SDA I2C4_SDA MDF1_CKI5 USART1_RX UART4_CTS TSC_G2_IO4 DCMI_VSYNC/
PSSI_RDY
- FMC_NL - TIM17_CH1N EVENTOUT
1 D1 PB6 - LPTIM1_ETR TIM4_CH1 TIM8_BKIN2 I2C1_SCL I2C4_SCL MDF1_SDI5 USART1_TX - TSC_G2_IO3 DCMI_D5/PSSI_D5 - - SAI1_FS_B TIM16_CH1N EVENTOUT
2 D2 PB3 JTDO/
TRACESWO
TIM2_CH2 LPTIM1_CH1 ADF1_CCK0 I2C1_SDA SPI1_SCK SPI3_SCK USART1_
RTS/USART1_
DE
- - CRS_SYNC LPGPIO1_P11 SDMMC2_D2 SAI1_SCK_B - EVENTOUT
3 D3 PB0 - TIM1_CH2N TIM3_CH3 TIM8_CH2N LPTIM3_CH1 SPI1_NSS - USART3_CK - - OCTOSPIM_P1_IO1 LPGPIO1_P9 COMP1_OUT AUDIOCLK - EVENTOUT
4 D4 PA12 - TIM1_ETR - - - SPI1_MOSI OCTOSPIM_
P2_NCS
USART1_
RTS/USART1_
DE
- FDCAN1_TX - - - - - EVENTOUT
5 D5 PA11 - TIM1_CH4 TIM1_BKIN2 - - SPI1_MISO - USART1_CTS - FDCAN1_RX - - - - - EVENTOUT
6 D6 PB1 - TIM1_CH3N TIM3_CH4 TIM8_CH3N LPTIM3_CH2 - MDF1_SDI0 USART3_
RTS/USART3_
DE
LPUART1_
RTS/LPUART1_
DE
- OCTOSPIM_P1_IO0 LPGPIO1_P3 - - LPTIM2_IN1 EVENTOUT
7 D7 PB2 - LPTIM1_CH1 - TIM8_CH4N I2C3_SMBA SPI1_RDY MDF1_CKI0 - - - OCTOSPIM_
P1_DQS
UCPD1_
FRSTX1
- - - EVENTOUT
8 D8 PB4 NJTRST LPTIM1_CH2 TIM3_CH1 ADF1_SDI0 I2C3_SDA SPI1_MISO SPI3_MISO USART1_CTS UART5_RTS/
UART5_DE
TSC_G2_IO1 DCMI_D12/
PSSI_D12
LPGPIO1_P12 SDMMC2_D3 SAI1_MCLK_B TIM17_BKIN EVENTOUT
9 D9 PB8 - - TIM4_CH3 SAI1_CK1 I2C1_SCL MDF1_CCK0 SPI3_RDY - SDMMC1_CKIN FDCAN1_RX DCMI_D6/PSSI_D6 SDMMC2_D4 SDMMC1_D4 SAI1_MCLK_A TIM16_CH1 EVENTOUT
10 D10 PB9 - IR_OUT TIM4_CH4 SAI1_D2 I2C1_SDA SPI2_NSS - - SDMMC1_CDIR FDCAN1_TX DCMI_D7/PSSI_D7 SDMMC2_D5 SDMMC1_D5 SAI1_FS_A TIM17_CH1 EVENTOUT
11 D11 PB15 RTC_REFIN TIM1_CH3N LPTIM2_IN2 TIM8_CH3N - SPI2_MOSI MDF1_CKI2 - - - - FMC_NBL1 SDMMC2_D1 SAI2_SD_A TIM15_CH2 EVENTOUT
12 D12 PB14 - TIM1_CH2N LPTIM3_ETR TIM8_CH2N I2C2_SDA SPI2_MISO MDF1_SDI2 USART3_
RTS/USART3_
DE
- TSC_G1_IO3 - - SDMMC2_D0 SAI2_MCLK_A TIM15_CH1 EVENTOUT
13 D13 PB13 - TIM1_CH1N LPTIM3_IN1 - I2C2_SCL SPI2_SCK MDF1_CKI1 USART3_CTS LPUART1_CTS TSC_G1_IO2 - - - SAI2_SCK_A TIM15_CH1N EVENTOUT
14 A0 PA4 - - - OCTOSPIM_P1
_NCS
- SPI1_NSS SPI3_NSS USART2_CK - - DCMI_HSYNC/
PSSI_DE
- - SAI1_FS_B LPTIM2_CH1 EVENTOUT
15 A1 PA5 CSLEEP TIM2_CH1 TIM2_ETR TIM8_CH1N PSSI_D14 SPI1_SCK - USART3_RX - - - - - - LPTIM2_ETR EVENTOUT
16 A2 PA6 CDSTOP TIM1_BKIN TIM3_CH1 TIM8_BKIN DCMI_PIXCL
K/PSSI_
PDCK
SPI1_MISO - USART3_CTS LPUART1_CTS - OCTOSPIM_P1_IO3 LPGPIO1_P2 - - TIM16_CH1 EVENTOUT
17 A3 PA7 SRDSTOP TIM1_CH1N TIM3_CH2 TIM8_CH1N I2C3_SCL SPI1_MOSI - USART3_TX - - OCTOSPIM_P1_IO2 - - LPTIM2_CH2 TIM17_CH1 EVENTOUT
18 A4 PC1 TRACED0 LPTIM1_CH1 - SPI2_MOSI I2C3_SDA - MDF1_CKI4 - LPUART1_TX - OCTOSPIM_P1_IO4 - SDMMC2_CK SAI1_SD_A - EVENTOUT
19 A5 PC0 - LPTIM1_IN1 - OCTOSPIM_
P1_IO7
I2C3_SCL SPI2_RDY MDF1_SDI4 - LPUART1_RX - - - SDMMC1_D5 SAI2_FS_A LPTIM2_IN1 EVENTOUT
20 D20/SDA PB11 - TIM2_CH4 - I2C4_SDA I2C2_SDA SPI2_RDY - USART3_RX LPUART1_TX - OCTOSPIM_
P1_NCS
- COMP2_OUT - - EVENTOUT
21 D21/SCL PB10 - TIM2_CH3 LPTIM3_CH1 I2C4_SCL I2C2_SCL SPI2_SCK - USART3_TX LPUART1_RX TSC_SYNC OCTOSPIM_P1_CLK LPGPIO1_P4 COMP1_OUT SAI1_SCK_A - EVENTOUT
22 D22/JSPI PC2 - LPTIM1_IN2 - - - SPI2_MISO MDF1_CCK1 - - - OCTOSPIM_P1_IO5 LPGPIO1_P5 - - - EVENTOUT
23 D23/JSPI PC3 - LPTIM1_ETR LPTIM3_CH1 SAI1_D1 - SPI2_MOSI - - - - OCTOSPIM_P1_IO6 - - SAI1_SD_A LPTIM2_ETR EVENTOUT
24 D24/JSPI PD1 - - - - - SPI2_SCK - - - FDCAN1_TX - - FMC_D3/FMC_
AD3
- - EVENTOUT
25 JMISC PC6 CSLEEP - TIM3_CH1 TIM8_CH1 - - MDF1_CKI3 - SDMMC1_
D0DIR
TSC_G4_IO1 DCMI_D0/PSSI_D0 SDMMC2_D6 SDMMC1_D6 SAI2_MCLK_A - EVENTOUT
26 JMISC PD2 TRACED2 - TIM3_ETR - - - - USART3_
RTS/USART3_
DE
UART5_RX TSC_SYNC DCMI_D11/
PSSI_D11
LPGPIO1_P7 SDMMC1_CMD LPTIM4_ETR - EVENTOUT
27 JMISC PC7 CDSTOP - TIM3_CH2 TIM8_CH2 - - MDF1_SDI3 - SDMMC1_
D123DIR
TSC_G4_IO2 DCMI_D1/PSSI_D1 SDMMC2_D7 SDMMC1_D7 SAI2_MCLK_B LPTIM2_CH2 EVENTOUT
28 JMISC PE2 TRACECLK - TIM3_ETR SAI1_CK1 - - - - - TSC_G7_IO1 - LPGPIO1_P14 FMC_A23 SAI1_MCLK_A - EVENTOUT
29 JMISC PC8 SRDSTOP - TIM3_CH3 TIM8_CH3 - - - - - TSC_G4_IO3 DCMI_D2/PSSI_D2 - SDMMC1_D0 - LPTIM3_CH1 EVENTOUT
30 JMISC PE3 TRACED0 - TIM3_CH1 OCTOSPIM_
P1_DQS
- - - - - TSC_G7_IO2 - LPGPIO1_P15 FMC_A19 SAI1_SD_B - EVENTOUT
31 JMISC PC9 TRACED0 TIM8_BKIN2 TIM3_CH4 TIM8_CH4 DCMI_D3/
PSSI_D3
- - - - TSC_G4_IO4 OTG_FS_NOE - SDMMC1_D1 - LPTIM3_CH2 EVENTOUT
32 JMISC PE5 TRACED2 - TIM3_CH3 SAI1_CK2 - - MDF1_CKI3 - - TSC_G7_IO4 DCMI_D6/PSSI_D6 - FMC_A21 SAI1_SCK_A - EVENTOUT
33 JMISC PE4 TRACED1 - TIM3_CH2 SAI1_D2 - - MDF1_SDI3 - - TSC_G7_IO3 DCMI_D4/PSSI_D4 - FMC_A20 SAI1_FS_A - EVENTOUT
34 JMISC PE6 TRACED3 - TIM3_CH4 SAI1_D1 - - - - - - DCMI_D7/PSSI_D7 - FMC_A22 SAI1_SD_A - EVENTOUT
35 JMISC PI4 - - - TIM8_BKIN - SPI2_RDY - - - - DCMI_D5/PSSI_D5 - - - - EVENTOUT
36 JMISC PE7 - TIM1_ETR - - - - MDF1_SDI2 - - - - - FMC_D4/FMC_
AD4
SAI1_SD_B - EVENTOUT
37 JMISC PI6 - - - TIM8_CH2 - OCTOSPIM_
P2_CLK
- - - - DCMI_D6/PSSI_D6 - - - - EVENTOUT
38 JMISC PE8 - TIM1_CH1N - - - - MDF1_CKI2 - - - - - FMC_D5/FMC_
AD5
SAI1_SCK_B - EVENTOUT
39 JMISC PI7 - - - TIM8_CH3 - OCTOSPIM_
P2_NCLK
- - - - DCMI_D7/PSSI_D7 - - - - EVENTOUT
40 JMISC PF14 - - - - I2C4_SCL - - - - TSC_G8_IO1 - - FMC_A8 - - EVENTOUT
41 JMISC PD9 - - LPTIM2_IN2 - - - - USART3_RX - - DCMI_PIXCLK/
PSSI_PDCK
- FMC_D14/FMC
_AD14
SAI2_MCLK_A LPTIM3_IN1 EVENTOUT
42 JMISC PF15 - - - - I2C4_SDA - - - - TSC_G8_IO2 - - FMC_A9 - - EVENTOUT
43 JMISC PI5 - - - TIM8_CH1 - OCTOSPIM_
P2_NCS
- - - - DCMI_VSYNC/
PSSI_RDY
- - - - EVENTOUT
44 JMISC PA3 - TIM2_CH4 TIM5_CH4 SAI1_CK1 - - - USART2_RX LPUART1_RX - OCTOSPIM_P1_CLK LPGPIO1_P1 - SAI1_MCLK_A TIM15_CH2 EVENTOUT
45 JMISC PD8 - - - - - - - USART3_TX - - DCMI_HSYNC/
PSSI_DE
- FMC_D13/FMC
_AD13
- - EVENTOUT
46 JMISC PA0 - TIM2_CH1 TIM5_CH1 TIM8_ETR - - SPI3_RDY USART2_CTS UART4_TX - OCTOSPIM_
P2_NCS
- SDMMC2_CMD AUDIOCLK TIM2_ETR EVENTOUT
47 JMISC PA8 MCO TIM1_CH1 - SAI1_CK2 - SPI1_RDY - USART1_CK - - OTG_FS_SOF - TRACECLK SAI1_SCK_A LPTIM2_CH1 EVENTOUT
48 JMISC PA1 LPTIM1_CH2 TIM2_CH2 TIM5_CH2 - I2C1_SMBA SPI1_SCK - USART2_
RTS/USART2_
DE
UART4_RX - OCTOSPIM_
P1_DQS
LPGPIO1_P0 - - TIM15_CH1N EVENTOUT
49 JMISC PA10 CRS_SYNC TIM1_CH3 LPTIM2_IN2 SAI1_D1 - DCMI_D1/PSSI_D1 - USART1_RX - - OTG_FS_ID - - SAI1_SD_A TIM17_BKIN EVENTOUT
50 LED3_R PH10 - - TIM5_CH1 - - OCTOSPIM_P2_IO5 - - - - DCMI_D1/PSSI_D1 - - - - EVENTOUT
51 LED3_G PH11 - - TIM5_CH2 - - OCTOSPIM_P2_IO6 - - - - DCMI_D2/PSSI_D2 - - - - EVENTOUT
52 LED3_B PH12 - - TIM5_CH3 TIM8_CH4N - OCTOSPIM_P2_IO7 - - - - DCMI_D3/PSSI_D3 - - - - EVENTOUT
53 LED4_R PH13 - - - TIM8_CH1N - - - - - FDCAN1_TX - - - - - EVENTOUT
54 LED4_G PH14 - - - TIM8_CH2N - - - - - FDCAN1_RX DCMI_D4/PSSI_D4 - - - - EVENTOUT
55 LED4_B PH15 - - - TIM8_CH3N - OCTOSPIM_P2_IO6 - - - - DCMI_D11/
PSSI_D11
- - - - EVENTOUT
56 LED matrix PF0 - - - - I2C2_SDA OCTOSPIM_P2_IO0 - - - - - - FMC_A0 - - EVENTOUT
57 LED matrix PF1 - - - - I2C2_SCL OCTOSPIM_P2_IO1 - - - - - - FMC_A1 - - EVENTOUT
58 LED matrix PF2 - - LPTIM3_CH2 - I2C2_SMBA OCTOSPIM_P2_IO2 - - - - - - FMC_A2 - - EVENTOUT
59 LED matrix PF3 - - LPTIM3_IN1 - - OCTOSPIM_P2_IO3 - - - - - - FMC_A3 - - EVENTOUT
60 LED matrix PF4 - - LPTIM3_ETR - - OCTOSPIM_
P2_CLK
- - - - - - FMC_A4 - - EVENTOUT
61 LED matrix PF5 - - LPTIM3_CH1 - - OCTOSPIM_
P2_NCLK
- - - - - - FMC_A5 - - EVENTOUT
62 LED matrix PF6 - TIM5_ETR TIM5_CH1 - DCMI_D12/P
SSI_D12
OCTOSPIM_
P2_NCS
- - - - OCTOSPIM_P1_IO3 - - SAI1_SD_B - EVENTOUT
63 LED matrix PF7 - - TIM5_CH2 - - - - - - FDCAN1_RX OCTOSPIM_P1_IO2 - - SAI1_MCLK_B - EVENTOUT
64 LED matrix PF8 - - TIM5_CH3 - PSSI_D14 - - - - FDCAN1_TX OCTOSPIM_P1_IO0 - - SAI1_SCK_B - EVENTOUT
65 LED matrix PF9 - - TIM5_CH4 - PSSI_D15 - - - - - OCTOSPIM_P1_IO1 - - SAI1_FS_B TIM15_CH1 EVENTOUT
66 LED matrix PF10 - - - OCTOSPIM_
P1_CLK
PSSI_D15 - MDF1_CCK1 - - - DCMI_D11/
PSSI_D11
- - SAI1_D3 TIM15_CH2 EVENTOUT
67 Internal SPI RDY PG13 - - - - I2C1_SDA - SPI3_RDY USART1_CK - - - - FMC_A24 - - EVENTOUT
68 Analog Switch VREF PA2 - TIM2_CH3 TIM5_CH3 - - SPI1_RDY - USART2_TX LPUART1_TX - OCTOSPIM_
P1_NCS
UCPD1_
FRSTX1
- - TIM15_CH1 EVENTOUT
69 BOOT0 PH3 - - - - - - - - - - - - - - - EVENTOUT
PA13 JTMS/SWDIO IR_OUT - - - - - - - - OTG_FS_NOE - - SAI1_SD_B - EVENTOUT
PA14 JTCK/SWCLK LPTIM1_CH1 - - I2C1_SMBA I2C4_SMBA - - - - OTG_FS_SOF - - SAI1_FS_B - EVENTOUT
PA15 JTDI TIM2_CH1 TIM2_ETR USART2_RX - SPI1_NSS SPI3_NSS USART3_
RTS/USART3_
DE
UART4_RTS/
UART4_DE
- - - - SAI2_FS_B - EVENTOUT
PA9 - TIM1_CH2 - SPI2_SCK - DCMI_D0/PSSI_D0 - USART1_TX - - - - - SAI1_FS_A TIM15_BKIN EVENTOUT
PB12 - TIM1_BKIN - - I2C2_SMBA SPI2_NSS MDF1_SDI1 USART3_CK LPUART1_RTS/
LPUART1_DE
TSC_G1_IO1 OCTOSPIM_
P1_NCLK
- - SAI2_FS_A TIM15_BKIN EVENTOUT
PB5 - LPTIM1_IN1 TIM3_CH2 OCTOSPIM_
P1_NCLK
I2C1_SMBA SPI1_MOSI SPI3_MOSI USART1_CK UART5_CTS TSC_G2_IO2 DCMI_D10/
PSSI_D10
- COMP2_OUT SAI1_SD_B TIM16_BKIN EVENTOUT
PC10 TRACED1 - LPTIM3_ETR ADF1_CCK1 - - SPI3_SCK USART3_TX UART4_TX TSC_G3_IO2 DCMI_D8/PSSI_D8 LPGPIO1_P8 SDMMC1_D2 SAI2_SCK_B - EVENTOUT
PC11 - - LPTIM3_IN1 ADF1_SDI0 DCMI_D2/
PSSI_D2
OCTOSPIM_
P1_NCS
SPI3_MISO USART3_RX UART4_RX TSC_G3_IO3 DCMI_D4/PSSI_D4 UCPD1_
FRSTX2
SDMMC1_D3 SAI2_MCLK_B - EVENTOUT
PC12 TRACED3 - - - - - SPI3_MOSI USART3_CK UART5_TX TSC_G3_IO4 DCMI_D9/PSSI_D9 LPGPIO1_P10 SDMMC1_CK SAI2_SD_B - EVENTOUT
PC13 - - - - - - - - - - - - - - - EVENTOUT
PC14 - - - - - - - - - - - - - - - EVENTOUT
PC15 - - - - - - - - - - - - - - - EVENTOUT
PC4 - - - - - - - USART3_TX - - OCTOSPIM_P1_IO7 - - - - EVENTOUT
PC5 - TIM1_CH4N - SAI1_D3 PSSI_D15 - - USART3_RX - - - - - - - EVENTOUT
PD0 - - - TIM8_CH4N - SPI2_NSS - - - FDCAN1_RX - - FMC_D2/FMC_
AD2
- - EVENTOUT
PD10 - - LPTIM2_CH2 - - - - USART3_CK - TSC_G6_IO1 - - FMC_D15/FMC
_AD15
SAI2_SCK_A LPTIM3_ETR EVENTOUT
PD11 - - - - I2C4_SMBA - - USART3_CTS - TSC_G6_IO2 - - FMC_CLE/
FMC_A16
SAI2_SD_A LPTIM2_ETR EVENTOUT
PD12 - - TIM4_CH1 - I2C4_SCL - - USART3_
RTS/USART3_
DE
- TSC_G6_IO3 - - FMC_ALE/
FMC_A17
SAI2_FS_A LPTIM2_IN1 EVENTOUT
PD13 - - TIM4_CH2 - I2C4_SDA - - - - TSC_G6_IO4 - LPGPIO1_P6 FMC_A18 LPTIM4_IN1 LPTIM2_CH1 EVENTOUT
PD14 - - TIM4_CH3 - - - - - - - - - FMC_D0/FMC_
AD0
- LPTIM3_CH1 EVENTOUT
PD15 - - TIM4_CH4 - - - - - - - - - FMC_D1/FMC_
AD1
- LPTIM3_CH2 EVENTOUT
PD3 - - - SPI2_SCK DCMI_D5/
PSSI_D5
SPI2_MISO MDF1_SDI0 USART2_CTS - - OCTOSPIM_
P2_NCS
- FMC_CLK - - EVENTOUT
PD4 - - - - - SPI2_MOSI MDF1_CKI0 USART2_
RTS/USART2_
DE
- - OCTOSPIM_P1_IO4 - FMC_NOE - - EVENTOUT
PD5 - - - - - SPI2_RDY - USART2_TX - - OCTOSPIM_P1_IO5 - FMC_NWE - - EVENTOUT
PD6 - - - SAI1_D1 DCMI_D10/
PSSI_D10
SPI3_MOSI MDF1_SDI1 USART2_RX - - OCTOSPIM_P1_IO6 SDMMC2_CK FMC_NWAIT SAI1_SD_A - EVENTOUT
PD7 - - - - - - MDF1_CKI1 USART2_CK - - OCTOSPIM_P1_IO7 SDMMC2_CMD FMC_NCE/
FMC_NE1
LPTIM4_OUT - EVENTOUT
PE0 - - TIM4_ETR - - - - - - - DCMI_D2/PSSI_D2 LPGPIO1_P13 FMC_NBL0 - TIM16_CH1 EVENTOUT
PE1 - - - - - - - - - - DCMI_D3/PSSI_D3 - FMC_NBL1 - TIM17_CH1 EVENTOUT
PE10 - TIM1_CH2N - ADF1_SDI0 - - MDF1_SDI4 - - TSC_G5_IO1 OCTOSPIM_P1_CLK - FMC_D7/FMC_
AD7
SAI1_MCLK_B - EVENTOUT
PE11 - TIM1_CH2 - - - SPI1_RDY MDF1_CKI4 - - TSC_G5_IO2 OCTOSPIM_
P1_NCS
- FMC_D8/FMC_
AD8
- - EVENTOUT
PE12 - TIM1_CH3N - - - SPI1_NSS MDF1_SDI5 - - TSC_G5_IO3 OCTOSPIM_P1_IO0 - FMC_D9/FMC_
AD9
- - EVENTOUT
PE13 - TIM1_CH3 - - - SPI1_SCK MDF1_CKI5 - - TSC_G5_IO4 OCTOSPIM_P1_IO1 - FMC_D10/FMC
_AD10
- - EVENTOUT
PE14 - TIM1_CH4 TIM1_BKIN2 - - SPI1_MISO - - - - OCTOSPIM_P1_IO2 - FMC_D11/FMC
_AD11
- - EVENTOUT
PE15 - TIM1_BKIN - TIM1_CH4N - SPI1_MOSI - - - - OCTOSPIM_P1_IO3 - FMC_D12/FMC
_AD12
- - EVENTOUT
PE9 - TIM1_CH1 - ADF1_CCK0 - - MDF1_CCK0 - - - OCTOSPIM_P1_NC
LK
- FMC_D6/FMC_
AD6
SAI1_FS_B - EVENTOUT
PF11 - - - OCTOSPIM_
P1_NCLK
- - - - - - DCMI_D12/
PSSI_D12
- - LPTIM4_IN1 - EVENTOUT
PF12 - - - - - OCTOSPIM_
P2_DQS
- - - - - - FMC_A6 LPTIM4_ETR - EVENTOUT
PF13 - - - - I2C4_SMBA - - - - - - UCPD1_
FRSTX2
FMC_A7 LPTIM4_OUT - EVENTOUT
PG0 - - - - - OCTOSPIM_P2_IO4 - - - TSC_G8_IO3 - - FMC_A10 - - EVENTOUT
PG1 - - - - - OCTOSPIM_P2_IO5 - - - TSC_G8_IO4 - - FMC_A11 - - EVENTOUT
PG10 - LPTIM1_IN1 - - - OCTOSPIM_P2_IO7 SPI3_MISO USART1_RX - - - - FMC_NE3 SAI2_FS_A TIM15_CH1 EVENTOUT
PG11 - LPTIM1_IN2 - OCTOSPIM_
P1_IO5
- - SPI3_MOSI USART1_CTS - - - - - SAI2_MCLK_A TIM15_CH2 EVENTOUT
PG12 - LPTIM1_ETR - - - OCTOSPIM_
P2_NCS
SPI3_NSS USART1_
RTS/USART1_
DE
- - - - FMC_NE4 SAI2_SD_A - EVENTOUT
PG14 - LPTIM1_CH2 - - I2C1_SCL - - - - - - - FMC_A25 - - EVENTOUT
PG15 - LPTIM1_CH1 - - I2C1_SMBA OCTOSPIM_
P2_DQS
- - - - DCMI_D13/
PSSI_D13
- - - - EVENTOUT
PG2 - - - - - SPI1_SCK - - - - - - FMC_A12 SAI2_SCK_B - EVENTOUT
PG3 - - - - - SPI1_MISO - - - - - - FMC_A13 SAI2_FS_B - EVENTOUT
PG4 - - - - - SPI1_MOSI - - - - - - FMC_A14 SAI2_MCLK_B - EVENTOUT
PG5 - - - - - SPI1_NSS - - LPUART1_CTS - - - FMC_A15 SAI2_SD_B - EVENTOUT
PG6 - - - OCTOSPIM_
P1_DQS
I2C3_SMBA SPI1_RDY - - LPUART1_RTS/
LPUART1_DE
- - UCPD1_
FRSTX1
- - - EVENTOUT
PG7 - - - SAI1_CK1 I2C3_SCL OCTOSPIM_
P2_DQS
MDF1_CCK0 - LPUART1_TX - - UCPD1_
FRSTX2
FMC_INT SAI1_MCLK_A - EVENTOUT
PG8 - - - - I2C3_SDA - - - LPUART1_RX - - - - - - EVENTOUT
PG9 - - - - - OCTOSPIM_P2_IO6 SPI3_SCK USART1_TX - - - - FMC_NCE/
FMC_NE2
SAI2_SCK_A TIM15_CH1N EVENTOUT
PH0 - - - - - - - - - - - - - - - EVENTOUT
PH1 - - - - - - - - - - - - - - - EVENTOUT
PH2 - - - OCTOSPIM_
P1_IO4
- - - - - - - - - - - EVENTOUT
PH4 - - - - I2C2_SCL OCTOSPIM_
P2_DQS
- - - - PSSI_D14 - - - - EVENTOUT
PH5 - - - - I2C2_SDA - - - - - DCMI_PIXCLK/
PSSI_PDCK
- - - - EVENTOUT
PH6 - - - - I2C2_SMBA OCTOSPIM_
P2_CLK
- - - - DCMI_D8/PSSI_D8 - - - - EVENTOUT
PH7 - - - - I2C3_SCL OCTOSPIM_
P2_NCLK
- - - - DCMI_D9/PSSI_D9 - - - - EVENTOUT
PH8 - - - - I2C3_SDA OCTOSPIM_P2_IO3 - - - - DCMI_HSYNC/
PSSI_DE
- - - - EVENTOUT
PH9 - - - - I2C3_SMBA OCTOSPIM_P2_IO4 - - - - DCMI_D0/PSSI_D0 - - - - EVENTOUT
PI0 - - TIM5_CH4 OCTOSPIM_
P1_IO5
- SPI2_NSS - - - - DCMI_D13/
PSSI_D13
- - - - EVENTOUT
PI1 - - - - - SPI2_SCK OCTOSPIM_
P2_IO2
- - - DCMI_D8/PSSI_D8 - - - - EVENTOUT
PI2 - - - TIM8_CH4 - SPI2_MISO OCTOSPIM_
P2_IO1
- - - DCMI_D9/PSSI_D9 - - - - EVENTOUT
PI3 - - - TIM8_ETR - SPI2_MOSI OCTOSPIM_
P2_IO0
- - - DCMI_D10/
PSSI_D10
- - - - EVENTOUT
CRS/LPTIM1/
SYS_AF
LPTIM1/
TIM1/2/5/8
LPTIM1/2/3/
TIM1/2/3/4/5
ADF1/I2C4/
OCTOSPIM_P1/
OTG_FS/SAI1/
SPI2/TIM1/8/
USART2
DCMI/
I2C1/2/3/4/
LPTIM3
DCMI/I2C4/MDF1/
OCTOSPIM_P1/2/
SPI1/2/3
I2C3/MDF1/
OCTOSPIM_P2/
SPI3
USART1/2/3 LPUART1/
SDMMC1/
UART4/5
CAN1/TSC CRS/DCMI/
OCTOSPIM_P1/2/
OTG_FS
LPGPIO1/
SDMMC2/
UCPD1/FMC
COMP1/2/FMC/
SDMMC1/2
LPTIM2/4/
SAI1/2
LPTIM2/3/
TIM2/15/16/17
EVENTOUT

And as you mentioned, there are several USARTS and an LPUART.

With Zephyr setup, including current UNOQ, there is a mapping of logical Serial objects to
what the hardware device it is actually under the covers.

Currently in UNO Q they have in the device tree:

zephyr,user {
		serials = <&usart1>, <&lpuart1>;
		i2cs = <&i2c2>, <&i2c4>, <&i2c3>;
		spis = <&spi2>, <&spi3>;
};	

There is actually more stuff in the zephyr,user group like pin number mappings, but this is the short form,

Currently the code in core code zephyrSerial.cpp, reads in this list and, with Device Tree like
magic:

#if (DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm))
#define FIRST_UART_INDEX 1
#else
#define FIRST_UART_INDEX 0
#endif

#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), serials)
#if !(DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm) &&                                           \
	  (CONFIG_USB_CDC_ACM || CONFIG_USBD_CDC_ACM_CLASS))
// If CDC USB, use that object as Serial (and SerialUSB)
arduino::ZephyrSerial
	Serial(DEVICE_DT_GET(DT_PHANDLE_BY_IDX(DT_PATH(zephyr_user), serials, FIRST_UART_INDEX)));
#endif
#if (DT_PROP_LEN(DT_PATH(zephyr_user), serials) > 1)
#define ARDUINO_SERIAL_DEFINED_0 1

#define DECL_SERIAL_0(n, p, i)
#define DECL_SERIAL_N(n, p, i)                                                                     \
	arduino::ZephyrSerial Serial##i(DEVICE_DT_GET(DT_PHANDLE_BY_IDX(n, p, i)));
#define DECLARE_SERIAL_N(n, p, i)                                                                  \
	COND_CODE_1(ARDUINO_SERIAL_DEFINED_##i, (DECL_SERIAL_0(n, p, i)), (DECL_SERIAL_N(n, p, i)))

It assigns the first one in the list as: Serail or Serial1 and ones after that increment...

So current release:
Serial -> usart1
and Serial1 -> lpuart1

And these actual objects are defined in the Device Tree in the Zephyr project.
boards\arduino\unoq\arduino_uno_q-common.dtsi

&lpuart1_rx_pg8 {
	bias-pull-up;
};

&lpuart1 {
	pinctrl-0 = <&lpuart1_tx_pg7 &lpuart1_rx_pg8
		     &lpuart1_rts_pg6 &lpuart1_cts_pg5>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&usart1_rx_pb7 {
	bias-pull-up;
};

&usart1 {
	status = "okay";
	pinctrl-0 = <&usart1_tx_pb6 &usart1_rx_pb7>;
	pinctrl-names = "default";
	current-speed = <115200>;
};

Which shows whichs are used and the like.

But with the Q, the introduced: Monitor... as it really is not part of the device tree,
And I think the PRs and like I mention are in the process of Allowing Monitor to be
superseded by Serial. Or I am completely out to lunch :laughing:

Side comment: I keep wondering about maybe introducing other SerialX objects
Example pins 20, 21
Could be defined with: USART3

20 D20/SDA PB11 - TIM2_CH4 - I2C4_SDA I2C2_SDA SPI2_RDY - USART3_RX
21 D21/SCL PB10 - TIM2_CH3 LPTIM3_CH1 I2C4_SCL I2C2_SCL SPI2_SCK - USART3_TX

As we now have the hacks PR to maybe it to work and still allow Wire object to work on
those pins as well.

But USART objects, that maybe rarely used might eat up a significant amount of free memory.

Not sure if it is possible with Zephyr here to only allocate the buffers if something in the sketch (or libraries) actually refer to that object. That is if that were to create Serial2 or Serial3, but no one in the sketch uses Serial3, how much resources will it eat up...

On a Teensy, we did the work that each Serial object was defined in it's own file and made sure nothing referred to them directly in the core. so if the object is not used, that file is
not included in the build... But don't know any way to do that with Zephyr. But maybe
at least not allocate buffers and the like, unless some one calls lets say begin on it and
have the object setup as deferred_init....

But that is a different subject

PB10 and PB11 pins of the MCU can carry a number of alternate signals from the internal modules like TIM2, I2C4, ..., UART3. Currently, these two pins are carrying 1.8V level signals from I2C2 module and after level shifting to 3.3V level they are connected with SDA/SCL pins of the header. These two signals are not named SDA/SCL, I think, to maintain conformity wit UNO R3.

Yes, it would give us another Serial3 object if software would allow user to declare as:

Serial3.begin(20, 21, Bd);//RX3, TX3, Baud rate, default: 1-stop Bit, no-pariy

D2/D3 practically support UNO R3 styled external interrupts INT0 and INT1, but the originating MCU's interrupt pins are not seen in your table of post #3.

That is correct. Starting from the next release of the "Arduino UNO Q Board" platform, it will be necessary to install these libraries when they are a dependency of your sketch.

As you noted, the necessary work to allow the use of the Serial object for communication between the sketch program and the host via the USB CDC serial port has been done in the Arduino_RouterBridge platform. However, work must also be done in the "Arduino UNO Q Board" platform before that is available to users. I believe the remaining work is staged here:

Correct. This will be a breaking change for those sketches.

I'm not sure if "superseded" is the correct way to describe the intent. It is rather that support is being added for the established convention of using the Serial object for communication via the board's USB CDC serial port. However, I am not aware of any intent to discourage the continued use of the Monitor object.

Going forward, it will be best to use Serial in any code that is intended to be generally portable. However, for code that is specific to the "bridge" architecture established in the UNO Q (but likely to propagate to other hybrid boards such as the VENTUNO Q), I think it will be best practices to continue to use the Monitor object, as this will ensure the reader of the code keeps in mind that the communication is being done via the "bridge".

Note: My excel document,

Is simply the table of Alternate Functions for each pin as was able to get excel to extract from their PDF... I had to do some massaging to combine tables that were extracted... I then edited in the Arduino Pin Number information.

Note: There is also a register for each port that says what each pin is: Input, Output, Alternate Function, (and I think Analog) was the 4th...

As for Interrupts: This table does not mention at all about the NVIC, EXTI setup where
The you can configure interrupts on the IO ports...

Thanks, probably not the best word. But to me, it is sort of similar to UNO R4 Wifi,
where by default, the Serial object is hooked up to a hardware Serial port that connects
up to the ESP32, and there is code on the ESP32, which then sends it over the USB back to your host... I know probably different complexity of stuff!

You could say the same about the UNO R3, Mega 2560, which pass their serial communication though an ATmega16U2 chip, upon which runs a firmware that handles the UART <--> CDC serial data transmission, and the Nano Every, which does the same with its ATSAMD11 chip.

You are absolutely right. I was thinking that, but only mentioned R4 Wifi as
it is also doing other functions, through another port for BT/Wifi...

Thanks again

Quick note: The final piece of this was merged into the sources today.

Just verified, by building ArduinoCore-zephyr for the Q on the Q with latest sources.
Simple sketch:

#include <Arduino_RouterBridge.h>
void setup() {
  // put your setup code here, to run once:
  Monitor.begin();
  Serial.begin(115200);
  Serial1.begin(115200);

}

uint32_t loop_count;
void loop() {
  // put your main code here, to run repeatedly:
  loop_count++;
  Monitor.print("M:"); Monitor.println(loop_count);
  Serial.print("S:"); Serial.println(loop_count);
  Serial1.print("1:"); Serial1.println(loop_count);
  printk("K:%u\n", loop_count);
  delay(1000);
}

Output to Serial Monitor window:

S:261
M:262
S:262
M:263

Output to Serial1:

1:K:252
252
1:K:253
253
1:K:254
254

Note printk (print kernel) buffer sort of intermingles with Serial1 output...
(does this on the other zephyr installs as well...)

Edit: Unless you build from sources as I just did, you won't see this, until the next board release...

I am familiart with:

Monitor.begin();
Serial.begin();   //UART(RX, TX) = UART(0, 1)

But NOT with Serial1.begin();
What is this -- which two-pin of the header of UNO Q does form this UART1(RX1, TX1)?

As I mentioned in the first post of this thread: When the next Arduino release of the Arduino Q board software, that Serial == Monitor

And @ptillish phrased it better in the posting:

And so with this Release Serial1 will be on pins 0, 1 in much the same way as other boards, like Uno R4. Giga, ...

A little confused on how this is suppose to work. I just tried a couple sketches that just use serial and nothing shows up on Serial.
// the setup function runs once when you press reset or power the board

void setup() {
  Monitor.begin();
  Serial.begin(115200);
  Serial1.begin(115200);
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

uint32_t icount = 0;
// the loop function runs over and over again forever
void loop() {
  Serial.println(icount++);
  Serial1.println(icount++);
  Monitor.println(icount++);
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
}

and I am not seeing anything output using Monitor, serial or serial1.

I also ran @KurtE's test sketch

#include <Arduino_RouterBridge.h>
void setup() {
  // put your setup code here, to run once:
  Monitor.begin();
  Serial.begin(115200);
  Serial1.begin(115200);

}

uint32_t loop_count;
void loop() {
  // put your main code here, to run repeatedly:
  loop_count++;
  Monitor.print("M:"); Monitor.println(loop_count);
  Serial.print("S:"); Serial.println(loop_count);
  Serial1.print("1:"); Serial1.println(loop_count);
  printk("K:%u\n", loop_count);
  delay(1000);
}

and not seeing any output - can some one confirm?

Edit: looks like its using
Used library Arduino_RouterBridge (0.4.1) in /home/arduino/.arduino15/internal/Arduino_RouterBridge_0.4.1_d378119a47d2c8c4/Arduino_RouterBridge

UPDATE: I restarted the IDE and its now working ??? strange