My first prototype used a ST M24LR-Discovery board where some traces were cut and the M24LR was connected to a Arduino Uno. This was an advanturous construction and not very solid. So I decided to use a ST X-NUCLEO-NFC02A1X-NUCLEO-NFC02A1(https://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-board… ) which can be stacked on an Arduino.

 

Unfortunatelly on this board ST connected the IOREF pin directly to the 3.3V rail:

unholy connection of IOREF and 3.3V on X-NUCLEO-NFC02A1

 

On the Arduino Uno the IOREF pin is directly connected to the 5V rail. So when you stack the ST board on top of an Arduino Uno you short circuit the 5V rail with the 3.3V rail.

 

I don't know why ST designed it this way. And there is IMHO no reason why the M24LR is only connected to 3.3V as it also supports 5V as supply voltage. But I decided to transform the 3.3V rail into a universal supply rail, cut its connection to the 3.3V pin and connect it only to the IOREF pin so that the base Arduino board can decide wether it is a 3.3V rail or a 5V rail.

 

To do this transformation you have to cut 2 traces on the board and then connect the IOREF pin the universal supply rail.

 

Cut the connection between the IOREF pin and the 3.3V pin:

Cut the connection between the IOREF pin and the 3.3V pin

 

Cut the connection between the 3.3V pin and the supply rail:

Cut the connection between the 3.3V pin and the supply rail

 

Connect the IOREF pin to the supply rail:

Connect the IOREF pin to the supply rail

 

After these modifications the X-NUCLEO-NFC02A1X-NUCLEO-NFC02A1 works fine with an Arduino Uno or any other Arduino which has a 5V IO voltage.

 

The software of the NFC-Badge doesn't need any changes and still works like before.