What is this?

This board is a LoRa transceiver operating at 868 MHz, which is one of the the frequency bands allowed for operation in Europe. It is mainly driven by an RP2350 controlling a Semtech SX1261 via SPI, whose output is further amplified by a TI CC1190. The form factor allows its usage as an M5Stack module by means of both the mechanical interface (4 M3 holes at the corner) and the M-Bus electrical interface.

Why did you build this?

The reasons are actually multiple ones. I wanted to experiment with the design of RP2350 based boards, and I had some ideas for microcontroller projects already floating; then, at the time I was lacking a Meshtastic radio for the proper band, so after duly purchasing one I started thinking about how difficult would it be to just go make one myself and adapt the firmware to use it. Since that typically makes use of a Bluetooth enabled micro like the ESP32, I thought to make this adaptable to a M5Stack Core I had lying around, with which I already used a LoRa module in the past. That specific module wasn't particularly user friendly (also I hate AT-based transceivers), so I settled on this present plan.

Specifications

Whilst I haven’t exactly followed a plan to a T, I did write down some initial specifications.

Functional

Interface

Power

RF

Design choices

Components

MCU

The RP2354A will be used in order to save space, as it sports a large enough internal flash and is contained in a QFN-60 package, which is fine considering there is not much to be used

Modem and frontend

In order to reach a higher power output for Lora, the modem from Semtech will be accompanied by a frontend with a PA. The CC1190 from TI was a good candidate both from price and availability standpoint at supplier’s premise. It is able to reach 27dBm max at 3.6V supply and 13dBm input, however given the M-Bus supply it will most likely cap at 25.8dBm with the same input power. For this reason, after fixing the choice to the CC1190, the transceiver has been chosen to be the Semtech SX1261, which is limited in power to max 15 dBm, as opposed as its more powerful counterpart the SX1262. Other modems could be used as well but I’ve often seen low availability of the LR series and also it would be cool to keep the options open for lower bandwith, which the 1261/2 support, as well as lower sensitivity. Another pet peeve regarding the LR series is that the documentation is not as open as the SX series and thus it’s difficult to gauge whether it’s as flexible in using the “raw” LoRa mode as opposed as LoraWAN only (which i’m not presently interested about). Note: It’s most likely possible, given that the reference manual explicitly makes reference to such commands, but it’s presently very intertwined with the github repos, which I think would be a time consuming endavour to self-document and/or reverse engineer.

On board regulators

RP235x LDO from USB

This is going to be an optional component (or optionally enabled) in case of interest in using the module as standalone

External interfaces (non M-BUS)

RP235x debug port

User interaction

LEDs
Switches

Power budget

The total power budget is mainly a concern for “module mode”, as I’ve taken to refer the use case where the module is attached to an M5Stack. The M-Bus of a M5Stack provides a 3v3 regulated supply, which should be enough to supply the 3 most power hungry ICs on the board, namely:
In the following posts I’ll be detailing some more in detail the choice I’ve taken to design the PCB.