Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error during UART initialization #47

Open
gislers opened this issue Nov 10, 2023 · 0 comments
Open

Error during UART initialization #47

gislers opened this issue Nov 10, 2023 · 0 comments

Comments

@gislers
Copy link

gislers commented Nov 10, 2023

Hi all

I'm trying to read BNO08x data via UART on a Single Board Computer running Ubuntu 22.04. The problem is that the driver fails during initialization and I think I tracked the error down to a faulty init routine in __init__.py:

  def initialize(self) -> None:
      """Initialize the sensor"""
      for _ in range(3):
          self.hard_reset()
          self.soft_reset()
          try:
              if self._check_id():
                  break
          except BaseException as e:  # pylint:disable=bare-except
              print(e)
              time.sleep(0.5)
      else:
          raise RuntimeError("Could not read ID")

My test program is bno08x_simpletest_uart.py with some setup changes (baudrate 3000000, adjusted serial port and debug=True):

# SPDX-FileCopyrightText: 2020 Bryan Siepert, written for Adafruit Industries
#
# SPDX-License-Identifier: Unlicense
import time
import adafruit_bno08x
from adafruit_bno08x.uart import BNO08X_UART

import board  # pylint:disable=wrong-import-order
import busio  # pylint:disable=wrong-import-order

#uart = busio.UART(board.TX, board.RX, baudrate=3000000, receiver_buffer_size=2048)

# uncomment and comment out the above for use with Raspberry Pi
import serial
uart = serial.Serial("/dev/ttyS4", 3000000)

# for a USB Serial cable:
# import serial
# uart = serial.Serial("/dev/ttyUSB0", baudrate=115200)

bno = BNO08X_UART(uart, reset=None, debug=True)

bno.enable_feature(adafruit_bno08x.BNO_REPORT_ACCELEROMETER)
bno.enable_feature(adafruit_bno08x.BNO_REPORT_GYROSCOPE)
bno.enable_feature(adafruit_bno08x.BNO_REPORT_MAGNETOMETER)
bno.enable_feature(adafruit_bno08x.BNO_REPORT_ROTATION_VECTOR)

...

Now when I run the program it stops with an error Could not read ID (full debug output below). Note that I have printed out the actual exception coming from self.check_id() as it would not have been visible in the original program (in the above printed initialize method). So I found this exception to be Didn't find packet end thrown in uart.py in the _read_packet method:

raise RuntimeError("Didn't find packet end")

What I believe happens is that the soft_reset method in uart.py is sending out a couple of packets which somehow cause the check_id method to fail. Further, when the check_id method sends out the command to read the product id, the response is read by the soft_reset in the next turn of the for loop. So the response will never be available in the check_id method. Thus, this whole init method fails. The simplest way to solve this is to comment out this line:

The question is: What is this soft_reset good for? Is it safe to disable?
Thank you for any advice.

DBG::            ********** __init__ *************
Soft resetting...DBG::           channel 0 has 272 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 272
DBG::            Channel: SHTP_COMMAND (0)
DBG::            Sequence number: 1

