M-SoM from E-Series Migration Guide

Pictures are not the same scale

The M-SoM (system-on-a-module) is a 4th-generation cellular and Wi-Fi device. It plugs into an M.2 NGFF connector on your custom circuit board and is intended for mass production use.

Like the E-Series module, it requires your own custom base board. One difference is that the M-SoM does not contain the PMIC and fuel gauge chips that the E-Series does.

Additionally, different dimensions makes it possible to include a LTE Cat 1 with 2G/3G fallback cellular modem, such as the Quectel EG91-E on the B524.

All E-Series models (except for the E404X) have been deprecated. It is recommended that you migrate to the B-SoM or M-SoM, and it is required to get LTE Cat 1 with 2G/3G fallback support in Europe, Australia, and New Zealand. While the E404X has the same footprint as the other E-Series modules, it contains the same MCU as the B-SoM.

Feature E-Series SoM E-Series Base Board M-SoM SoM Base Board
U.FL Antenna Connector Optional
MFF2 SMD Particle SIM2  
USB Connector Optional   Optional
Status LED Optional   Optional
Reset and Mode Buttons Optional   Optional
Battery Connector Optional   Optional
PMIC and Fuel Gauge1   Optional

1The PMIC (power management IC) and fuel gauge are used with battery-powered applications. They're omitted from the SoM as they are not needed for externally powered solutions (grid or automotive power, for example). Additionally, you may want to use different models if you are making a solar-powered device, or using a different battery technology or multiple battery pack.

2The built-in Particle SIM card is free for use up to certain limits, no credit card required.

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.

Prototyping

The M-SoM cannot be used without a base board. Typically you will create your own board, however there are two off-the-shelf options available:

B-Series Eval board

B-Series Eval

The B-Series evaluation board provides a variety of interfaces and access to all ports and pins on the M-SoM. You can use the expansion connector to connect the evaluation board to a breadboard for prototyping. You can also add sensors and accessories using the Grove expansion connectors.

Ports Diagram
Num ID Description
1 External Power 5-12 VDC. Minimum power requirements are 5VDC @500mA (when using the LiPo battery) or 5VDC @2000mA (without LiPo battery).
2 LiPo Battery connector Plug in the LiPo battery here.
3 SoM USB port This is the module's main USB port that connects to the microcontroller.
4 JTAG connector This can plug directly into the Particle debugger ribbon cable.
5 Battery switch Controls power between the LiPo connector and the charge controller.
6 SoM power switch Controls 3V3 power to the SoM
7 u-blox USB port This USB port connects directly to the u-blox module for firmware updates.
8 Ethernet connector RJ45 connector for twisted pair Ethernet, 10 or 100 Mbit/sec.
9 PoE connector Connect for the Particle PoE adapter for power-over-Ethernet.
10 Cellular antenna Connector for an external SMA connected cellular antenna.
11 Bluetooth antenna Connector for an external SMA connected antenna for Bluetooth networking.
12 TF/SD Card MicroSD card slot.
13 User LED Blue LED connected to pin D7.
14 Reset Button This is same as the RESET button on the Boron.
15 RGB LED System status indicator RGB LED.
16 Mode Button This is the same as the MODE button on the Boron.
17 Expansion Connector Allows easy access to SoM IO pins.
18 Grove Analog Port Connects to Seeed Studio Grove analog and digital boards.
19 Grove I2C Port Connects to Seeed Studio Grove I2C boards.
20 NFC Antenna U.FL connector for an NFC antenna (optional).
21 Jumpers J12 Enable or disable various features on the evaluation board.
22 SoM connector M.2 connector for the B-Series SoM.
23 Jumpers J13 Enable or disable various features on the evaluation board.
24 Power Jumpers Enable or disable power from the evaluation board.
25 Charge LED Indicate LiPo is charging.
Block Diagram

Mikroe Gen 3 SoM shield

Mikroe Gen 3 SoM

The Gen 3 SoM shield connects a B-Series SoM to mikroBUS Click boards:

M.2 Pin Generic SoM Gen 3 mikroBUS #1 mikroBUS #2
20 SCL D1 SCL SCL
22 SDA D0 SDA SDA
23 ADC0 A0 RST2
33 ADC1 A1 AN1
35 ADC2 A2 AN2
36 TX TX/D9 TX TX
37 ADC3 A3
38 RX TX/D10 RX RX
41 ADC4 A4
43 ADC5 A5
45 ADC6 A6
47 ADC7 A7
48 CS D8 CS1
50 MISO MISO/D11 MISO MISO
52 MOSI MOSI/D12 MOSI MOSI
54 SCK SCK/D13 SCK SCK
62 GPIO0 D22 INT1
64 GPIO1 D23 INT2
66 PWM0 D4 CS2
68 PWM1 D5 PWM1
70 PWM2 D6 PWM2
72 PWM3 D7 RST1

There is a huge library of mikroBUS Click expansion boards, however the caveat is that most of them do not already have a Particle software library. If the board is for a common sensor or chip, however, existing Particle libraries for the chip will typically work, even if not designed work with the Click.

For more information, see the Mikroe community page.

Creating a board

First SoM board tutorial

The SoM first board tutorial shows how to get started with the M.2 SoM boards by making the simplest possible design. It's an introduction to working with surface mount components you will need in order to make your own SoM base board.

Board Image

Basic SoM design

This design is a bit more complicated, and includes the PMIC and Fuel Gauge chips that are present on the E-Series:

Whole Board

  • RGB LED
  • bq24195 PMIC
  • MAX17043 Fuel Gauge
  • USB Connector
  • LiPo Connector (JST-PH)
  • M.2 SoM Connector

This is the basic set of features you'll probably want to include in a LiPo battery-powered design. The Evaluation Board is also a good reference to use. This design, however, is simple enough that it can be hand-assembled, though you still need a reflow oven and some of the parts (in particular the fuel gauge and PMIC) are tiny and there are a lot of them.

