Skip to content

Add Muzi Base Uno and Base Duo board support#1746

Open
johngag wants to merge 4 commits intomeshcore-dev:mainfrom
johngag:main
Open

Add Muzi Base Uno and Base Duo board support#1746
johngag wants to merge 4 commits intomeshcore-dev:mainfrom
johngag:main

Conversation

@johngag
Copy link

@johngag johngag commented Feb 20, 2026

New variant for the Muzi Works Base Uno (nRFLR1262, SX1262) and Base Duo (nRFLR1121, LR1121) boards. Both share the same PCB with QWIIC I2C, QSPI flash, USB-C, and battery management. The Duo reuses the Uno board class and pin definitions, differing only in the radio driver (CustomLR1110 vs CustomSX1262).

Build environments per board:

  • repeater (headless), repeater_oled (with SSD1306 display)
  • companion_radio_usb, companion_radio_ble
  • room_server

New variant for the Muzi Works Base Uno (nRFLR1262, SX1262) and
Base Duo (nRFLR1121, LR1121) boards. Both share the same PCB with
QWIIC I2C, QSPI flash, USB-C, and battery management. The Duo
reuses the Uno board class and pin definitions, differing only in
the radio driver (CustomLR1110 vs CustomSX1262).

Build environments per board:
- repeater (headless), repeater_oled (with SSD1306 display)
- companion_radio_usb, companion_radio_ble
- room_server
@thetooth
Copy link

Thanks for this, testing on DUO hardware it appears as though radio is only able to transmit, it's completely deaf on 915Mhz band. Any ideas?

@johngag
Copy link
Author

johngag commented Feb 21, 2026

Thanks for this, testing on DUO hardware it appears as though radio is only able to transmit, it's completely deaf on 915Mhz band. Any ideas?

hmm, to be honest I only have an UNO to test it out. I think I have an idea why the DUO is not working. Let me trying to put something together.

The LR1121 requires a DIO5/DIO6 RF switch table to switch between
TX and RX modes. Without it the radio can transmit but is deaf on
receive.
@johngag
Copy link
Author

johngag commented Feb 21, 2026

@thetooth Ok, I posted a fix for you to try. Let me know

@thetooth
Copy link

Tested and no change. There are no entries in the RX log or any errors/messages in the device log when sending from another device. I tested a completely fresh one since the DUO I was using had been set to 2.4Ghz before and maybe it was stuck in that mode but that's not the case.

Looking at the noise floor value, it's -119dB and doesn't change so the RX is completely off, I'll play around with some things and report back if I can get it working.

- Uno: SX1262 TCXO voltage corrected from 1.8V to 3.3V
- Duo: LR1121 IRQ pin corrected to P1.08 (pin 40)
- Duo: RF switch table set to 2-DIO (DIO5/DIO6)
- Duo: LR11x0 TCXO voltage set to 3.0V
@johngag
Copy link
Author

johngag commented Feb 27, 2026

@thetooth Can you give your DUO a try now?

@thetooth
Copy link

thetooth commented Mar 1, 2026

@johngag no luck still. I have been looking into the meshtastic implementation to see if there is a bug fix for LR1121 that we haven't picked up, #9705 and #1743 looked promising but no change.

However, I FINALLY got somewhere purely by accident. I have been using the BLE companion for all of the testing and when I forgot to connect the BLE client to the device while looking at the serial output all of a sudden I get:

: RX, len=22 (type=2, route=D, payload_len=20) SNR=14 RSSI=-22 score=1000 time=312 hash=5C83E51875E5317B [97 -> CC]
DEBUG: RadioLibWrapper: noise_floor = -106
: TX, len=6 (type=3, route=D, payload_len=4)
DEBUG:  Dispatcher::loop(): WARNING: outbound packed send timed out!

So looks like RX is working with the hardware configuration fine, but whenever we have serial companion in the connected state it breaks. Tested the different build modes, BLE, USB, repeater, etc are all affected in the same way as soon as the comms class is active with the client RX stops.

DEBUG: App meshcore-flutter connected
: TX, len=22 (type=2, route=D, payload_len=20) [CC -> 97]
DEBUG:  Dispatcher::loop(): WARNING: outbound packed send timed out!
DEBUG:  Dispatcher::checkSend(): CAD busy max duration reached!
: TX, len=22 (type=2, route=D, payload_len=20) [CC -> 97]
DEBUG:  Dispatcher::loop(): WARNING: outbound packed send timed out!
DEBUG:  Dispatcher::checkSend(): CAD busy max duration reached!
--- BLE disconnected here ---
: TX, len=22 (type=2, route=D, payload_len=20) [CC -> 97]
DEBUG:  Dispatcher::loop(): WARNING: outbound packed send timed out!
: RX, len=6 (type=3, route=D, payload_len=4) SNR=13 RSSI=-21 score=1000 time=181 hash=B449B287F11F66B1

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

Successfully merging this pull request may close these issues.

2 participants