DBG::            Data:
DBG::           [0x04] 0x00 0x01 0x04 0x00
DBG::           [0x08] 0x00 0x00 0x00 0x80
DBG::           [0x0C] 0x06 0x31 0x2E 0x30
DBG::           [0x10] 0x2E 0x30 0x00 0x02
DBG::           [0x14] 0x02 0x00 0x01 0x03
DBG::           [0x18] 0x02 0xFF 0x7F 0x04
DBG::           [0x1C] 0x02 0x00 0x01 0x05
DBG::           [0x20] 0x02 0xFF 0x7F 0x08
DBG::           [0x24] 0x05 0x53 0x48 0x54
DBG::           [0x28] 0x50 0x00 0x06 0x01
DBG::           [0x2C] 0x00 0x09 0x08 0x63
DBG::           [0x30] 0x6F 0x6E 0x74 0x72
DBG::           [0x34] 0x6F 0x6C 0x00 0x01
DBG::           [0x38] 0x04 0x01 0x00 0x00
DBG::           [0x3C] 0x00 0x08 0x0B 0x65
DBG::           [0x40] 0x78 0x65 0x63 0x75
DBG::           [0x44] 0x74 0x61 0x62 0x6C
DBG::           [0x48] 0x65 0x00 0x06 0x01
DBG::           [0x4C] 0x01 0x09 0x07 0x64
DBG::           [0x50] 0x65 0x76 0x69 0x63
DBG::           [0x54] 0x65 0x00 0x01 0x04
DBG::           [0x58] 0x02 0x00 0x00 0x00
DBG::           [0x5C] 0x08 0x0A 0x73 0x65
DBG::           [0x60] 0x6E 0x73 0x6F 0x72
DBG::           [0x64] 0x68 0x75 0x62 0x00
DBG::           [0x68] 0x06 0x01 0x02 0x09
DBG::           [0x6C] 0x08 0x63 0x6F 0x6E
DBG::           [0x70] 0x74 0x72 0x6F 0x6C
DBG::           [0x74] 0x00 0x06 0x01 0x03
DBG::           [0x78] 0x09 0x0C 0x69 0x6E
DBG::           [0x7C] 0x70 0x75 0x74 0x4E
DBG::           [0x80] 0x6F 0x72 0x6D 0x61
DBG::           [0x84] 0x6C 0x00 0x07 0x01
DBG::           [0x88] 0x04 0x09 0x0A 0x69
DBG::           [0x8C] 0x6E 0x70 0x75 0x74
DBG::           [0x90] 0x57 0x61 0x6B 0x65
DBG::           [0x94] 0x00 0x06 0x01 0x05
DBG::           [0x98] 0x09 0x0C 0x69 0x6E
DBG::           [0x9C] 0x70 0x75 0x74 0x47
DBG::           [0xA0] 0x79 0x72 0x6F 0x52
DBG::           [0xA4] 0x76 0x00 0x80 0x06
DBG::           [0xA8] 0x31 0x2E 0x31 0x2E
DBG::           [0xAC] 0x30 0x00 0x81 0x64
DBG::           [0xB0] 0xF8 0x10 0xF5 0x04
DBG::           [0xB4] 0xF3 0x10 0xF1 0x10
DBG::           [0xB8] 0xFB 0x05 0xFA 0x05
DBG::           [0xBC] 0xFC 0x11 0xEF 0x02
DBG::           [0xC0] 0x01 0x0A 0x02 0x0A
DBG::           [0xC4] 0x03 0x0A 0x04 0x0A
DBG::           [0xC8] 0x05 0x0E 0x06 0x0A
DBG::           [0xCC] 0x07 0x10 0x08 0x0C
DBG::           [0xD0] 0x09 0x0E 0x0A 0x08
DBG::           [0xD4] 0x0B 0x08 0x0C 0x06
DBG::           [0xD8] 0x0D 0x06 0x0E 0x06
DBG::           [0xDC] 0x0F 0x10 0x10 0x05
DBG::           [0xE0] 0x11 0x0C 0x12 0x06
DBG::           [0xE4] 0x13 0x06 0x14 0x10
DBG::           [0xE8] 0x15 0x10 0x16 0x10
DBG::           [0xEC] 0x17 0x00 0x18 0x08
DBG::           [0xF0] 0x19 0x06 0x1A 0x00
DBG::           [0xF4] 0x1B 0x00 0x1C 0x06
DBG::           [0xF8] 0x1D 0x00 0x1E 0x10
DBG::           [0xFC] 0x1F 0x00 0x20 0x00
DBG::           [0x100] 0x21 0x00 0x22 0x00
DBG::           [0x104] 0x23 0x00 0x24 0x00
DBG::           [0x108] 0x25 0x00 0x26 0x00
DBG::           [0x10C] 0x27 0x00 0x28 0x0E
DBG::           [0x110] 0x29 0x0C 0x2A 0x0E
                *******************************

OK!
DBG::
********** READ ID **********
DBG::
** Sending ID Request Report **
DBG::
** Waiting for packet **
DBG::            ** Waiting for packet on channel 2  with report id 0xf8
DBG::            timeout=5.0
DBG::            channel 0 has 272 bytes available
Didn't find packet end
Soft resetting...DBG::           channel 2 has 16 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 16
DBG::            Channel: CONTROL (2)
DBG::                   Report Type: COMMAND_RESPONSE (0xf1)
DBG::            Sequence number: 0