This board a two-layer circuit board so it can be manufactured inexpensively and edited using the free version of Eagle CAD.

As this board doesn't really do much, you'll unlikely use it as-is, but you can use it as a tutorial for how to hook up the PMIC and fuel gauge.

Power requirements

The M-SoM has peak power usage that is higher than the E-Series SoM. Be sure the check the guidelines below carefully.

As the M-SoM does not include a built-in power supply like the E-Series SoM, 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. Make sure that the supply can handle currents of at least 2 A.

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 RTL8722 MCU, 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

Software differences

User firmware binary size

One major advantage is that user firmware binaries can be up to 2048 Kbytes, instead of 128 Kbytes on Gen 2 devices.

Flash file system

There is a 2 MB flash file system for storing user data on the M-SoM. This is not available on the E-Series (except for the E404X).

Combined and resumable OTA

Over-the-air (OTA) updates have two features that can improve the speed and reliability of OTA updates:

  • Combined OTA can combine Device OS and user firmware updates into a single binary that requires only one download and one reboot to install.
  • Resumable OTA allows an update to resume from the point it stopped, instead of starting over from the beginning if interrupted.

Asset OTA

Asset OTA makes it possible to include bundled assets in an OTA software update that can be delivered to other processors and components in your product.

Increased API field limits

The maximum size of a variable, function parameter, or publish is 1024 bytes on the M-SoM vs. 864 bytes on the E-Series.

API Field E-Series M-SoM
Variable Key 64 64
Variable Data 864 1024
Function Key 64 64
Function Argument 864 1024
Publish/Subscribe Event Name 64 64
Publish/Subscribe Event Data 864 1024
  • These comparisons are between the STM32F205-based E-Series models, other than the E404X. The API field limits for the E404X (nRF52840) are the same as as the M-SoM.

Hardware differences

MCU

Measure E-Series M-SoM
MCU STM32F205 RTL8722DM
Manufacturer ST Microelectronics Realtek
Processor ARM Cortex M3 ARM Cortex M33
Speed 120 MHz 200 MHz
Available RAM 55 KB 3500 KB
User firmware size 128 KB 2048 KB
Flash file system   2 MB
Hardware floating point  
Secure Boot  
  • These comparisons are between the STM32F205-based E-Series models, other than the E404X. The specifications for the E404X (nRF52840) are different.

BLE (Bluetooth LE)

  • Bluetooth LE (BLE 5.0) is supported on M-SoM but not the E-Series (except for the E404X, which does support BLE).

GPIO

E-Series Pin E-Series Pin Name E-Series GPIO M-SoM Pin M-SoM Pin Name M-SoM GPIO
26 A0 23 A0 / D19
25 A1 33 A1 / D18
24 A2 35 A2 / D17
23 A3 37 A3 / D16
22 A4 41 A4 / D15
21 A5 43 A5 / D14
      53 A5 / D14
33 B0      
32 B1      
31 B2      
30 B3      
29 B4      
28 B5      
49 C0      
48 C1      
47 C2      
46 C3      
45 C4      
44 C5      
42 D0 22 D0
41 D1 20 D1
40 D2 42 D2
      19 D20
      17 D21
      62 D22
      64 D23
      58 D24
      60 D25
      59 D26
      55 D27
39 D3 40 D3
38 D4 66 D4
37 D5 68 D5
36 D6 70 D6
35 D7 72 D7
      48 D8
20 DAC / A6 45 A6 / D29
      50 MISO / D11
      52 MOSI / D12
17 RX 38 RX / D10
      54 SCK / D13
16 TX 36 TX / D9
19 WKP / A7 47 A7 / WKP

The MCP23008 is an 8-port GPIO expander that connects to I2C and works well with Gen 3 devices. You can connect up to 8 of them to a single I2C interface. the MCP23017 has 16-ports, and you can also connect 8 of them, for a total of 128 GPIO ports.

The application note AN013 Tracker GPIO shows how you can add additional GPIO to your Tracker One using the external M8 connector, however the same technique can also be used with the M-SoM. It includes both 3.3V and 5V design options.

5V tolerance

The other difference in the GPIO between Gen 2 and the M-SoM is with 5V tolerance. While both devices are 3.3V devices and only will drive 3.3V, the I/O pins on Gen 2 devices (with the exception of A3 and A6) are 5V tolerant. This allows a Gen 2 device to connect to some 5V peripherals directly.

You must not connect 5V peripherals to a Gen 3 or Gen 4 device. This includes GPIO, ports (serial, I2C, SPI), and ADC.

Interfacing with 5V peripherals can be done with a level shifter, a MOSFET, or a 5V GPIO expander.

SPI

  • The M-SoM and E-Series both have two SPI ports.
  • In most cases, you can share a single SPI bus with many peripherals.
  • On the E-Series, SPI1 and SPI2 share the same MCU SPI interface but have different pin locations. You can only use one or the other.
E-Series Pin E-Series Pin Name E-Series SPI M-SoM Pin M-SoM Pin Name M-SoM SPI
24 A2 SPI (SS) 35 A2 / D17  
23 A3 SPI (SCK) 37 A3 / D16  
22 A4 SPI (MISO) 41 A4 / D15  
21 A5 SPI (MOSI) 43 A5 / D14  
48 C1 SPI2 (MOSI)      
47 C2 SPI2 (MISO)      
46 C3 SPI2 (SCK)      
40 D2 SPI1 (MOSI) 42 D2 SPI1 (SCK)
39 D3 SPI1 (MISO) 40 D3 SPI1 (SS)
38 D4 SPI1 (SCK) 66 D4  
37 D5 SPI1 (SS) 68 D5  
      48 D8 SPI (SS)
      50 MISO / D11 SPI (MISO)
      52 MOSI / D12 SPI (MOSI)
17 RX   38 RX / D10 SPI1 (MISO)
      54 SCK / D13 SPI (SCK)
16 TX   36 TX / D9 SPI1 (MOSI)

