A comunicação UART é um dos métodos de comunicação mais usados em diversos microcontroladores, porém no Maix Bit é possível usar até 3 UART’s simultaneamente.
Pinout das Interfaces UART do Maix Bit
Como já foi dito anteriormente, o Maix bit tem no total três interface de comunicação UART. No entanto, apenas uma é de fácil uso em prototipagem, as demais ficam na superfície da placa como na imagem abaixo:

Como usar UART 2 e 3 do Maix Bit
Como é possível ver na imagem anterior, os pinos necessários para a comunicação nas interfaces um e dois são de difícil acesso, mas com uma soldagem de um ‘pin header’ de 90° é possível realizar uma soldagem e ter meio de conexão mais fácil, porém é bom fazer um reforço estrutural.

Sugestão de Reforço Estrutural
O meio usado para reforçar a estrutura da adaptação com ‘pin header’ ou famosa “gambiarra” foi uma massa adesiva epóxi e a forma de por na placa, deverá ser feito com cautela, de preferência com o uso de pinças.
Cuidados com a UART do Maix Bit
Embora o Maix Bit seja uma placa robusta, para a comunicação UART o cuidado com os níveis de tensão, pois a placa trabalha com 3v3. Porém, para aplicações com tensões diferentes o ideal é o uso de um conversor de nível lógico.

Exemplo de Comunicação nas UART’s do Maix Bit
Embora seja possível interligar diversos dispositivos que tem comunicação UART, é mais fácil interligar um dispositivo externo na UART3 e por a UART2 para enviar para UART1 o valor recebido da UART3. A entrada de dados na UART3 será usado um conversor USB serial FTDI e só serão usados os pinos TX, RX e GND.

Comunicação UART Código exemplo
O código a seguir é uma modificação do exemplo disponibilizado no Github da Sipeed, no entanto, se o passo da “modificação” não seja feito não será possível testa-lo com o código abaixo.
from fpioa_manager import fm
from machine import UART
from board import board_info
from fpioa_manager import fm
fm.register(10, fm.fpioa.UART1_TX, force=True)
fm.register(11, fm.fpioa.UART1_RX, force=True)
fm.register(12, fm.fpioa.UART2_TX, force=True)
fm.register(13, fm.fpioa.UART2_RX, force=True)
fm.register(6, fm.fpioa.UART3_TX, force=True)
fm.register(7, fm.fpioa.UART3_RX, force=True)
uart_A = UART(UART.UART1, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)
uart_B = UART(UART.UART2, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)
uart_C = UART(UART.UART3, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)
write_str = 'hello world'
while(True):
while uart_C.any():
read_data = uart_C.read()
if read_data:
read_str = read_data.decode('utf-8')
uart_A.write(read_str)
while uart_B.any():
read_data = uart_B.read()
if read_data:
read_str = read_data.decode('utf-8')
print("UART2 = UART1 = UART3 = ", read_str)
uart_C.deinit()
uart_A.deinit()
uart_B.deinit()
del uart_C
del uart_A
del uart_B