I'm working on a project which is all on breadboard right now. I'm close to final version, so I'm planning to design PCB for the release (not commercial use, just for some friends of mine).
The microcontroller is an ESP8266-12E, and I want to be able to program it after it has been soldered to PCB (so ICSP). To achieve that, I planned a pin-strip to expose:
- RX
- TX
- GPIO0
- GPIO2 (not sure about that, some schematic don't use it)
- GPIO15
- CHPD
- VCC
- GND
according with programmer schematics you can found online (eg. this or this).
This is how 'programming relevant' pins are used in my project:
- RX and TX pins are used for a GPS module connection.
- GPIO2 used as 'debug serial'
- GPIO0 used as output
- GPIO15 not used
I never worked with ICSP so I'm quite confused about some points:
Resistors in programmers schematics (like the second link I post): should I put them on the programmer board (which will be then connected to pin-strip with a cable to program) or should be placed into the PCB?
Are there any other PCB/schematic design guidelines I must to know to safe perform an In-Circuit-Programming procedure without damage other PCB device/IC or the microcontroller? (eg. pull-up/down, decoupling, etc)