Serial (UART)

There are more UART ports on the E-Series than the M-SoM. If you need more hardware serial ports, the best option is to use the SC16IS740 or its relatives like the SC16IS750. These devices connect by I2C or SPI, and you can add multiple ports this way.

E-Series M-SoM
Buffer size 64 bytes 2048 bytes
7-bit mode
8-bit mode
9-bit mode
1 stop bit
2 stop bits
No parity
Even parity
Odd parity
Break detection
LIN bus support
Half duplex
CTS/RTS flow control 1

1CTS/RTS flow control only on Serial1. It is optional.

Supported Baud Rates:

Baud Rate E-Series M-SoM
110
300
600
1200
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
128000
153600
230400
380400
460800
500000
921600
1000000
1382400
1444400
1500000
1843200
2000000
2100000
2764800
3000000
3250000
3692300
3750000
4000000
6000000
E-Series Pin E-Series Pin Name E-Series Serial M-SoM Pin M-SoM Pin Name M-SoM Serial
49 C0 Serial5_RX      
48 C1 Serial5_TX      
47 C2 Serial4 RX      
46 C3 Serial4 TX      
40 D2   42 D2 Serial1 (RTS)
      58 D24 Serial2 (TX)
      60 D25 Serial2 (RX)
39 D3   40 D3 Serial1 (CTS)
52 RGBB Serial2 (RX) 65 RGBB  
53 RGBG Serial2 (TX) 63 RGBG  
17 RX Serial1 (RX) 38 RX / D10 Serial1 (RX)
16 TX Serial1 (TX) 36 TX / D9 Serial1 (TX)

Analog input (ADC)

The M-SoM does not have an many ADC ports as the E-Series. You can add additional ADC ports using a SPI or I2C ADC.

E-Series Pin E-Series Pin Name E-Series ADC M-SoM Pin M-SoM Pin Name M-SoM ADC
26 A0 23 A0 / D19
25 A1 33 A1 / D18
24 A2 35 A2 / D17
23 A3 37 A3 / D16
22 A4 41 A4 / D15
21 A5 43 A5 / D14
      53 A5 / D14
31 B2      
30 B3      
29 B4      
28 B5      
20 DAC / A6 45 A6 / D29
19 WKP / A7 47 A7 / WKP

I2C

E-Series Pin E-Series Pin Name E-Series I2C M-SoM Pin M-SoM Pin Name M-SoM I2C
45 C4 Wire1 (SDA)      
44 C5 Wire1 (SCL)      
42 D0 Wire (SDA) 22 D0 Wire (SDA)
41 D1 Wire (SCL) 20 D1 Wire (SCL)
  • 1 I2C on M-SoM. While it appears that there are 2 on the E-Series, they're just alternative pin assignments and you can really only use one at a time.
  • 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.
  • The E-Series I2C is 5V tolerant. This is not the case on the M-SoM, be sure you don't have pull-ups to 5V!
  • If you need to interface to a 5V I2C bus you will need an I2C level shifter such as the PCA9306.
  • On the M-SoM (and P2 and Photon 2), the only valid I2C clock speeds are CLOCK_SPEED_100KHZ and CLOCK_SPEED_400KHZ. Other speeds are not supported at this time.

PWM (Pulse-width modulation)

These are differences in pins that support PWM between the E-Series and M-SoM.

E-Series Pin E-Series Pin Name E-Series PWM < SoM Pin < SoM Pin Name < SoM PWM < SoM Hardware Timer
26 A0   23 A0 / D19  
25 A1   33 A1 / D18  
22 A4 41 A4 / D15    
21 A5 43 A5 / D14  
      53 A5 / D14  
33 B0        
32 B1        
31 B2        
30 B3        
45 C4        
44 C5        
42 D0 22 D0    
41 D1 20 D1    
40 D2 42 D2    
39 D3 40 D3    
38 D4   66 D4  
37 D5   68 D5  
36 D6   70 D6  
35 D7   72 D7  
20 DAC / A6   45 A6 / D29  
      50 MISO / D11  
      52 MOSI / D12  
17 RX 38 RX / D10  
16 TX 36 TX / D9  
19 WKP / A7 47 A7 / WKP    

PWM - M-SoM

All available PWM pins on the M-SoM share a single timer. This means that they must all share a single frequency, but can have different duty cycles.

It is also possible to add an external PWM driver such as the PCA9685 which adds 16 outputs via I2C. You can add 62 of these to a single I2C bus for 992 PWM outputs! The Adafruit_PWMServoDriver library supports this chip on all Particle devices.

PWM - Gen 2

On the Electron and E-Series, this function works on pins D0, D1, D2, D3, A4, A5, WKP, RX, TX, B0, B1, B2, B3, C4, and C5 with a caveat: PWM timer peripheral is duplicated on two pins (A5/D2) and (A4/D3) for 7 total independent PWM outputs. For example: PWM may be used on A5 while D2 is used as a GPIO, or D2 as a PWM while A5 is used as an analog input. However A5 and D2 cannot be used as independently controlled PWM outputs at the same time.

Internal pull-up or pull-down

Internal (MCU) pull-up and pull-down can be enabled using the pinMode() function and INPUT_PULLUP or INPUT_PULLDOWN.

On the M-SoM, different GPIO pins have different pull values. On the E-Series pull is always approximately 40K.

Retained memory

The M-SoM has limited support for retained memory, also referred to as Backup RAM or SRAM.

Retained memory is preserved on RTL872x devices in the following cases:

Case Saved
When entering sleep modes 5.3.1 and later
OTA firmware updates 5.3.1 and later
System.backupRamSync() 5.3.1 and later
System.reset() Not saved
Reset button or reset pin Not saved
Every 10 seconds 5.3.1 to 5.8.0 only

Calling System.backupRamSync() will manually save the contents of retained memory to a dedicated flash page on the RTL872x processor and will be restored after the device is reset. You should avoid saving the data extremely frequently as it is slower than RAM and will cause flash wear and is relatively slow to execute.

