ZeroPhone: Jonge programmeur bouwt eigen smartphone

Bij het kopen van een smartphone ben je altijd voor- en nadelen aan het wikken en wegen. Als je je eigen toestel bouwt, is dat niet nodig. Je stemt hem helemaal af op je eigen wensen. De Letse programmeur Pičugins Arsenijs deed dat, en de ZeroPhone is het resultaat.

Arsenijs had een paar belangrijke doelen voor ogen voor de telefoon. Die moest niet alleen goedkoop zijn, maar ook makkelijk te bouwen. Hij wilde daarom alleen onderdelen gebruiken die gewoon op eBay te koop stonden. Alles bij elkaar kost het zo’n 50 euro om de telefoon te bouwen – het aantal uren dat je eraan werkt niet meegerekend. Arsenijs heeft privacy ook hoog in het vaandel staan, dus moest ook dat een belangrijk onderdeel van de telefoon worden. Dat betekent dat gebruikers hun eigen apps kunnen schrijven, zonder dat ze gebruik moeten maken van standaard Android-applicaties die bijvoorbeeld veel permissies vragen.

Arsenijs: “Moderne telefoons worden steeds meer gesloten en moeilijker aan te passen of te repareren. Ook wordt het lastiger ervoor te programmeren. ZeroPhone is een project dat daar tegenin wil gaan, door een telefoon te maken die je helemaal zelf kunt bouwen en aanpassen.”

De ZeroPhone haalt zijn naam uit de RaspBerry Pi Zero die de kern van het apparaat vormt. Met een keypad met toetsen, een klein scherm aan de bovenkant en een geïntegreerde gsm-module is het een volwaardige telefoon. Ook heeft Arsenijs een powerbank aan de zijkant van de telefoon gebouwd, zodat die een tijdje mee kan. Hij werkt daarnaast aan een nieuw model dat nog kleiner en vooral dunner moet worden.

Zelf apps schrijven

De telefoon kan in ieder geval bellen en sms’jes versturen, met behulp van de geïntegreerde gsm-module. “Dat was uiteraard de meest cruciale ontwikkeling van de ZeroPhone”, zegt Arsenijs, “dus dat heb ik ook als eerste aan de gang gekregen. Dat ging echter veel sneller dan ik dacht, dat was niet het moeilijkste.”

Daarnaast draait de telefoon een paar basis-apps zoals een klok met een wekker, een agenda, een rekenmachine, en zelfs een webbrowser en een muziekspeler. Voor wie dat echter niet genoeg vindt, heeft Arsenijs ook een SDK uitgebracht waarmee ontwikkelaars zelf apps kunnen schrijven.

“Ik denk dat de meeste gebruikers hun eigen sociale-media-apps willen gebruiken, dus die zijn dan makkelijk om te bouwen.” Hij doelt dan met name op apps als Twitter, die een eigen open api hebben waardoor hobbyisten makkelijk hun eigen apps kunnen bouwen.

Sensoren aansluiten

Het leukste aan de telefoon vindt Arsenijs echter de sensor-poort die hij aan de telefoon heeft gemaakt. “Je kunt er dan alles op aansluiten wat je wilt. Als je bijvoorbeeld wakker wilt worden op het moment dat de zon opkomt, dan hang je gewoon een lichtsensor aan de telefoon. Je kunt er zelfs je eigen geigerteller van maken als je dat zou willen!”

Arsenijs gebruikte een Raspberry Pi Zero voor het project. De kleine versie van het computertje werd in 2015 aangekondigd, en hoewel het bordje bijna geen aansluitingen had kon je het moeilijk laten liggen voor slechts vijf euro. Dat bleek ook wel uit de populariteit van het bordje, dat in een mum van tijd was uitverkocht. Ook nu is het nog lastig om een Pi Zero op een conventionele manier op de kop te tikken, maar tweedehands zijn er meer dan genoeg Zero’s te koop voor een schappelijke prijs.

Media has no description

© PXimport

Het scherm

Voor de user interface gebruikte Arsenijs pyLCI, wat staat voor ‘Python-based Linux Control Interface’. Hij ontwikkelde pyLCI zelf en heeft het project inmiddels opensource gemaakt. pyLCI is bedoeld als een simpele interface voor kleine schermen voor bij de Raspberry Pi die maximaal 16x2 of 20x2 tekens kunnen tonen.

