Lessons learned from three years R&D
There is the saying, hardware is hard. It’s true and it’s even harder to create hardware that honors the ideas and ethics of free software. The ultimate hardware challenge these days is building a smartphone.
If hardware wouldn’t be challenging enough the software stack to run on it following the same principles isn’t any easier. The majority of smartphone stacks are not free, at least not fully – radio stacks (esp. cellular), graphics acceleration (GPU), media acceleration (VPU) etc. Striving for RYF rules out a lot of hard- and software choices. And even more a lot of necessary plumbing is simply missing in the free software world.
The presentation will highlight some key issues and how we tackled them.
SFScon 2020 - Nicole Faerber - Creating a free smartphone
1. 1 / 16
A mobile phone that
respects your freedom
Nicole Faerber
nicole.faerber@puri.sm
2. 2 / 16
‘Free’ Smartphone
●
“Free” as in freedom
●
Similar to the freedoms defined by the FSF:
– to use as you wish, for any purpose
– to study and to change it
– to share changes with others
3. 3 / 16
Engineering View -
How to build a phone?
●
Roughly you need:
– Application main CPU, usually a SOC
●
SOC = System On Chip,
includes a couple of peripherals on
the same silicon
– Wireless data interfaces:
●
WiFi
●
Bluetooth
– Cellular modem, 2G/3G/4G/5G
4. 4 / 16
What we want…
●
Binary blob free at runtime on main CPU
– No mystery firmware blobs
– No proprietary (closed) drivers
●
Radios (cellular, WiFi, BT) and their firmware
separated from main CPU
●
Everything else based on free software only –
RYF ready
●
Open design – hackable for everyone
– Schematics available to everyone - no NDA
5. 5 / 16
What we did… Hardware
●
Host CPU: NXP i.MX8M Quad
– Quad core cortex A53 up to 1.5GHz
– Enough peripheral interfaces
(MIPI DSI/CSI, SDIO, USB3, …)
– Most important: Vivante GC7000lite GPU
one of the first with decent free drivers -
Etnaviv (Linux kernel + MESA)
(today MALI (LIMA / Panfrost) and Adreno
(Freedreno) become viable)
6. 6 / 16
What we did… Hardware
●
Radio cards separated on M.2 cards
– Cellular 4G options – M.2 3042
direct integration of chips super hard!→
●
Gemalto PLS8 (Made in Germany/USA)
●
Broadmobi BM818 (Made in China)
– WiFi / BT M.2 2230
●
via SDIO, firmware on card
●
Theoretically “any” M.2 using same interface
can work – upgrade options, hackable
7. 7 / 16
What we did… Dev Kit
●
Released December 2018
11. 11 / 16
What we do…
●
Over 160 different parts
●
Over 1200 part placements on the PCB
●
PCB with 10 layer
– smallest parts 0201
– smallest ball pitch 0.4mm
– smallest diameter 0.254mm
●
All on the size of about two credit cards!
Only few contract manufacturers do this.
13. 13 / 16
What challenges us…
●
Suppliers – this is a huge undertaking and
managing all of this is an immense effort
– Component lead times – up to 20 weeks !
Or even more :(
●
Getting proper developer information for
chips – and not just some obscure SDK
– Even at >>10k pcs a ‘small fish’
●
For making consumer electronics,
almost no way not to do it in China
14. 14 / 16
What challenges us…
●
More and more chips require firmware
download at runtime
– and do not support adding
external storage like SPI flash
●
Regulations and certifications – OMG!
(goal: world wide!)
●
Due to the lack of hackable hardware for
years, there is little knowledge and
experience in the community
15. 15 / 16
Lessons learned…
●
Everything takes longer than expected!
(and gets more expensive...)
●
Hardware has bugs too
●
Everyone struggles with new technologies
(e.g. USB type-C PD, alt-mode, ...)
●
Chip makers may not know their own product
(because they licensed parts)
●
Good news: Free software is less alien to
many HW makers than it used to be
16. 16 / 16
Power to the people – Free the mobile!
...to hack the planet and beyond…
Thank you!
Contact: nicole.faerber@puri.sm