Prior to Device OS 5.3.1, retained memory is not supported on RTL872x devices. The flash file system can be used, or you can use an external chip such as an I2C or SPI FRAM.

Retained memory is 3068 bytes.

Flash file system

The E-Series did not have a flash file system.

The M-SoM has 2 MB flash file system using the same POSIX API as Gen 3 devices. A small amount of space is reserved for system use including configuration data. Most of the space is available for user application use.

EEPROM

The EEPROM emulation API is the same across the E-Series and M-SoM.

  • The E-Series had 2047 bytes of emulated EEPROM.
  • The M-SoM has 4096 bytes of emulated EEPROM. On the M-SoM, P2, Photon 2, and Gen 3 devices, the EEPROM is actually just a file on the flash file system.

Interrupts

Interrupts - Gen 2

Not supported on the Electron/E series (you can't use attachInterrupt on these pins):

  • D0, A5 (shared with MODE button)
  • D7 (shared with BATT_INT_PC13)
  • C1 (shared with RXD_UC)
  • C2 (shared with RI_UC)

No restrictions on the Electron/E-Series (all of these can be used at the same time):

  • D5, D6

Shared on the Electron/E-Series (only one pin for each bullet item can be used at the same time):

  • D1, A4, B1
  • D2, A0, A3
  • D3, DAC
  • D4, A1
  • A2, C0
  • A7 (WKP), B2, B4
  • B0, C5
  • B3, B5
  • C3, TX
  • C4, RX

Interrupts - M-SoM

There are no restrictions on interrupt pins on the M-SoM.

DAC

  • Gen 2 devices have two DAC (digital-to-analog converter), on pins A3 and A6.

  • The M-SoM and Gen 3 devices do not have built-in DAC, however they can easily be added by I2C or SPI to your base board.

CAN bus

  • The M-SoM and Gen 3 devices do not support CAN on the MCU.
  • The Tracker SoM includes CAN via a MCP25625 CAN interface with integrated transceiver.
  • Both the MCP2515 and MCP25625 work with the library used on the Tracker and can be used to add CAN to other Gen 3 devices.

Sleep

  • In HIBERNATE sleep mode, both the M-SoM and E-Series put pin in OUTPUT mode into high-impedance state.

  • In STOP and ULTRA_LOW_POWER sleep modes, the M-SoM preserves the digital output, but the E-Series puts the pins in OUTPUT mode into high-impedance state.

  • In HIBERNATE sleep mode, on the M-SoM, pin D21 does not maintain INPUT_PULLUP or INPUT_PULLDOWN while asleep.

M-SoM pins related to HIBERNATE sleep mode:

Pin Pin Name Description Interface MCU
17 D21 D21 GPIO, I2S RX No internal pull up or pull down in HIBERNATE sleep mode. PA[0]
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]

E-Series pins related to HIBERNATE sleep mode:

Pin Pin Name Description Interface MCU
19 WKP / A7 WKP/A7 Wakeup (active high), analog in, GPIO. Only this pin can wake from HIBERNATE sleep mode. PA0

RTC (Real-time clock)

The E-Series module has support for an external lithium coin cell battery or supercap to power the STM32 internal RTC via the VBAT pin.

The M-SoM MCU does not have a dedicated RTC module that can be externally powered. This is also the case with the P2, Photon 2, and Gen 3 devices. If you need an externally powered RTC, one option is the AM1805/AB1805 real-time clock and hardware watchdog module, which is used on the Tracker SoM.

USB

  • Both the E-Series and M-SoM assume the USB connector will be mounted on your base board. It is recommended that you add one to your base board for programming and troubleshooting.
  • Gen 2 devices can emulate a USB mouse or keyboard over the USB port. This feature is available on the M-SoM but not available on Gen 3 (including B-SoM).
  • Gen 2 devices can support two separate USB serial emulation streams over the USB port. Gen 3 devices only support the normal Serial interface.
USB Feature E-Series M-SoM B-SoM
Secondary USB serial emulation USBSerial1    
USB keyboard emulation  
USB mouse emulation  

PMIC and Fuel gauge

The E-Series, E-Series, Boron, and Tracker SoM all include the PMIC (bq24195) and battery fuel gauge (MAX17043) on the module itself.

On the M-SoM, the PMIC and fuel gauge are optional. For example, if you are powering by an external power supply and not using a battery, you can omit the components entirely.

PMIC Notes

When using the B-Series SoM with a bq24195 PMIC, note the following:

By default, the bq24195 sets the input current limit, which affects powering by VIN and VUSB, to 100 mA. This affects the VSYS output of the PMIC, which powers both the cellular modem and 3V3 supply, and is not enough to power the B-Series SoM in normal operation.

If your device has the default firmware (Tinker), it will attempt to connect to the cloud, brown out due to insufficient current, then the device will reset. This may result in what appears to be the status LED blinking white, but is actually rolling reboot caused by brownout.

A factory new B-Series SoM does not enable the PMIC setup. To enable the use of the bq21415, you must enable the system power feature PMIC_DETECTION in your code. This defaults to off because the B-Series SoM can be used without a PMIC, or with a different PMIC, and also requires I2C on D0/D1, and some base boards may use those pins as GPIO.

Because the input current limit does not affect the battery input (Li+), for troubleshooting purposes it can be helpful to attach a battery to help rule out input current limit issues. It's also possible to supply 3.7V via a bench power supply to the battery input, instead of VIN.

The input current limit can result in a situation where you can't bring up a B-Series SoM because it browns out continuously, but also cannot flash code to it to stop if from browning out. There are two general solutions:

  • Attach a battery or supply by Li+ when bringing up a board.
  • Use SWD/JTAG and reset halt the MCU. This will prevent it from connecting to the cloud, so you can flash Device OS and firmware to it by SWD.