Ook kan pyLCI omgaan met hardwareknoppen via bijvoorbeeld een keypad. Op die manier is het mogelijk om een paar korte, snelle commando’s te gebruiken op een Pi, zoals het in- of uitschakelen van de wifi. “Het voordeel daarvan is dat je niet elke keer een complete monitor aan je apparaat hoeft te hangen of via ssh toegang moet krijgen. Voor zulke simpele dingen is pyLCI sneller.”

Hij gebruikt pyLCI als basis voor het scherm, maar dat moest hij voor de ZeroPhone nog wel verder uitbreiden. “pyLCI was aanvankelijk bedoeld voor kleine schermpjes, maar omdat ik op de telefoon ook andere apps op wil kunnen draaien moet pyLCI ook geschikt worden voor grotere schermen waar meer informatie op past. Daar ben ik nu mee bezig. Een bèta-versie staat nu al online zodat iedereen ermee aan de slag kan.”

Het scherm dat Arsenijs gebruikte is een goedkoop scherm van 84 x 48 pixels dat voor 5 dollar op eBay stond, maar de kracht van het project is volgens Arsenijs juist dat je ieder scherm op de telefoon kunt zetten dat je wilt. “Iedereen heeft thuis nog wel een oude Nokia-telefoon liggen. Die schermpjes zijn hier perfect voor – al moet je er wel nog je eigen driver voor schrijven.”

Volgens Arsenijs is dat ‘makkelijker dan je zou denken’, maar wie daar niet aandurft kan ook makkelijk een goedkoop schermpje op internet vinden. “De meeste schermen hebben kant-en-klare drivers online staan, en zelfs van schermpjes die je uit oude telefoons haalt kun je op internet wel ergens de nodige informatie vinden zodat je met Python je eigen driver in elkaar kunt knutselen.”

Opladen

Hetzelfde geldt voor de accu van het toestel. Arsenijs gebruikte voor zijn toestel een powerbank, maar wil uiteindelijk een geïntegreerde accu inbouwen. “In principe kun je iedere lithium-ion-accu gebruiken, maar als je wil kun je er ook gewoon een normale batterijen-set in zetten. Dat is alleen wat lastig voor het opladen...” Arsenijs gebruikt voor het opladen dan ook een TP4056-module, een standaardbordje dat makkelijk aan de Pi kan worden gekoppeld waarmee je de telefoon via mini-usb kan opladen.

Overigens merkt Arsenijs op dat het ook mogelijk is een pouch-batterij te gebruiken in het apparaat, een minder gebruikte soort batterij waar ook weer een aparte oplaadmodule voor nodig is. Ook hier is het echter mogelijk de pragmatische oplossing te volgen en simpelweg een powerbank aan het apparaat te hangen.

Media has no description

© PXimport

GSM-module

Het belangrijkste onderdeel van een telefoon is uiteraard de telefoonmodule zelf. Dat is waar Arsenijs lang tegenaan liep. Hij gebruikt op dit moment een SIM800-gsm-module, maar erkent dat dat niet ideaal is. “Die draait alleen op 2G, maar dat wordt in de toekomst afgesloten. Ik twijfel dus aan wat ik moet doen. Een usb-modem voor 3G of LTE vind ik niet ideaal, want de Pi Zero heeft maar één poort en die wil ik liever niet daaraan ‘verspillen’. Ik heb op dit moment ook geen geld om met verschillende geïntegreerde 3G/LTE-modules te experimenteren, maar als iemand zin heeft daarmee aan de gang te gaan sta ik daar uiteraard voor open!”

De gsm-module is ook één van de weinige aspecten van de telefoon die niet compleet opensource is, al probeert Arsenijs daar wel omheen te werken. “De module zelf heeft closed source-hardware, maar er is geen open alternatief beschikbaar – en ik ga zeker niet m’n eigen opensource-gsm-module maken. Wat ik wél kan doen is het ecosysteem rondom de module binnen mijn eigen besturingssysteem zo open mogelijk maken, zodat anderen het makkelijker kunnen aanpassen.”

