# Micro:bit multiple "serial on data recieved" don't work properly (only the last one works)

**URL:** <https://forum.makecode.com/t/micro-bit-multiple-serial-on-data-recieved-dont-work-properly-only-the-last-one-works/43793>\
**Category:** micro:bit\
**Created:** [May 2, 2026, 3:46am UTC](https://forum.makecode.com/t/micro-bit-multiple-serial-on-data-recieved-dont-work-properly-only-the-last-one-works/43793 "2026-05-02T03:46:45Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![martinwork](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/martinwork/32/3977_2.png) [@martinwork](https://forum.makecode.com/u/martinwork)\
**Post date:** [May 9, 2026, 7:23pm UTC](https://forum.makecode.com/t/micro-bit-multiple-serial-on-data-recieved-dont-work-properly-only-the-last-one-works/43793/2 "2026-05-09T19:23:01Z")

</div>

Yes, I think you’re right. Looking at the code, each handler block overwrites the same delimiter string, and the same pointer to the event’s handler.

It’s the same for Bluetooth UART: [https://forum.makecode.com/t/bluetooth-uart-command-to-move-servo-only-work-in-one-direction/29202](https://forum.makecode.com/t/bluetooth-uart-command-to-move-servo-only-work-in-one-direction/29202)

> <https://github.com/microsoft/pxt-microbit/blob/master/libs/core/serial.cpp#L84>

[https://github.com/microbit-foundation/codal-core/blob/master/source/driver-models/Serial.cpp#L932](https://github.com/microbit-foundation/codal-core/blob/master/source/driver-models/Serial.cpp#L932)

> <https://github.com/microsoft/pxt-common-packages/blob/master/libs/base/core.cpp#L33>

---

_[View the full topic](https://forum.makecode.com/t/micro-bit-multiple-serial-on-data-recieved-dont-work-properly-only-the-last-one-works/43793)._