The input current limit is actually controlled by three factors:

  • The power source max current setting in the PMIC. The default is 900 mA. It can be set to 100, 150, 500, 900, 1200, 1500, 2000, or 3000 mA.
  • It is also limited by the hardware ILIM resistor. On Particle devices with a built-in PMIC, this is set to 1590 mA, but if you are implementing your own PMIC hardware, you can adjust this higher.
  • When connected by USB, it will use DPDM, current negotiation via the USB DP (D+) and DM (D-) lines.

Note that some 2A tablet chargers and multi-port USB power supplies supply 2A but do not implement DPDM; these will be treated as if VIN was used, and you must set the power source current, otherwise the input current will be limited to 900 mA, which is not enough to power a 2G/3G cellular modem without an attached battery.

Antennas

The M-SoM has U.FL antenna connectors:

  • Cellular
  • Wi-Fi and BLE (shared)
  • GNSS (optional)

Full module pin comparison

3V3

E-Series M-SoM
Pin Number 9 10
  Pin Name 3V3 3V3
Description Regulated 3.3V DC output, maximum load 800 mA. Cannot be used as a power input. System power in, supply a fixed 3.3V power, 500 mA minimum

A0

E-Series M-SoM
Pin Number 26 23
  Pin Name A0 A0
Pin Alternate Name n/a D19
Description A0 Analog in, GPIO A0 Analog in, GPIO, PWM
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
  Supports analogRead Yes Yes
Supports analogWrite (PWM) No Yes
Supports tone No Yes
Supports attachInterrupt Yes. D2, A0, and A3 share the same interrupt handler. Yes
Internal pull resistance 40K 42K
Input is 5V Tolerant Yes No

A1

E-Series M-SoM
Pin Number 25 33
  Pin Name A1 A1
Pin Alternate Name n/a D18
Description A1 Analog in, GPIO A1 Analog in, GPIO, PWM
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
  Supports analogRead Yes Yes
Supports analogWrite (PWM) No Yes
Supports tone No Yes
Supports attachInterrupt Yes. D4 and A1 share the same interrupt handler. Yes
Internal pull resistance 40K ???
Input is 5V Tolerant Yes No

A2

E-Series M-SoM
Pin Number 24 35
  Pin Name A2 A2
Pin Alternate Name n/a D17
Description A2 Analog in, GPIO, SPI SS A2 Analog in, GPIO
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
  Supports analogRead Yes 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. A2 and C0 share the same interrupt handler. Yes
Internal pull resistance 40K 22K
Input is 5V Tolerant Yes No

A3

E-Series M-SoM
Pin Number 23 37
  Pin Name A3 A3
Pin Alternate Name n/a D16
Description A3 True analog out, analog in, GPIO. A3 Analog in, PDM CLK, GPIO
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
  Supports analogRead Yes Yes
Supports analogWrite (DAC) Yes No
SPI interface SCK. Use SPI object. n/a
Supports attachInterrupt Yes. D2, A0, and A3 share the same interrupt handler. Yes
Internal pull resistance 40K 2.1K

A4

E-Series M-SoM
Pin Number 22 41
  Pin Name A4 A4
Pin Alternate Name n/a D15
Description A4 Analog in, GPIO, SPI MISO. A4 Analog in, PDM DAT, GPIO
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
  Supports analogRead Yes Yes
Supports analogWrite (PWM) Yes. D3 and A4 share the same PWM channel and the PWM duty cycle is set for both. No
Supports tone Yes. D3 and A4 share the same PWM channel and only one frequency can be set for both. No
SPI interface MISO. Use SPI object. n/a
Supports attachInterrupt Yes. D1 and A4 share the same interrupt handler. Yes
Internal pull resistance 40K 2.1K
Input is 5V Tolerant Yes No

A5

E-Series M-SoM
Pin Number 21 43
  Pin Name A5 A5
Pin Alternate Name n/a D14
Description A5 Analog in, GPIO, SPI MOSI. 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. D2 and A5 share the same PWM channel and the PWM duty cycle is set for both. Yes
Supports tone Yes. D2 and A5 share the same PWM channel and only one frequency can be set for both. Yes
SPI interface MOSI. Use SPI object. n/a
Supports attachInterrupt No Yes
Internal pull resistance 40K ???
Input is 5V Tolerant Yes No
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 Number 53
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.

AGND

Added to M-SoM
Pin Number 39
Pin Name AGND
Description Analog Ground.

B0

Removed from E-Series
Pin Number 33
Pin Name B0
Description B0, GPIO, PWM
Supports digitalRead Yes
Supports digitalWrite Yes
Supports analogWrite (PWM) Yes
Supports tone Yes
Supports attachInterrupt Yes. B0 and C5 share the same interrupt handler.
Internal pull resistance 40K
Input is 5V Tolerant Yes

B1

Removed from E-Series
Pin Number 32
Pin Name B1
Description B1, GPIO, PWM
Supports digitalRead Yes
Supports digitalWrite Yes
Supports analogWrite (PWM) Yes
Supports tone Yes
Supports attachInterrupt Yes. D1, A4, and B1 share the same interrupt handler.
Internal pull resistance 40K
Input is 5V Tolerant Yes

B2

Removed from E-Series
Pin Number 31
Pin Name B2
Description B2, analog in, GPIO, PWM
Supports digitalRead Yes
Supports digitalWrite Yes
Supports analogRead Yes
Supports analogWrite (PWM) Yes
Supports tone Yes
Supports attachInterrupt Yes. A7 (WKP), B2, and B4 share the same interrupt handler.
Internal pull resistance 40K
Input is 5V Tolerant Yes

B3

Removed from E-Series
Pin Number 30
Pin Name B3
Description B3, analog in, GPIO, PWM
Supports digitalRead Yes
Supports digitalWrite Yes
Supports analogRead Yes
Supports analogWrite (PWM) Yes
Supports tone Yes
Supports attachInterrupt Yes. B3 and B5 share the same interrupt handler.
Internal pull resistance 40K
Input is 5V Tolerant Yes

