Als je product geen draadloze connectiviteit heeft, mis je de mogelijkheden van het iot. Welke chip en stack je het beste kunt gebruiken, hangt af van je eisen, toepassing en beschikbare kennis. Alten geeft een paar handvatten om je in de goede richting te helpen.
Met mobiele apps en cloudtechnieken kun je je product een geheel nieuwe dimensie geven. Daarvoor heb je wel draadloze connectiviteit nodig. Er zijn verschillende manieren om die toe te voegen. De belangrijkste zijn wifi en Bluetooth Low Energy (BLE). Een apparaat hiermee connected maken kan eenvoudig lijken, maar er zijn veel factoren om rekening mee te houden bij de selectie van een draadlooschip voor een product. Naast de chip zelf speelt ook de softwarestack een belangrijke rol. Vaak bieden leveranciers beide aan, tot op zekere hoogte getest met elkaar.
Voordat je aan de slag gaat met een draadlooschip, is het verstandig om onderzoek te doen naar wat de juiste chip is voor het product dat je maakt. Net als wanneer je je bijvoorbeeld oriënteert op een nieuwe televisie ga je eerst kijken naar de specificaties. In tegenstelling tot bij consumentenproducten zijn er helaas geen onafhankelijke vergelijkingssites. Maak daarom een overzicht van meerdere verkrijgbare chips met specificaties. Hiermee kun je al gaan filteren aan de hand van je eisen, maar krijg je ook een beter gevoel bij wat er beschikbaar is.

Selectie
De belangrijkste eis aan een wifistack is goede security. Niets is vervelender dan een product dat in het nieuws komt omdat het is gekraakt. Een stack die ondersteuning biedt voor HTTPS en TLS is aan te raden. Deze technieken kunnen helpen kwetsbaarheden te voorkomen. Het blijft verstandig om ook encryptie toe te passen op te verzenden data in de applicatielaag.
Daarnaast doe je er goed aan om een wifistack te kiezen die IPV6 ondersteunt. Steeds meer netwerken schakelen over op dit protocol, hoewel nog niet zo snel als gewenst. Om voorbereid te zijn op de toekomst moet je product toch eigenlijk wel overweg kunnen met IPV6. Voor Apple-apps is dat vanaf januari 2017 zelfs verplicht.
Belangrijk is ook hoe een product in een netwerk wordt geplaatst en hoe het te vinden is. Een protocol als SSDP vergemakkelijkt de vindbaarheid. Beschikt de wifistack niet over zo’n discoverymogelijkheid, dan betekent dat dat je extra kosten moet maken om het alsnog te implementeren.
Een andere factor van belang is welke frequentiebanden de wifichip aankan. Werkt hij alleen op 2,4 GHz of ook op 5 GHz? Deze laatste band biedt een hogere snelheid en is nu nog rustig. Ondersteuning van 5 GHz is echter vooral belangrijk vanwege de compatibiliteit met routers. Er komen steeds meer routers die alleen op 5 GHz worden ingesteld en het zou onverstandig zijn om een product uit te brengen dat daar niet mee kan communiceren.
BLE-stacks lijken qua features vaak erg op elkaar, dus het gaat er vooral om hoe goed ze werken. Soms wordt de BLE-specificatie niet als standaard gezien maar meer als richtlijn. Dit kan voor onverwacht gedrag zorgen bij gebruik van de stack.
De nieuwste BLE-versie 4.2 heeft een paar belangrijke verbeteringen ten opzichte van voorganger 4.1. Zo ligt de datasnelheid tweeënhalf keer hoger, waardoor onder meer firmware-upgrades een stuk sneller zijn. De mogelijkheid om Elliptic Curve Diffie-Hellman-sleutels uit te wisselen in BLE 4.2 zorgt bovendien voor een veiligere verbinding tussen apparaat en telefoon of tablet – eenmaal op het mobiele device is het dataverkeer echter weer vatbaar voor indringers.
Dat een stack nieuwere features heeft of zelf relatief nieuw is, wil nog niet zeggen dat hij ook volwassen is. Hoe logisch het ook klinkt, hou dat in de gaten. Bleeding edge is niet altijd de beste oplossing. Het is heel vervelend als een onvolwassen stack problemen geeft en je al kostbare tijd hebt gespendeerd aan ontwikkeling op die stack.
De beschikbaarheid van de draadlooschip speelt ook een rol. Hoe lang is hij nog leverbaar? Zijn er nieuwe versies op komst? Het kost veel tijd en geld als de leverancier een serie stopt en/of een nieuwe stack introduceert.
Verder is het belangrijk om te weten hoeveel flash- en ramgeheugen de chip aan boord heeft. Op de omvang van de softwarestack heb je weinig invloed. Als het geheugen dan beperkt is en de stack neemt daar ook nog eens zestig procent van in beslag, blijft er niet veel over voor de applicatie. Draait deze op een externe chip en wordt de draadlooschip alleen gebruikt voor connectivity, dan is dit minder van belang.
Met alleen een stack ben je er nog niet. Er moet ook software komen om alles aan te sturen. Dit staat of valt met de ontwikkelomgeving. Die moet niet alleen bruikbaar zijn tijdens de ontwikkeling maar ook daarna, tijdens continuous integration. Een toolchain met een ide die geen ondersteuning biedt voor custom build targets of geen pre- en post-build steps heeft, is hiervoor verre van ideaal.
Bij applicatieontwikkeling is het altijd verstandig om een duidelijke abstractie te maken tussen applicatie en stack. Dat geldt helemaal voor software voor een draadlooschip, met zijn grote aantal lagen. Mocht je dan om een of andere reden een andere stack willen gebruiken, dan hoef je alleen de abstractielaag voor de nieuwe stack te implementeren.
Proef op de som
Wanneer je een aantal veelbelovende chips en stacks hebt geselecteerd, verdient het aanbeveling om daarmee een proof-of-concept te maken. Dat kost tijd, budget en resources maar is zeer zinvol. Het geeft je een eerste gevoel van het potentieel: hoe gemakkelijk of moeilijk is iets te realiseren, is de documentatie up-to-date en duidelijk, is er misschien zelfs een no-go? Ook is het verstandig support te vragen van de leverancier. Hiermee krijg je een eerste indruk van hoe goed je in de toekomst wordt geholpen.
Voor zo’n proof-of-concept, en voor het eigenlijke product, is het handig als er evaluatiekits beschikbaar zijn. Hiermee kun je niet alleen snel features testen maar bijvoorbeeld ook stroomverbruik, datasnelheid en bereik onderzoeken. Hoewel deze parameters kunnen afwijken in het uiteindelijke product, krijg je wel inzicht in de bruikbaarheid van de chip voor jouw toepassing.