If I am creating a “product” using the Particle console and I am required to configure all the Photons at the factory to load production firmware for testing before shipping out. Does Particle provide any app or software for automatically scanning for Photons (listening mode when first powered on), entering SSID+credentials, and automatically perform system and application firmware OTA? This is assuming if I order 1K units and their device IDs automatically keyed into the console by Particle. This would be a good tool to have and I assume this is something available.
I’d think for production firmware setup, you’d do that wired.
Why would you do that OTA? That just slows down the whole process and needs do be done sequentially rather than being able to do it in parallel due to the shared radio band.
I think that would be the best option only if the product has an exposed USB port. I don’t think there would be too many products out there with that option so the customers won’t have that interface. (It would be weird for a toaster to have a USB port?) Having an extra port you are only using once also adds cost. I suppose you can expose solder pads and have a custom programming interface for this purpose.
Doing it over the air also helps test OTA functionality. I guess you also won’t need to hard code factory WiFi into the code for testing. These are just my thoughts. I have seen another company using OTA in their production process.
Hey there @bing1106 – ScruffR is right, we absolutely recommend performing device updates for manufacturing over USB, hardware serial, or JTAG over-the-wire, not over Wi-Fi.
You’re right–not all products have exposed USB ports, but all circuit boards (including toasters!) require testing before being mounted into an enclosure or housing. In the event that you are using full Photon PCBs in your product, you should simply update them before they have been soldered to your carrier or host PCB, or after they have been soldered to your host PCB, before that PCB assembly has been integrated into the enclosure.
Whatever PCB you are designing will require basic testing at scales of 1K+ units, and that is the most effective, reliable, and appropriate time to update the system and user firmware on your devices.
We do recommend doing end to end functional testing of your product to ensure that they can be properly configured with Wi-Fi credentials and connected to the Cloud, but that is more appropriate at the final inspection and testing stage since any additional assembly or manufacturing steps could conceivably change the performance of the device.
Hope that helps a little bit!
@will Thanks for the reply. It makes sense. We are going to be using the P1 for production and in that case unfortunately the module does not come with a microUSB port. Though I do have the USB pads exposed somehow on the host PCB it is not too convenient to program it en mass. I don’t suppose the P1s can be ordered pre-programmed with ~1k quantity? (I have to ask). In that case the factory won’t be able to interact with the P1s (in reels) before assembling them onto the PCBs. What do you recommend doing for this scenario?
If you are using the P1 in production, you can reprogram the firmware either over serial or over the JTAG pins if you expose them on your circuit board (which we highly recommend–can be the only option to recover the hardware in the case that a mistake is made on the assembly line or the protected bootloader is damaged somehow). In general, you are going to test and reprogram the firmware with testing fixtures that have pogo pins that contact test points on your PCB.
If you are scaling with the P1 and haven’t already, I also highly recommend you reach out to our Customer Success and Sales teams, who can give you background on manufacturing/testing and provide additional support throughout the process of scaling your product.
@djack2485 and @Charlie_K would be happy and willing to chat more and connect you with the right folks on the team.
Excellent. I will PM them both.
I do have exposed Serial pads for the P1 on the PCB as back up. We didn’t initially want to build test/programming fixtures since the production size is small though what you are saying makes sense. We might as well start early. Thanks!