B4

Removed from E-Series
Pin Number 29
Pin Name B4
Description B4 Analog in, GPIO
Supports digitalRead Yes
Supports digitalWrite Yes
Supports analogRead Yes
Supports attachInterrupt Yes. A7 (WKP), B2, and B4 share the same interrupt handler.
Internal pull resistance 40K
Input is 5V Tolerant Yes

B5

Removed from E-Series
Pin Number 28
Pin Name B5
Description B5 Analog in, GPIO
Supports digitalRead Yes
Supports digitalWrite Yes
Supports analogRead Yes
Supports attachInterrupt Yes. B3 and B5 share the same interrupt handler.
Internal pull resistance 40K
Input is 5V Tolerant Yes

C0

Removed from E-Series
Pin Number 49
Pin Name C0
Description Serial5 RX (received data), GPIO.
Supports digitalRead Yes
Supports digitalWrite Yes
UART serial RX. Use Serial5 object.
Supports attachInterrupt Yes. A2 and C0 share the same interrupt handler.
Internal pull resistance 40K
Input is 5V Tolerant Yes

C1

Removed from E-Series
Pin Number 48
Pin Name C1
Description Serial5 TX (trasmitted data), SPI2, GPIO.
Supports digitalRead Yes
Supports digitalWrite Yes
UART serial TX. Use Serial5 object.
SPI interface MOSI. Use SPI2 object.
Internal pull resistance 40K
Input is 5V Tolerant Yes

C2

Removed from E-Series
Pin Number 47
Pin Name C2
Description Serial4 RX (received data), SPI2, GPIO.
Supports digitalRead Yes
Supports digitalWrite Yes
UART serial RX. Use Serial4 object.
SPI interface MISO. Use SPI2 object.
Internal pull resistance 40K
Input is 5V Tolerant Yes

C3

Removed from E-Series
Pin Number 46
Pin Name C3
Description Serial4 TX (transmitted data), SPI2, GPIO.
Supports digitalRead Yes
Supports digitalWrite Yes
UART serial TX. Use Serial4 object.
SPI interface SCK. Use SPI2 object.
Supports attachInterrupt Yes. C3 and TX share the same interrupt handler.
Internal pull resistance 40K
Input is 5V Tolerant Yes

C4

Removed from E-Series
Pin Number 45
Pin Name C4
Description I2C, CAN, GPIO.
Supports digitalRead Yes
Supports digitalWrite Yes
Supports analogWrite (PWM) Yes
Supports tone Yes
I2C interface SDA. Use Wire1 object. You can only use Wire or Wire1, not both!
Supports attachInterrupt Yes. C4 and RX share the same interrupt handler.
CAN interface CAN1_TX
Internal pull resistance 40K
Input is 5V Tolerant Yes

C5

Removed from E-Series
Pin Number 44
Pin Name C5
Description I2C, CAN, GPIO.
Supports digitalRead Yes
Supports digitalWrite Yes
Supports analogWrite (PWM) Yes
Supports tone Yes
I2C interface SCL. Use Wire1 object. You can only use Wire or Wire1, not both!
Supports attachInterrupt Yes. B0 and C5 share the same interrupt handler.
CAN interface CAN1_RX
Internal pull resistance 40K
Input is 5V Tolerant Yes

CELL USBD-

Added to M-SoM
Pin Number 46
Pin Name CELL USBD-
Description Cellular Modem USB Data-
Input is 5V Tolerant Yes

CELL USBD+

Added to M-SoM
Pin Number 44
Pin Name CELL USBD+
Description Cellular Modem USB Data+
Input is 5V Tolerant Yes

CELL VBUS

Added to M-SoM
Pin Number 74
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 Number 75
Pin Name CELL_RI
Description CELL_RI, ring indicator output, leave unconnected.

D0

E-Series M-SoM
Pin Number 42 22
  Pin Name D0 D0
Description D0 GPIO, I2C D0 GPIO, I2C SDA
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
Supports analogWrite (PWM) Yes No
Supports tone Yes No
I2C interface SDA. Use Wire object. Use 1.5K to 10K external pull-up resistor. Is 5V tolerant. SDA. Use Wire object. Use 1.5K to 10K external pull-up resistor.
Supports attachInterrupt No Yes
Internal pull resistance 40K ???
Input is 5V Tolerant Yes No

D1

E-Series M-SoM
Pin Number 41 20
  Pin Name D1 D1
Description D0 GPIO, I2C, CAN D1 GPIO, I2C SCL
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
Supports analogWrite (PWM) Yes No
Supports tone Yes No
I2C interface SCL. Use Wire object. Use 1.5K to 10K external pull-up resistor. Is 5V tolerant. SCL. Use Wire object. Use 1.5K to 10K external pull-up resistor.
Supports attachInterrupt Yes. D1, A4, and B1 share the same interrupt handler. Yes
CAN interface CAN2_TX n/a
Internal pull resistance 40K ???
Input is 5V Tolerant Yes No

D2

E-Series M-SoM
Pin Number 40 42
  Pin Name D2 D2
Description D2 GPIO, SPI1, CAN D2 GPIO, Serial RTS flow control (optional), SPI1 SCK
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
Supports analogWrite (PWM) Yes. D2 and A5 share the same PWM channel and the PWM duty cycle is set for both. No
Supports tone Yes. D2 and A5 share the same PWM channel and only one frequency can be set for both. No
UART serial n/a RTS. Use Serial1 object.
SPI interface MOSI. Use SPI1 object. SCK. Use SPI1 object.
Supports attachInterrupt Yes. D2, A0, and A3 share the same interrupt handler. Yes
CAN interface CAN2_RX n/a
I2S interface I2S3_SD n/a
Internal pull resistance 40K ???
Input is 5V Tolerant Yes No

D20

