UART baudrate tracking


1 month project, undergraduate level


Be able to receive UART data from SCuM even when clock calibration isn’t perfect.


  • groundwork

    • create a repository for your source code at

    • Take 2x nRF52840-DK boards, connect GND and 2 pins for UART TX/RX

    • program the board so one sends bytes to the second

    • play with the BAUDRATE register, make sure you can change the baudrate

    • use a scope to make sure the timing makes sense

  • feasibility

    • change the the BAUDRATE register to values not listed in the “approved” list in the Product Specification

    • check whether timing makes sense with a scope

    • check UART still work

    • the goal is that you can change the baudrate for the UART to any baurate you can

    • if this doesn’t work, project stops here

  • learning baudrate

    • set pins as GPIOs

    • use a clock to sample transition times

    • calculate baudrate

    • set pins as UART

    • receive bytes!