While the BMD-300 GPIO pins can be assigned to any function, the BMD-300-EVAL has some assignments that need to be considered. In most cases, these assignments will not affect operation of other devices assigned to the pins, though it's good to know which ones are affected:
- P0.00, P0.01 = connected to the 32.768 KHz crystal
- P0.05 - P0.08 = connected to the UART on the J-Link debugger
- P0.09, P0.10 = connected to the NFC connector
- P0.21 = reset
- P0.13 - P0.15 = connected to the user buttons (handy for checking inputs)
- P0.16 - P0.19 = connected to LEDs (handy for outputs, active low)
When setting a pin as an output, reading its state will always return zero. This is due to the nature of the Nordic nRF52 API where the return path is not connected internally on the MCU. Inputs will give you the actual state.
The BMD-301-EVAL and BMD-350-EVAL also share the same assignments.