# Send and receive messages from RP2040 over Bristlemouth

**URL:** https://bristlemouth.discourse.group/t/send-and-receive-messages-from-rp2040-over-bristlemouth/547
**Category:** Application Dev
**Created:** [October 26, 2025, 5:58am UTC](https://bristlemouth.discourse.group/t/send-and-receive-messages-from-rp2040-over-bristlemouth/547 "2025-10-26T05:58:05Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![NickRaymomd](https://yyz1.discourse-cdn.com/flex029/user_avatar/bristlemouth.discourse.group/nickraymomd/32/140_2.png) [@NickRaymomd](https://bristlemouth.discourse.group/u/NickRaymomd)
#### Post date: [October 26, 2025, 5:58am UTC](https://bristlemouth.discourse.group/t/send-and-receive-messages-from-rp2040-over-bristlemouth/547/1 "2025-10-26T05:58:05Z")

</div>

Here there,

Wouldn’t it be neat if you could send custom messages from your Spotter to a microcontroller wired to your dev kit?

Perhaps you want to toggle and LED on or off, or trigger a motor to activate a quick release mechanism underwater. Or, what if if you could set calibration constants for a sensor after you’ve sealed up the waterproof enclosure or potted the assembly? AND wouldn’t it be awesome if you could do all your firmware development in micropython?

Now you can!

 ![Screenshot 2025-10-25 at 10.43.20 PM](https://canada1.discourse-cdn.com/flex029/uploads/bristlemouth/original/1X/c1cb244728cca29d7c2dffd8b324facc1c7effdb.jpeg)

Thanks to some firmware magic from @matt001k there is an updated `bm_serial.py` that we’ve been testing with RP2040 based microcontrollers running CircuitPython. You can now configure the RP2040 (or similar micropython MCU) to subscribe to custom topics/messages.

Here is a bare-bones repo with a “hello world” example to get you up and running.

> **[GitHub - nickraymond/bm\_dev\_RP2040: Code for getting RP2040 to send data back and...](https://github.com/nickraymond/bm_dev_RP2040)**
>
> Code for getting RP2040 to send data back and forth with Bristlemouth bus

Disclaimers

- This has been tested on the Adafruit RP2040 QTPY board. You’ll need to tweak the UART RX/TX definitions in the bm\_serial.py file to get it working with other Micropython and Circuitpython.
- You’ll need to flash new firmware to your Mote and can use the [instruction here](https://bristlemouth.notion.site/Bristlemouth-Dev-Kit-Guide-3-Exploring-Bristlemouth-Features-09f65c9a854240c9ab0f84bf64008479#ea47c07ed03e46a5b46c731319168563).
- As of now, you’ll need to send the commands to the Spotter over a USB cable so this will have practical limitations for field use.

Let me know if you find this helpful or run into issues, it would be great to hear how this might help other peoples projects.

Thanks for the help getting this off the ground Matt!
