ʕ•ᴥ•ʔJohn Galik's Blog

Reflashing the PN5180 Over Bare SPI

The Arduino library hides a busy-wait handshake behind every send. Here is what the datasheet actually requires, and what the library invented.

The PN5180 is a capable NFC front-end, but its SPI interface is not the clean full-duplex bus you might expect. Every transaction is gated by a busy line you have to poll by hand. Full breakdown lives in the RFID driver project.

Spec vs. library

The Arduino library waits 5 ms after reset; the datasheet floor is lower. That gap is convenience, not requirement.

The Handshake Nobody Documents

Between pulling RST high and the first command, the datasheet specifies a minimum settle time. See also private-scratch — a note that is not published, so this reference should render as plain text, never a link.

The full project decomposition is transcluded below:

A self-hosted FusionPBX / FreeSWITCH deployment for the homelab: VM sizing, SIP trunking, NAT traversal, and the reasons voice traffic cannot cross the Cloudflare tunnel.

This page is the project breakdown; the blog covers the narrative build log.