Work in progress WM1303 (SX1302/SX103) #70

Closed
opened 2026-10-27 09:31:27 +01:00 by adam · 13 comments
Owner

I wanted to give a quick notice and update on my progress regarding the WM1303 SPI version (SX1302/SX103) integration.

On this moment I'm using a SenseCAP M1 (Helium hotspot) for development. It has taken an considerable effort to resolve various hardware-specific issues and get everything running stable and smoothly. Beyond basic compatibility, I have implemented several refinements and additions to ensure integration and to unlock the full potential of the WM1303. This includes for example:

  • Support for multiple channels. (So it can also act as a bridge on different frequencies, BW and SF !)
  • Proper configuration of RF and IF chains.
  • Enabling Spectral Scan/CAD functionality via the SX1261.

I expect to have a first fully functional version ready for testing within a week.

Image

Collaboration & Integration:
Looking ahead, I would like to ask the maintainers on the best way forward. Should I keep the necessary modifications for pymc-core and pymc-repeater within my own fork/project for now, or is there interest in integrating these changes directly into the main upstream repositories?

Let me know your thoughts on the preferred workflow!

I wanted to give a quick notice and update on my progress regarding the WM1303 SPI version (SX1302/SX103) integration. On this moment I'm using a SenseCAP M1 (Helium hotspot) for development. It has taken an considerable effort to resolve various hardware-specific issues and get everything running stable and smoothly. Beyond basic compatibility, I have implemented several refinements and additions to ensure integration and to unlock the full potential of the WM1303. This includes for example: - Support for multiple channels. (So it can also act as a bridge on different frequencies, BW and SF !) - Proper configuration of RF and IF chains. - Enabling Spectral Scan/CAD functionality via the SX1261. I expect to have a first fully functional version ready for testing within a week. <img width="1854" height="1724" alt="Image" src="https://github.com/user-attachments/assets/2970c948-1a0d-412c-adf3-408bf41af35f" /> Collaboration & Integration: Looking ahead, I would like to ask the maintainers on the best way forward. Should I keep the necessary modifications for pymc-core and pymc-repeater within my own fork/project for now, or is there interest in integrating these changes directly into the main upstream repositories? Let me know your thoughts on the preferred workflow! <!-- github-sync-id:4184841709 -->
adam closed this issue 2026-10-27 09:31:27 +01:00
Author
Owner

Hi @HansvanMeer!
This is a really great proposal, it could solve a lot of performance issues.
Will your solution work with the RAK5146 WisLink LoRaWAN? Is it ready for testing?
Thank you!

**Hi @HansvanMeer!** This is a really great proposal, it could solve a lot of performance issues. Will your solution work with the [RAK5146 WisLink LoRaWAN](https://docs.rakwireless.com/product-categories/wislink/rak5146/datasheet/)? Is it ready for testing? **Thank you!** <!-- github-comment-id:4172256671 -->
Author
Owner

First of all compliments on this great project with pyMC_Core and Repeater. It offers some exciting possibilities and is becoming quite mature, especially with the latest changes in the Dev branch.

When searching for the SX1303 most results point to failed attempts. However since all the necessary components seemed to be available, I took it as a challenge to get it working :-). It wasn't exactly easy, primarily because the SX1302/SX1303 differs significantly from the SX1262 in certain areas.

SX1302/SX1303 modules can vary slightly between manufacturers, as also can be the required Pi HATs. The increased functionality also adds to the complexity of getting everything running correctly.
The RAK5146 also utilizes the SX1303. Now that it is working for the Seeed WM1303, I see no reason why it shouldn't work for the RAK5146 as well. There is a chance that certain configurations might differ and need adjustment; think of specific pin assignments, whether a pin should be pulled high or low, the SPI bus layout, and a few other hardware-specific variables.

I'm just finishing up the first version. There are still a few small important bugs to fix and an installation script to write. I also need to provide some basic documentation on how the SX1303/SX1302 works. Otherwise, the functionality and settings might be confusing, and it would be easy to run into errors. I think i can release it to you somewhere next week.

First of all compliments on this great project with pyMC_Core and Repeater. It offers some exciting possibilities and is becoming quite mature, especially with the latest changes in the Dev branch. When searching for the SX1303 most results point to failed attempts. However since all the necessary components seemed to be available, I took it as a challenge to get it working :-). It wasn't exactly easy, primarily because the SX1302/SX1303 differs significantly from the SX1262 in certain areas. SX1302/SX1303 modules can vary slightly between manufacturers, as also can be the required Pi HATs. The increased functionality also adds to the complexity of getting everything running correctly. The RAK5146 also utilizes the SX1303. Now that it is working for the Seeed WM1303, I see no reason why it shouldn't work for the RAK5146 as well. There is a chance that certain configurations might differ and need adjustment; think of specific pin assignments, whether a pin should be pulled high or low, the SPI bus layout, and a few other hardware-specific variables. I'm just finishing up the first version. There are still a few small important bugs to fix and an installation script to write. I also need to provide some basic documentation on how the SX1303/SX1302 works. Otherwise, the functionality and settings might be confusing, and it would be easy to run into errors. I think i can release it to you somewhere next week. <!-- github-comment-id:4172646597 -->
Author
Owner

