How-to build firmware locally with Particle Workbench

Originally published at: https://blog.particle.io/2019/12/17/local-flash-101/

With Particle Workbench, you can perform OTA compile and flash just as with the Web IDE, but Workbench also supports local compile and flash so you can perform builds on your machine, and flash firmware over USB.

In this video, you’ll learn how to use Particle Workbench to perform local firmware compilation, as well as how to flash firmware binaries to a USB-connected device. In addition, you’ll learn how Particle Workbench unobtrusively manages a local compiler toolchain in a way that’s guaranteed not to conflict with other toolchains installed on your local machine.

For other videos covering the basics of working with Particle devices, such as learning how Particle Over-the-Air updates work, check out our Particle 101 series on YouTube. If you have questions about using Particle variables, functions, or anything else in the Particle platform, visit us in the Particle Community.

1 Like

Hi @bsatrom, can we write to an OTA partition with data coming from BLE (ESP32 BLE or nRF52840 BLE) and upon reset if the new OTA Partition has valid firmware use it instead of the previously running partition?

Hi netzon-gil, thanks for the question! I am not sure I follow, though. Are you looking to use BLE via another device to flash a Particle device?

Hi @bsatrom, that’s correct. Flashing another device via BLE. Preferably with the new firmware coming from Mobile App. The mobile app part we have no issues. I have some working firmware using this with plain old ESP32 espidf but for now I’m not really sure yet where to start with ParticleIO especially with Device OS. Maybe you have any advice where to start with this kind of requirement.

Basically being able to change firmware without internet, and without using USB cable.

Thanks for clarifying @netzon-gil. Currently, flashing is only available via OTA or over dfu through Workbench. I suspect it would be possible to sideload firmware over BLE, but we don’t currently provide resources or support for doing this.

Hi @bsatrom, can you provide any hints where one might be able to start with this kind of requirement? This was pretty clear with ESP-IDF especially with writing on a separate ota partition. Is there some kind of OTA partition for Device OS?