M-SoM from Boron or Argon migration guide
Pictures are not the same scale
Hardware
Module style
The primary difference is that the Argon and Boron are pin-based modules that can be installed in solderless breadboard for prototyping, can be installed in a socket on your custom board, or soldered directly to your board.
The M-SoM is a M.2 SoM that fits in a SMD mounted M.2 NGFF connector. It requires a base board and cannot be used on its own. The M.2 socket is not the same as the M.2 sockets used for flash memory in computers.
Datasheets
Certification
When migrating to a new device, recertification is typically required. If you are using the standard Particle antennas you often only need to complete the less expensive unintentional radiator testing of your completed assembly, however in some cases intentional radiator testing could be required.
Software differences
User firmware binary size
One major advantage is that user firmware binaries can be up to 2048 Kbytes, instead of 256 Kbytes on Gen 3 devices using Device OS 3.1.0 or later.
Available RAM
The Boron and Argon have around 80K of RAM available to user applications. The M-SoM has 3500K of available RAM.
Flash file system
There is a 2 MB flash file system for storing user data. This is the same size as the Boron, B-SoM, and Argon. The Tracker has a 4 MB flash file system.
Status LED
The M-SoM does not include a status LED on the module. We recommend adding one to your base board.
Alternatively, if you have a separate hardware control panel, it provides the ability to put the RGB LED there and not duplicate it on the module or base board.
Device OS assumes a common anode RGB LED. One common LED that meets the requirements is the Cree CLMVC-FKA-CL1D1L71BB7C3C3 which is inexpensive and easily procured. You need to add three current limiting resistors. With this LED, we typically use 1K ohm current limiting resistors. These are much larger than necessary. They make the LED less blinding but still provide sufficient current to light the LEDs. If you want maximum brightness you should use the calculated values - 33 ohm on red, and 66 ohm on green and blue.
If you are using a different LED, you should limit current to 2mA per color.
A detailed explanation of different color codes of the RGB system LED can be found here.
Reset and Mode buttons
The M-SoM does not include buttons on module. We highly recommend including reset and mode buttons on your base board.
For example, you could use two-inexpensive SMD switches. The 4.5mm E-Switch TL3305AF160QG costs $0.20 in single quantities.
USB Connector
The M-SoM does not include a USB connector on the module. We recommend including one on your base board. This can be a USB Micro B, as on the Photon and Argon, or you could use USB C.
Since you choose the connector you have the option of using a right-angle USB connector. This is handy if your board will be an enclosure where the board is recessed into the case under a removable cover. This can allow the USB connector to be accessed without removing the board from the enclosure.
Part | Example | Price |
---|---|---|
USB micro B connector | Amphenol FCI 10118194-0001LF | $0.42 |
CONN RCPT USB2.0 MICRO B SMD R/A | Amphenol FCI 10118194-0001LF | $0.42 |
SWD/JTAG
The M-SoM does not include a SWD/JTAG debugging connector on the board. The functionality is available on four pads on the bottom of the SoM. These typically mate with pogo pins on your base board, if you want to include SWD functionality.
Since the M-SoM can be removed from your base board, you can also use a different board, such the M.2 SoM breakout board, for rare situations where you need SWD for low-level reprogramming.
Additionally, SWD is supported on pins on the M.2 connector:
Pin | Pin Name | Description | Interface | MCU |
---|---|---|---|---|
43 | A5 / D14 | A5 Analog in, PWM, GPIO, shared with pin 53 | SWCLK | PB[3] |
53 | A5 / D14 | A5 Analog in, PWM, GPIO, SWCLK, shared with pin 43 | SWCLK | PB[3] |
55 | D27 | D27 GPIO, SWDIO (SWD_DATA), do not pull down at boot | SWDIO | PA[27] |
- SWD is on the same pins as GPIO, so by default once user firmware boots, SWD is no longer available. This is the same as Gen 2 (STM32) but different than Gen 3 (nRF52840).
- SWO (Serial Wire Output) is not supported on the RTL8722DM.
Troubleshooting connector
In some cases, you may want to omit the reset and mode buttons, status LED, USB connector, and SWD/JTAG pins from your board board. If you do, we highly recommend adding a debug connector to make these features available for troubleshooting. The debug connector could be an actual connector, header pins, socket, card-edge connector, or SMD pads that allow an adapter or daughter card with these features.
Voltage regulators
The M-SoM has peak power usage that is higher than the Boron. Be sure the check the guidelines below carefully.
As the M-SoM does not include a built-in power supply like the Boron, you may want to consider using the PM-BAT power module that includes the PMIC, fuel gauge, and voltage regulators.
VCC
VCC is used to supply power to the cellular module. The recommended input voltage range on this pin is between 3.6V to 4.2V DC. This can be connected directly to a 3.7V LiPo battery.
If you are not using a battery, or using a battery of a different voltage, you should use a regulator to supply 3.7V to 4.2V at 2A. You may want to add additional bulk capacitors to handle the short, high current peak usage when the cellular modem is transmitting.
3V3
3V3 is used to supply power to MCU, Wi-Fi, BLE, logic ICs, memory, etc.. Make sure that the supply can handle a minimum of 500 mA.
These limits do not include any 3.3V peripherals on your base board, so that may increase the current requirements.
Power supply requirements:
- 3.3V output
- Maximum 5% voltage drop
- 100 mV peak-to-peak ripple maximum
- 500 mA minimum output current at 3.3V recommended for future compatibility
- Maintain these values at no-load as well as maximum load
LiPo Battery and LI+ pin
The M-SoM does not include a LiPo battery connector or charging circuit on the module. If you want these features you will need to include them on your base board.
This is the LiPo battery connector used on the Argon:
Description | Example | Price |
---|---|---|
JST-PH battery connector | JST B2B-PH-K-S-LF-SN | $0.17 |
As of the first half of 2022, supply chain constraints are affecting the supply of PMICs and charge controllers. Because of this, we are not recommending a specific model to use with your board.
The Argon uses a Torex XC6208A42 LiPo charge controller, however there is no need use this part and it will be difficult to obtain.
The Boron uses a full PMIC (bq24195) and fuel gauge (MAX17043). By including these features on your base board you can provide more full-featured operation on battery power than the Argon does.
EN pin
The Argon and Boron have EN pin which can shut down the Torex XC9258 3.3V regulator to power down the 3.3V supply to the Argon nRF52840 MCU and the ESP32 Wi-Fi coprocessor. A similar feature exists on the Boron, using a load switch to control the 3.3V power supply and the 3.7V cellular modem power supply.
This feature does not exist on the M-SoM, however you could add equivalent circuitry on your base board. This could either be a regulator with power control like the Argon, or an external load switch like the Boron (Torex XC8107). The specific load switch is not important, as long as it meets the power requirements of the MCU and any additional peripherals on 3V3.
Land pattern
The land pattern for the M.2 connector on the M-SoM is:
The Argon/Boron land pattern is:
ADC
Boron Pin Name | Boron ADC | M-SoM Pin | M-SoM Pin Name | M-SoM ADC |
---|---|---|---|---|
A0 / D19 | ✓ | 23 | A0 / D19 | ✓ |
A1 / D18 | ✓ | 33 | A1 / D18 | ✓ |
A2 / D17 | ✓ | 35 | A2 / D17 | ✓ |
A3 / D16 | ✓ | 37 | A3 / D16 | ✓ |
A4 / D15 | ✓ | 41 | A4 / D15 | ✓ |
A5 / D14 | ✓ | 43 | A5 / D14 | ✓ |
53 | A5 / D14 | ✓ | ||
45 | A6 / D29 | ✓ | ||
D8 / WKP | 47 | A7 / WKP | ✓ |
- Same number of ADC on both
- ADC inputs are single-ended and limited to 0 to 3.3V on both
- Resolution is 12 bits on both
The ADCs on the M-SoM (RTL872x) have a lower impedance than other Particle device MCUs (nRF52, STM32F2xx). They require a stronger drive and this may cause issues when used with a voltage divider. This is particularly true for A7, which has an even lower impedance than other ADC inputs.
For signals that change slowly, such as NTC thermocouple resistance, you can add a 2.2 uF capacitor to the signal. For rapidly changing signals, a voltage follower IC can be used.
Serial
Boron Pin Name | Boron Serial | M-SoM Pin | M-SoM Pin Name | M-SoM Serial |
---|---|---|---|---|
D2 | Serial1 RTS | 42 | D2 | Serial1 (RTS) |
58 | D24 | Serial2 (TX) | ||
60 | D25 | Serial2 (RX) | ||
D3 | Serial1 CTS | 40 | D3 | Serial1 (CTS) |
RX / D10 | Serial1 RX | 38 | RX / D10 | Serial1 (RX) |
TX / D09 | Serial1 TX | 36 | TX / D9 | Serial1 (TX) |
- One additional UART serial port on the M-SoM
SPI
Boron Pin Name | Boron I2C | M-SoM Pin | M-SoM Pin Name | M-SoM I2C |
---|---|---|---|---|
D0 | Wire (SDA) | 22 | D0 | Wire (SDA) |
D1 | Wire (SCL) | 20 | D1 | Wire (SCL) |
- There are two SPI interfaces on both, however SPI1 is on different pins on M-SoM.
I2C
Pin | B-SoM Pin Name | B-SoM I2C | M-SoM Pin Name | M-SoM I2C |
---|---|---|---|---|
20 | D1 | Wire (SCL) | D1 | Wire (SCL) |
22 | D0 | Wire (SDA) | D0 | Wire (SDA) |
40 | D3 | Wire1 (SCL) | D3 | |
42 | D2 | Wire1 (SDA) | D2 |
- 1 I2C on M-SoM vs. 2 on the B-Series SoM.
- You can generally have many devices on a single I2C bus.
- If you have I2C address conflicts you can use an I2C multiplexer like the TCA9548A.
- On the M-SoM (and P2 and Photon 2), the only valid I2C clock speeds are
CLOCK_SPEED_100KHZ
andCLOCK_SPEED_400KHZ
. Other speeds are not supported at this time.
PWM
Boron Pin Name | Boron PWM | M-SoM Pin | M-SoM Pin Name | M-SoM PWM |
---|---|---|---|---|
A0 / D19 | ✓ | 23 | A0 / D19 | ✓ |
A1 / D18 | ✓ | 33 | A1 / D18 | ✓ |
A2 / D17 | ✓ | 35 | A2 / D17 | |
A3 / D16 | ✓ | 37 | A3 / D16 | |
A4 / D15 | ✓ | 41 | A4 / D15 | |
A5 / D14 | ✓ | 43 | A5 / D14 | ✓ |
53 | A5 / D14 | ✓ | ||
45 | A6 / D29 | ✓ | ||
D2 | ✓ | 42 | D2 | |
D3 | ✓ | 40 | D3 | |
D4 | ✓ | 66 | D4 | ✓ |
D5 | ✓ | 68 | D5 | ✓ |
D6 | ✓ | 70 | D6 | ✓ |
D7 | ✓ | 72 | D7 | ✓ |
MISO / D11 | 50 | MISO / D11 | ✓ | |
MOSI / D12 | 52 | MOSI / D12 | ✓ | |
RX / D10 | 38 | RX / D10 | ✓ | |
TX / D09 | 36 | TX / D9 | ✓ | |
D8 / WKP | ✓ | 47 | A7 / WKP |
PDM
Pulse density modulation digital microphones can be used with the Microphone_PDM library and the M-SoM, but only on specific pins. The B-SoM can use any pins for PDM (with the same library).
Pin | Pin Name | Description | MCU |
---|---|---|---|
37 | A3 / D16 | A3 Analog in, PDM CLK, GPIO | PB[1] |
41 | A4 / D15 | A4 Analog in, PDM DAT, GPIO | PB[2] |
Boot mode pins
These pins have a special function at boot. Beware when using these pins as input as they can trigger special modes in the MCU.
Pin | Pin Name | Description | MCU |
---|---|---|---|
43 | A5 / D14 | SWCLK. 40K pull-down at boot. | PB[3] |
53 | A5 / D14 | SWCLK. 40K pull-down at boot. | PB[3] |
55 | D27 | SWDIO. 40K pull-up at boot. Low at boot triggers MCU test mode. | PA[27] |
58 | D24 | Low at boot triggers ISP flash download | PA[7] |
60 | D25 | Goes high at boot | PA[8] |
61 | RGBR | Low at boot triggers trap mode | PA[30] |
NFC
The M-SoM does not support NFC.
The Boron and Argon support NFC Tag mode.
Sleep
In
HIBERNATE
sleep mode, the M-SoM can only be wakened by certain pins, but the Boron and Argon can be wakened by any pin.In
STOP
andULTRA_LOW_POWER
sleep modes, the M-SoM, Boron, and Argon can be wakened by any pin.In
HIBERNATE
sleep mode, the M-SoM putsOUTPUT
pins into high-impedance state. The Boron and Argon preserve the digital level.In
STOP
andULTRA_LOW_POWER
sleep modes, the M-SoM, Boron, and Argon preserve the digital outputIn
HIBERNATE
sleep mode, on the M-SoM, pin D21 does not maintainINPUT_PULLUP
orINPUT_PULLDOWN
while asleep.
Pin | Pin Name | Description | Interface | MCU |
---|---|---|---|---|
36 | TX / D9 | Serial TX, PWM, GPIO, SPI1 MOSI, I2S MCLK | Pin can wake from HIBERNATE sleep | PA[12] |
38 | RX / D10 | Serial RX, PWM, GPIO, SPI1 MISO | Pin can wake from HIBERNATE sleep | PA[13] |
40 | D3 | D3 GPIO, Serial1 CTS flow control (optional), SPI1 SS | Pin can wake from HIBERNATE sleep | PA[15] |
42 | D2 | D2 GPIO, Serial RTS flow control (optional), SPI1 SCK | Pin can wake from HIBERNATE sleep | PA[14] |
47 | A7 / WKP | A7 Analog In, WKP, GPIO D28 | Pin can wake from HIBERNATE sleep | PA[20] |
48 | D8 | D8 GPIO, SPI SS | Pin can wake from HIBERNATE sleep | PA[19] |
50 | MISO / D11 | D11 GPIO, PWM, SPI MISO | Pin can wake from HIBERNATE sleep | PA[17] |
52 | MOSI / D12 | D12 GPIO, PWM, SPI MOSI | Pin can wake from HIBERNATE sleep | PA[16] |
54 | SCK / D13 | D13 GPIO, SPI SCK | Pin can wake from HIBERNATE sleep | PA[18] |
Full comparison
3V3
Boron | M-SoM | ||
---|---|---|---|
Pin Name | 3V3 | 3V3 | |
∆ | Description | Regulated 3.3V DC output, maximum load 1000 mA | System power in, supply a fixed 3.3V power, 500 mA minimum |
A0
Boron | M-SoM | ||
---|---|---|---|
Pin Name | A0 | A0 | |
Pin Alternate Name | D19 | D19 | |
Description | A0 Analog in, GPIO, PWM | A0 Analog in, GPIO, PWM | |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
Supports analogRead | Yes | Yes | |
Supports analogWrite (PWM) | Yes | Yes | |
∆ | Supports tone | A0, A1, A2, and A3 must have the same frequency. | Yes |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | 42K |
A1
Boron | M-SoM | ||
---|---|---|---|
Pin Name | A1 | A1 | |
Pin Alternate Name | D18 | D18 | |
Description | A1 Analog in, GPIO, PWM | A1 Analog in, GPIO, PWM | |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
Supports analogRead | Yes | Yes | |
Supports analogWrite (PWM) | Yes | Yes | |
∆ | Supports tone | A0, A1, A2, and A3 must have the same frequency. | Yes |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | ??? |
A2
Boron | M-SoM | ||
---|---|---|---|
Pin Name | A2 | A2 | |
Pin Alternate Name | D17 | D17 | |
∆ | Description | A2 Analog in, GPIO, PWM | A2 Analog in, GPIO |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
Supports analogRead | Yes | Yes | |
∆ | Supports analogWrite (PWM) | Yes | No |
∆ | Supports tone | A0, A1, A2, and A3 must have the same frequency. | No |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | 22K |
A3
Boron | M-SoM | ||
---|---|---|---|
Pin Name | A3 | A3 | |
Pin Alternate Name | D16 | D16 | |
∆ | Description | A3 Analog in, GPIO, PWM | A3 Analog in, PDM CLK, GPIO |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
Supports analogRead | Yes | Yes | |
∆ | Supports analogWrite (PWM) | Yes | No |
∆ | Supports tone | A0, A1, A2, and A3 must have the same frequency. | No |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | 2.1K |
A4
Boron | M-SoM | ||
---|---|---|---|
Pin Name | A4 | A4 | |
Pin Alternate Name | D15 | D15 | |
∆ | Description | A4 Analog in, GPIO, PWM | A4 Analog in, PDM DAT, GPIO |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
Supports analogRead | Yes | Yes | |
∆ | Supports analogWrite (PWM) | Yes | No |
∆ | Supports tone | A4, A5, D2, and D3 must have the same frequency. | No |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | 2.1K |
A5
Boron | M-SoM | ||
---|---|---|---|
Pin Name | A5 | A5 | |
Pin Alternate Name | D14 | D14 | |
∆ | Description | A5 Analog in, GPIO, PWM, SPI SS | A5 Analog in, PWM, GPIO, shared with pin 53 |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
Supports analogRead | Yes | Yes | |
Supports analogWrite (PWM) | Yes | Yes | |
∆ | Supports tone | A4, A5, D2, and D3 must have the same frequency. | Yes |
∆ | SPI interface | SS. Use SPI object. This is only the default SS/CS pin, you can use any GPIO instead. | n/a |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | ??? |
∆ | SWD interface | n/a | SWCLK. 40K pull-down at boot. |
∆ | Signal used at boot | n/a | SWCLK. 40K pull-down at boot. |
A5
Added to M-SoM | |
---|---|
Pin Name | A5 |
Pin Alternate Name | D14 |
Description | A5 Analog in, PWM, GPIO, SWCLK, shared with pin 43 |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports analogRead | Yes |
Supports analogWrite (PWM) | Yes |
Supports tone | Yes |
Supports attachInterrupt | Yes |
Internal pull resistance | 42K |
SWD interface | SWCLK. 40K pull-down at boot. |
Signal used at boot | SWCLK. 40K pull-down at boot. |
A6
Added to M-SoM | |
---|---|
Pin Name | A6 |
Pin Alternate Name | D29 |
Description | A6 Analog in, GPIO, PWM, M.2 eval PMIC INT |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports analogRead | Yes |
Supports analogWrite (PWM) | Yes |
Supports tone | Yes |
Supports attachInterrupt | Yes |
Internal pull resistance | ??? |
AGND
Added to M-SoM | |
---|---|
Pin Name | AGND |
Description | Analog Ground. |
CELL USBD-
Added to M-SoM | |
---|---|
Pin Name | CELL USBD- |
Description | Cellular Modem USB Data- |
Input is 5V Tolerant | Yes |
CELL USBD+
Added to M-SoM | |
---|---|
Pin Name | CELL USBD+ |
Description | Cellular Modem USB Data+ |
Input is 5V Tolerant | Yes |
CELL VBUS
Added to M-SoM | |
---|---|
Pin Name | CELL VBUS |
Description | USB detect pin for cellular modem. 5V on this pin enables the Cellular Modem USB interface. |
Input is 5V Tolerant | Yes |
CELL_RI
Added to M-SoM | |
---|---|
Pin Name | CELL_RI |
Description | CELL_RI, ring indicator output, leave unconnected. |
D0
Boron | M-SoM | ||
---|---|---|---|
Pin Name | D0 | D0 | |
∆ | Description | I2C SDA, GPIO | D0 GPIO, I2C SDA |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
∆ | I2C interface | SDA. Use Wire object. | SDA. Use Wire object. Use 1.5K to 10K external pull-up resistor. |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | ??? |
D1
Boron | M-SoM | ||
---|---|---|---|
Pin Name | D1 | D1 | |
∆ | Description | I2C SCL, GPIO | D1 GPIO, I2C SCL |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
∆ | I2C interface | SCL. Use Wire object. | SCL. Use Wire object. Use 1.5K to 10K external pull-up resistor. |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | ??? |
D2
Boron | M-SoM | ||
---|---|---|---|
Pin Name | D2 | D2 | |
∆ | Description | SPI1 SCK, Serial1 RTS, GPIO, PWM | D2 GPIO, Serial RTS flow control (optional), SPI1 SCK |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
∆ | Supports analogWrite (PWM) | Yes | No |
∆ | Supports tone | A4, A5, D2, and D3 must have the same frequency. | No |
UART serial | RTS. Use Serial1 object. | RTS. Use Serial1 object. | |
SPI interface | SCK. Use SPI1 object. | SCK. Use SPI1 object. | |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | ??? |
D20
Added to M-SoM | |
---|---|
Pin Name | D20 |
Description | D20 GPIO, I2S TX |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports attachInterrupt | Yes |
I2S interface | I2S TX |
Internal pull resistance | ??? |
D21
Added to M-SoM | |
---|---|
Pin Name | D21 |
Description | D21 GPIO, I2S RX |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports attachInterrupt | Yes |
I2S interface | I2S RX |
Internal pull resistance | 22K. No internal pull up or pull down in HIBERNATE sleep mode. |
D22
Added to M-SoM | |
---|---|
Pin Name | D22 |
Description | D22 GPIO |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports attachInterrupt | Yes |
Internal pull resistance | ??? |
D23
Added to M-SoM | |
---|---|
Pin Name | D23 |
Description | D23 GPIO |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports attachInterrupt | Yes |
Internal pull resistance | ??? |
D24
Added to M-SoM | |
---|---|
Pin Name | D24 |
Description | D24 GPIO, Serial2 TX, do not pull down at boot |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
UART serial | TX. Use Serial2 object. |
Supports attachInterrupt | Yes |
Internal pull resistance | 42K |
Signal used at boot | Low at boot triggers ISP flash download |
D25
Added to M-SoM | |
---|---|
Pin Name | D25 |
Description | GPIO25, Serial2 RX |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
UART serial | RX. Use Serial2 object. |
Supports attachInterrupt | Yes |
Internal pull resistance | 42K |
Signal used at boot | Goes high at boot |
D26
Added to M-SoM | |
---|---|
Pin Name | D26 |
Description | D26 GPIO, I2S WS |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports attachInterrupt | Yes |
I2S interface | I2S WS |
Internal pull resistance | ??? |
D27
Added to M-SoM | |
---|---|
Pin Name | D27 |
Description | D27 GPIO, SWDIO (SWD_DATA), do not pull down at boot |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports attachInterrupt | Yes |
Internal pull resistance | 42K |
SWD interface | SWDIO. 40K pull-up at boot. |
Signal used at boot | SWDIO. 40K pull-up at boot. Low at boot triggers MCU test mode. |
D3
Boron | M-SoM | ||
---|---|---|---|
Pin Name | D3 | D3 | |
∆ | Description | SPI1 MOSI, Serial1 CTS, PWM, GPIO | D3 GPIO, Serial1 CTS flow control (optional), SPI1 SS |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
∆ | Supports analogWrite (PWM) | Yes | No |
∆ | Supports tone | A4, A5, D2, and D3 must have the same frequency. | No |
UART serial | CTS. Use Serial1 object. | CTS. Use Serial1 object. | |
∆ | SPI interface | MOSI. Use SPI1 object. | SS. Use SPI1 object. |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | ??? |
D4
Boron | M-SoM | ||
---|---|---|---|
Pin Name | D4 | D4 | |
∆ | Description | SPI1 MISO, PWM, GPIO | D4 GPIO, PWM |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
Supports analogWrite (PWM) | Yes | Yes | |
∆ | Supports tone | D4, D5, D6, and D7 must have the same frequency. | Yes |
∆ | SPI interface | MISO. Use SPI1 object. | n/a |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | ??? |
D5
Boron | M-SoM | ||
---|---|---|---|
Pin Name | D5 | D5 | |
∆ | Description | PWM, GPIO | D5 GPIO, PWM, I2S TX |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
Supports analogWrite (PWM) | Yes | Yes | |
∆ | Supports tone | D4, D5, D6, and D7 must have the same frequency. | Yes |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | I2S interface | n/a | I2S TX |
∆ | Internal pull resistance | 13K | ??? |
D6
Boron | M-SoM | ||
---|---|---|---|
Pin Name | D6 | D6 | |
∆ | Description | PWM, GPIO | D6 GPIO, PWM, I2S CLK |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
Supports analogWrite (PWM) | Yes | Yes | |
∆ | Supports tone | D4, D5, D6, and D7 must have the same frequency. | Yes |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | I2S interface | n/a | I2S CLK |
∆ | Internal pull resistance | 13K | ??? |
D7
Boron | M-SoM | ||
---|---|---|---|
Pin Name | D7 | D7 | |
∆ | Description | PWM, GPIO | D7 GPIO, PWM, I2S WS |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
∆ | Supports analogWrite (PWM) | PWM is shared with the RGB LED, you can specify a different duty cycle but should not change the frequency. | Yes |
∆ | Supports tone | No | Yes |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | I2S interface | n/a | I2S WS |
∆ | Internal pull resistance | 13K | ??? |
D8
Added to M-SoM | |
---|---|
Pin Name | D8 |
Description | D8 GPIO, SPI SS |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
SPI interface | Default SS for SPI. |
Supports attachInterrupt | Yes |
Internal pull resistance | 2.1K |
EN
Removed from Boron | |
---|---|
Pin Name | EN |
Description | Power supply enable. Connect to GND to power down. Has internal weak (100K) pull-up. |
GND
Unchanged between Boron and M-SoM | |
---|---|
Pin Name | GND |
Description | Ground. |
GNSS_TX
Added to M-SoM | |
---|---|
Pin Name | GNSS_TX |
Description | Cellular modem GNSS UART TX |
LI+
Removed from Boron | |
---|---|
Pin Name | LI+ |
Description | Connected to JST PH LiPo battery connector. 3.7V in or out. |
MISO
Boron | M-SoM | ||
---|---|---|---|
Pin Name | MISO | MISO | |
Pin Alternate Name | D11 | D11 | |
∆ | Description | SPI MISO, GPIO | D11 GPIO, PWM, SPI MISO |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
∆ | Supports analogWrite (PWM) | No | Yes |
∆ | Supports tone | No | Yes |
SPI interface | MISO. Use SPI object. | MISO. Use SPI object. | |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | 2.1K |
MODE
Boron | M-SoM | ||
---|---|---|---|
Pin Name | MODE | MODE | |
∆ | Description | MODE button, has internal pull-up | MODE button. Pin number constant is BTN. External pull-up required! |
∆ | Supports attachInterrupt | n/a | Yes |
MOSI
Boron | M-SoM | ||
---|---|---|---|
Pin Name | MOSI | MOSI | |
Pin Alternate Name | D12 | D12 | |
∆ | Description | SPI MOSI, GPIO | D12 GPIO, PWM, SPI MOSI |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
∆ | Supports analogWrite (PWM) | No | Yes |
∆ | Supports tone | No | Yes |
SPI interface | MOSI. Use SPI object. | MOSI. Use SPI object. | |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | 2.1K |
NC
Added to M-SoM | |
---|---|
Pin Name | NC |
Description | n/a |
RGBB
Added to M-SoM | |
---|---|
Pin Name | RGBB |
Description | RGB LED Blue |
RGBG
Added to M-SoM | |
---|---|
Pin Name | RGBG |
Description | RGB LED Green |
RGBR
Added to M-SoM | |
---|---|
Pin Name | RGBR |
Description | RGB LED Red |
Signal used at boot | Low at boot triggers trap mode |
RST
Boron | M-SoM | ||
---|---|---|---|
Pin Name | RST | RST | |
∆ | Description | Hardware reset. Pull low to reset; can leave unconnected in normal operation. | Hardware reset, active low. External pull-up required. |
RX
Boron | M-SoM | ||
---|---|---|---|
Pin Name | RX | RX | |
Pin Alternate Name | D10 | D10 | |
∆ | Description | Serial RX, GPIO | Serial RX, PWM, GPIO, SPI1 MISO |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
∆ | Supports analogWrite (PWM) | No | Yes |
∆ | Supports tone | No | Yes |
UART serial | RX. Use Serial1 object. | RX. Use Serial1 object. | |
∆ | SPI interface | n/a | MISO. Use SPI1 object. |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | 2.1K |
SCK
Boron | M-SoM | ||
---|---|---|---|
Pin Name | SCK | SCK | |
Pin Alternate Name | D13 | D13 | |
∆ | Description | SPI SCK, GPIO | D13 GPIO, SPI SCK |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
SPI interface | SCK. Use SPI object. | SCK. Use SPI object. | |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | 2.1K |
SIM_CLK
Added to M-SoM | |
---|---|
Pin Name | SIM_CLK |
Description | Leave unconnected, 1.8V/3V SIM Clock Output from cellular modem. |
SIM_DATA
Added to M-SoM | |
---|---|
Pin Name | SIM_DATA |
Description | Leave unconnected, 1.8V/3V SIM Data I/O of cellular modem with internal 4.7 k pull-up. |
SIM_RST
Added to M-SoM | |
---|---|
Pin Name | SIM_RST |
Description | Leave unconnected, 1.8V/3V SIM Reset Output from cellular modem. |
SIM_VCC
Added to M-SoM | |
---|---|
Pin Name | SIM_VCC |
Description | Leave unconnected, 1.8V/3V SIM Supply Output from R410M. |
TX
Boron | M-SoM | ||
---|---|---|---|
Pin Name | TX | TX | |
∆ | Pin Alternate Name | D09 | D9 |
∆ | Description | Serial TX, GPIO | Serial TX, PWM, GPIO, SPI1 MOSI, I2S MCLK |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
∆ | Supports analogWrite (PWM) | No | Yes |
∆ | Supports tone | No | Yes |
UART serial | TX. Use Serial1 object. | TX. Use Serial1 object. | |
∆ | SPI interface | n/a | MOSI. Use SPI1 object. |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | I2S interface | n/a | I2S MCLK |
∆ | Internal pull resistance | 13K | 2.1K |
USBDATA-
Added to M-SoM | |
---|---|
Pin Name | USBDATA- |
Description | USB Data- |
Input is 5V Tolerant | Yes |
USBDATA+
Added to M-SoM | |
---|---|
Pin Name | USBDATA+ |
Description | USB Data+ |
Input is 5V Tolerant | Yes |
VCC
Added to M-SoM | |
---|---|
Pin Name | VCC |
Description | System power in, connect to the +LiPo or supply a fixed 3.6-4.3V power. |
VUSB
Removed from Boron | |
---|---|
Pin Name | VUSB |
Description | Power out (when powered by USB) 5 VDC at 1A maximum. Power in with limitations. |
Input is 5V Tolerant | Yes |
WKP
Boron | M-SoM | ||
---|---|---|---|
∆ | Pin Name | D8 | A7 |
Pin Alternate Name | WKP | WKP | |
∆ | Description | GPIO, PWM | A7 Analog In, WKP, GPIO D28 |
Supports digitalRead | Yes | Yes | |
Supports digitalWrite | Yes | Yes | |
∆ | Supports analogRead | No | Yes |
∆ | Supports analogWrite (PWM) | Yes | No |
∆ | Supports tone | D4, D5, D6, and D7 must have the same frequency. | No |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | ??? |
Software
Wi-Fi configuration
Since the Boron (cellular) does not have Wi-Fi support, if you wish to use Wi-Fi on the M-SoM you will need to provide a way to configure it. Wi-Fi setup works the same as the P2, Photon 2, and Argon, and uses BLE. See Wi-Fi setup options for more information.
User firmware binary size
One major advantage of the M-SoM is that user firmware binaries can be up to 2048 Kbytes.
On the B-SoM (Device OS 3.1 and later), it's 256 Kbytes, or 128 Kbytes for older version of Device OS.
Platform ID
The Platform ID of the msom (35, PLATFORM_MSOM
) is different from that of the Boron (13) because of the vastly different hardware.
If you have a product based on the Boron, you will need to create a separate product for devices using the M-SoM. While you may be able to use the same source code to build your application, the firmware binaries uploaded to the console will be different, so they need to be separate products. This generally does not affect billing as only the number of devices, not the number of products, is counted toward your plan limits.
Third-party libraries
Most third-party libraries are believed to be compatible. The exceptions include:
- Libraries for MCU-specific features (such as ADC DMA)
- Libraries that are hardcoded to support only certain platforms by their PLATFORM_ID
- Libraries that manipulate GPIO at high speeds or are timing-dependent
DS18B20 (1-Wire temperature sensor)
- Not compatible
- OneWire library requires high-speed GPIO support
- Can use DS2482 I2C to 1-Wire bridge chip instead
- SHT30 sensors (I2C) may be an alternative in some applications
FastLED
- Not compatible.
- In theory the library could be modified to use the same technique as the NeoPixel library.
NeoPixel (WS2812, WS2812B, and WS2813)
- Requires Device OS 5.3.2 or later and Particle-NeoPixel version 1.0.3.
OneWire
- Not compatible
- OneWire library requires high-speed GPIO support
- Can use DS2482 I2C to OneWire bridge instead
DHT22 and DHT11 (temperature and humidity sensor)
- Not compatible, requires high-speed GPIO support
- Using an I2C temperature and humidity sensor like the SHT3x is recommended instead
SHT1x (temperature and humidity sensor)
- Not compatible, requires high-speed GPIO support
- SHT3x using I2C is recommended
SparkIntervalTimer
- Not compatible at this time
- Requires hardware timer support from user firmware
Revision history
Revision | Date | Author | Comments |
---|---|---|---|
pre | 2023-10-03 | RK | Initial version |
2023-12-20 | RK | Additional notes for ADCs, D24, and D25 | |
001 | 2024-04-02 | RK | General availability |
002 | 2024-04-18 | RK | Add PDM microphone |