DBG::            Data:
DBG::           [0x04] 0xF1 0x00 0x84 0x00
DBG::           [0x08] 0x00 0x00 0x01 0x00
DBG::           [0x0C] 0x00 0x00 0x00 0x00
DBG::           [0x10] 0x00 0x00 0x00 0x00
                *******************************

DBG::            channel 1 has 1 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 1
DBG::            Channel: EXE (1)
DBG::            Sequence number: 0

DBG::            Data:
DBG::           [0x04] 0x01
                *******************************

DBG::            channel 2 has 16 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 16
DBG::            Channel: CONTROL (2)
DBG::                   Report Type: PRODUCT_ID_RESPONSE (0xf8)
DBG::            Sequence number: 1

DBG::            Data:
DBG::           [0x04] 0xF8 0x02 0x03 0x02
DBG::           [0x08] 0xB4 0xA6 0x98 0x00
DBG::           [0x0C] 0x06 0x00 0x00 0x00
DBG::           [0x10] 0x0D 0x00 0x00 0x00
                *******************************

DBG::            channel 2 has 48 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 48
DBG::            Channel: CONTROL (2)
DBG::                   Report Type: PRODUCT_ID_RESPONSE (0xf8)
DBG::            Sequence number: 2

DBG::            Data:
DBG::           [0x04] 0xF8 0x00 0x01 0x02
DBG::           [0x08] 0x96 0xA4 0x98 0x00
DBG::           [0x0C] 0xE6 0x00 0x00 0x00
DBG::           [0x10] 0x04 0x00 0x00 0x00
DBG::           [0x14] 0xF8 0x00 0x04 0x04
DBG::           [0x18] 0x36 0xA3 0x98 0x00
DBG::           [0x1C] 0xE5 0x01 0x00 0x00
DBG::           [0x20] 0x03 0x00 0x00 0x00
DBG::           [0x24] 0xF8 0x00 0x04 0x02
DBG::           [0x28] 0xE3 0xA2 0x98 0x00
DBG::           [0x2C] 0x24 0x02 0x00 0x00
DBG::           [0x30] 0x0A 0x00 0x00 0x00
                *******************************

DBG::            channel 0 has 272 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 272
DBG::            Channel: SHTP_COMMAND (0)
DBG::            Sequence number: 1

