Muon from Boron or Argon migration guide
This is a preliminary guide and is subject to change.
Pictures are not the same scale
Hardware
Module style
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 modules are in Adafruit Feather form-factor. There are male header pins on the bottom.
The Muon is a larger development module and contains a Particle M-SoM mounted in a M.2 NGFF socket, a power supply, and various peripheral chips.
There is an expansion connector on the top of the Muon, 40 pins (2x20), 0.1" (2.54mm) pitch. An expansion card can be mounted directly on top pf the Muon ("a HAT"), or can be connected to a solderless breadboard using Dupont wires or ribbon cable.
The expansion connector is mostly compatible with the Raspberry Pi expansion connector and some Pi HATs can be used on the Muon for expansion.
Device | Inches | Millimeters (mm) |
---|---|---|
Argon/Boron | 0.9" x 2.0" | 22.86mm x 50.8mm |
Muon | 2.2" x 3.35" | 56mm x 85mm |
You can use the Muon as a development module, or use it as a base for your you own product.
Dimensions in millimeters (mm)
Radios
Radio | Argon | Boron | M-SoM | Muon |
---|---|---|---|---|
Cellular | ✓ | ✓ | ✓ | |
Wi-Fi 2.4 GHz | ✓ | ✓ | ✓ | |
Wi-Fi 5 GHz | ✓ | ✓ | ||
BLE | ✓ | ✓ | ✓ | ✓ |
LoRa | ✓ |
Datasheets
Certification
When migrating to a new device, re-certification 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 Muon and 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.
USB Connector
The Argon and Boron have a USB Micro B connector.
The Muon has a USB C connector.
You must use an actual USB-C port or USB-C power adapter to power the Muon by USB.
A USB-A to USB-C cable will not power the Muon or charge the battery
The reason is that the Muon uses USB-C PD to change the USB port voltage to 9V and request enough current to power the Muon.
When using a USB-2 or USB-3 port with USB-A to USB-C adapter cable, the USB port voltage cannot be changed and the port will not be able to power the Muon.
Also beware of some wall adapters that have a USB-C cable, but do not support USB-C PD. Some of these are advertised as Raspberry Pi power adapters, which only support 5V and cannot be used to power the Muon.
See Muon USB Power for more information.
SWD/JTAG
The Muon has the same 10-pin (2x5) SWD/JTAG debugging connector as the Argon and Boron.
On the Muon and M-SoM, however, 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). Building a Debug build in Particle Workbench allows SWD to be used while user firmware is running, but you cannot use A4, A6, or D27 as GPIO when SWD is enabled in user firmware.
SWO (Serial Wire Output) is not supported on the RTL8722DM.
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] |
LiPo Battery and LI+ pin
The Boron and Argon have a 2-pin JST-PH connector for a 3.7V LiPo battery. The standard Particle battery is 1800 mAh, but other batteries are available up to 6000 mAh in a similar but larger form-factor.
The Muon has a 3-pin JST-PH for a 3.7V LiPo battery with a battery pack temperature sensor.
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.
The Argon uses a Torex XC6208A42 LiPo charge controller.
The Muon uses the same PMIC and fuel gauge chips as the Boron.
Facing the plug on the battery side
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 Muon.
Land pattern
The Muon is not intended to be placed on a carrier board, so doesn't have a land pattern, per se.
The expansion connector dimensions can be found in the Muon datasheet, but the expansion connector is on the top of the Muon and intended to be used with a small expansion card on top ("HAT") not with a bottom-mounted carrier, like the Argon or Boron.
GPIO
Boron Pin Name | Boron GPIO | Muon Pin | Muon Pin Name | Muon GPIO | Raspberry Pi |
---|---|---|---|---|---|
A0 / D19 | ✓ | 29 | A0 / D19 | ✓ | GPIO5 |
A1 / D18 | ✓ | 31 | A1 / D18 | ✓ | GPIO6 |
A2 / D17 | ✓ | 26 | A2 / D17 | ✓ | GPIO7 (CE1) |
A3 / D16 | ✓ | ||||
A4 / D15 | ✓ | ||||
A5 / D14 | ✓ | 13 | A5 / D14 | GPIO27 | |
24 | A6 / D29 | ✓ | GPIO8 (CE0) | ||
D0 | ✓ | 3 | D0 | GPIO2 (SDA) | |
D1 | ✓ | 5 | D1 | GPIO3 (SCL) | |
D2 | ✓ | 11 | D2 | ✓ | GPIO17 |
40 | D20 | ✓ | GPIO21 (PCM_DOUT) | ||
38 | D21 | ✓ | GPIO20 (PCM_DIN) | ||
16 | D24 | ✓ | GPIO23 | ||
18 | D25 | ✓ | GPIO24 | ||
35 | D26 | ✓ | GPIO19 (PCM_FS) | ||
D3 | ✓ | 36 | D3 | ✓ | GPIO16 |
D4 | ✓ | 33 | D4 | ✓ | GPIO13 (PWM1) |
D5 | ✓ | 32 | D5 | ✓ | GPIO12 (PWM0) |
D6 | ✓ | 12 | D6 | ✓ | GPIO18 |
D7 | ✓ | ||||
D8 / WKP | ✓ | ||||
7 | IOEX_PA0 | ✓ | GPIO4 (GPCKL0) | ||
37 | IOEX_PB7 | ✓ | GPIO26 | ||
MISO / D11 | ✓ | 21 | MISO / D11 | GPIO9 (MISO) | |
MOSI / D12 | ✓ | 19 | MOSI / D12 | GPIO10 (MOSI) | |
RX / D10 | ✓ | 10 | RX / D10 | ✓ | GPIO15 (RXD) |
SCK / D13 | ✓ | 23 | SCK / D13 | GPIO11 (SCLK) | |
TX / D09 | ✓ | 8 | TX / D9 | ✓ | GPIO14 (TXD) |
- Pin D8 is not available on the Muon expansion connector. It is used internally for the I/O expander interrupt.
ADC
Boron Pin Name | Boron ADC | Muon Pin | Muon Pin Name | Muon ADC | Raspberry Pi |
---|---|---|---|---|---|
A0 / D19 | ✓ | 29 | A0 / D19 | ✓ | GPIO5 |
A1 / D18 | ✓ | 31 | A1 / D18 | ✓ | GPIO6 |
A2 / D17 | ✓ | 26 | A2 / D17 | ✓ | GPIO7 (CE1) |
A3 / D16 | ✓ | ||||
A4 / D15 | ✓ | ||||
A5 / D14 | ✓ | 13 | A5 / D14 | ✓ | GPIO27 |
24 | A6 / D29 | ✓ | GPIO8 (CE0) |
- 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 | Muon Pin | Muon Pin Name | Muon Serial | Raspberry Pi |
---|---|---|---|---|---|
D2 | Serial1 RTS | 11 | D2 | Serial1 (RTS) | GPIO17 |
16 | D24 | Serial2 (TX) | GPIO23 | ||
18 | D25 | Serial2 (RX) | GPIO24 | ||
D3 | Serial1 CTS | 36 | D3 | Serial1 (CTS) | GPIO16 |
RX / D10 | Serial1 RX | 10 | RX / D10 | Serial1 (RX) | GPIO15 (RXD) |
TX / D09 | Serial1 TX | 8 | TX / D9 | Serial1 (TX) | GPIO14 (TXD) |
- One additional UART serial port on the Muon/M-SoM
SPI
Boron Pin Name | Boron SPI | Muon Pin | Muon Pin Name | Muon SPI | Raspberry Pi |
---|---|---|---|---|---|
A1 / D18 | 31 | A1 / D18 | SPI2 (MISO) | GPIO6 | |
A2 / D17 | 26 | A2 / D17 | SPI2 (SCK) | GPIO7 (CE1) | |
A5 / D14 | SPI (SS) | 13 | A5 / D14 | GPIO27 | |
D2 | SPI1 (SCK) | 11 | D2 | SPI1 (SCK) | GPIO17 |
D3 | SPI1 (MOSI) | 36 | D3 | SPI1 (SS) | GPIO16 |
D4 | SPI1 (MISO) | 33 | D4 | GPIO13 (PWM1) | |
MISO / D11 | SPI (MISO) | 21 | MISO / D11 | SPI (MISO) | GPIO9 (MISO) |
MOSI / D12 | SPI (MOSI) | 19 | MOSI / D12 | SPI (MOSI) | GPIO10 (MOSI) |
RX / D10 | 10 | RX / D10 | SPI1 (MISO) | GPIO15 (RXD) | |
SCK / D13 | SPI (SCK) | 23 | SCK / D13 | SPI (SCK) | GPIO11 (SCLK) |
TX / D09 | 8 | TX / D9 | SPI1 (MOSI) | GPIO14 (TXD) |
If using an expansion card that requires SPI, generally the following pins are used. The pins CE0
and CE1
are generally used for SPI chip select on standard Raspberry Pi expansion cards.
Pin | Pin Name | Description | Interface | M2 Pin | MCU | Raspberry Pi |
---|---|---|---|---|---|---|
19 | MOSI / D12 | D12 GPIO, PWM, SPI MOSI | MOSI | 52 | PA[16] | GPIO10 (MOSI) |
21 | MISO / D11 | D11 GPIO, PWM, SPI MISO | MISO | 50 | PA[17] | GPIO9 (MISO) |
23 | SCK / D13 | D13 GPIO, SPI SCK | SCLK | 54 | PA[18] | GPIO11 (SCLK) |
24 | A6 / D29 | A6 Analog in, GPIO, PWM, M.2 eval PMIC INT | CE0 | 45 | PB[7] | GPIO8 (CE0) |
26 | A2 / D17 | A2 Analog in, GPIO | CE1 | 35 | PB[6] | GPIO7 (CE1) |
Expansion cards GPIO10 (MOSI), GPIO9 (MISO), and GPIO11(SCLK) can only be used for SPI. They cannot be used for SPI because the SPI bus is used for internal peripherals on the Muon. You can, however, use GPIO8 (CE0) and GPIO7 (CE1) as GPIO.
I2C
Boron Pin Name | Boron I2C | Muon Pin | Muon Pin Name | Muon I2C | Raspberry Pi |
---|---|---|---|---|---|
D0 | Wire (SDA) | 3 | D0 | Wire (SDA) | GPIO2 (SDA) |
D1 | Wire (SCL) | 5 | D1 | Wire (SCL) | GPIO3 (SCL) |
D6 | 12 | D6 | Wire1 (SCL) | GPIO18 |
- You can generally have many devices on a single I2C bus.
- On the Muon, M-SoM, 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.
If using an expansion card that requires I2C, generally the following pins are used on standard Raspberry Pi expansion cards.
Pin | Pin Name | Description | Interface | M2 Pin | MCU | Raspberry Pi |
---|---|---|---|---|---|---|
3 | D0 | D0 GPIO, I2C SDA | SDA | 22 | PB[0] | GPIO2 (SDA) |
5 | D1 | D1 GPIO, I2C SCL | SCL | 20 | PA[31] | GPIO3 (SCL) |
The Argon/Boron and M-SoM use D0/D1 for SDA/SCL.
Raspberry Pi GPIO2 and GPIO3 can only be used as I2C, not as GPIO, This is because the I2C is also used for peripherals on the Muon. You cannot use these I2C addresses on expansion cards as they will conflict with built-in peripherals.
I2C Address | Peripheral |
---|---|
0x28 | STUSB4500 USB-C power controller |
0x36 | MAX17043 Fuel Gauge |
0x48 | TMP112A temperature sensor |
0x61 | KG200Z LoRaWAN radio |
0x69 | AM1805 RTC/Watchdog |
0x6B | bq24195 PMIC |
PWM
Boron Pin Name | Boron PWM | Muon Pin | Muon Pin Name | Muon PWM | Raspberry Pi |
---|---|---|---|---|---|
A0 / D19 | ✓ | 29 | A0 / D19 | ✓ | GPIO5 |
A1 / D18 | ✓ | 31 | A1 / D18 | ✓ | GPIO6 |
A2 / D17 | ✓ | 26 | A2 / D17 | GPIO7 (CE1) | |
A3 / D16 | ✓ | ||||
A4 / D15 | ✓ | ||||
A5 / D14 | ✓ | 13 | A5 / D14 | ✓ | GPIO27 |
24 | A6 / D29 | ✓ | GPIO8 (CE0) | ||
D2 | ✓ | 11 | D2 | GPIO17 | |
D3 | ✓ | 36 | D3 | GPIO16 | |
D4 | ✓ | 33 | D4 | ✓ | GPIO13 (PWM1) |
D5 | ✓ | 32 | D5 | ✓ | GPIO12 (PWM0) |
D6 | ✓ | 12 | D6 | ✓ | GPIO18 |
D7 | ✓ | ||||
D8 / WKP | ✓ | ||||
MISO / D11 | 21 | MISO / D11 | ✓ | GPIO9 (MISO) | |
MOSI / D12 | 19 | MOSI / D12 | ✓ | GPIO10 (MOSI) | |
RX / D10 | 10 | RX / D10 | ✓ | GPIO15 (RXD) | |
TX / D09 | 8 | TX / D9 | ✓ | GPIO14 (TXD) |
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 | M2 Pin | MCU | Raspberry Pi |
---|---|---|---|---|---|
13 | A5 / D14 | SWCLK. 40K pull-down at boot. | 43 | PB[3] | GPIO27 |
15 | D27 | SWDIO. 40K pull-up at boot. Low at boot triggers MCU test mode. | 55 | PA[27] | GPIO22 |
16 | D24 | Low at boot triggers ISP flash download | 58 | PA[7] | GPIO23 |
18 | D25 | Goes high at boot | 60 | PA[8] | GPIO24 |
NFC
The Muon and M-SoM do not support NFC.
The Boron and Argon support NFC Tag mode.
Sleep
In
HIBERNATE
sleep mode, the Muon/M-SoM can only be wakened via theWKP
pin, but the Boron and Argon can be wakened by any pin.In
STOP
andULTRA_LOW_POWER
sleep modes, the Muon, M-SoM, Boron, and Argon can be wakened by any pin.In
HIBERNATE
sleep mode, the Muon/M-SoM putsOUTPUT
pins into high-impedance state. The Boron and Argon preserve the digital level.In
STOP
andULTRA_LOW_POWER
sleep modes, the Muon, M-SoM, Boron, and Argon preserve the digital outputIn
HIBERNATE
sleep mode, on the Muon/M-SoM, pin D21 does not maintainINPUT_PULLUP
orINPUT_PULLDOWN
while asleep.
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] |
Full comparison
3V3
Boron | Muon | ||
---|---|---|---|
Pin Name | 3V3 | 3V3 | |
∆ | Description | Regulated 3.3V DC output, maximum load 1000 mA | 3.3V power to expansion card |
5V
Added to Muon | |
---|---|
Pin Name | 5V |
Description | 5V power to expansion card |
A0
Boron | Muon | ||
---|---|---|---|
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 | Muon | ||
---|---|---|---|
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 |
∆ | SPI interface | n/a | MISO. Use SPI2 object. |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | ??? |
A2
Boron | Muon | ||
---|---|---|---|
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 |
∆ | SPI interface | n/a | SCK. Use SPI2 object. |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | Internal pull resistance | 13K | 22K |
A3
Removed from Boron | |
---|---|
Pin Name | A3 |
Pin Alternate Name | D16 |
Description | A3 Analog in, GPIO, PWM |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports analogRead | Yes |
Supports analogWrite (PWM) | Yes |
Supports tone | A0, A1, A2, and A3 must have the same frequency. |
Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. |
Internal pull resistance | 13K |
A4
Removed from Boron | |
---|---|
Pin Name | A4 |
Pin Alternate Name | D15 |
Description | A4 Analog in, GPIO, PWM |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports analogRead | Yes |
Supports analogWrite (PWM) | Yes |
Supports tone | A4, A5, D2, and D3 must have the same frequency. |
Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. |
Internal pull resistance | 13K |
A5
Boron | Muon | ||
---|---|---|---|
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 | n/a |
∆ | Supports digitalWrite | Yes | n/a |
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. | n/a |
∆ | 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. |
A6
Added to Muon | |
---|---|
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 | ??? |
D0
Boron | Muon | ||
---|---|---|---|
Pin Name | D0 | D0 | |
∆ | Description | I2C SDA, GPIO | D0 GPIO, I2C SDA |
∆ | Supports digitalRead | Yes | n/a |
∆ | Supports digitalWrite | Yes | n/a |
∆ | 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. | n/a |
∆ | Internal pull resistance | 13K | ??? |
D1
Boron | Muon | ||
---|---|---|---|
Pin Name | D1 | D1 | |
∆ | Description | I2C SCL, GPIO | D1 GPIO, I2C SCL |
∆ | Supports digitalRead | Yes | n/a |
∆ | Supports digitalWrite | Yes | n/a |
∆ | 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. | n/a |
∆ | Internal pull resistance | 13K | ??? |
D2
Boron | Muon | ||
---|---|---|---|
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 Muon | |
---|---|
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 Muon | |
---|---|
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 Muon | |
---|---|
Pin Name | D22 |
Description | D22 GPIO |
Internal pull resistance | ??? |
D24
Added to Muon | |
---|---|
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 Muon | |
---|---|
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 Muon | |
---|---|
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 Muon | |
---|---|
Pin Name | D27 |
Description | D27 GPIO, SWDIO (SWD_DATA), do not pull down at boot |
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 | Muon | ||
---|---|---|---|
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 | Muon | ||
---|---|---|---|
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 | Muon | ||
---|---|---|---|
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 | Muon | ||
---|---|---|---|
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 |
∆ | I2C interface | n/a | SCL. Use Wire1 object. Use 1.5K to 10K external pull-up resistor. |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | Yes |
∆ | I2S interface | n/a | I2S CLK |
∆ | Internal pull resistance | 13K | ??? |
D7
Removed from Boron | |
---|---|
Pin Name | D7 |
Description | PWM, GPIO |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports analogWrite (PWM) | PWM is shared with the RGB LED, you can specify a different duty cycle but should not change the frequency. |
Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. |
Internal pull resistance | 13K |
D8
Removed from Boron | |
---|---|
Pin Name | D8 |
Pin Alternate Name | WKP |
Description | GPIO, PWM |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
Supports analogWrite (PWM) | Yes |
Supports tone | D4, D5, D6, and D7 must have the same frequency. |
Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. |
Internal pull resistance | 13K |
EN
Removed from Boron | |
---|---|
Pin Name | EN |
Description | Power supply enable. Connect to GND to power down. Has internal weak (100K) pull-up. |
GND
Boron | Muon | ||
---|---|---|---|
Pin Name | GND | GND | |
∆ | Description | Ground. | Ground |
IOEX_PA0
Added to Muon | |
---|---|
Pin Name | IOEX_PA0 |
Description | n/a |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
IOEX_PB7
Added to Muon | |
---|---|
Pin Name | IOEX_PB7 |
Description | n/a |
Supports digitalRead | Yes |
Supports digitalWrite | Yes |
LI+
Removed from Boron | |
---|---|
Pin Name | LI+ |
Description | Connected to JST PH LiPo battery connector. 3.7V in or out. |
MISO
Boron | Muon | ||
---|---|---|---|
Pin Name | MISO | MISO | |
Pin Alternate Name | D11 | D11 | |
∆ | Description | SPI MISO, GPIO | D11 GPIO, PWM, SPI MISO |
∆ | Supports digitalRead | Yes | n/a |
∆ | Supports digitalWrite | Yes | n/a |
∆ | 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. | n/a |
∆ | Internal pull resistance | 13K | 2.1K |
MODE
Removed from Boron | |
---|---|
Pin Name | MODE |
Description | MODE button, has internal pull-up |
MOSI
Boron | Muon | ||
---|---|---|---|
Pin Name | MOSI | MOSI | |
Pin Alternate Name | D12 | D12 | |
∆ | Description | SPI MOSI, GPIO | D12 GPIO, PWM, SPI MOSI |
∆ | Supports digitalRead | Yes | n/a |
∆ | Supports digitalWrite | Yes | n/a |
∆ | 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. | n/a |
∆ | Internal pull resistance | 13K | 2.1K |
NC27
Added to Muon | |
---|---|
Pin Name | NC27 |
Description | n/a |
NC28
Added to Muon | |
---|---|
Pin Name | NC28 |
Description | n/a |
RST
Removed from Boron | |
---|---|
Pin Name | RST |
Description | Hardware reset. Pull low to reset; can leave unconnected in normal operation. |
RX
Boron | Muon | ||
---|---|---|---|
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 | Muon | ||
---|---|---|---|
Pin Name | SCK | SCK | |
Pin Alternate Name | D13 | D13 | |
∆ | Description | SPI SCK, GPIO | D13 GPIO, SPI SCK |
∆ | Supports digitalRead | Yes | n/a |
∆ | Supports digitalWrite | Yes | n/a |
SPI interface | SCK. Use SPI object. | SCK. Use SPI object. | |
∆ | Supports attachInterrupt | Yes. You can only have 8 active interrupt pins. | n/a |
∆ | Internal pull resistance | 13K | 2.1K |
TX
Boron | Muon | ||
---|---|---|---|
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 |
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 |
Software
Wi-Fi configuration
Since the Boron (cellular) does not have Wi-Fi support, if you wish to use Wi-Fi on the Muon/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 Muon/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. Note that Muon and M-SoM share a platform ID.
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 | 2024-02-05 | RK | Preliminary version |
2024-05-08 | RK | Update for schematic 0.4R1 | |
2024-05-14 | RK | Update for schematic 0.4R4 | |
2024-05-21 | RK | Update for dimensions | |
2024-08-04 | RK | Pinmap 0.05 | |
1 | 2024-10-22 | RK | Initial release |