The first question I have is about the need to include a ARM JTAG programming port / pins or not?
I want the end product to be able to be flashed over WiFi all the time ideally so what benefits would having a JTAG port provide me as a product creator? Any advice about this is welcomed.
The next question is about if I need to include a USB port. Again all my P1 and Photon programming has been done over WiFi.
Usually I display the Serial Output for debugging on a LCD screen so debugging via USB serial on a PC is not something I normally do but I can see how this might be useful for troubleshooting a product that is not working as intended.
Is the USB port or JTAG port required if I want to dump data onto the 1MB flash chip on the P1 since it can not be easily done at the moment via a WiFi firmware update.
How are you guys programming data on P1’s 1 MB flash chip? JTAG programming or USB via PC? I assume USB.
I included the same RGB led that the Photon uses for displaying system status.
I’m pretty sure the D7 LED is not required, I’m leaving it out but if there is good reason for leaving it then please let me know.
I have just made a board using the Bluz module, not exactly the same but i learned a lot from it
Definitely 110% break out the jtag pins, not necessarily the whole massive 20pin header, just the ones you need to reflash if you brick something i think half of them are gnd anyway?? (i just use 4 pins for the Bluz module). just have exposed pads and use pogo pins in a jig to flash. this will also make things easier during manufacturing. adafruit have a good tutorial on jigs and pogo pins
I would also break out uart and usb pins in the same way. serial debugging is very useful. also dont forget the mode and reset buttons like i did…
I didnt put a rgb led on my board to keep it super small and reduce the BOM, and it will be in a waterproof enclosure so you wouldnt see it anyway. but it does make it very hard to diagnose whats happening… so i wish i had broken out those pins too. i guess the user will need a way to see whats happening with listening modes, connecting, etc
make a jig that has the full 20 pin jtag connector, the USB and UART connections, buttons and LED etc…
my V2.0 will be exactly this, just the absolute bare minimum components on the device but everything broken out to pads for pogo pins. ill make a custom jig with everything else i need for full diagnostics
@Hootie81 I have a Bluz on order now, looking forward to playing around with it.
About the JTAG connectors, are you saying that there are really only 4 JTAG pins that need to be broken out out of the 10 pins that are not GND? 4 Pins is way better than 10 so if that’s all I need then please let me know what those 4 pins are and I’ll make pads for them for Pogo Pins if needed.
If I end up producing hundreds, or thousands of boards I’m guessing that Flashing each P1 would be quickest via a JTAG Programmer vs trying to get them all to do it over WiFi.
So you can’t reflash a bricked P1 over USB it has to be done by JTAG right?
And the only reason you would need to use the JTAG is to reflash a bricked P1 that was not accessible via the normal USB or WIFI methods right?
Im not 100% on the Jtag pins for P1, on the Bluz there is GND, VCC, SWDIO and SWDCLK required for flashing with a stlink v2. flashing bootloader, firmware and something else (i just cut and paste the command) on a bluz takes 2secs with stlink
Im not really the right person to ask about whats required, i just play until it works or i get smoke
Yep after looking over the forum I came across how guys are flashing using the SWDIO and SWDCLK pins. I went ahead and hooked up all the JTAG pins anyways just to be safe.
I found this small solution for adding the JTAG pins for manufacturing programming & occasional debugging when needed. There is no part port cost when doing this but you do have to buy a connector that is already to go vs making your own Pogo Pin test jig.
That is exactly what I need! The 14 pin version may make an appearance on my next revision…
I realised how hard it’s going to be to debug everything later. I need 2 pins for swd, 2 uart, 2 i2c, 3 spi, pwr, gnd, 3 for rgb and that covers everything then…
Now that you mention all you want to breakout I see I have a few unused pins on the 10 pin version so I should go ahead and use those for the USB output port so I don’t need to spend any money on a USB connector. Thanks for making me think a little more about this.
i have decided im going to break out i2c and spi for debugging too… should make things easier than trying to attach clips to a bga or castellated module
You have convinced me to just go ahead and do the same with the 14 pin footprint instead of the 10 pin layout.
I’m using Upverter to design my PCB’s and they already have the footprint for the 6 and 10 pin layouts but not the 14 so I’ll have to modify the 10 pin layout but that shouldn’t be too much work.
I use eagle for all my pcbs. Quick and easy and loads of tutorials for it. Hopefully over the next few weeks I’ll have some free time to get the new design done.