DBG::            Data:
DBG::           [0x04] 0x00 0x01 0x04 0x00
DBG::           [0x08] 0x00 0x00 0x00 0x80
DBG::           [0x0C] 0x06 0x31 0x2E 0x30
DBG::           [0x10] 0x2E 0x30 0x00 0x02
DBG::           [0x14] 0x02 0x00 0x01 0x03
DBG::           [0x18] 0x02 0xFF 0x7F 0x04
DBG::           [0x1C] 0x02 0x00 0x01 0x05
DBG::           [0x20] 0x02 0xFF 0x7F 0x08
DBG::           [0x24] 0x05 0x53 0x48 0x54
DBG::           [0x28] 0x50 0x00 0x06 0x01
DBG::           [0x2C] 0x00 0x09 0x08 0x63
DBG::           [0x30] 0x6F 0x6E 0x74 0x72
DBG::           [0x34] 0x6F 0x6C 0x00 0x01
DBG::           [0x38] 0x04 0x01 0x00 0x00
DBG::           [0x3C] 0x00 0x08 0x0B 0x65
DBG::           [0x40] 0x78 0x65 0x63 0x75
DBG::           [0x44] 0x74 0x61 0x62 0x6C
DBG::           [0x48] 0x65 0x00 0x06 0x01
DBG::           [0x4C] 0x01 0x09 0x07 0x64
DBG::           [0x50] 0x65 0x76 0x69 0x63
DBG::           [0x54] 0x65 0x00 0x01 0x04
DBG::           [0x58] 0x02 0x00 0x00 0x00
DBG::           [0x5C] 0x08 0x0A 0x73 0x65
DBG::           [0x60] 0x6E 0x73 0x6F 0x72
DBG::           [0x64] 0x68 0x75 0x62 0x00
DBG::           [0x68] 0x06 0x01 0x02 0x09
DBG::           [0x6C] 0x08 0x63 0x6F 0x6E
DBG::           [0x70] 0x74 0x72 0x6F 0x6C
DBG::           [0x74] 0x00 0x06 0x01 0x03
DBG::           [0x78] 0x09 0x0C 0x69 0x6E
DBG::           [0x7C] 0x70 0x75 0x74 0x4E
DBG::           [0x80] 0x6F 0x72 0x6D 0x61
DBG::           [0x84] 0x6C 0x00 0x07 0x01
DBG::           [0x88] 0x04 0x09 0x0A 0x69
DBG::           [0x8C] 0x6E 0x70 0x75 0x74
DBG::           [0x90] 0x57 0x61 0x6B 0x65
DBG::           [0x94] 0x00 0x06 0x01 0x05
DBG::           [0x98] 0x09 0x0C 0x69 0x6E
DBG::           [0x9C] 0x70 0x75 0x74 0x47
DBG::           [0xA0] 0x79 0x72 0x6F 0x52
DBG::           [0xA4] 0x76 0x00 0x80 0x06
DBG::           [0xA8] 0x31 0x2E 0x31 0x2E
DBG::           [0xAC] 0x30 0x00 0x81 0x64
DBG::           [0xB0] 0xF8 0x10 0xF5 0x04
DBG::           [0xB4] 0xF3 0x10 0xF1 0x10
DBG::           [0xB8] 0xFB 0x05 0xFA 0x05
DBG::           [0xBC] 0xFC 0x11 0xEF 0x02
DBG::           [0xC0] 0x01 0x0A 0x02 0x0A
DBG::           [0xC4] 0x03 0x0A 0x04 0x0A
DBG::           [0xC8] 0x05 0x0E 0x06 0x0A
DBG::           [0xCC] 0x07 0x10 0x08 0x0C
DBG::           [0xD0] 0x09 0x0E 0x0A 0x08
DBG::           [0xD4] 0x0B 0x08 0x0C 0x06
DBG::           [0xD8] 0x0D 0x06 0x0E 0x06
DBG::           [0xDC] 0x0F 0x10 0x10 0x05
DBG::           [0xE0] 0x11 0x0C 0x12 0x06
DBG::           [0xE4] 0x13 0x06 0x14 0x10
DBG::           [0xE8] 0x15 0x10 0x16 0x10
DBG::           [0xEC] 0x17 0x00 0x18 0x08
DBG::           [0xF0] 0x19 0x06 0x1A 0x00
DBG::           [0xF4] 0x1B 0x00 0x1C 0x06
DBG::           [0xF8] 0x1D 0x00 0x1E 0x10
DBG::           [0xFC] 0x1F 0x00 0x20 0x00
DBG::           [0x100] 0x21 0x00 0x22 0x00
DBG::           [0x104] 0x23 0x00 0x24 0x00
DBG::           [0x108] 0x25 0x00 0x26 0x00
DBG::           [0x10C] 0x27 0x00 0x28 0x0E
DBG::           [0x110] 0x29 0x0C 0x2A 0x0E
                *******************************

OK!
DBG::
********** READ ID **********
DBG::
** Sending ID Request Report **
DBG::
** Waiting for packet **
DBG::            ** Waiting for packet on channel 2  with report id 0xf8
DBG::            timeout=5.0
DBG::            channel 0 has 272 bytes available
Didn't find packet end
Soft resetting...DBG::           channel 2 has 16 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 16
DBG::            Channel: CONTROL (2)
DBG::                   Report Type: COMMAND_RESPONSE (0xf1)
DBG::            Sequence number: 0

DBG::            Data:
DBG::           [0x04] 0xF1 0x00 0x84 0x00
DBG::           [0x08] 0x00 0x00 0x01 0x00
DBG::           [0x0C] 0x00 0x00 0x00 0x00
DBG::           [0x10] 0x00 0x00 0x00 0x00
                *******************************

