Announcing the New Particle Web USB Setup

Hey Folks-

I am thrilled to announce the official release of the brand new Particle device setup process hosted at setup.particle.io! This new tool offers a seamless and intuitive way for users to set up new Particle devices, so you can get to building your Particle-powered projects as soon as possible! It also lets you set up your first product or add your device to an existing product.

Over the years, Particle has offered a number of different methods for setting up devices, ranging from mobile apps to web apps to command line tools. While the variety of options is useful, new browser technologies (specifically WebUSB) have made it possible to deliver a world-class setup experience for all Particle devices through a web browser. This new setup app is now the default experience for new Particle users, replacing the mobile setup apps which will be deprecated later this year (no earlier than Q3) in favor of more SDK-like tools for building Particle mobile apps.

Thank you to all our amazing beta testers for providing great input and feedback!

6 Likes

HI Colleen,

If you plan to deprecate the mobile apps later this year, will you add the ability to re-provision WiFi credentials over WebUSB (with skipping authentication)? Or at least keep the mobile apps in the App Store?

I understand there’s the new WebBLE interface that is supposed to do this, but we have many Photon 1 units in the field (some of which don’t already have SoftAP on them) and currently the easiest way for us to walk customers through changing WiFi credentials is listening mode + the iOS Particle app + skip authentication.

Thanks!

Hi Derrick-

The app will be removed from the app store at a yet-to-be-determined date but all functionality of the mobile app will have a replacement in place before deprecation. There will also be thorough documentation provided for any new tools.

Thanks,
Colleen

5 Likes

@Colleen

I am currently developing a new variant of an instrument I developed several years ago for assessment of patients with Cystic Fibrosis and other lung diseases. The initial requirement is for 15 units for a wider patient and clinician review, but I have also been asked to estimate costs for a large (250+) nation wide clinical trial. The device will transfer data for each patient session at home (typically 20 min twice daily) to a cloud database for feedback to clinicians.

I am currently developing using a B524 BSOM but am also interested in possible using a Photon2, in part because of the relatively long connection time over 4G and in part cost.

The challenge with using WIFi rather than 4G is linking the device to either a patient’s cell phone or home WiFi modem/router.

Are there existing tools for achieving this and/or will the new system be capable of doing so,

When will Photon2’s be available to order - I initially only need a couple for evaluation against the B524’s.

Thanks
Bruce

Hi,
there is this library that allows you to set WiFi:

I believe it just got updated for the Photon2.

There is also this free Android app:

Regarding that challenge, no matter what Particle or any given company can provide, you are still stuck with the millions of combinations on router brand/settings/bands/compatibility. That's the real challenge for WiFi-based products.
Best
PS: your product seems great!

1 Like

I forgot to add that Particle has promised to release SDKs that will allow us to write our own app (in React.js)

2 Likes

@gusgonnet Thanks. This project has certainly been interesting. It provided data for one element of my son’s PhD project. It has been a steep learning curve - I am a retired physicist who used to program in Fortran back in the 80’s before moving into a senior R&D management role. C++ and the IoT world are far different from programming PDP11’s and vector processors for real time data acquisition. I am naive newbie and value (and at times am absolutely dependent upon) assistance from people on this forum.

We have recently received a very small grant from a CF charity to develop the next phase. It remains a voluntary effort on my part but the funding will enable us to get some assistance with cloud based storage and data analysis.

3 Likes

@Colleen,

Today, I had a chance to setup some new devices with the production version of this tool - what a pleasure!

Thank you Particle for this great addition to the tool set that makes using Particle great.

Chip

2 Likes

Very nice – glad to see people making use of browser standards!

Some feedback on various host systems trying to connect to an Argon:

  • works with Brave on x86 MAC
  • does not work on Arch Linux + Chromium or Brave (shows a dialog with device, but then goes back to Detect screen instead of progressing to next stage)
  • does not work on Pixel 6A/Chrome (says browser is not compatible)

I’d be glad to do more testing if you make changes …

1 Like

Will the site be available for us to white label?

It would be great to send customers to our own sites and have them setup/update the devices when they purchase them.

New Argon, out-of-the-box, successfully setup. The process was easy to do and everything went fine. (Windows 10, Chrome, new to the Particle Community)

Thanks Particle team!

3 Likes

@Colleen ,

For some reason the new setup process has started failing for my at a particular spot most of the time.

The system is updated successfully and the setup tries to reconnect to the device to take the next step. The device is flashing green and I get this message.

I try several times and sometimes it works and sometimes I have to complete the process manually.

Any suggestions?

Chip

