Close

Interface with M5Stack "Faces" and ports

A project log for RP2350 868 MHz LoRa board

A standalone board based on the RP2350 and SX1261 that can also act as an M5Stack module

bru3sbru3s 05/07/2025 at 18:380 Comments

As mentioned in the project description, one of the driving forces behind the form factor of the PCB was that I had some products from M5Stack lying around unused, among which the original Core Grey and an expansion module called Faces (specifically the 2nd version), which adds some LEDs and a keyboard.

I specifically wanted to make a T-Deck-like device, so I set forth constraining the PCB dimensions and positioning of components to that.

A note on standalone mode

The project specifications included a "standalone" mode and a "module" mode; these are two ways the device can be used, depending on whether it's mounted as an M5Stack compliant device or not.

Ports

The ports I wanted to have with the outside world were as follows:

Additionally, I added 2 RP-controlled LEDs to indicate status, errors and whatnot to the user; three switches for RP boot, reset and custom action; and a power LEDs to quickly check 3v3 status.

M-Bus

The M-Bus interface follows the orientation used in the Faces II module; so that the bottom of this board will have to mount the female socket, and the male one to propagate that of the faces base.

The following signals have been routed through it:

The RST line was a bit of a pickle since I wanted the OR'ing of all possible sources, but didn't want to do that via diodes. So I decided to put a dedicated IC, i.e. the SN74AHC1G08 (SN74AHC1G08DCKR for smaller SC70-5 footprint) with an additional line from the SWD via a simple resistor.

Also, the M-Bus has also to control the Faces device, which takes up the following pins of the ESP32:

Ports placement

From the attached figure, you can see that there are already two limitations regarding the position of ports and headers:

You can see the general outline of the board from the picture below.

So I ended up placing the ports I was most interested in to the left and top side of the PCB.

In particular, 

Next steps

In the next log I'll briefly touch on the selected GPIO routing, which is not that glamorous since it was basically forced by the aforementioned placement of the ports. I'll also discuss jumper configuration and test points. Stay tuned and thanks for reading!

Discussions