DBG::            channel 1 has 1 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 1
DBG::            Channel: EXE (1)
DBG::            Sequence number: 0

DBG::            Data:
DBG::           [0x04] 0x01
                *******************************

DBG::            channel 2 has 16 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 16
DBG::            Channel: CONTROL (2)
DBG::                   Report Type: PRODUCT_ID_RESPONSE (0xf8)
DBG::            Sequence number: 1

DBG::            Data:
DBG::           [0x04] 0xF8 0x02 0x03 0x02
DBG::           [0x08] 0xB4 0xA6 0x98 0x00
DBG::           [0x0C] 0x06 0x00 0x00 0x00
DBG::           [0x10] 0x0D 0x00 0x00 0x00
                *******************************

DBG::            channel 2 has 48 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 48
DBG::            Channel: CONTROL (2)
DBG::                   Report Type: PRODUCT_ID_RESPONSE (0xf8)
DBG::            Sequence number: 2

DBG::            Data:
DBG::           [0x04] 0xF8 0x00 0x01 0x02
DBG::           [0x08] 0x96 0xA4 0x98 0x00
DBG::           [0x0C] 0xE6 0x00 0x00 0x00
DBG::           [0x10] 0x04 0x00 0x00 0x00
DBG::           [0x14] 0xF8 0x00 0x04 0x04
DBG::           [0x18] 0x36 0xA3 0x98 0x00
DBG::           [0x1C] 0xE5 0x01 0x00 0x00
DBG::           [0x20] 0x03 0x00 0x00 0x00
DBG::           [0x24] 0xF8 0x00 0x04 0x02
DBG::           [0x28] 0xE3 0xA2 0x98 0x00
DBG::           [0x2C] 0x24 0x02 0x00 0x00
DBG::           [0x30] 0x0A 0x00 0x00 0x00
                *******************************

DBG::            channel 0 has 272 bytes available

                ********** Packet *************
DBG::            HEADER:
DBG::            Data Len: 272
DBG::            Channel: SHTP_COMMAND (0)
DBG::            Sequence number: 1