Via Reddit kreeg hij al een aantal handige tips voor alternatieve modules – veel gebruikers vonden de SIM800 maar een aparte keuze. “Ik nam die omdat dat binnen mijn budget lag. Andere gebruikers wezen me bijvoorbeeld al op de A7-module, die heeft ook ingebouwde GPS. Dat lijkt handig, maar dat zie ik niet zo snel gebeuren op de ZeroPhone. De documentatie daarvan is overweldigend, ik vraag me af of ik daar ooit uit kom…”

Android?

Arsenijs overwoog een tijdje om een Android-telefoon te maken. “Dat leek logischer, omdat Android juist voor telefoons is ontworpen, maar ik heb dat idee al vrij snel aan de kant gezet. Android is nooit succesvol geport naar de Pi Zero, al zijn er wel dappere pogingen ondernomen. Bijkomend probleem is dat Android de ondersteuning voor oude arm-processors heeft stopgezet, dus dat heeft met de Pi Zero weinig zin.”

Er is echter nog een andere belangrijke reden dat Arsenijs voor Linux gaat, en dat is volgens hem dat de Android-apps niet opensource zijn. “Die apps draaien in het Android-ecosysteem, ontwikkelaars ondersteunen het een tijdje en gooien er advertenties in om het terug te verdienen, dus er is weinig reden om een app echt opensource te maken.” Dat is een probleem voor de ZeroPhone, want de meeste apps moesten worden aangepast om op het kleine schermpje te werken in plaats van op de grote aanraakschermen van de meeste Android-telefoons.

Een groter scherm wil Arsenijs zelf niet op de telefoon. “Dat maakt het meteen zo duur en moeilijk, dat is bijna niet te maken. Op deze manier is de telefoon weliswaar spartaans, maar ook heel makkelijk aan te passen als er iets mee is.”

Updates

Arsenijs is een rasechte programmeur en heeft een voorliefde voor Linux. Het opensource-karakter van het besturingssysteem zorgt ervoor dat Arsenijs zijn OS zo veilig en privé kan maken als hij het zelf wil, maar bovenal is hij niet meer afhankelijk van fabrikanten die updates moeten uitbrengen. “Je krijgt de updates voor Raspbian binnen wanneer ze uit zijn.

Bij Android ben je voor updates niet alleen afhankelijk van Google, maar ook van de fabrikant én van je provider. Bij de ZeroPhone krijg je de updates gewoon binnen zoals je dat op Linux ook kunt doen, automatisch of met een paar simpele commando’s. Ook is het een stuk makkelijker voor gebruikers om zelf apps te bouwen en op het apparaat te zetten. En vanwege het opensource-karakter van het besturingssysteem is dat allemaal makkelijk te delen met andere gebruikers.

Daarnaast is Python de ideale programmeertaal voor een apparaat als dit. “Python krijgt vaak de kritiek dat het traag is, maar dat is vooral het geval bij code die je heel vaak moet opvragen. Dat is bij een telefoon als deze niet het geval. Bovendien is Python veel makkelijker te lezen dan bijvoorbeeld C of C++, en dat is handig als anderen met dit project aan de gang gaan – wat ik natuurlijk wel hoop!”

Media has no description

© PXimport

De ZeroPhone is voor Arsenijs altijd meer geweest dan alleen een hobbyproject, zegt hij. “Ik gebruik ‘em zelf altijd. Ik heb niet heel veel apps nodig op mijn telefoon en ik vind het fijn dat de telefoon zo ‘van mij’ voelt.” Inmiddels blijkt dat hij niet de enige is die behoefte heeft aan een dergelijk toestel.

“De respons die ik kreeg toen ik het project op Reddit plaatste was overweldigend. Andere gebruikers wilden graag precies weten hoe ze ook zo’n ding konden bouwen, en of ik het ooit ging verkopen. Daar twijfel ik nu wel over. Ik zit erover te denken om een crowdfunding op te zetten zodat ik de telefoons in bulk kan maken. Stel dat ik er duizend kan bouwen, dan is dat een mooi zakcentje.”

Daar moet nog wel wat voor gebeuren, denkt hij. “Ik moet dan eerst de software nog helemaal op orde krijgen en zorgen dat alles goed werkt – het hangt nu allemaal een beetje houtje-touwtje aan elkaar.” Interesse is er in ieder geval genoeg, zegt hij. “Ik krijg nu al regelmatig mailtjes binnen van fans met de vraag of ze kunnen doneren. Dat voelt wel goed!”

Deel dit artikel
Voeg toe aan favorieten