Component counts in the Librem 5 and PinePhone

Here is the component count in the Librem 5’s printed circuit boards:

Type of component Main PCB USB PCB
Antenna connectors (ANTxxx) 3 2
Capacitors (Cxxx) 521 11
Connectors (CONxxx) 6 8
Diodes (Dxxx) 26 1
Fuses (Fxxx) 15 1
Wire links (Jxxx) 18 2
Wire links with voltage (JVxxx) 2 0
Resistors (Rxxx) 333 7
Inductors (Lxxx) 79 7
Transistors (Qxxx) 17 0
Switches (SWxxx) 5 0
Test controls (TCxxx) 15 0
Test points (TPxxx) 60 0
Test screw (TSxxx) 12 4
Test voltage (TVxxx) 39 0
Transient voltage suppressors (TVSxxx) 33 0
Integrated circuits (Uxxxx) 65 2
Crystal oscillators (Yxxxx) 10 0
Total 1259 45

If the test elements aren’t included (since they are printed in the board), then the two boards have 1174 components. This doesn’t include the components in the two M.2 cards, which would increase the component count for the Librem 5.

I think it’s interesting to compare the number of components in the Librem 5 and PinePhone:

Type of component Librem 5 main Librem 5 USB PinePhone main PinePhone USB
Antenna connectors (ANTxxx) 3 2 6 4
Capacitors (Cxxx) 521 11 296 16
Diodes (D/TVS/EDxxx) 59 1 22 0
Connectors (J/CONxxx) 26 10 14 4
Resistors (R/Fxxx) 348 8 222 0
Inductors (L/FBxxx) 79 7 21 0
Transistors (Qxxx) 17 0 16 19*
Switches (SWxxx) 5 0 1 0
Test points (T/TC/TP/TS/TVxxx) 126 4 27 3
Integrated circuits (U/DUxxx) 65 2 26 2
Crystal oscillators (Y/Xxxx) 10 0 5 0
Total 1259 45 656 48

* 18 parts for the PinePhone USB-C port are labeled as Txxx in the schematic with the image of transistors, but I suspect these are really resistors and capacitors, just like in the Librem 5 schematic.

4 Likes

In case anyone wants to do this at home, here are the steps:

Convert the schematics files from PDF to text files:
pdftotext -layout SCHEMATICS.pdf SCHEMATICS.txt

(In the PinePhone USB schematics file you have to manually count the components, because it is just an image so it can’t be converted to text)

Search through the text files and change any pin identifiers that can be confused as a components. I used this regular expression to search in Geary: \b(ANT|C|CON|D|F|J|JV|R|L|Q|SW|T|TC|TP|TS|TV|TVS|U|Y)\d{1,4}\b

Then run the following script for the Librem 5 schematics:

<?php
$schematicsFile = $argv[1];
   
$sSchematics = file_get_contents($schematicsFile);

$aPartsToFind = ['ANT', 'C', 'CON', 'D', 'F', 'J', 'JV', 'R', 'L', 'Q', 'SW', 'TC', 'TP', 'TS', 'TV', 'TVS', 'U', 'Y'];
$totalParts = 0;

foreach ($aPartsToFind as $identifier) {
	$regEx = '/\s' . $identifier . '\d{1,4}\b/m'; 
	preg_match_all($regEx, $sSchematics, $aMatches);
	$aParts = array_unique($aMatches[0], SORT_STRING);
	$partCount = count($aParts);
	print "\n" . $identifier . "xxxx " . $partCount . " matches:\n";
	$totalParts += $partCount;

	foreach ($aParts as $match) {
		print trim($match) . "\n";
	}
} 
print "\nTotal parts: $totalParts\n";
?>

