While I'm doing the writeups of the various tests I've done for the PAN1780 (sometimes I think the writeup takes as long as, or even longer, than the actual test) I figured I'd post some of the more interesting stuff I've done, just in case any of them don't make it to the final review.


The PAN1780 doesn't have Arduino Uno R3 compatible headers, which is a shame because a lot of breakout boards are in the Arduino Uno R3 form factor, and it would have been nice to make use of them.


So I thought maybe I can try and make an adapter using one of the prototyping shields I already have?


So with a bit of soldering, cross referencing, and wire wrapping I was able to make use of almost all the pins in the PAN1780 and map it to corresponding Arduino pins.



Some notes:

  • I left out A2 and A3 because pins 02 and 03 (which are ADC pins in the nRF52840) are not exposed via the female headers, and are instead male pin headers located near the NFC pins. I don't know if I would need all six analog-in pins, but if I need to I can just jumper them across. I didn't want to wire wrap directly since I wanted the shield to be easily detachable.
  • I didn't wire 5v yet. I'm not sure if it's even a good idea, because there are many shields that source power from 5v and would therefore use 5v signals for communication. The nRF52840 is not 5v tolerant. Maybe what I can do is short the 5v to 3v3 so there is no danger of higher voltages being sourced, or just provide 5v power separately to devices when I know they don't communicate on that higher voltage. This is similar to the approach taken by the Arduino Nano33 line where they don't provide power to the 5v pins by default and you'd have to solder some jumpers in order to get that working.
  • I tried to match the pins to their functions (e.g. SPI for the default SPI used in the nRF52840DK, ADC pins for the A0..A5 pins, etc) but since not all of the nRF52840 pins of the PAN1780 are exposed, I had to eventually just wire things up so they're neat. I would have to write a lookup table later so if there's a project using the shield, I can just define some constants and I can use those constants instead of the pin numbers (similar to how the Board Support Packages work).