This is great news and a big step for the MeshCore project, which is actively developing in many cities and already has problems with the performance of repeaters in hot areas. I look forward to your release and will be happy to participate in the development and testing, especially since I have all the necessary hardware!

This is great news and a big step for the MeshCore project, which is actively developing in many cities and already has problems with the performance of repeaters in hot areas. I look forward to your release and will be happy to participate in the development and testing, especially since I have all the necessary hardware! <!-- github-comment-id:4172726878 -->
Author
Owner

@HansvanMeer do you mind dm me on discord rightup2407. Might be easier and quick to discuss adding this onto the main branch etc.

@HansvanMeer do you mind dm me on discord rightup2407. Might be easier and quick to discuss adding this onto the main branch etc. <!-- github-comment-id:4176637972 -->
Author
Owner

Hi @HansvanMeer I have a working branch of the code in my github, But i got slammed at work right after i got it working, I also finally got my companion hardware an will check out if 62.5Khz works as well.

happy to try and test things if you want, i have an amount of sensecap M1's running my dev branch at the moment.

The biggest hurdle in having this as a widely usable, will be that the each Pihat has a different GPIO set of enable/disable pins. (can we steal the pin layouts from the Nebra GitHub repo which has the layout for all of them or is that not copyright)

Hi @HansvanMeer I have a working branch of the code in my github, But i got slammed at work right after i got it working, I also finally got my companion hardware an will check out if 62.5Khz works as well. happy to try and test things if you want, i have an amount of sensecap M1's running my dev branch at the moment. The biggest hurdle in having this as a widely usable, will be that the each Pihat has a different GPIO set of enable/disable pins. (can we steal the pin layouts from the Nebra GitHub repo which has the layout for all of them or is that not copyright) <!-- github-comment-id:4186446012 -->
Author
Owner

Hi @HansvanMeer !
I wanted to know how your research into implementing a repeater on a SX1303/SX1302 modem is progressing.
Any news or successes?
Thank you!

**Hi @HansvanMeer !** I wanted to know how your research into implementing a repeater on a SX1303/SX1302 modem is progressing. **Any news or successes?** Thank you! <!-- github-comment-id:4231912668 -->
Author
Owner

There is now a working version available here: https://github.com/HansvanMeer/pyMC_WM1303#

It has been tested on a Sensecap M1. The quickstart section on that page explains how to install it; this installation will also include pymc-core and pymc-repeater (dev).
Important note for now is that you need at least 2 channels, otherwise it won't work. That is currently the most important thing to keep in mind; for the rest it should function correctly.

If you want to try it on a device other than a Sensecap M1, you can adjust the pins where necessary. However, be careful with changes in the 'Adv. config' tab, as you could potentially damage your hardware.

Currently, the installation makes quite a few modifications to pymc-core and pymc-repeater. However, in consultation with RightUP, I am researching how we can make this cleaner and more efficient, after which I will submit some PRs.
The goal is to enable easy integration of various radios with my bridge functionality, making the bridge engine a standard part of pymc.

By the way, the github repo also includes documentation with further explanations of the architecture and the various components, if you're interested! ;-)

There is now a working version available here: https://github.com/HansvanMeer/pyMC_WM1303# It has been tested on a Sensecap M1. The quickstart section on that page explains how to install it; this installation will also include pymc-core and pymc-repeater (dev). Important note for now is that you need at least 2 channels, otherwise it won't work. That is currently the most important thing to keep in mind; for the rest it should function correctly. If you want to try it on a device other than a Sensecap M1, you can adjust the pins where necessary. However, be careful with changes in the 'Adv. config' tab, as you could potentially damage your hardware. Currently, the installation makes quite a few modifications to pymc-core and pymc-repeater. However, in consultation with RightUP, I am researching how we can make this cleaner and more efficient, after which I will submit some PRs. The goal is to enable easy integration of various radios with my bridge functionality, making the bridge engine a standard part of pymc. By the way, the github repo also includes documentation with further explanations of the architecture and the various components, if you're interested! ;-) <!-- github-comment-id:4238683649 -->
Author
Owner

Hi, i also have an RAK Miner LoRa Hat SX1302 for Raspberry Pi 4 and will use it as 868 MHz LoRa MeshCore Repeater.
But the wrapper does not support thins Chip, only the SX1262. Will there be a solution soon?

Hi, i also have an RAK Miner LoRa Hat SX1302 for Raspberry Pi 4 and will use it as 868 MHz LoRa MeshCore Repeater. But the wrapper does not support thins Chip, only the SX1262. Will there be a solution soon? <!-- github-comment-id:4286645512 -->
Author
Owner

@HansvanMeer Hi, just checking in to see how you are getting on 👍

