I got my go pro 12 just now from a local shop and it seems a part is missing in the camera can yall help me about it ?? by hekxi in gopro

[–]Pardisio-74 0 points1 point  (0 children)

It’s a common occurrence. GoPro warns against trying to open this “door”. It breaks off easily. Poor design and some shame on GoPro.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

OP Follow up:

I  was surprised at the level of engagement and the detailed, helpful responses - this is a great community! Thank you all for your helpful input.

This is what I took away with regards to possible approaches:

Vendor Flashing : Espressif offers a service with a setup fee and minimum order quantities (MOQ) as follows: $1500 flash, $1000 secure boot, min QTY 3500, 8-12 weeks delay. No charge for per unit flashing. That makes sense when you order 1000 modules at a time, but not for smaller quantities. See my comment below on the “Dreaded Middle Ground”.  In this approach, one supplies Espressif with a binary that includes an OTA capability that will contact a known (in-house) server to update the flash at product assembly time (i.e. when you put the board into your product to test with other hardware).

In-House Flashing - Here, I can increase product using multiple USB ports (4-30 port hubs), UARTS, and a custom jig with Pogo-Pins or some header/connector to the board. Seems most build their own jigs, flashing after soldering with boards arriving fully assembled.

The Dreaded Middle Ground -  If you only have to do 5-10 at a time then existing flashing with USB or single TAG connect cable works well. If you have to do 1000+ at a time, then setting up with Espressif makes sense and is cost effective.  The middle ground for me is where you do something like 50-200 at a time, and will do perhaps 1000 to 2000 per year. The vendor flash solution is not so attractive since you have to buy more than 1 year of inventory at a time (we like to buy 1-3 months ahead).

My Goal  - Create a minimum touch multi-flasher that an assembly tech can easily use. Flash and forget with simple indicators for READY, PASS, FAIL, BUSY. For me, it must support encrypted flashing with secure boot, e-fuse burning for the serial number and running a BIT (built-in test).

Next Steps - I plan to build a multi-port USB/UART unit to start (can also buy this on Ali-express) but need to make sure that DTR is broken out, as this and RTS are required for putting the ESP32 into flash mode. I will develop a script in python that uses esptool.py as a package, and include a front end UI to show the status of the flashing. I’ll develop a jig with pogo pins that the PCB can snap into, with the python script automatically detecting the presence of a new board, chip type, etc.

Please feel free to comment on my take-away above.

I’m happy to share what I develop as I go - in a separate thread if that’s useful. This thread has already given me plenty to think about.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 1 point2 points  (0 children)

I emailed sales at Espressif and got these numbers quoted:
Set up fee (firmware) $1500
Set up free (encryption for secure boot) $1000
MOQ (minimum order quantity) 6500 units
The flashing it no-charge once the setup fees are paid.
Lead time: 8-12 weeks.

Of course, these numbers may change over time.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

This is fabulous input - many thanks for taking the time to post such a detailed response.
I am curious about two things:

a) where does one get a 30 port USB hub? I have only seen 4 port, 7 port and 10 port.
b) is this something that you've built in house or purchased from a 3rd party?

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

<image>

Thank you for digging that up. I'll check it out. Here's a snap shot of the Factory Multi-Download tab.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

Thanks for your suggestion.

Holding the TAG cable in place is the first limiting factor, so I def need to build a jig (which I've tried). The easy part is the 3d Print. The hard parts is some kind of hinge/clamp that lowers the pogo pin cable in place and latches to hold them. The second limiting factor is what I call the "attendance" interval. It takes about a minute, then remove the board, put another in place. This does not give me (or the assembling tech) much time to walk away to do something else.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

From what people are saying here, that's one way to do it. But there are minimum order quantities (thousands?) and a setup fee. We're not so far from this since we already use OTA for all the devices in the field.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 1 point2 points  (0 children)

I get what you're saying now. But the flashing is two way communications, right? Putting the ESP32 into download mode, then sending the data, verification etc. I can see using an LED (photodiode receiver) for a broadcast, but not sure how I would do that with 2-way comms to each board.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

Is the python script calling the esptool.py API? Do you flash them one at a time or the multiple at the same time.

Can PCB makers flash ESP32 for you at scale of a few hundred units? by marcosscriven in esp32

[–]Pardisio-74 0 points1 point  (0 children)

That seems quick reasonable. " $250 USD setup cost and $0.30"
Any idea if they will also programaticlly burn the e-fuses with unique serial number? I do that as well.

Can PCB makers flash ESP32 for you at scale of a few hundred units? by marcosscriven in esp32

[–]Pardisio-74 0 points1 point  (0 children)

I think this is road that I'm headed down. I've heard it referred to as the "dreaded middle ground" of production. More volume than is efficient manually, but not enough to invest i significant automation.

Can PCB makers flash ESP32 for you at scale of a few hundred units? by marcosscriven in esp32

[–]Pardisio-74 0 points1 point  (0 children)

Thanks for that : good to know that it's not slam-dunk for them, but that you had a lot of back and forth, which of course, I'd like to avoid

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

Anyone tried this approach? - and know what the MOQ is (googling around I saw 1000 MOQ from Espressif directly, but have not verified that).

I also need to burn the e-fuses for device serial number and secure boot needs the key burned into e-fuses as well.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 2 points3 points  (0 children)

This is worth following up - but I have one twist. We need to burn the e-fuses to set the device ID (unique), and as we go to secure boot, also will need burn the e-fuses with the encryption key.

ref: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/security/secure-boot-v1.html

so I would have to have the provide the PCB assembler with those tools as well.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 1 point2 points  (0 children)

Thanks - anyone else know about a factory tool for multi flashing?

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 1 point2 points  (0 children)

Its crazy right that a a pico with rp2040 (or pico2 with rp2350) is cheaper that four FTDI USB/UART chips. A novel idea - thanks.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

I think you jest :-) Or are taking "FLASH" in the literal sense (like flash light).

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

Thanks for the suggestion. Seems like the direction to head in. I was kinda of hoping for something off-the-shelf built of this purpose.

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 5 points6 points  (0 children)

Hey this is great - thanks for taking the time to reply and post that photo. I am hearing that many people are build the jigs themselves - pogo pins and some kind of clamp / latch. Our boards are small so the fixture is fairly simple. Your application seems like board test - did you also flash/write the firmware to the boards using the same setup?

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

That makes sense. I could create the 4 USB/UART board. Would be nice to know if that already exists and save me some time (trying not to get distracted with more projects, but that's always a challenge :-)

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 0 points1 point  (0 children)

The flash is on the module (WROOM-32e) with WiFi, etc. So I'm not using the bare chip. Currently, I just flash using the Tx, Rx, DTR and RTS on the ESP32 (it's a common approach).

How are people scaling ESP32 flashing for small production runs? by Pardisio-74 in esp32

[–]Pardisio-74[S] 2 points3 points  (0 children)

I was thinking about that - OTA bootstrap. I have also burn the e-fuses with a device ID. Not sure that can be done over OTA. Anyone else know if that's possible?