@Colleen, are there any plans to add a link/button to this at console.particle.io/devices (and console.particle.io/products/… for that matter) ?
I think this would be a logical place to look for it :wink:

BTW, at some stages of the process a SKIP button wouldn’t be a bad thing.
e.g. I had an inadvertent interrupt of the process during step 3/4 so I went back to the beginning but would have liked to skip 2/4 as that had been done just a few seconds before that.

Also what when I do not want that new device as part of a new or existing product but merely added to my sandbox? Skipping 3/4 would allow for that.


This states creating a product would be recommended but at this stage it appears compulsory in order to move on to 4/4.

However, I went along creating a dummy product and then this happened while trying to name the new device (in Chrome under Windows 10)

browser console log
Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
o19522.ingest.sentry.io/api/6706974/envelope/?sentry_key=60699a6bdcfe490da2bdddadf94a140d&sentry_version=7&sentry_client=sentry.javascript.nextjs%2F7.40.0:1          Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
_app-4071ef84e60de23d.js:1 Erasing DFU device memory
_app-4071ef84e60de23d.js:1 Copying data from browser to DFU device startAddress=134610944 expected_size=1006562
o19522.ingest.sentry.io/api/6706974/envelope/?sentry_key=60699a6bdcfe490da2bdddadf94a140d&sentry_version=7&sentry_client=sentry.javascript.nextjs%2F7.40.0:1          Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
_app-4071ef84e60de23d.js:1 Wrote 1006562 bytes
_app-4071ef84e60de23d.js:1 Erasing DFU device memory
_app-4071ef84e60de23d.js:1 Copying data from browser to DFU device startAddress=140460032 expected_size=49152
_app-4071ef84e60de23d.js:1 Wrote 49152 bytes
_app-4071ef84e60de23d.js:1 Manifesting new firmware
api.particle.io/v1/devices/0a10aced202194944a04081c:1          Failed to load resource: the server responded with a status of 403 ()
api.particle.io/v1/devices/0a10aced202194944a04081c:1          Failed to load resource: the server responded with a status of 403 ()
api.particle.io/v1/devices/0a10aced202194944a04081c:1          Failed to load resource: the server responded with a status of 403 ()
api.particle.io/v1/devices/0a10aced202194944a04081c:1          Failed to load resource: the server responded with a status of 403 ()
_app-4071ef84e60de23d.js:1 TypeError: Cannot read properties of null (reading 'label')
    at _app-4071ef84e60de23d.js:1:517247
    at _app-4071ef84e60de23d.js:1:517353
    at _app-4071ef84e60de23d.js:1:1009349
    at d (_app-4071ef84e60de23d.js:1:1008261)
    at _app-4071ef84e60de23d.js:1:1009482
    at d (_app-4071ef84e60de23d.js:1:1008261)
    at e (_app-4071ef84e60de23d.js:1:1061427)
    at _app-4071ef84e60de23d.js:1:1061528
    at Object.Ro [as useSyncExternalStore] (framework-0ba0ddd33199226d.js:1:65328)
    at n.useSyncExternalStore (framework-0ba0ddd33199226d.js:1:136888)
    at t.useSyncExternalStoreWithSelector (_app-4071ef84e60de23d.js:1:1061598)
    at _app-4071ef84e60de23d.js:1:991208
    at S (_app-4071ef84e60de23d.js:1:584977)
    at Eo (framework-0ba0ddd33199226d.js:1:63195)
    at Pu (framework-0ba0ddd33199226d.js:1:74883)
    at xi (framework-0ba0ddd33199226d.js:1:121318)
    at bs (framework-0ba0ddd33199226d.js:1:109371)
    at gs (framework-0ba0ddd33199226d.js:1:109299)
    at vs (framework-0ba0ddd33199226d.js:1:109162)
    at as (framework-0ba0ddd33199226d.js:1:105942)
    at is (framework-0ba0ddd33199226d.js:1:106333)
    at jl (framework-0ba0ddd33199226d.js:1:46916)
    at framework-0ba0ddd33199226d.js:1:103875