@HansvanMeer Hi, just checking in to see how you are getting on 👍 <!-- github-comment-id:4303715658 -->
Author
Owner

Hi, i also have an RAK Miner LoRa Hat SX1302 for Raspberry Pi 4 and will use it as 868 MHz LoRa MeshCore Repeater. But the wrapper does not support thins Chip, only the SX1262. Will there be a solution soon?

Thanks for your interest in the project.

I think there's a common misunderstanding here — the WM1303 Manager doesn't support either the SX1302 or the SX1262. It actually requires both on the same module:

SX1302 or SX1303 — the LoRa concentrator (baseband processor) for multi-channel RX/TX
SX1261 or SX1262 — a separate radio chip integrated on the same module, used for hardware CAD (Channel Activity Detection), LBT (Listen Before Talk), spectral scanning, noise floor monitoring, and Channel E
If your board is based on the RAK2287 (which most "RAK Miner LoRa Hat SX1302" boards are), it only contains an SX1302 + 2× SX1250 — no SX1261/SX1262 is present on that module. Unfortunately that means it will not work with the WM1303 Manager, as hardware CAD is deeply integrated into the entire TX pipeline and is mandatory for operation.

The RAK5146 (also mPCIe form factor) does include an SX1261 alongside the SX1303. Especially the SPI variant has a good chance of working with this project, though it hasn't been tested yet.

Building a simplified version that works without the SX1261/SX1262 would require significant rework, as many core features depend on it. It's something I may look into when I have more time, but there's no timeline for that at the moment.

For more details please also see the documentation that can be found in the repository:
https://github.com/HansvanMeer/pyMC_WM1303

> Hi, i also have an RAK Miner LoRa Hat SX1302 for Raspberry Pi 4 and will use it as 868 MHz LoRa MeshCore Repeater. But the wrapper does not support thins Chip, only the SX1262. Will there be a solution soon? Thanks for your interest in the project. I think there's a common misunderstanding here — the WM1303 Manager doesn't support either the SX1302 or the SX1262. It actually requires both on the same module: SX1302 or SX1303 — the LoRa concentrator (baseband processor) for multi-channel RX/TX SX1261 or SX1262 — a separate radio chip integrated on the same module, used for hardware CAD (Channel Activity Detection), LBT (Listen Before Talk), spectral scanning, noise floor monitoring, and Channel E If your board is based on the RAK2287 (which most "RAK Miner LoRa Hat SX1302" boards are), it only contains an SX1302 + 2× SX1250 — no SX1261/SX1262 is present on that module. Unfortunately that means it will not work with the WM1303 Manager, as hardware CAD is deeply integrated into the entire TX pipeline and is mandatory for operation. The RAK5146 (also mPCIe form factor) does include an SX1261 alongside the SX1303. Especially the SPI variant has a good chance of working with this project, though it hasn't been tested yet. Building a simplified version that works without the SX1261/SX1262 would require significant rework, as many core features depend on it. It's something I may look into when I have more time, but there's no timeline for that at the moment. For more details please also see the documentation that can be found in the repository: https://github.com/HansvanMeer/pyMC_WM1303 <!-- github-comment-id:4344446583 -->
Author
Owner

@HansvanMeer Hi, just checking in to see how you are getting on 👍

I had hoped to have had a bit more time for this already, but I do expect to come back to you soon with a clearer proposal.

I’ve already been looking into how to integrate the bridge functionality properly, but the more I work through it, the more I’m noticing there are a number of things that also need to be taken into account if we want to do it properly.

So I may have thought about it a bit too simply at first. It’s definitely progressing and it’s also clear now that it touches more architectural details than I initially expected.

I’ll send you a more complete and structured proposal once I’ve got it properly worked through.

> [@HansvanMeer](https://github.com/HansvanMeer) Hi, just checking in to see how you are getting on 👍 I had hoped to have had a bit more time for this already, but I do expect to come back to you soon with a clearer proposal. I’ve already been looking into how to integrate the bridge functionality properly, but the more I work through it, the more I’m noticing there are a number of things that also need to be taken into account if we want to do it properly. So I may have thought about it a bit too simply at first. It’s definitely progressing and it’s also clear now that it touches more architectural details than I initially expected. I’ll send you a more complete and structured proposal once I’ve got it properly worked through. <!-- github-comment-id:4344505122 -->
Author
Owner

I can't seem to get it to advertise from the pymc console using 125K BW.... Is the advert button functional as yet?

I can't seem to get it to advertise from the pymc console using 125K BW.... Is the advert button functional as yet? <!-- github-comment-id:4385775028 -->
Author
Owner

I can't seem to get it to advertise from the pymc console using 125K BW.... Is the advert button functional as yet?

The a advert button is working.

> I can't seem to get it to advertise from the pymc console using 125K BW.... Is the advert button functional as yet? The a advert button is working. <!-- github-comment-id:4400374860 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/pyMC_Repeater#70