mikem:
The Arduino is configured with a pullup on D12.
So while GPO1 varies between 0 and 3V, the voltage seen by the Arduino varies between 0.6 and 3.6 V
The diode acts like a voltage shifter.Cheers.
did you test this and it works? I'm asking because this is a big FAIL from sparkfun. Even on my 3.3 xbee rx/tx I add a transistor and 4 resistors to make a "poor but works" level shifting. It's a single pin.