Porting project from STM32 WROOM+NRF52840 to ARGON is it possible?


Good day. I received my ARGON kit and not knowing “particle ARGON” as well as I know STM32 WROOM and NRF52840 (PCA10059/PCA10056DK) I thought ill ask.

I presume I can program the nrf52840 (ARGON) from the J-tag header through my PCA10056DK and Segger. Is there a way I can program the STM32 with my own firmware via the web SDK or Arduino. From the schematic and reading other threads, it does not look like its possible.

I am trying to port a BLE gateway project I have where BLE ADV DATA coming through the UART from the nrf52 to STM32 gets posted on a webserver. My current project uses the Nordic UART example with the STM32 WROOM setup as a webclient that posts what it receives.

Does the STM32 in ARGON contain any firmware, can I use it as is, to forward my BLE UART ADV data onto the particle cloud?

thanks in advance


Welcome to the Particle Community - I would have a read of the reference documents probably most specifically for BLE support in the device OS API https://docs.particle.io/reference/device-os/firmware/argon/#bluetooth-le-ble-. You would not need to use the JTAG to program the Argon - either web IDE or Workbench and OTA flash or USB work just fine.


Thanks Armor, il have a look. I was hoping to use the firmware I have already written for both the nRF and STM. But It doesnt look I have access to the STM. When flashing OTA, I presume it loads the firmware to nRF52 via STM32. Does the STM32 ever get updated or does it just contain embedded code that handles the transfer to the nRF.


@melt777, when you say “STM32” can we assume you mean ESP32? The ESP32 on the Argon acts as the NCP or Network Communications Processor and communicates with the nRF52840 via a UART interface. The NCP firmware is rarely updated by Particle.

I highly recommend using VSCode with the Particle Workbench extensions for your code. You should also use the Particle Gen3 device debugger which works nicely with Workbench.


Yes, apologies. don’t know why I was thinking STM I was indeed referring to the ESP32. But you answered my question. I was trying to determine the relationship between the nRF and ESP.

you mentioned the ESP rarely gets updated, would I be correct in assuming that it is indeed possible to load your own firmware on the ESP?


@melt777, I assume so but the process for updating would be for Particle to explain. Perhaps @avtolstoy could provide more information.


@melt777 Our Argon NCP firmware is opensource and can be found here.

You should be able to modify it, build using make clean module (provided all the prerequisites are met), take the resulting -ota.bin and flash it with the help from CLI

  1. Using YModem over USB serial provided by the device when it’s in the listening mode (blinking blue): particle flash --serial path-to-bin.bin
  2. Over the air: particle flash <deviceId> path-to-bin.bin


Thanks Andrey, appreciate the support.


Thanks Andre, that looks really interesting. I am looking into loading a nordic NCP onto an Argon.

You listed that --serial flash works
listening mode (blinking blue): `particle flash --serial path-to-bin.bin`

does that mean --usb flash does not work for the NCP?

Also Nordic files tend to need .hex format, particle does an interesting berkeley .elf that gets converted into .bin Can that process be simplified by

arm-none-eabi-objcopy output/nrf52840/bin/ot-ncp-ftd -S -O binary output/nrf52840/bin/ot-ncp-ftd.bin