Use the following script for the PinePhone schematics:

 <?php
 $schematicsFile = $argv[1];
 
 $sSchematics = file_get_contents($schematicsFile);
 
 $aPartsToFind = ['ANT', 'C', 'D', 'ED', 'FB', 'J', 'R', 'L', 'Q', 'SW', 'T', 'TP', 'TS', 'DU', 'U', 'X'];
 $totalParts = 0;
 
 foreach ($aPartsToFind as $identifier) {
 	if (in_array($identifier, array('DU', 'U', 'SW')))
   		$regEx = '/\s' . $identifier . '\d{1,4}\b/m'; //'\d{1,4}(-[A-Z])?\b/m'
  	else
  		$regEx = '/\s' . $identifier . '\d{3,4}\b/m'; 

  	preg_match_all($regEx, $sSchematics, $aMatches);
  	$aParts = array_unique($aMatches[0], SORT_STRING);
  	$partCount = count($aParts);
 	print "\n" . $identifier . "xxxx " . $partCount . " matches:\n";
 	$totalParts += $partCount;
 	
 	foreach ($aParts as $match) {
 		print trim($match) . "\n";
 	}
} 
print "\nTotal parts: $totalParts\n";
?>

Run the scripts like this:
php listParts.php SCHEMATICS.txt

1 Like

Given the open source schematics on the Librem 5, I asked myself exactly how difficult it might be to build my own Librem 5. Sourcing all of the parts would be difficult and take time. Some capacitor and resistor sizes/values can only be purchased in reels of five-thousand in quantity and you need a microscope to see them. A few parts like the case might be difficult or impossible to get in low quantities.

But obtaining and assembling the parts on to the board would be comparatively the easy part for anyone with experience assembling surface-mount circuit boards. Myself and a few of my colleagues at work were talking about the Librem 5 one day after I told them about it. All of us are regular users of the Altium (schematic and PCB) Designer software and have used various other PCB software in the past. One of the guys that spends most of his days all day designing and laying out PCB boards said “that’s got to be at least an eight-layer board or more. You’re better off paying to buy the finished phone”. We all agreed and the topic changed. The price of the phone is quite fair even though you could theoretically use Purism’s published plans to build your own. Even if Purism were to publish the Gerber files (so that anyone could pay to FAB their own boards), the time and effort needed to build your own phone wouldn’t be worth it.

2 Likes

I can’t see anyone recreating this board for just their personal usage. The Librem 5 main board has 10 layers. The Librem 5 has more components and more PCB area than any phone I’ve ever torn apart, although it is not as densely packed as a Samsung Galaxy S-series or iPhone. The L5 uses 6 chips instead of one integrated mobile SoC, like a Snapdragon, MediaTek Helio or Exynos.

I wish that someone would take a high resolution photos of both sides of the PCB boards and post them, because people don’t seem to appreciate how amazing the boards are. Every time I hear someone complaining about the price, I want to say, “OK, take apart your spiphone and tell me how many chips it has inside it.”

Unlike PINE64 which sells hardware at close to cost of the bill of materials (BOM), the Purism sells its hardware at a significant markup to cover its software development costs. Another company could potentially create Librem 5 clones and sell them at half the price, undercutting Purism, so I understand why Todd Weaver said that Purism needs to recover its development costs before releasing the Gerber files, which they are “thinking about releasing in a time capsule” of “3 years, 5 years, something like that.”

I see the free/open schematics as insurance, in case Purism fails to sell replacement boards or stops supporting the Librem 5, because another company can offer replacement parts. I would love to see someone offer the Librem 5 board with some improvements, like 4GB RAM, 256GB eMMC, a USB 3.0 bus to the eMMC, NFC, pogo pins on the USB port for adding mods, and a PCI to USB 3.0 bridge chip to get around NXP’s bug that currently limits the USB 3.0 bus to 150-170 MB/s.

6 Likes

Yes, I wouldn’t give the Gerber files out ever if I ran Purism. Purism deserves to keep the mark-up profits on the L5 indefinitely. But I am glad they’re giving out the schematics for community auditing and to satisfy my curiosity.

After I get my L5 I’ll take it to work and get a bunch of good photos of the board and components. I have access to high and low zoom camera microscopes there and can upload the images to my phone.

1 Like