Added to M-SoM
Pin Number 19
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 Number 17
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 Number 62
Pin Name D22
Description D22 GPIO
Supports digitalRead Yes
Supports digitalWrite Yes
Supports attachInterrupt Yes
Internal pull resistance ???

D23

Added to M-SoM
Pin Number 64
Pin Name D23
Description D23 GPIO
Supports digitalRead Yes
Supports digitalWrite Yes
Supports attachInterrupt Yes
Internal pull resistance ???

D24

Added to M-SoM
Pin Number 58
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 Number 60
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 Number 59
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 Number 55
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

E-Series M-SoM
Pin Number 39 40
  Pin Name D3 D3
Description D3 GPIO, SPI1 D3 GPIO, Serial1 CTS flow control (optional), SPI1 SS
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
Supports analogWrite (PWM) Yes. D3 and A4 share the same PWM channel and the PWM duty cycle is set for both. No
Supports tone Yes. D3 and A4 share the same PWM channel and only one frequency can be set for both. No
UART serial n/a CTS. Use Serial1 object.
SPI interface MISO. Use SPI1 object. SS. Use SPI1 object.
Supports attachInterrupt Yes. D3 and DAC/A6 share the same interrupt handler. Yes
Internal pull resistance 40K. Pull-up applied in bootloader for JTAG. ???
Input is 5V Tolerant Yes No
JTAG interface JTAG RST. 40K pull-up at boot. n/a
Signal used at boot JTAG RST. 40K pull-up at boot. n/a

D4

E-Series M-SoM
Pin Number 38 66
  Pin Name D4 D4
Description D4 GPIO, SPI1 D4 GPIO, PWM
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
Supports analogWrite (PWM) No Yes
Supports tone No Yes
SPI interface SCK. Use SPI1 object. n/a
Supports attachInterrupt Yes. D4 and A1 share the same interrupt handler. Yes
I2S interface I2S3_SD n/a
Internal pull resistance 40K ???
Input is 5V Tolerant Yes No
JTAG interface JTAG TDO. Floating at boot. n/a
Signal used at boot JTAG TDO. Floating at boot. n/a

D5

E-Series M-SoM
Pin Number 37 68
  Pin Name D5 D5
Description D5 GPIO, SPI1 D5 GPIO, PWM, I2S TX
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
Supports analogWrite (PWM) No Yes
Supports tone No Yes
SPI interface SS. Use SPI1 object. Can use any pin for SPI1 SS/CS however. n/a
  Supports attachInterrupt Yes Yes
I2S interface I2S3_WS I2S TX
Internal pull resistance 40K ???
Input is 5V Tolerant Yes No
JTAG interface JTAG TDI. 40K pull-up at boot. n/a
Signal used at boot JTAG TDI. 40K pull-up at boot. n/a

D6

E-Series M-SoM
Pin Number 36 70
  Pin Name D6 D6
Description D6 GPIO D6 GPIO, PWM, I2S CLK
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
Supports analogWrite (PWM) No Yes
Supports tone No Yes
  Supports attachInterrupt Yes Yes
I2S interface n/a I2S CLK
Internal pull resistance 40K. Pull-up applied in bootloader for JTAG. ???
Input is 5V Tolerant Yes No
JTAG interface JTAG TCK. 40K pull-down at boot. n/a
SWD interface SWCLK. 40K pull-down at boot. n/a
Signal used at boot JTAG TCK/SWCLK. 40K pull-down at boot. n/a

D7

E-Series M-SoM
Pin Number 35 72
  Pin Name D7 D7
Description D7 GPIO D7 GPIO, PWM, I2S WS
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
Supports analogWrite (PWM) No Yes
Supports tone No Yes
Supports attachInterrupt No. Shared with BAT_INT_PC13 Yes
I2S interface n/a I2S WS
Internal pull resistance 40K. Pull-up applied in bootloader for JTAG. ???
Input is 5V Tolerant Yes No
JTAG interface JTAG TMS. 40K pull-up at boot. n/a
SWD interface SWDIO. 40K pull-up at boot. n/a
Signal used at boot JTAG TMS/SWDIO. 40K pull-up at boot. n/a

D8

Added to M-SoM
Pin Number 48
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

DAC

E-Series M-SoM
Pin Number 20 45
Pin Name DAC A6
Pin Alternate Name A6 D29
Description DAC/A6 True analog out, analog in, GPIO. A6 Analog in, GPIO, PWM, M.2 eval PMIC INT
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
  Supports analogRead Yes Yes
Supports analogWrite (DAC) Yes No
Supports analogWrite (PWM) No Yes
Supports tone No Yes
Supports attachInterrupt Yes. D3 and DAC/A6 share the same interrupt handler. Yes
Internal pull resistance 40K ???

GND

E-Series M-SoM
Pin Number 2 1
  Pin Name GND GND
Description Ground. Be sure to connect all GND pins. Ground.

GNSS_TX

Added to M-SoM
Pin Number 18
Pin Name GNSS_TX
Description Cellular modem GNSS UART TX

LIPO

Removed from E-Series
Pin Number 5
Pin Name LIPO
Description Connect to + pin on the LiPo battery, 4.2V maximum

MISO

Added to M-SoM
Pin Number 50
Pin Name MISO
Pin Alternate Name D11
Description D11 GPIO, PWM, SPI MISO
Supports digitalRead Yes
Supports digitalWrite Yes
Supports analogWrite (PWM) Yes
Supports tone Yes
SPI interface MISO. Use SPI object.
Supports attachInterrupt Yes
Internal pull resistance 2.1K

MODE

E-Series M-SoM
Pin Number 55 32
  Pin Name MODE MODE
Description MODE button, has internal pull-up. Pin number constant is BTN. MODE button. Pin number constant is BTN. External pull-up required!
Supports attachInterrupt n/a Yes
I2S interface I2S3_MCK n/a

MOSI