(anonymous) @ _app-4071ef84e60de23d.js:1
o19522.ingest.sentry.io/api/6706974/envelope/?sentry_key=60699a6bdcfe490da2bdddadf94a140d&sentry_version=7&sentry_client=sentry.javascript.nextjs%2F7.40.0:1          Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
o19522.ingest.sentry.io/api/6706974/envelope/?sentry_key=60699a6bdcfe490da2bdddadf94a140d&sentry_version=7&sentry_client=sentry.javascript.nextjs%2F7.40.0:1          Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
DevTools failed to load source map: Could not load content for chrome-extension://nbeldjopgciegccabfohnefghfpinncn/scripts/translations.js.map: System error: net::ERR_FILE_NOT_FOUND
DevTools failed to load source map: Could not load content for chrome-extension://nbeldjopgciegccabfohnefghfpinncn/scripts/common.js.map: System error: net::ERR_FILE_NOT_FOUND
DevTools failed to load source map: Could not load content for chrome-extension://nbeldjopgciegccabfohnefghfpinncn/scripts/content-script-libs.js.map: System error: net::ERR_FILE_NOT_FOUND
DevTools failed to load source map: Could not load content for chrome-extension://nbeldjopgciegccabfohnefghfpinncn/scripts/frames.js.map: System error: net::ERR_FILE_NOT_FOUND
DevTools failed to load source map: Could not load content for chrome-extension://nbeldjopgciegccabfohnefghfpinncn/scripts/content-script.js.map: System error: net::ERR_FILE_NOT_FOUND

During that crash a new product was created but never got the device assigned and now I’m stuck with a product I never wanted, that never had any devices attached to and I cannot delete as there still is no process to purge irrelevant products - as it seems I cannot even rename it to indicate that this is a dead product.

3 Likes

Chip, are you using the same cable each time? Is this always happening with the same type of device(I’m guessing 404x)?

I’ll pass this issue on to the development team and see if they have any suggestions.

No plans at the moment but I love this idea and will raise this and the skipping idea internally(perhaps under advanced options since we want newer users to get used to using products early on).

Thank you Colleen,

I have tried a couple different cables but with the same result and, yes, BRN404X.

Thanks,

Chip

hello

i tried this with two different p2 boards (particle’s p2 eval board and our own board) and it does not seem to work with chrome (Version 112.0.5615.49) on mac (mac os 13.3.1, tested on both intel and m1). log and screen shot below.

stuck at step 2 / 4: We weren’t able to install [Device OS or Firmware part]. Please try again. If the problem persists, read the troubleshooting guide

anyone any idea?

thanks
frank

Device is going in DFU: 0a10aced202194944a001004
The device is connected: 0a10aced202194944a001004
Reconnecting device: 0a10aced202194944a001004
The device is in DFU MODE: 0a10aced202194944a001004
Getting device: 0a10aced202194944a001004
Getting Device OS information for p2
Downloading binary: p2-bootloader@5.3.0.bin
Downloading binary: p2-prebootloader-part1@5.3.0.bin
Downloading binary: p2-system-part1@5.3.0.bin
Downloading binary: p2-tinker@5.3.0.bin
Updating modules over DFU
Updating module: p2-system-part1@5.3.0.bin
Updating module: p2-tinker@5.3.0.bin
Updating over DFU succeeded
Reconnecting device: 0a10aced202194944a001004
reconnected
Update device over control request
Reconnecting device: 0a10aced202194944a001004
Put the device in listening mode: 0a10aced202194944a001004
Warn: Cannot put the device in listening mode: Invalid state
Updating module p2-bootloader@5.3.0.bin
Error when flashing p2-bootloader@5.3.0.bin, Request error
Retrying p2-bootloader@5.3.0.bin....
Reconnecting device: 0a10aced202194944a001004
Put the device in listening mode: 0a10aced202194944a001004
Warn: Cannot put the device in listening mode: Invalid state
Updating module p2-bootloader@5.3.0.bin
Error when flashing p2-bootloader@5.3.0.bin, Request error
Retrying p2-bootloader@5.3.0.bin....
Reconnecting device: 0a10aced202194944a001004
Put the device in listening mode: 0a10aced202194944a001004
Warn: Cannot put the device in listening mode: Invalid state
Updating module p2-bootloader@5.3.0.bin
Error when flashing p2-bootloader@5.3.0.bin, Request error
Retrying p2-bootloader@5.3.0.bin....

Did you flash firmware that uses BLE Provisioning mode? Once you’ve enabled BLE Provisioning mode you can no longer use setup.particle.io because it relies on listening mode and BLE Provisioning mode disables listening mode.

If you restore the device using Web DeviceDoctor or Device Restore USB it will clear disable listening mode, which is to stay, enable listening mode.

3 Likes

@Colleen ,

Yes, this happens every time making the new process very difficult. Will open a ticket but, mention it here in case anyone else is getting this error:

Thanks,

Chip

1 Like

@Colleen ,

Any progress on this. I am still seeing a less than 50% success rate with the new setup tool.

As you suggested, I have tried different USB cables without any luck.

Thanks,

Chip