Carrying over from what started in the ProjectABE thread, discussions of how to efficiently upload code to 300 (or more) Arduboys.
The method used will be via USB, as in this situation, the cases are fully assembled. We do this in the factory with a test jig one at a time with the bare circuit boards.
I know this is something @JayGarcia has done, if he has insights it would be good to know.
This is a discussion of process engineering as much as software development.
Honestly haven’t put too much thought into it… just gonna try to come up with something and brute force it… But as mentioned in the other thread I’ll try to recruit at least one other person to help me.
Generally I like to do everything at one time, this is probably the wrong way to do it but, let’s call this the brute force method would be to unpackage all the units, have a stack of Arduboys that I’m working through. Then repackage all of them.
With a helper, I could have someone unpacking them while I’m reflashing the units and then have them repack them after they are finished. Do that in batches of 5 or 10 units at a time.
If there is a method to do simultaneous uploading, that would certainly save some time. As I mentioned before I hadn’t really planned it out but at the very least I would be outside the IDE just running avrdude from the command line. It may be possible to run in parallel multiple units by writing a small script to open several instances of the command line, but I don’t know how happy windows serial driver would be with that. Probably ok, but there is an issue of com port collision as the units auto-reset potentially.
Have we confirmed if ProjectABE reliably can re flash multiple units in parallel? Or is it glitchy?
If I have to, I can use multiple laptops. Or maybe invest in some raspberry pi zero’s. That might be the easiest method, just have 5 or 10 headless pi’s setup with a button to re flash and an LED to indicate it’s complete.
This is one I had made for the developer kits… forever ago…
It’s a fixture that has spring loaded contacts (pogo pins) and an arm to hold it in place. Inside there was a raspberry pi hooked up to an ISCP programmer.
This is something @eried made that’s kind of the home built version of the same.
Still glitchy, unfortunately, but it shouldn’t take too long to iron out the problems. I was aiming at getting 1 board to flash and now we’re going for N.
Am in the car now (parked), so I can’t type too much.
I imagine this could be scripted. Connect 10 arduboys to the computer, have a BASH script enumerate all devices connected (Mac is /dev/cu.usbmodem or something) and then use avrdude to upload to each one sequentially.
Knowing me, If I had to flash 300 I would start making a 3d printed jig with a small conveyor belt to load them all in batches. And probably that would take more than flashing them manually…
I was just suggesting multiple laptops because getting 1 to flash in a loop is trivial, not even needing to touch any button, just plug, wait, unplug, etc…
You’re more than welcome to like, you know, reply later when you are at a keyboard
Yeah this. I do have a mac but would likley get done on a PC. I think one of my laptops has has GNU tools installed on it. But then also a google search reveals… wtf?
I wonder how much time it took that person to develop that robot to do it. There is no way that would pay off until after several hundred units. Also automating micro-usb plugging and unplugging would be a nightmare. Although maybe better if you could find a male connector that doesn’t actually have the little clips that hold it in place.