Problem

When redirecting the UART service to pins, it doesn't turn off the CTRL-C handling, so receiving a binary 0x03 from the device at the other end will generate a KeyboardInterrupt and stops the MicroPython program running.


Workaround

This has potentially been fixed in the version1 branch of micropython, it has 

micropython.kbd_intr(chr) and if you pass -1 as the chr argument then that will disable CTRL-C interrupts. The v1 branch is currently available to test in the online python editor


Reference:

https://github.com/bbcmicrobit/micropython/issues/472