Page 1 of 2

Flashing ESP-Wroom-32 in production

Posted: Sun Jun 03, 2018 9:52 pm
by sorenhl
Hi,

I am currently working on a project that involves using the esp-wroom-32 in a project that will hit factory production later this year (small scale initially).

I have written all the code needed and got the esp working as intended with all the external sensors, but currently I am working with development boards, which makes the flashing over usb to UART easy.

Now I do not think the company that I work with for the industrial design have experience with this specific chip, so I would like to have an idea which pins and what tools they should have available once the layout is made and the production starts. I think they previously have used a programmer with JTAG but I have now read several places that this is not supported/recommended with ESP32.

The product will be CE certified so this combined project is quite a financial investment for me, so I would love to have the correct pins available in a connector from the start and knowing what I should provide the factory with.

/Soren

Re: Flashing ESP-Wroom-32 in production

Posted: Mon Jun 04, 2018 3:35 am
by ESP_Sprite
FWIW, for a device I built on a semi-small scale (several thousands) we use a test jig (bed-of-nails, essentially) with a Raspberry Pi with a specially developed shield on it. The software running on the Pi does a bunch of tests on the hardware (checking voltages, looking for shorts, the works) before essentially invoking the esptool.py that comes with esp-idf to flash the ESP32 over the serial port of the Raspberry Pi. I'm not entirely happy with the speed the flash is written with (10 seconds or something, for a fairly big (few megabytes) payload) but I'm not sure how much of that is due to the slowness of the flash in general.

Re: Flashing ESP-Wroom-32 in production

Posted: Fri Jun 08, 2018 8:47 pm
by sorenhl
Hi ESP_Sprite,

Thank you for your answer, i think that will be the way to go for now.

/Søren

Re: Flashing ESP-Wroom-32 in production

Posted: Sat Jun 09, 2018 1:37 pm
by mikemoy
but I have now read several places that this is not supported/recommended with ESP32.
Where did you see that ?

How about the ESP32 Programming Tool ?

Re: Flashing ESP-Wroom-32 in production

Posted: Sat Jun 09, 2018 3:31 pm
by sorenhl
Hi,

I was referring til JTag, which by "google" it seems to be possible, but not recommended.

So yes, I will be using the programming tool over UART, which also seems quite easy.
I talked with the hardware team and we will make the pins for this available to flash the finished product, so i have figured it out :)

/Søren

Re: Flashing ESP-Wroom-32 in production

Posted: Sat Jun 09, 2018 3:49 pm
by mikemoy
I was referring til JTag, which by "google" it seems to be possible, but not recommended.
Glad you have it figured out, but I wanted to clarify this for others that may see this post.
There is nothing wrong at all programming it with JTAG.

Re: Flashing ESP-Wroom-32 in production

Posted: Sun Jun 10, 2018 12:16 am
by ESP_igrr
It is not recommended to use JTAG as the only means of factory programming, because typically JTAG will need to be disabled in the finished product. If the device needs to be reflashed after JTAG is disabled, that would require different interface (UART) to be used.

Re: Flashing ESP-Wroom-32 in production

Posted: Sun Jun 10, 2018 11:32 am
by sorenhl
Fair enough, thank you :)
I think we went out of the wrong path, as my initial goal was to find out which pins I should expose to ensure that flashing in production (100+ devices at a time) would be as easy as possible. I never had any intent of shooting down JTag, i simply have not been in this type of scenario before.

My conclousion are the following pins from ESP-Wroom-32:
* TX (UART)
* RX (UART)
* EN (Reset)
* GPIO0 (Boot mode)
* Ground
Which i will ask the factory to flash with the ESP programming tool.

Furthermore I will proberly expose JTag pins as well, just in case I need debugging.

Feel free to give me feedback on my plan :)

Re: Flashing ESP-Wroom-32 in production

Posted: Sun Jun 10, 2018 2:06 pm
by ESP_Sprite
Slightly offtopic, but... Maybe think about doing what I did and make an ATE jig that initially flashes a test program that, combined with the bed-of-nails jig, tests all the other hardware bits and pieces as well. Thoroughly, if possible, in such a way that mis-soldered components but also wrong components can be caught. See e.g. https://www.reddit.com/r/PocketSprite/c ... ostmortem/ for something we got burned by.

Re: Flashing ESP-Wroom-32 in production

Posted: Sun Jun 10, 2018 2:18 pm
by mikemoy
You pin selection for serial programming is correct.
Should you need an off the shelf programmer you could use one of these.
http://www.electrodragon.com/product/es ... 266-esp32/

Or should you choose to program the modules before they are placed in your board, you can program them with this.
https://www.aliexpress.com/item/ESP32-T ... 47042.html