Modular phones have been hypothesized for years, with Phonebloks and Project Ara being the most popular concepts and just some shy experiments, like Fairphone 2, LG G5, Motorola Moto Z and Librem 5 inheriting part of the modular smartphone paradigm through replaceable boards, PCIe and other simple expansion mechanisms.

However, maybe due to the heavily proprietary nature of the extension stacks, and partly due to the small numbers of practical applications, with USB Type-C addons overcoming many expansion mechanisms, the modular aspects most of these were shortly forgotten and seldom repeated in newer models. What is not widely known about the PinePhone, however, is that the back of the motherboard exposes some pogo-pins (that is, elastic, spring-like expansion contacts that get physically compressed in the external rigid chassis when not needed) which can allow for easy expansion of the functionality of the PinePhone via hypothetical expansion boards.

The pogo pins on the PinePhone back cover (source)

In case you were wondering how these pins work, the topic has been covered in-depth by the widely known postmarketOS developer and PinePhone hacker Martijn Braam, who documented the procedure of developing an expansion board in a post (linked below) on his blog, through the real-life example of a low-cost thermal camera expansion, whose development process is followed from the hardware connection side up to the development of the simple Python software frontend to fetch images.

The technical details are quite simple, since the pins are essentially an exposed I2C interface, which allows for low-speed devices such as cameras and additional boards/sensors to be easily interfaced to the internal board. The minimal nature of this expansion interface, however, does not at all limit the possibilities of expansion of the PinePhone, and makes the process of developing an expansion module surprisingly smooth.

Making a backcover extension for the PinePhone
Trying to connect a thermal camera to the backcover of a PinePhone using the pogo pins.

It is worth remembering that the main PinePhone competitor, the Purism Librem 5, also offers modularity to a similar or wider degree, but this happens in it through faster, yet larger, internally mounted PCIe modules, which can be interfaced with the SoC and kernel directly to give wide room for expansion, both in terms of wireless communication and further electronics of any kind. No externally developed modules for the Librem 5 are known [to me] yet, but we are confident that they will appear as soon as more consumer-oriented batches start getting shipped.

In conclusion we can see how Linux phones are becoming an innovative playground of hardware experimentation in addition to being fresh ground for all kinds of penguin-friendly software development. More information on the PinePhone "expansion port" and how to use it in practice can be found on Martijn's blog and on the Pine64 wiki.