DBG::            Data:
DBG::           [0x04] 0x00 0x01 0x04 0x00
DBG::           [0x08] 0x00 0x00 0x00 0x80
DBG::           [0x0C] 0x06 0x31 0x2E 0x30
DBG::           [0x10] 0x2E 0x30 0x00 0x02
DBG::           [0x14] 0x02 0x00 0x01 0x03
DBG::           [0x18] 0x02 0xFF 0x7F 0x04
DBG::           [0x1C] 0x02 0x00 0x01 0x05
DBG::           [0x20] 0x02 0xFF 0x7F 0x08
DBG::           [0x24] 0x05 0x53 0x48 0x54
DBG::           [0x28] 0x50 0x00 0x06 0x01
DBG::           [0x2C] 0x00 0x09 0x08 0x63
DBG::           [0x30] 0x6F 0x6E 0x74 0x72
DBG::           [0x34] 0x6F 0x6C 0x00 0x01
DBG::           [0x38] 0x04 0x01 0x00 0x00
DBG::           [0x3C] 0x00 0x08 0x0B 0x65
DBG::           [0x40] 0x78 0x65 0x63 0x75
DBG::           [0x44] 0x74 0x61 0x62 0x6C
DBG::           [0x48] 0x65 0x00 0x06 0x01
DBG::           [0x4C] 0x01 0x09 0x07 0x64
DBG::           [0x50] 0x65 0x76 0x69 0x63
DBG::           [0x54] 0x65 0x00 0x01 0x04
DBG::           [0x58] 0x02 0x00 0x00 0x00
DBG::           [0x5C] 0x08 0x0A 0x73 0x65
DBG::           [0x60] 0x6E 0x73 0x6F 0x72
DBG::           [0x64] 0x68 0x75 0x62 0x00
DBG::           [0x68] 0x06 0x01 0x02 0x09
DBG::           [0x6C] 0x08 0x63 0x6F 0x6E
DBG::           [0x70] 0x74 0x72 0x6F 0x6C
DBG::           [0x74] 0x00 0x06 0x01 0x03
DBG::           [0x78] 0x09 0x0C 0x69 0x6E
DBG::           [0x7C] 0x70 0x75 0x74 0x4E
DBG::           [0x80] 0x6F 0x72 0x6D 0x61
DBG::           [0x84] 0x6C 0x00 0x07 0x01
DBG::           [0x88] 0x04 0x09 0x0A 0x69
DBG::           [0x8C] 0x6E 0x70 0x75 0x74
DBG::           [0x90] 0x57 0x61 0x6B 0x65
DBG::           [0x94] 0x00 0x06 0x01 0x05
DBG::           [0x98] 0x09 0x0C 0x69 0x6E
DBG::           [0x9C] 0x70 0x75 0x74 0x47
DBG::           [0xA0] 0x79 0x72 0x6F 0x52
DBG::           [0xA4] 0x76 0x00 0x80 0x06
DBG::           [0xA8] 0x31 0x2E 0x31 0x2E
DBG::           [0xAC] 0x30 0x00 0x81 0x64
DBG::           [0xB0] 0xF8 0x10 0xF5 0x04
DBG::           [0xB4] 0xF3 0x10 0xF1 0x10
DBG::           [0xB8] 0xFB 0x05 0xFA 0x05
DBG::           [0xBC] 0xFC 0x11 0xEF 0x02
DBG::           [0xC0] 0x01 0x0A 0x02 0x0A
DBG::           [0xC4] 0x03 0x0A 0x04 0x0A
DBG::           [0xC8] 0x05 0x0E 0x06 0x0A
DBG::           [0xCC] 0x07 0x10 0x08 0x0C
DBG::           [0xD0] 0x09 0x0E 0x0A 0x08
DBG::           [0xD4] 0x0B 0x08 0x0C 0x06
DBG::           [0xD8] 0x0D 0x06 0x0E 0x06
DBG::           [0xDC] 0x0F 0x10 0x10 0x05
DBG::           [0xE0] 0x11 0x0C 0x12 0x06
DBG::           [0xE4] 0x13 0x06 0x14 0x10
DBG::           [0xE8] 0x15 0x10 0x16 0x10
DBG::           [0xEC] 0x17 0x00 0x18 0x08
DBG::           [0xF0] 0x19 0x06 0x1A 0x00
DBG::           [0xF4] 0x1B 0x00 0x1C 0x06
DBG::           [0xF8] 0x1D 0x00 0x1E 0x10
DBG::           [0xFC] 0x1F 0x00 0x20 0x00
DBG::           [0x100] 0x21 0x00 0x22 0x00
DBG::           [0x104] 0x23 0x00 0x24 0x00
DBG::           [0x108] 0x25 0x00 0x26 0x00
DBG::           [0x10C] 0x27 0x00 0x28 0x0E
DBG::           [0x110] 0x29 0x0C 0x2A 0x0E
                *******************************

OK!
DBG::
********** READ ID **********
DBG::
** Sending ID Request Report **
DBG::
** Waiting for packet **
DBG::            ** Waiting for packet on channel 2  with report id 0xf8
DBG::            timeout=5.0
DBG::            channel 0 has 272 bytes available
Didn't find packet end
Traceback (most recent call last):
  File "/home/ubuntu/Adafruit_CircuitPython_BNO08x/bno08x_simpletest_uart.py", line 21, in <module>
    bno = BNO08X_UART(uart, reset=None, debug=True)
  File "/home/ubuntu/Adafruit_CircuitPython_BNO08x/adafruit_bno08x/uart.py", line 30, in __init__
    super().__init__(reset, debug)
  File "/home/ubuntu/Adafruit_CircuitPython_BNO08x/adafruit_bno08x/__init__.py", line 517, in __init__
    self.initialize()
  File "/home/ubuntu/Adafruit_CircuitPython_BNO08x/adafruit_bno08x/__init__.py", line 531, in initialize
    raise RuntimeError("Could not read ID")
RuntimeError: Could not read ID
@gislers gislers changed the title Error during initialization Error during UART initialization Nov 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant