Particle IoT Boards
Introduction
Particle Industries, Inc produces a popular range of IoT development boards having Wi-Fi, Bluetooth, and some with cellular, along with development tools, and Device Cloud to handle connectivity, taking away some of the headache of getting an IoT system running quickly.
Particle's site can be found at:
Example uses of the boards include reading of sensor data over a network connection, control of lights wirelessly, and so on. As well as being very useful as standalone products the boards can also act as nodes in a larger Particle mesh network.
There are many board with different features, such as the trio of Argon, Boron, and Xenon, released in 2018. To give you an idea of the differences between the three, Argon has Wi-Fi and BLE connectivity, the Boron trades Wi-Fi for cellular (great for use where Wi-Fi isn't available), and Xenon, which can be used either as an endpoint or repeater in a Particle mesh network.
This video from Particle gives an overview of Particle Mesh:
As of early 2020 the Particle Mesh was discontinued (it began in 2017), along with the Particle Xenon; Argon and Boron were also taken from sale later on (from 2022 it would appear). The reasoning in dropping Particle Mesh was due to the complexity and other types of wireless connectivity, such as BLE, being a better solution. Device OS 1.6, released in March 2020, was the last release to include Particle Mesh support, and in December 2020 the ability to set up new mesh networks/add devices to existing mesh networks was removed from the mobile app and cloud APIs. Please see this link for more information:
https://www.particle.io/blog/mesh-deprecation/
On this page you will find information about a number of Particle boards and my experiences with using them. I recommend that you read the Particle Argon section first, even if you have no interest in that particular board, as it serves as a general introduction to the Particle boards, in particular the Getting Started sub-section. The Boron entry is also potentially beneficial, for learning to use the Particle CLI, in addition to other troubleshooting steps detailed.
Note: images can be downloaded from the bottom of this page if you wish to view them in better detail.
Particle Argon
Introduction
The Particle Argon IoT development kit was my first Particle board, I ended up getting two of them in 2024 from eBay as 'unused', firstly on its own for under £7 ($9), and the second as part of a job lot of four Particle boards for under £26 ($33), so it worked out a similar price for the second Argon board.
Argon is a small but powerful development board featuring Wi-Fi, Bluetooth and is NFC enabled.
The product page can be found at:
https://store.particle.io/products/argon-kit
As of 2024 the board is selling for $21.71, discounted from $36.19, but note that the product is discontinued, having been superseded by the Photon 2. As will be seen in the Getting started section I had some difficulty initially getting the board working, which can often be the case with cheaper kits.
The Particle store page has a link to the datasheet which includes detailed information about the board as well as schematics.
There is also the product page from Particle at:
https://docs.particle.io/argon/
Which details the specification and has links to setup the board and for various resources.
The board can act as either a standalone Wi-Fi endpoint or Wi-Fi enabled gateway for Particle Mesh networks.
Examples of uses given by Particle are:
From tracking the location of your moving asset, to monitoring equipment to reduce your maintenance costs, to measuring air quality to meet regulatory standards.
The detailed specification is as follows:
Espressif ESP32-D0WD 2.4G Wi-Fi coprocessor
On-board 4MB SPI flash for ESP32802.11 b/g/n support802.11 n (2.4 GHz), up to 150 Mbps
Nordic Semiconductor nRF52840 SoC, ARM Cortex-M4F 32-bit processor @ 64MHz1MB flash, 256KB RAM
IEEE 802.15.4-2006: 250 Kbps
Bluetooth 5: 2 Mbps, 1 Mbps, 500 Kbps, 125 Kbps
Supports DSP instructions, HW accelerated Floating Point Unit (FPU) calculations
ARM TrustZone CryptoCell-310 Cryptographic and security module
Up to +8 dBm TX power (down to -20 dBm in 4 dB steps)NFC-A tag
20 mixed signal GPIO (6x Analog, 8 x PWM), UART, I2C, SPI
Micro USB 2.0 full speed (12 Mbps)
Integrated Li-Po charging and battery connector
JTAG (SWD) Connector
RGB status LED
Reset and Mode buttons
On-board 2.4GHz PCB antenna for Thread/BLE (does not support Wi-Fi)
Two U.FL connectors for external antennas (one for Thread/BLE, another for Wi-Fi)
Meets the Feather specification in dimensions and pinout
Note: all GPIOs are limited to 3.3VDC maximum.
There are a number of different Argon kits as seen here:
https://docs.particle.io/reference/datasheets/wi-fi/argon-datasheet/#ordering-information
As of 2024 all kits are listed as either 'deprecated' or 'not recommended for new designs'.
This section will deal with the two versions I have:
ARGN-H: includes the Argon board and 2.4GHz flex antenna (ANT-FLXV2) only (which is the form of the first Argon I bought)
ARGNKIT: includes the Argon board, 2.4GHz flex antenna, mini breadboard, micro USB cable, two resistors (both 220R), one red LED, and one photodiode (which is the second Argon I purchased). Not surprisingly, due to the additional parts ARGNKIT comes in a larger box.
The board originally came with access to the Device Cloud (10 free micro networks available) as well as three free months of Device Cloud access using a cellular gateway. The Particle Cloud has some great features for building connected projects, including over-the-air firmware updates, and easy-to-use REST API, and firmware development supported by web and local IDEs.
A Particle Argon Unboxing can be viewed via YouTuber Gabe Martinez's video:
On the front of the box (actually a cardboard sleeve) it shows the board and an attached antenna, the version with the additional components shows the board breadboarded along with a couple of resistors and LEDs. It has written on the box:
ARGON KIT
IoT Development Kit
(Wi-Fi + Mesh + Bluetooth)
On the back it shows the board top-down, and states that it’s powered by Particle Device OS, features a Nordic nRF52840 and Espressif ESP32, and is Adafruit Feather compatible. Additionally it states you’ll need a micro USB cable and some electronic components on the version without breadboard.
On one side of the box there is a sticker with the board ID, and on the version with breadboard it has the SKU ARGNKIT printed, the version without is ARGN-H (visible on the opposite side). On another side of the box it has written 'ARGON IoT Development Kit (Wi-Fi + Bluetooth + NFC)' for the ARGN-H, 'ARGON KIT IoT Development Kit (Wi-Fi + Mesh + Bluetooth)' for the ARGNKIT. Both versions have NFC so it's a little odd NFC was left out of the description on ARGN-H.
The inner brown box can be removed from the sleeve, the top of the box says to visit setup.particle.io to configure your device. Just a strip of tape holds the box closed, opening up the box welcomes you to Particle, stating that you're joining over 180,000 people building IoT solutions with Particle (150,000 in the version with the breadboard, suggesting it to be an earlier version of the kit).
In the box there is a small card inviting you to share what you’re building by going to www.part.cl/share. On the other side it gives a link for the resources hub at www.part.cl/insights.
Also in the box is the board in a resealable paper bag (with inner plastic). The environmentally friendly packaging is a nice touch. On one side of the bag is an illustration of the board, on the other the board's features are listed, along with a link to docs.particle.io/argon. The link is for quick start guide and other documentation.
Features listed:
Nordic Semiconductor nRF52840 SoC:
ARM Cortex M4 @ 64MHz with 1MB flash and 256KB RAM
802.15.4 mesh networking and Bluetooth 5
Espressif ESP32-D0WD:
2.4GHz Wi-Fi 802.11 b/g/n, supports WEP, WPA, WPA2, and WPA/WPA2
20 mixed-signal GPIO:
6 analog (ADC), 8 PWM, UART, I2C, and SPI
Plus 2MB flash on-board and LiPo battery ready.
Note how the bag mentions 2MB flash but there is supposed to be 4MB.
In the box you also get the Wi-fi antenna in its own packaging, which features an U.FL connection, and is compatible with both Particle Argon and Photon, and is rated for 2.4GHz. The product URL is given: docs.particle.io/wi-fi-antenna
(The URL no longer works.)
The board already has a row of male headers soldered on the two long edges, with the pinout given both on the board and the side of the headers (where there are alternate functions they are listed on the header and board respectively). Although the board is breadboard friendly you will need wide breadboard.
The board measures approximately 23 x 50mm, with a weight of 10 grams. It has a micro USB connector, CHG (orange) and D7 (blue) LEDs, 2-pin LiPo connector, 5x2 debug header(SWD), RGB LED, and MODE and RESET switches, QR code, Wi-Fi and BT/Mesh antenna connectors. On the PCB underside is an NFC antenna connector, and text that identifies the hardware revision number. The first Argon I got (without breadboard and additional components) is marked as ‘v1.10’, the second Argon I purchased (which has the breadboard and extra bits) is 'v1.00'. As far as I can tell both v1.00 and v1.10 look identical in terms of the components used and their locations. Of course the board version(s) you have may differ, I'm specifying the versions I have as a means to document and differentiate.
Please see this page for a more detailed overview of the Argon:
https://diotlabs.daraghbyrne.me/docs/platform-intro/understanding-your-argon/
Getting started
Note: because I got v1.10 first, the information that follows will be for that version, then I will talk about my experiences in getting v1.00 working later on.
A getting started with Particle Argon guide can be found at:
https://www.instructables.com/Getting-Started-With-Particle-Argon/
It demonstrates how can use a smartphone app to connect with the board.
However I followed the quick start instructions at:
https://docs.particle.io/quickstart/argon/
When I plugged the board into my Surface Pro the Argon’s LED started blinking blue after a few seconds and Windows detected the board as ‘Argon CDC Mode’. In Device Manager I could see it was showing as a serial device. Unfortunately, since the board is old, it seems the Particle app is no longer available, at least not for Android. The message at the top of this page confirms:
https://docs.particle.io/archives/tinker/argon/
Looking online, the Blynk app is compatible with the Argon.
I came across the following video from YouTuber SriTu Hobby, which used a Nodemcu ESP8266, but was still helpful:
This is what I did: after installing Blynk, I had to log in/sign up. Note that by default you'll be on a free plan. On the mobile app I went on Create New Device, which took me to the New Template page. I simply called the template ‘Test’, then clicked the Continue button.
I couldn't see how to add a device so I went to the web based Blynk.Console (https://blynk.cloud/dashboard/login) to continue and clicked on Developer Zone:
I clicked 'Add first device', in the pop-up I entered the device name as 'Argon'.
Next, I clicked on the Edit button (otherwise you're in view mode only), then clicked on Template settings, which brings up various options:
In the Hardware drop-down I seleceted Particle and left the connection type as WiFi. I then clicked away to close the widget. I clicked on Datastreams, + New Datastream button and selected Virtual Pin. I entered 'LED' for Name, set the Pin drop-down to V0, left data type as integer.
Then I clicked the Create button.
Next I clicked on the Web Dashboard:
I dragged a switch to the canvas, and clicked to edit settings (cog icon), in the Choose Datastream drop-down I selected 'LED (V0)'.
I clicked the Save button.
Then I clicked the ‘Save And Apply’ button on the main page of the Developer Zone.
The next thing I had to do was create and run firmware on the Argon. I used the following guide for assistance:
https://docs.particle.io/quickstart/argon/
This involves going to the Particle Web IDE:
Where you have to log in/create an account. Once logged in you can click to Continue to the Web IDE.
As a quick test, we can click 'Blink an LED' under the Example apps section, the code will then load instantly:
The code will be familiar if you have used an Arduino before (it uses the Wiring language which Arduino also uses).
I clicked on the 'Use this example' button, notice the very Arduino-like filename blink-an-led.ino. Next, I clicked on the Devices button (circle with four lines) and clicked on the 'Add new device' button. We will now need to 'claim' the device.
A link is provided to give help in claiming but the link takes you to a page for a different board.
Returning to the Blynk app I clicked the '+' in the top-right corner and under 'Add New Device' I selected Quickstart device (the other options didn't work). You're briefed that it will take you through configuring a new device, so I clicked the 'Let's Go' button. I needed to select the hardware type from the drop-down (Particle), and ledt the connection type as Wi-Fi. I was then emailed instructions to get my board online, which requires the use of the Arduino IDE/PlatformIO/etc.
Firstly, I had to install the Blynk library, which I did using the Arduino IDE. A link is given in the email for an example sketch, clicking it will take you to a Blynk page with the code - you can click the button to copy the example:
In the Arduino IDE I copied the code into a new sketch. As explained in the email you need to put your Wi-Fi details into the following lines:
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";
Except that the above lines aren't in the sketch and thus it can't connect to Wi-Fi.
Another option was to go to:
So I clicked the 'Get Started' button and logged in. Once logged in you will be asked about the type of device being connected:
I left the drop-down set to 'Device with USB port' and clicked the 'Start setting up my device' button. I was then taken to a page instructing to plug the board into a computer and attach an antenna to the board:
I clicked the 'Select device' button and it popped up with 'Argon CDC Mode', so I selected and clicked the Connect button. On the next page we can update the board:
I clicked the Continue button. The board's RGB LED started flashing green (supposedly yellow according to the page so perhaps it just looks green to me), meaning it's in DFU mode, as explained:
The page describes Tinker and Device OS firmware. I clicked the 'Update device' button. During the process the board's RGB LED flashed different colours, after about 46 seconds the update finished and the RGB LED was now steadily flashing blue as before (waiting to connect to a network).
The next page is about organizing:
The only option I had for 'Select your organization' was 'Personal Sandbox'. I had to click on 'Or create a new product' and then it gave a product name, which I changed to Argon32. I then clicked the 'Create new product' button.
On the next page I named the device as 'ArgonJS' and then clicked the 'Name device' button.
The next page lets you connect to a Wi-Fi network:
If you get no networks listed (as above) then connect the antenna to the board and click 'Scan for networks again'. Select a Wi-Fi network and add the password in the provided box and click 'Configure Wifi' button. After a few moments it should connect to Wi-Fi and the board's RGB LED will steadily pulse green. You will also be presented a page similar to the following:
Note that the information in the Sandbox area doesn't reflect my actual device.
You can click on 'Go to Console' button to open up a router-like page with various options for managing devices, etc.:
Now the device was finally connected to a Wi-Fi network I went back to what I was previously trying to do; at least if nothing else the board's firmware had been updated. Back to build.particle.io, I had previously opened the Blink example. As can be seen now when I click on Devices, it shows the device I set up and the blue pulsing dot shows the device is connected:
If you click the right arrow > it shows the Device ID, Device OS target drop-down, and you can click on the SIGNAL button to flash the on-board RGB LED different colours to help identify the board if working if you have multiple boards connected - click the 'STOP SIGNALING' button to stop the animation.
To program the device, click the lightning bolt (Flash) top-left and the board will be flashed; it took about 17 seconds. During the flashing the RGB LED will blink and status will be shown at the bottom of the web IDE. The D7 LED will then steadily flash on/off every second. You can connect an LED via a limiting resistor (I used 1.2K) between D0 and GND, the LED will flash in time with on-board D7 LED.
Note that, even though the board was connected to my PC, it was flashed over the air (via Wi-Fi). To show this in action, I connected the board to a power brick and waited for it to connect to the Wi-Fi. I then modified the blink example so that the LEDs were on for 5 seconds, off for 1 second by changing the first delay() so that its input parameter is 5000 instead of 1000. I clicked on the Flash button to program with the modified code, which was successful; the LED was stayed on for 5 seconds and off for 1 second.
Now I was able to get the Argon online and run a simple example, next I wanted to do an interactive example, which is what I had originally tried to do with the mobile app. There is an example of controlling LEDs over a network:
Handily, if the board is online you can flash the code from the page; select the device from the drop-down in the Code section or select Refresh Device List and then select your device. You can then click the Flash button to write the code, click OK if prompted about replacing firmware. However that failed for me and i had to press the reset button on the board (poor Wi-Fi connection may have been the problem). After the board reconnected to the Wi-Fi I clicked the Flash button again and this time it was successful. Scrolling down the page, under the Testing section, you can click 'LED on' and 'LED Off' to switch the Argon's on-board D7 LED on/off. As explained on the site, you can also control the LED from the console or cli.
As for getting the Blynx app to work it looks like I would have to install the Blynx library on the Argon but since I had got the board working using the Particle web IDE I didn't bother. But it would be good to look at in the future since the app allows you to create interactive web elements that Argon code can react to.
Now I will go over my struggles in trying to get my Argon v1.00 working, which I first attempted on my Windows 11 laptop. This section is worth reading if you are having difficulty getting your Argon working and for the methods I used with the board that I hadn't previously used.
When I plugged the v1.10 Argon into my laptop Windows detected it and in Device Manager it showed up as a USB Serial Device. However, when I plugged in the v1.00 board Windows didn't react and no serial device showed.
I thought that possibly because the board is an earlier version that was causing issues. I looked at using the Particle CLI to interact with it:
https://docs.particle.io/getting-started/developer-tools/cli/
After downloading and installing I opened up a Command Prompt (cmd) and did:
particle identify
Which responded with:
Could not identify device: No serial port identified
Looking online I found:
As instructed, you have to download the firmware and then put board into DFU mode, which you do using this method:
Hold MODE and RESET, release RESET and when the LED displays yellow release the MODE button.
It may take a few tries as the buttons are small.
Then you can use the following commands in cmd to update the device:
particle update
particle flash --local tinker
Note: installing the NCP firmware is done after with a different step.
There was no confirmation that the update was actually taking place (at least not for me), just a warning that it could take up to 10 minutes updating the board but it seemed clear to me no update was actually taking place as I expected some kind of feedback. In Device Manager it showed the board as 'Argon DFU Mode', so at least Windows detected the board when in DFU mode but perhaps there was a driver issue.
Looking further I found:
https://community.particle.io/t/argon-setup-not-happening/46950/10
On the page:
"That’s an important piece of info. If you are updating an Argon from anything before rc.25 to rc.25 or above, you also need to update the NCP (Network CoProcessor). For that you need to download these files..."
Expand the comment to see the fall details. The original post:
We can see that:
"But with device OS firmware before 0.8.0-rc.25 not all serial features were supported."
So I followed the instructions for the Argon on that page:
particle flash --usb system-part1-0.8.0-rc.27-argon.bin -v
particle flash --usb tinker-serial1-debugging-0.8.0-rc.27-argon.bin -v
Specifying the paths for the bin files (not included above). Note that you can CD to the location of the firmware files so there is no need to include the paths.
However, when it came to the next two commands I get the error:
No serial port identified
If I ran the first command that uses --usb option without the board connected it complained that no device had been found so clearly it does detect the board in DFU mode.
I found a page with all the firmware files for the various releases of the Particle boards and downloaded the files for argon, v1.2.1-rc.2
https://github.com/particle-iot/device-os/releases?page=9
The files I downloaded were:
argon-system-part1@1.2.1-rc.2.bin
argon-tinker@1.2.1-rc.2.bin
I then did in cmd:
particle flash --usb argon-system-part1@1.2.1-rc.2.bin -v
particle flash --usb argon-tinker@1.2.1-rc.2.bin -v
However, pressing reset or unplugging/re-plugging the board still didn't make the serial port appear and again it appeared that the board wasn't actually flashed. Oddly, if I didn't specify the correct firmware file no error was reported.
When I plugged my Argon v1.10 board in and ran:
particle identify
It reported the device ID and system firmware version (4.2.0).
I then put the board into DFU mode (note the device didn't show up in Device Manager) and downloaded:
argon-system-part1@5.6.0.bin
I then attempted to flash the file but it reported the file doesn't exist, which is different behaviour to the v1.00 board.
On my Surface Pro the v1.10 Argon when in DFU mode does show up in Device Manager under Universal Serial Bus devices.
Back to the v1.00 Argon, looking online again I came across:
https://community.particle.io/t/argon-serial-and-cdc/45903/5
"Factory new devices don’t expose USB CDC. It will only appear after you’ve flashed 0.8.0-rc.25 or later and call Serial.begin() or use listening mode."
In case it was a driver issue stopping me from updating the board to get the USB CDC (serial) working I found some troubleshooting information:
https://github.com/rickkas7/particle_notes/tree/master/fixing-windows-10-serial-drivers
However that didn't help when installing the WinUSB driver in DFU mode. However, when I tried libusbK in DFU mode, as specified here:
https://docs.particle.io/archives/installing-dfu-util/
The driver installed successfully. In cmd I then followed instructions from:
First:
particle update
I could tell it was working as it showed a progress bar and then reported 'Update success!'. Note: it installed Device OS 6.1.0. Additionally Windows installed a USB Serial Device.
I then did:
particle identify
And it responded with the device ID and the system firmware version (6.1.0).
I tried to do:
particle flash --local tinker
But it paused at switching to DFU mode (which it was already in) and then gave up. I unplugged the board, re-plugged and tried the command again and once again it did switch to DFU mode but this time it took longer and then failed, saying it was unable to reconnect to the device. In Device Manager it showed the device cannot start.
Indeed if I tried to manually put the board into DFU mode with:
particle usb dfu
The command gets stuck (Control + C quits).
I tried to setup with:
But it failed at the update stage due to DFU mode not working.
However, with the board in 'serial' (not DFU mode) in cmd I did:
particle flash --serial argon-ncp-firmware-0.0.5-ota.bin -v
Which was successful.
Then:
particle wifi add
It then asked whether to scan for Wi-Fi networks, to which I responded 'y'. It then listed a number of networks and I was able to use arrow keys up/down to select a Wi-Fi network or rescan. I pressed enter after selecting a network, entered the password, and pressed enter again. However it responded with:
Unable to add Wi-Fi network...: Not supported
This feature is likely not supported on this firmware version.
Update to device-os 6.2.0 or use 'particle wifi join --help' to join a network.
Alternatively, check 'particle serial wifi'.
So I did:
particle serial wifi
Which has the same set of inputs as the previous command, and seemed promising as it has accepted the selection and the board's RGB LED rapidly flashed green.
Using:
particle wifi list
It reported that indeed it had stored the Wi-Fi network.
However:
particle wifi current
Reported:
Unable to fetch current Wi-Fi network: No Wi-Fi network connected
Which was possibly due to the weak Wi-Fi signal from the extender I was using.
I then tried with my Argon v1.10, running firmware 4.2.0, using:
particle serial wifi
I scanned and selected an access point, in this version it also asks for the Wi-Fi network security type before you input the password. That was successful but didn't actually connect to the network, again possibly because of the weak Wi-Fi signal. So I enabled hotspot on my phone, making sure the AP band was set to 2.4 GHz, and I was able to successfully connect to it using particle wifi join as trying to connect through particle serial wifi caused the error 'Something went wrong: Serial timed out while initially listening to device, please ensure device is in listening mode with particle usb start-listening'.
Doing:
particle wifi current
Showed it was indeed connected to the AP. The RGB LED was now flashing rapidly cyan (or at least I think that was the colour it was supposed to be), although it eventually flashed yellow (green?) meaning it lost the connection before reconnecting again.
I then tried with my Argon v1.00 but was unsuccessful in getting it to connect to my phone's hotspot, having tried both particle serial wifi and particle wifi join, suggesting there was still a problem with the board.
Another way I found you can set up Wi-Fi (For P2, Photon 2, and Argon) is through:
https://docs.particle.io/tools/developer-tools/configure-wi-fi/
Click the 'Select Device' button (the board needs to be in serial mode), choose device, and click Connect. Then you can select an available Wi-Fi network, enter password (if applicable) and press enter to connect, or do a rescan. Listed further down the page you can manage Wi-Fi networks already stored on the board by removing them, and even further down is the version numbers of the various firmware types stored on the Argon.
Note: in the above screenshot I blurred out the Wi-Fi networks.
I tried this on my v1.00 board, the RGB LED will turn blue for a few moments and then continue blinking green and it will report on the site that the Wi-Fi setup failed. The second time i tried it said it successfully connected and the device would reset but the RGB LED just kept flashing green as if it hadn't actually connected.
Wondering if it was a problem with the NCP firmware version I looked for the newest version, available from:
https://github.com/particle-iot/esp32-ncp-firmware/releases
I didn't know difference between argon-esp32-ncp-factory@0.0.8.bin and argon-esp32-ncp@0.0.8.bin other than the file size so I went with the latter, which was smaller (I did later try the larger file but it failed with CRC check error). I installed with:
particle flash --serial argon-esp32-ncp@0.0.8.bin -v
Going to https://docs.particle.io/tools/developer-tools/configure-wi-fi/ it still showed NCP as version 3, which is what is was on before - I'm not sure how the version number relates to those on the GitHub, however.
Unsuprisingly, after going through the motions again trying to connect to my phone's hotspot using the online Configure Wi-Fi tool the setup failed. Note that the site says the 'device will be reset to activate the new configuration.' which it appears to do as I hear Windows loose USB connection and then immediately get the connection back but it never connects to Wi-Fi.
I should mention that I have been using Google Chrome browser, which is supported by the Particle online tools, so I know that shouldn't be an issue.
Still wondering if the firmware was a problem in my searching I found:
https://docs.particle.io/tools/device-restore/device-restore-usb/
Which lets you put a specific Device OS on the board, as well as list the current firmware on the device. I left the Restore Type as 'Tinker (Factory Default)' and Device OS Version as 5.8.2 (which is older than what I had put on the board but just in case the newer version was causing problems). I then clicked Flash Device. However, this failed due to the DFU mode issue (Device cannot start).
After having updated the v1.00 Argon on my Surface I returned to my Windows laptop, when I plugged the board into the laptop it showed up as a serial port in the Device Manager. If I put the board into DFU mode manually it showed up as 'Argon DFU Mode' under 'Universal Serial Bus devices' in device manager. This is the correct behaviour and what the v1.10 Argon does. So it would seem that forcing the driver on my Surface helped in that I was able to access the board in serial mode and update it but then DFU mode stopped working, however, on my laptop the v1.00 argon, as mentioned, appears to have no issues in either mode.
While I was able to update the firmware of the v1.00 Argon, because of the reliance on Wi-Fi connectivity and the inability to connect the board to Wi-Fi limits its uses. I don't know for sure that the board wasn't damaged by the previous owner, the eBay seller claimed it to be new and unused but it could have been a return.
Fortunately we can write code to the Argon over USB, an example is given here:
https://docs.particle.io/getting-started/developer-tools/cli/#update-your-device-remotely
It consists of writing a program to turn pin D7 on/off very 0.5s. The code can be copied from the site and pasted into Notepad or other text editor or Arduino IDE, saved as blinky.ino. This is then followed up with instructions to compile that program to make sure it's valid and creating a binary file. In cmd CD to where blinky.ino is stored and use:
particle compile argon blinky.ino
Note that you must be logged in to compile since it uses the online compiler, to log in you can use:
particle cloud login
After compiling, the code can then be written to the Argon but the instructions given require the device to be online. For reference, to flash to the board using the source code you can use:
particle flash my_device_name blinky.ino
Replace my_device_name with the device's name. You can use:
particle device rename
to rename the device.
To flash the Argon using the compiled binary file:
particle flash my_device_name firmware_123456781234.bin
Replace firmware_123456781234.bin with the actual file name.
To flash an offline device we can do so over USB using the --local parameter:
particle flash --local argon_firmware_1722926867434.bin
Of course, substitute the firmware file name with the actual one you intend to use.
Using particle flash --local, the flashing took 40 seconds for me, during which the Argon's RGB LED flashed different colours. However, the on-board LED (connected to D7) didn't blink. I tried with the v1.10 board, same behaviour, note this was without the antenna connected. However, I thought to connect the antenna, powered on the board and as soon as it had connected to Wi-Fi (RGB LED breathing cyan) the on-board D7 LED was blinking. Thus it appears the board has to be connected to Wi-Fi for the user program to run and if the Wi-Fi connection is lost the user program will stop running. Since I can't get the v1.00 board to connect to Wi-Fi I can't even run a user program unless Wi-Fi is disabled. I found one solution and that's by adding the following line at the start of the blinky program:
SYSTEM_MODE(MANUAL);
This has the affect that Blinky program will run as soon as the board is powered. Note that it should still be possible to use BLE/NFC in your programs.
You can read more about manual mode at:
https://docs.particle.io/reference/device-os/api/system-modes/manual-mode/
I flashed the Blinky program to the v1.00 board and the D7 LED was blinking as expected, and the RGB LED was breathing white, an indication that the Wi-Fi module is off. You can use a shortcut for flashing if you have just one source code file in the folder:
particle flash --local
If you want to re-enable the Wi-Fi module then you will need to compile with SYSTEM_MODE removed and flash the Argon again.
Lastly, it's worth mentioning that Particle Workbench can be used to compile code locally, which can be found at:
https://www.particle.io/workbench/
In the future I can look again at diagnosing the Wi-Fi issue with the v1.00 Argon, however, it is at least still a usable board even without Wi-Fi connectivity, and I have the v1.10 board that does work online.
Troubleshooting
If you power the board and it’s rapidly flashing green that means it’s not connected to a Wi-Fi network, after a few moments or so it should stop flashing, provided it has been set up with a network previously. This page has a lot of information about the various modes indicated by the on-board status LED, how to factory reset, etc.:
Particle Boron
Introduction
The Particle Boron is unique in that it has cellular capabilities in place of Wi-Fi, making it ideal to be used in places where Wi-Fi isn't available.
There are many different Boron kits, a list can be found at:
https://docs.particle.io/reference/datasheets/b-series/boron-datasheet/#ordering-information
As of 2024 a few of the kits are still marked as 'general availability'.
The Boron I have has an SKU of BRN402KIT, which I got as part of an eBay job lot of four Particle boards for under £26 ($33) in 2024.On the front of the box (the outer sleeve) it has a picture of the board breadboarded with a few components and an antenna attached to the Boron. Under the image it has written:
BORON LTE KIT
IoT Development Kit
(Cellular + Mesh + Bluetooth)
One one side it has the device ID and BRN402KIT SKU on another it has the same information as stated above. On the back of the box it shows a top view of the board and lists various features including:
Nordic nRF52840 & u-blox SARA R410 LTE modem with support for LTE Cat M1/NB1 networking, plus 802.15.4 mesh, and Bluetooth 5. Connect this Boron to a cellular network, to other Particle Mesh devices, and to your Bluetooth-enabled smartphone.
Adafruit Feather compatible
The box also lists what's included; micro USB cable, mini breadboard, and a starter project.
The inner brown box can be pulled out, on the top side it says:
Visit setup.particle.io
to configure your new device.
Opening up the box on the inside it says:
THIS IS PARTICLE MESH - THE NEW INTERNET FOR THE INTERNET OF THINGS.
You're joining over 150,000 people building IoT products with Particle. Welcome!
To get started, visit
setup.particle.io
In the box you get:
Small card, on one side it encourages learning best practices scaling using the resources hub with a link to www.part.cl/insights. On the other side it invites you to share what you're building, and has a link to www.part.cl/share.
The Boron paper package with the board inside on anti-static foram. The packaging on the front has an outline of the board and under it has printed:
BORON LTE
IoT Development Kit
(Cellular + Mesh + Bluetooth)
On the back it has written:
Nordic Semiconductor nRF52840 SoC
*ARM Cortex M4 @ 64Mhz with 1MB flash and 256KB RAM
*802.15.4 mesh networking and Bluetooth 5
u-blox SARA R410 LTE modem
*LTE Cat M1/NB1 module with global hardware support
*Includes Particle SIM with US coverage
20 mixed-signal GPIO
*6 analog (ADC), 8 PWM, UART, I2C, and SPI
Plus 4MB SPI Flash on-board and LiPo battery ready
For more information, visit
docs.particle.io/boron
Also in the box you get the cellular antenna in its own packaging, on the front it shows a line drawing of the antenna with the description 'CELLULAR ANTENNA' and on the back it has this information:
THE CELLULAR ANTENNA:
Snaps in place using the standard uFL connection on Particle's cellular products (Boron/Electron).
Includes:
*One wideband cellular antenna for 2G, 3G, and LTE CAT M1 applications (698 MHz - 3000 MHz)
For more information, visit
docs.particle.io/cellular-antenna
(The URL no longer works.)
The antenna type is FXUB63, you can view it for sale at:
https://uk.farnell.com/taoglas/fxub63-07-0150c/pcb-antenna-698mhz-3ghz-4-5dbi/dp/2919771
Lastly, the third package has the extra components, on the front it shows simple drawings of the USB cable, breadboard, and components (resistors and diodes). On the back it says:
STARTER PROJECT INCLUDES:
*One micro-USB cable
*One mini breadboard
*Electronic components
*Two resistors (220 ohm)
*One red LED
*One photodiode
The board measures approximately 23 x 50mm, with a weight of 10 grams. It has a micro USB connector for power and programming, 2-pin Li-Po battery connector, 5x2 JTAG (SWD) connector, LEDs RGB, 'CHG' charging (orange) and 'D7' user, and mode and reset buttons. There is also a U.FL cellular antenna connector, as well as two lots of GPIO and power male header pins (suitable for wide breadboard), 16 pins on one side and 12 pins on the other; the pinout of the pins are given on the headers and the top side of the PCB. On the bottom side of the PCB are two U.FL connectors, one for NFC and the other for BT. There is also a nano SIM card holder, and the board revision number, which is 'v1.00' for the Boron I have.
I found that Particle has what looks like a similar kit to mine at:
It has BRN404XKIT SKU and as of 2024 was selling for $49.95 (£39.04)
The Boron product page can be found at:
https://docs.particle.io/boron/
From the page we can learn that the board has the ability to charge a connected Li-Po battery, and it can be used as part of the Particle Device Cloud, which includes acting as a gateway for multiple endpoints.
Also on the page is a link to 'Set up your Boron', which takes you to https://setup.particle.io/ and there are links for the quick start starter project, tutorial videos, forum, hardware files, datasheet, and certification. The datasheet link takes you to:
https://docs.particle.io/reference/datasheets/b-series/boron-datasheet/
Which has lots of technical information about the Boron.
The hardware files link on the Boron product page takes you to:
https://github.com/particle-iot/boron
Which has datasheets for the various components that make up the board, design files, and V1.00 schematic.
From the product page we can see the board's full spec., which I've mostly reproduced as following:
Main processor:
Nordic Semiconductor nRF52840 SoC
*ARM Cortex-M4F 32-bit processor @ 64MHz
*1MB flash, 256KB RAM
*Bluetooth LE (BLE) central and peripheral support
*20 mixed signal GPIO (6 x Analog, 8 x PWM), UART, I2C, SPI
*Supports DSP instructions, HW accelerated Floating Point Unit (FPU) and encryption functions
*Up to +8 dBm TX power (down to -20 dBm in 4 dB steps)
*NFC-A radio
Cellular network coprocessor:
u-blox SARA cellular modem
*LTE Cat M1 module with global hardware support (MVNO support for US, Canada, and Mexico only)
*2G/3G support world-wide
General specifications:
*Up to +8 dBm TX power (down to -20 dBm in 4 dB steps)
*NFC-A tag
*On-board additional 4MB SPI flash
*Micro USB 2.0 full speed (12 Mbps)
*Integrated Li-Po charging and battery connector
*JTAG (SWD) Connector
*RGB status LED
*Reset and Mode buttons
*Dual SIM support: Nano 4FF (unpopulated) and MFF2
*U.FL connector for external antenna
*Meets the Feather specification in dimensions and pinout
Note: all GPIOs are limited to 3.3VDC maximum.
The page has a link to check cellular capabilities based on the country:
https://docs.particle.io/reference/cellular/cellular-carriers/
On the page you can select the device, which I think is 'Boron BRN402 LTE M1 (NorAm) (before 2021)' for the kit I have, but the country list does not list the UK, which is where I live. Interestingly, in the spec included above it says that 'Nano 4FF' SIM (connector) isn't populated, but it is on my board.
Getting started
I plugged the antenna into the U.FL connector on the top side of the Boron and then plugged the board into my Windows 11 laptop using a micro USB lead. The CHG LED flashed fast continually and the RGB LED blinked blue steadily. In Device Manager I could see there was no serial device for the board 'Camera DFU Device' under 'Universal Serial Bus devices' and 'UCM-UCSI ACPI Device' under 'USB Connector Managers'.
I went to:
I clicked the 'Get started' button, on the next page I left the drop-down as 'Device with USB port' and clicked the 'Start setting up my device' button. On the following page I clicked 'Select device' button but no compatible devices were found, not surprising as no serial device had shown up in the Device Manager.
This was a similar issue I had when trying to get my Argon v1.00 working - the serial mode wasn't exposed.
I put the Boron into DFU mode (hold the mode button, press reset, release mode when the RGB LED flashes yellow). Now the device showed up in Device Manager as 'Boron DFU Mode' but with the error that 'The drivers for this device are not installed.', a similar issue to the Argon. This is supposedly due to out-of-the-box boards (or at least early revisions) do not expose the serial port and need to be updated, which can be done through the app (although not the case from my experience).
For the Argon I had to force a driver using the Zadig utility, which allowed the board to appear as a serial device on my computer.
So I tried to use Zadig utility to force the WinUSB driver, as explained toward the bottom of this page:
https://docs.particle.io/troubleshooting/guides/build-tools-troubleshooting/win10-device-drivers/
But, as with my experience of the Argon, Device Manager still showed that the driver wasn't installed. However, I tried again using Zadig but instead of selecting to install the WCID driver, as indicated on the page, I clicked 'Install Driver' without changing to 'Install WCID Driver'. The board then appeared in the Device Manager as 'Boron DFU Mode' under 'Universal Serial Bus devices'. Perhaps I didn't try that with the Argon.
Now that DFU mode is seemingly working we can use the Particle CLI to update the board - please see Argon/Getting started section on this page or go to:
https://docs.particle.io/getting-started/developer-tools/cli/
To update the board while in DFU mode use:
particle update
Which will take about 40 seconds (or at least it did for me) during which a progress bar will move as it downloads and installs the various firmware files. After it finished, the board's RGB LED was blinking green, the CHG LED was now off, and in the Device Manager there was now a 'USB Serial Device' under Ports (COM & LPT) and also a 'Boron Control Interface' under 'Universal Serial Bus devices'.
By using the command particle identify it returned the device ID, IMEI, ICCID, and the system firmware version (6.1.1).
I went back to:
Note: for screenshots please see the Argon/Getting started section on this page as they will be mostly similar aside from a few later on.
I clicked the 'Get started' button, left the drop-down on 'Device with USB port', and clicked the 'Start setting up my device' button. On the next page I selected the 'Select device' button and in the pop-up I selected 'Boron CDC Mode' and clicked the 'Connect' button. Next, I clicked the 'Continue' button and in the pop-up I picked 'Boron DFU Mode' and clicked the Connect button.
Although I had already updated the board the next option was to update it, as part of the setup process, so I clicked the 'Update device' button. The updating took about 48 seconds, during which the board's RGB LED flashed different colours.
After updating, the following page was 'Organize your Particle device', which lets you select your organization ('Personal Sandbox' was the default), and to select a product or create a new product, which lets you enter a name. Once done I clicked the 'Create new product' button, and on the next page I entered a name for the device, and clicked the 'Name device' button.
On the next page was the option to 'Activate your Particle device', which only took around a minute. The last page was the 'Setup done' page, which is different to other boards, such as the Argon, due to having cellular connection capability:
A message says that a request has been sent to the cellular network operator and the SIM card is activating, which can take 24 hours. I didn't have a SIM card in the board so I may have to do the setup again, however, I'm not sure whether the Boron has an on-board eSIM.
Note that the information under 'Learn about the Particle Console' doesn't reflect my actual device.
At the bottom of the page you can either setup another device or go to the console. I clicked on the 'Go to Console' button, in the console we can see various information about the board:
Oddly, the banner says the device is online (connected to the cellular network and the Particle Cloud) but the status is 'Waiting to connect' and the Boron RGB LED was flashing green.
There is a 'SIM CARD' option further down the page, which lets you view how much data has been used. There is also a 'SIM Cards' page accessible from the left of the page:
This shows you the amount of data used, how many active SIMs in your entire fleet, and the devices using a SIM. There is also an 'Import SIM Cards' button.
According to:
https://docs.particle.io/getting-started/console/sim-management/
"In many cases, you will not need to import SIM cards at all. For devices that include a built-in MFF2 SMD SIM (E-Series, B-Series SoM, Boron, and Tracker), adding the Device ID to your product will automatically add the built-in SIM card to your product with no additional steps required."
From the following link:
https://docs.particle.io/getting-started/billing/cellular-data/#cellular-data-service-with-particle
Lists what you get on the free plan:
"For the Free plan, the cellular data limit is 100 MB , pooled across all devices, which includes all data usage including Data Operations, OTA code flash, overhead, and 3rd-party services."
While waiting for the cellular connection to activate I compiled a simple program and flashed it to the Boron over USB - see toward the end of Argon/Getting started on this page or go to:
https://docs.particle.io/getting-started/developer-tools/cli/#update-your-device-remotely
When compiling, however, you need to specify 'boron' instead of 'argon':
particle compile boron blinky.ino
Using particle flash --local, flashing took only 11 seconds on my Boron, much quicker than the Argon.
If you don't see the D7 LED flashing after the file is written to the device (as was the case for my Boron since it couldn't connect to the network) then you can put the following at the start of the Blinky program (or whatever code you're using):
SYSTEM_MODE(MANUAL);
This should only be necessary if your board can't get online, or for other circumstances where you want your code to run first. After compiling again and flashing the board, the D7 LED should then be blinking.
When I returned to the Boron on another day it still wouldn't connect - I had re-flashed the Blinky code without SYSTEM_MODE(MANUAL). I came across Device Doctor, which can be used to diagnose issues:
https://docs.particle.io/tools/doctor/
With the board connected to my computer via USB, I clicked the 'Select Device' button, choose the board, and clicked the Connect button. Clicking the 'Flash Device' button flashed the Device OS and doctor firmware to the board, replacing the existing firmware. I found toward the bottom of the page there are Advanced Options, Device firmware information, and User information.
After clicking 'Flash Device', device information retrieved from the cloud will be listed. I had to click the Reconnect button, select the board and click the Connect button. Writing the firmware files to the board took about 28 seconds. It then attempted to connect to the network while displaying a debug log.
The board never connected to the network, the RGB LED continually flashing green, and the debug log showing 'no network service'. There is a button to download the debug log, which will be in text form. This was useful as I found this line in the log:
0000003157 [ncp.client] INFO: Using internal SIM card
As well as:
0000019866 [ncp.at] TRACE: < +CME ERROR: no network service
The reality is that possibly the reason eSIM isn't working is simply it's not active in my country and I have to use a physical SIM card.
So I put the SIM from my phone into the Boron and applied power, initially the RGB LED was breathing blue but then quickly changed to flashing green. I tried the Device Doctor again (I flashed the board again) and downloaded the log. I found in the log:
0000003196 [ncp.client] INFO: Using internal SIM card
So it looks like its not using the physical SIM card. I did also see:
0000021425 [ncp.at] TRACE: < +CME ERROR: no network service
Perhaps, running through the online setup again may make it detect the physical SIM card.
Looking online I came across:
It explains:
"The MFF2 embedded SIM card is not a programmed eSIM. It's basically the same as the Particle SIM card, except in an SMD form-factor. It cannot be reprogrammed to support other carriers."
Further down the page:
"The Boron LTE (BRN404X, BRN404, BRN402) has a 4FF nano SIM card slot, but using a 3rd-party SIM card is not recommended.
Only cellular bands used in the United States, Canada, and Mexico are enabled in Device OS which will prevent connecting in Europe and other locations.
The Boron LTE is not CE certified, and cannot legally be used in the European Union."
It make me wonder if someone imported the Boron since I'm in the UK.
It looks like you may be able to modify the firmware to change the country code:
https://community.particle.io/t/3rd-party-simcard/59015/5
Indeed, I can see in the log:
+UMNOPROF: 2
This page has information about using a 3rd-party SIM card:
Also note from:
https://community.particle.io/t/unable-to-set-up-boron-lte/45166/18
"For the Boron LTE, support for LTE Cat M1 is required. This is an IoT-specific subset of LTE, and not all carriers support LTE Cat M1 at this time."
I decided to not go further with trying to get cellular working, I don't even know if my SIM supports Cat M1 - a quick search online suggests it doesn't - something I should have checked first. If I did need to connect the Boron to the Particle Cloud I could possibly do so through another Particle device as part of a mesh network but the board can at least be used offline and its Bluetooth and NFC connections should still be usable.
Tips
Tapping the MODE button on your device will blink out the bars of signal strength. More blinks indicate a stronger signal.
Particle Xenon
Introduction
The Particle Xenon has neither Wi-Fi nor cellular connectivity for connecting to the Device Cloud yet can be used as either an endpoint or repeater within a Particle Mesh network to access the Cloud.
I got two Xenon kits as part of an eBay job lot of four Particle boards for under £26 ($33) in 2024, they both have SKU XENNKIT. I have not been able to find if there were other SKUs available from Particle.
I couldn't find the Xenon for sale on the Particle store, however, I did find it was available from sparkfun for $25.00 (£19.47):
https://www.sparkfun.com/products/15073
On the outer carboard sleeve of the Xenon kit it shows the board breadboarded with a few other components and underneath it has the words:
XENON KIT
IoT Development Kit
(Mesh + Bluetooth)
On one side there is the device ID and the SKU 'XENNKIT', and on the back it shows a top view of the Xenon, announcing:
Meet the Xenon, a development kit for building mesh-networked IoT devices. Powered by Particle, the most widely-used IoT platform.
Additionally, it mentions Particle's Device OS powering the board, providing the programming framework, OTA software updates, and secure communications. It goes on to specify the Nordic nRF52840, which supports 802.15.4 and Bluetooth 5. The Xenon can be connected to other Particle Mesh devices and a Bluetooth-enabled smartphone. It's also Adafruit feather compatible, supporting FeatherWing accessories (sensors, displays, etc.). It lists the box contents; micro-USB, mini breadboard, and starter project.
Pulling out the inner brown box, the top of the box invites you to visit setup.particle.io to configure the device. Opening up the box I found the following printed:
THIS IS PARTICLE MESH - THE NEW INTERNET FOR THE INTERNET OF THINGS.
You're joining over 150,000 people building IoT products with Particle. Welcome!
To get started, visit setup.particle.io
In the box is a card, on one side it invites you to share your project, with a link to www.part.cl/share, and on the other side there is a link to www.part.cl/insights for learning best practices. Also in the box is the Xenon in a paper bag on anti-static foam, on one side of the bag it has an outline of the board and on the other it lists the features:
Nordic Semiconductor nRF52840
*ARM Cortex M4
*64 MHz
*1MB Flash
*256KB RAM
*802.15.4 mesh networking
*Bluetooth 5
20 mixed-signal GPIO
*6 analog (ADC)
*4 PWM
*UART
*I2C
*SPI
Additional 2MB SPI Flash on-board
LiPo battery ready
Lastly, in the box you get a second bag, which contains the USB cable, breadboard, and components (x2 220 ohm resistors, x1 LED, and x1 phototransistor).
Note: no antenna is included.
Looking at the Xenon board in more detail, it measures approximately 23 x 50mm, with a weight of 10 grams. It has a micro-USB connector for power and programming, 'CHG' charging (orange) and 'D7' user (blue) LEDs, 2-pin LiPo battery connector, 2x5 pin male connector for JTAG (SWD) debugging/programming, MODE and RESET buttons, RGB status LED, and a Bluetooth/Mesh U.FL antenna connector. Along one side is a 16-way male header, and on the other side a 12-way male header, both for power and interface - the connections are labelled on the PCB and the side of the headers, and are suitable for use in wide breadboard. The PCB underside is very bare, there is an NFC U.FL antenna connector on the USB end and on the other end the revision number is printed - v1.00 for both my Xenon boards.
The Xenon product page can be found at:
https://docs.particle.io/xenon/
As mentioned on the page, the Xenon has been discontinued. The Xenon has a built-in battery charging circuit designed for Li-Po batteries.
Links on the product page include quick start project (takes you to the start of the same page, what it should actually link you to is the 'Set up your Xenon' section), hardware files, and datasheet. The link for the hardware files is:
https://github.com/particle-iot/xenon
Where you will find datasheets for the various components of the Xenon, and various design files including the v1.00 schematic.
The datasheet link on the product page takes you to:
https://docs.particle.io/reference/discontinued/hardware/xenon-datasheet/
The datasheet page has various technical information, there is a system block diagram and details of how to power the board, primarily via USB or a LiPo battery. Although the board will use the on-board PCB antenna by default for the Mesh network a firmware command can be used to switch to an external antenna, of which Particle recommends the ANT-FLXV2:
https://store.particle.io/products/wi-fi-or-mesh-2-4ghz-antenna
Alternatively, most 2.4GHz antennas will work.
As specified, all GPIOs are limited to 3.3VDC maximum.
Going back to the product page, it gives us some additional details of the Xenon I've not already mentioned:
Nordic Semiconductor nRF52840 SoC
*Bluetooth 5: 2 Mbps, 1 Mbps, 500 Kbps, 125 Kbps
*Up to +8 dBm TX power (down to -20 dBm in 4 dB steps)
*NFC-A radio
Xenon general specifications
*On-board additional 4MB SPI flash
*Micro USB 2.0 full speed (12 Mbps)
*On-board 2.4GHz PCB antenna for Thread/BLE
Note the mention of 4MB flash, contradicting the stated 2MB flash on the Xenon packaging.
Getting started
In the 'Set up your Xenon' section of:
https://docs.particle.io/xenon/
it's explained that:
"The Xenon is no longer supported by the mobile apps and if you choose to use the Xenon you will need to set it up using USB, and can only use Device OS up to 1.5.2. Later versions of Device OS do not support the Xenon."
Fortunately, by the time I got to trying out the Xenon I had already set up other Particle boards over USB - you may want to read the 'Getting started' sections of the Argon and Boron on this page.
I plugged the Xenon into my Windows 11 laptop via a micro USB lead and the RGB LED was blinking blue and nothing new was showing in the Device Manager - Windows didn't respond at all to the board being plugged in. So I put the Xenon into DFU mode (hold the mode button, press reset, release mode when the RGB LED flashes yellow). Now Windows reacted and a 'Xenon DFU Mode' device appeared in Device Manager but with no drivers installed.
For the previous Particle boards I had used the Zadig utility but I found installing the WinUSB driver for the Xenon didn't help, instead I had to use the libusbK driver; after installing, 'Xenon DFU Mode' showed in the Device Manager under 'libusbK USB Devices'. I was then able to use in cmd:
particle update
To update the board to Device OS 1.5.2, which took about 45 seconds.
Please see the following link if you are unfamiliar with using the Particle CLI:
https://docs.particle.io/getting-started/developer-tools/cli/
After updating, the board's RGB LED was blinking blue and a 'USB Serial Device' was now visible for the device under 'Ports (COM & LPT)' in Device Manager.
Rather than use the Web IDE to load a program on to the Xenon I used a method I had used previously for USB connected Particle boards, which you can find here:
https://docs.particle.io/getting-started/developer-tools/cli/#update-your-device-remotely
To compile blinky for Xenon use:
particle compile xenon blinky.ino
Then:
particle flash --local argon_firmware_1722926867434.bin
Replacing the firmware file name with the actual file name that was the result of compiling blinky. The flashing took only five seconds but the D7 LED wasn't flashing, thus I needed to put:
SYSTEM_MODE(MANUAL);
At the start of the blinky file. I compiled and flashed again and now the D7 LED was flashing, and the RGB led was 'breathing white' (mesh module is off). This shows that even with the Xenon the board wants to connect to the Device Cloud before running the user program.
I went through the same process of setting up the second Xenon board, fortunately when I put it into DFU mode the driver was automatically applied so I went straight to updating the board and then flashing the blinky program, which was a success.
I will return to the Xenons at some point and see if I can get them working as part of a mesh network, perhaps pairing with an Argon to provide access to online functions.
All boards
Tips
System modes
https://docs.particle.io/reference/device-os/api/system-modes/manual-mode/
All content of this and related pages is copyright (c) James S. 2024