Added to M-SoM
Pin Number 52
Pin Name MOSI
Pin Alternate Name D12
Description D12 GPIO, PWM, SPI MOSI
Supports digitalRead Yes
Supports digitalWrite Yes
Supports analogWrite (PWM) Yes
Supports tone Yes
SPI interface MOSI. Use SPI object.
Supports attachInterrupt Yes
Internal pull resistance 2.1K

NC

E-Series M-SoM
Pin Number 6 14
  Pin Name NC NC
Description Do not connect to anything n/a

PMID

Removed from E-Series
Pin Number 8
Pin Name PMID
Description Connected to the PMID pin of the PMIC

RESET

E-Series M-SoM
Pin Number 56 34
Pin Name RESET RST
Pin Alternate Name RST n/a
Description Hardware reset. Pull low to reset; can leave unconnected in normal operation. Hardware reset, active low. External pull-up required.

RGBB

E-Series M-SoM
Pin Number 52 65
  Pin Name RGBB RGBB
  Description RGB LED Blue RGB LED Blue
UART serial RX. Use Serial2 object. n/a

RGBG

E-Series M-SoM
Pin Number 53 63
  Pin Name RGBG RGBG
  Description RGB LED Green RGB LED Green
UART serial TX. Use Serial2 object. n/a

RGBR

E-Series M-SoM
Pin Number 54 61
  Pin Name RGBR RGBR
  Description RGB LED Red RGB LED Red
Signal used at boot n/a Low at boot triggers trap mode

RX

E-Series M-SoM
Pin Number 17 38
  Pin Name RX RX
Pin Alternate Name n/a D10
Description Serial1 RX (received data), GPIO, PWM. Serial RX, PWM, GPIO, SPI1 MISO
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
  Supports analogWrite (PWM) Yes Yes
  Supports tone Yes Yes
  UART serial RX. Use Serial1 object. RX. Use Serial1 object.
SPI interface n/a MISO. Use SPI1 object.
Supports attachInterrupt Yes. C4 and RX share the same interrupt handler. Yes
Internal pull resistance 40K 2.1K
Input is 5V Tolerant Yes No

SCK

Added to M-SoM
Pin Number 54
Pin Name SCK
Pin Alternate Name D13
Description D13 GPIO, SPI SCK
Supports digitalRead Yes
Supports digitalWrite Yes
SPI interface SCK. Use SPI object.
Supports attachInterrupt Yes
Internal pull resistance 2.1K

SIM_CLK

Added to M-SoM
Pin Number 71
Pin Name SIM_CLK
Description Leave unconnected, 1.8V/3V SIM Clock Output from cellular modem.

SIM_DATA

Added to M-SoM
Pin Number 73
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 Number 69
Pin Name SIM_RST
Description Leave unconnected, 1.8V/3V SIM Reset Output from cellular modem.

SIM_VCC

Added to M-SoM
Pin Number 67
Pin Name SIM_VCC
Description Leave unconnected, 1.8V/3V SIM Supply Output from R410M.

STAT

Removed from E-Series
Pin Number 57
Pin Name STAT
Description Charge status output from the PMIC.

TX

E-Series M-SoM
Pin Number 16 36
  Pin Name TX TX
Pin Alternate Name n/a D9
Description Serial1 TX (transmitted data), GPIO, PWM. Serial TX, PWM, GPIO, SPI1 MOSI, I2S MCLK
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
  Supports analogWrite (PWM) Yes Yes
  Supports tone Yes Yes
  UART serial TX. Use Serial1 object. TX. Use Serial1 object.
SPI interface n/a MOSI. Use SPI1 object.
Supports attachInterrupt Yes. C3 and TX share the same interrupt handler. Yes
I2S interface n/a I2S MCLK
Internal pull resistance 40K 2.1K
Input is 5V Tolerant Yes No

USBDATA-

E-Series M-SoM
Pin Number 14 13
  Pin Name USBDATA- USBDATA-
  Description USB Data- USB Data-
  Input is 5V Tolerant Yes Yes

USBDATA+

E-Series M-SoM
Pin Number 13 11
  Pin Name USBDATA+ USBDATA+
  Description USB Data+ USB Data+
  Input is 5V Tolerant Yes Yes

VBAT

Removed from E-Series
Pin Number 11
Pin Name VBAT
Description Battery for internal real-time clock, backup registers, and SRAM. Supply 1.65VDC to 3.6 VDC at 19 μA..

VBUS

Removed from E-Series
Pin Number 3
Pin Name VBUS
Description Connect to VBUS power pin on the USB port

VCC

Added to M-SoM
Pin Number 2
Pin Name VCC
Description System power in, connect to the +LiPo or supply a fixed 3.6-4.3V power.

VDDA

Removed from E-Series
Pin Number 10
Pin Name VDDA
Description Power input for ADC. Normally connected to 3V3. Must always be within 300 mV of 3V3.

VIN

Removed from E-Series
Pin Number 1
Pin Name VIN
Description Power in 3.9V to 12 VDC.

WKP

E-Series M-SoM
Pin Number 19 47
Pin Name WKP A7
Pin Alternate Name A7 WKP
Description WKP/A7 Wakeup (active high), analog in, GPIO. A7 Analog In, WKP, GPIO D28
  Supports digitalRead Yes Yes
  Supports digitalWrite Yes Yes
  Supports analogRead Yes Yes
Supports analogWrite (PWM) Yes No
Supports tone Yes No
Supports attachInterrupt Yes. A7 (WKP), B2, and B4 share the same interrupt handler. Yes
Internal pull resistance 40K ???
Input is 5V Tolerant Yes No

Country compatibility

To be provided at a later date.

Software

Wi-Fi configuration

Since the E-Series (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 E-Series (10) because of the vastly different hardware.

If you have a product based on the E-Series, 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)

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

SKUs

To be provided at a later date

Revision history

Revision Date Author Comments
pre 2023-10-03 RK Initial version
2024-03-15 RK The UART baud rate 2400, 4800, 380400, 460800 are supported but were not listed
001 2024-04-02 RK General availability