Het testen van sensoren wordt modulair benaderd. Dit sensor-evaluatieboard is ontworpen om zonder gedoe sensoren te vervangen bij het ontwikkelen. Het is gebaseerd op de ESP32-S3 en bevat twee ADS1015 ADC's met hoge precisie, Grove-connectoren en modulaire sleuven voor randkaarten. Met deze functies kunnen sensoren moeiteloos worden getest en verwisseld.

Sensortests vereenvoudigd

Voordat we beginnen aan een project, hebben we een idee in ons hoofd: een manier om een probleem op te lossen of een bestaande oplossing te verbeteren. Dan komt de planningsfase, waarin we vaststellen wat we nodig hebben om dat idee te verwerkelijken: de gereedschappen, apparatuur en onderdelen om het te realiseren. Als er sensoren gebruikt moeten worden, betekent dat vaak herhaaldelijk testen met verschillende sensoren, andere hardware proberen en experimenteren tot alles perfect werkt. En daarbij komt het Sensor-evaluatieboard van pas (figuur 1).

Sensor Testing - The Sensor Evaluation Board
Figuur 1: Het Sensor-evaluatieboard volledig bestukt.

Het board maakt het testen met sensoren eenvoudiger en efficiënter: de ontwikkelaars kunnen snel sensoren uitwisselen, code optimaliseren en foutzoeken zonder het gebruikelijke gedoe. Bij bijna ieder project met embedded systemen grijpen we steeds weer terug op een vaste verzameling van sensoren voor temperatuur, vocht, licht, beweging enzovoort. Deze essentiële sensoren vormen de bouwstenen voor allerlei toepassingen, van eenvoudige omgevingssensoren tot geavanceerde IoT-apparaten. Maar met steeds ingewikkelder projecten en toepassingen ontstaat ook de behoefte aan verschillende configuraties, waarvan de software en hardware zorgvuldig getest moeten worden. Het telkens wijzigen van de bedrading en herschikken van de opstelling leidt al snel tot een rommelige werkruimte.

Het idee van modulaire insteekkaarten voor elk van deze veel gebruikte sensoren kan een oplossing zijn. We kunnen dan simpelweg de kaart voor een specifieke sensor inprikken, zonder gedoe met draden of herconfiguratie. Deze modulaire aanpak stroomlijnt het testen en houdt onze werkruimte overzichtelijk, zodat we gemakkelijk kunnen testen met verschillende sensoren. De schakeling bevat ook geïntegreerde nauwkeurige A/D-converters. Dat spaart tijd en maakt het mogelijk om elke configuratie gemakkelijk en accuraat te testen. Of u nu omgevingsvariabelen wilt monitoren, IoT-toepassingen ontwikkelen, of gewoon wilt experimenteren met sensoren, dit board biedt een naadloos, gestructureerd platform om concepten om te zetten in volledig functionele prototypen.

 

Inschrijven
Schrijf u in voor tag alert e-mails over Testen & Meten!

Ontwerp en architectuur

Het schema in figuur 2 toont een ontwerp voor het vereenvoudigen van sensortesten met de ESP32-S3-module als centrale controller. De ESP32-S3 is gekozen vanwege zijn dubbele processorkern en krachtige ondersteuning voor WiFi en Bluetooth, die hem geschikt maken voor IoT-toepassingen.

sensor testing fig2.png
Figuur 2: Schema van het project.

In vergelijking met bijvoorbeeld de STM32 biedt de ESP32 bredere ondersteuning uit de community en eenvoudiger integratie voor WiFi-projecten. Verder is een ESP32 WROOM-module veel gemakkelijker te integreren in projecten, omdat WROOM-modules al voorzien zijn van een antenne-frontend en andere essentiële componenten die samenwerken met de MCU, zodat er minder externe componenten nodig zijn om tot een werkend prototype te komen. In figuur 3 ziet u de print lay-out van de kaart.

PCB layout
Figuur 3: Print lay-out met geaccentueerde nummering bij de connectors en componentenopstelling.

De print bevat twee ADS1015 ADC’s (IC1 en IC2), die veel betere prestaties leveren dan de interne ADC’s van de ESP32-S3. Beide hebben ze vier analoge inputs (kanalen). De analoge inputs van de eerste ADC zijn verbonden met 2,54mm-headers en de analoge inputs van de tweede ADC met Grove-connectors (twee kanalen elk, samen met VCC en GND). De ADS1015 levert een betrouwbare resolutie van 12 bits . Voor de meeste sensortaken is dat voldoende, terwijl de prijs laag is. We hebben wel een ADC met een hogere resolutie (zoals de ADS1115 ) overwogen, maar vonden de afweging tussen resolutie en sample rate van de ADS 1015 toch beter bij dit project passen. Het is echter wel mogelijk om de ADS1115 in plaats van de ADS1015 te gebruiken op dezelfde print, want ze hebben dezelfde pinconfiguratie en afmetingen. Zoals u ziet, is de ADDR-pen van de ene ADC verbonden met GND en die van de andere met VCC. Daardoor hebben ze een verschillend I2C-adres (zie voor meer informatie het datasheet ).

De print bevat twee LED’s (LED1 en LED2) voor statusweergave. Deze zijn verbonden met GPIO14 en GPIO21 van de ESP32-S3. Deze LED’s zijn te configureren voor elke toepassing, bijvoorbeeld het weergeven van de voedingstoestand, communicatie-activiteit, of voor debug-signalen tijdens het testen.

Eén I2C-interface van de ESP32 (GPIO8 = SDA en GPIO9 = SCL) gaat naar de printconnectors K1 t/m K4 en ook naar drie Grove-connectors K6 t/m K8 en één Qwiic-connector K5. De SPI-communicatie gaat op een vergelijkbare manier en is als volgt toegewezen: SDI aan GPIO11, SCK aan GPIO12 en SDO aan GPIO13. Deze lijnen zijn ook verbonden met de printconnectors; samen met vier aparte CS-lijnen (Chip Select). Zo kunnen SPI-sensoren in de printconnectors simultaan gebruikt worden zonder conflicten.

 

Inschrijven
Schrijf u in voor tag alert e-mails over ESP32!

De vier printconnectors (K1...K4) maken dus gemakkelijk vervangen van de sensoren mogelijk, zonder  de bedrading te veranderen. Deze connectors zijn EC.8 edge card SMT connectors van ept , en die zijn behoorlijk stevig voor deze toepassing: ze ondersteunen data-overdracht tot max. 28 Gbps en stromen tot max. 3,2 A (ruimschoots meer dan wat hier vereist is). Maar hun grootste voordeel is toch wel het gebruiksgemak, waarmee naadloos verwisselen van sensormodules in een testomgeving mogelijk is. Deze randconnectors maken het testen een stuk gemakkelijker in vergelijking met traditionele pinheaders. Volgens de fabrikant zijn ze bestand tegen 500 aansluitcycli, dus dat garandeert een lange levensduur.

Connector J1 is voor het programmeren van de ESP32-S3 via UART. Dit is een eenvoudige interface voor het uploaden van firmware en het opzetten van de configuratie. Het is trouwens ook mogelijk om firmware te flashen via de USB C-connector (K11). J2 is een 2,54mm-header die toegang geeft tot de overige GPIO-pennen van de ESP32-S3 en de eerste ADC (IC1). Deze extra aansluiting is nuttig om externe modules of eigen periferie rechtstreeks op de ESP32-S3 aan te sluiten. Daarmee kunnen we de mogelijkheden van de kaart uitbreiden tijdens het ontwikkelen en testen.

De Chip Select-lijn (CS) vraagt om speciale aandacht, omdat elke sensor een eigen CS-lijn nodig heeft bij besturing via SPI. Daarom zijn er vier aparte CS-lijnen beschikbaar op de printconnectors, elk verbonden met een unieke GPIO-lijn van de microcontroller. Deze oplossing is voldoende voor het huidige ontwerp, maar bij toekomstige uitbreidingen kan worden gedacht aan multiplexing of een GPIO-expander voor meer flexibiliteit in de toewijzing van CS-pennen. Voorlopig is de huidige configuratie voldoende voor het simultaan werken met meerdere sensoren, en flexibel uitwisselen van sensormodules.

 

Inschrijven
Schrijf u in voor tag alert e-mails over Sensoren!

Mogelijkheden voor sensormodules

Er zijn twee insteekprinten ontwikkeld voor de kaart: een BME280-omgevingssensor en een ICM42688 IMU-sensor . De schema’s van deze modules zijn gebaseerd op de datasheets. Ze zijn te zien in figuur 4 en figuur 5. Beide insteekkaarten hebben dezelfde afmetingen: 23,55 × 13,55 mm (figuur 6). En ook de pinconfiguraties voor I2C en SPI komen overeen.

Schematic diagram of BME280 Edge Card module
Figuur 4: Schema van de BME280 Edge Card-module met pinconfiguratie.

Bij het testen van deze sensoren heb ik bibliotheken gebruikt. Voor de ICM42688 heb ik gekozen voor de ICM42688-library van finani . Die bleek gebruikersvriendelijk en omvatte ook voorbeelden voor verschillende functionaliteit zoals I2C- en SPI-modes, interruptverwerking en meer. Voor de BME280 viel de keuze op de Adafruit_BME280_Libraryi> , die bekend staat om zijn eenvoud en gebruikersvriendelijkheid.

Schematic of ICM42688 Edge Card module.
Figuur 5: Schema van de ICM42688 Edge Card-module.

Bij het ontwerpen van de insteekmodules heb ik in het schema gebruik gemaakt van het symbool 02x10 Connector odd/even en in de lay-out van de Samtec_HSEC8:Samtec_HSEC8-110-X-X-DV-BL_2x10_P0.8mm_Edge uit KiCAD’s standaardbibliotheek. Voor de printconnectors op de hoofdprint heb ik de footprint gedownload van de website van de fabrikant en die toegevoegd aan mijn eigen KiCAD-bibliotheek met behulp van het Library Loader-programma .

Voor wat betreft de fysieke afmetingen: de EC.8 connectors op de print zijn ontworpen voor printplaten met een dikte van 1,6 mm. Die dikte heb ik dan ook gespecificeerd bij het bestellen van de sensormodules bij de printfabrikant.

Size comparison of the Edge Card modules
Figuur 6: Vergelijk de grootte van de insteekmodules met een 1 Euromunt.

Testen en de beperkingen van de ADC van de ESP32

Bij het testen heb ik de twee ADS1015 ADC’s beoordeeld. Helaas had ik op dat moment slechts één ADS1015 IC tot mijn beschikking. Daarom heb ik apart getest op de locaties IC1 en IC2. Ondanks dit probleem werkte de schakeling goed in beide configuraties. De ADC werkte iets beter op de plaats van IC1; de signaal/ruis verhouding was daar beter. Waarschijnlijk ligt dat aan de plaats op het board: dichter bij de connectorpennen en verder van de voeding. Maar dit verschil was bijna te verwaarlozen.

The Sensor Evaluation Board with sensor modules
Figuur 7: Het Sensor-evaluatieboard met ingestoken sensormodules.

Deze externe ADC’s zijn een grote verbetering in vergelijking met de ingebouwde van de ESP32-S3. De ADS1015 geeft een veel grotere nauwkeurigheid en aanzienlijk minder ruis, zelfs als de ESP32-S3 wordt geklokt op 20 MHz. Ze zijn bijna niet te vergelijken; het is echt een verschil van “dag en nacht”. Vandaar dat deze externe ADC’s zo’n nuttige toevoeging zijn.

Naast het testen met de ADC bleek het modulaire ontwerp ook heel nuttig bij het testen van de insteekmodules met sensoren. Op dit moment heb ik maar twee modules, de BME280 en de ICM42688, maar de flexibiliteit heeft me geïnspireerd om er nog meer te ontwerpen. Zoals u ziet in figuur 7 zijn ook de kleine afmetingen van 64,7 × 66,6 mm een voordeel. Het board is kleiner dan de muis in figuur 8; een perfect gereedschap op uw werktafel. De modulaire benadering is heel nuttig gebleken voor het testen van sensoren en het board heeft een permanente plek gekregen op mijn werkbank.

Size comparison of the Sensor Evaluation Board
Figuur 8: Het Sensor-evaluatieboard met een toetsenbord en een muis:
duidelijk een bureau-vriendelijk stukje gereedschap.

Conclusies en toekomstige verbeteringen

Zoals bij ieder project is er ook hier ruimte voor verbeteringen. Als we kijken naar wat we nu hebben, komen verschillende ideeën naar voren. We kunnen bijvoorbeeld kijken naar de indeling van de printconnectors. De huidige opstelling werkt, maar ik had wel problemen om eraan te solderen met een heteluchtstation, omdat de connectors zo dicht bij elkaar zitten (figuur 9). Daarom ben ik, alleen voor deze connectors, overgegaan op solderen op een hete plaat. In toekomstige ontwerpen wil ik de connectors wat meer ruimte geven om ze beter te kunnen solderen aan beide kanten.

sensor testing: Side-angle view showing the tight spacing
Figuur 9: Hier ziet u hoe dicht de insteekmodules bij elkaar zitten.
Daar is ruimte voor toekomstige verbetering.

Een andere verbetering kan zijn om de onderste ADC (IC2) een beetje verder van het voedingsgedeelte van de kaart te plaatsen. Het verschil in storingsgevoeligheid bij het testen was maar gering, maar een betere plaatsing zou de signaalintegriteit verder kunnen verbeteren. Bij het ontwerpen was ik er vanuit gegaan dat dit niet veel invloed zou hebben, maar bij het testen bleek dat zelfs kleine aanpassingen in de lay-out een meetbaar verschil kunnen maken.

Ik zou ook onderzoeken of het handig is een multiplexer te gebruiken voor de CS-lijnen (Chip Select) op de printconnectors. Daarmee zou een dynamische toewijzing van de CS-pennen mogelijk worden, dat maakt het systeem beter schaalbaar en vermindert de afhankelijkheid van voorgedefinieerde GPIO’s voor elke insteekmodule. Dat zou de integratie van meerdere modules mogelijk maken en meer flexibiliteit bieden.

Tenslotte zou ik een OLED-display willen toevoegen voor real time-feedback tijdens het testen. We zouden bijvoorbeeld de sensorstatus of de gemeten ADC-waarde kunnen weergeven om vlotter en handiger te kunnen werken.

Dit project was echt een nuttig experiment in modulair ontwerp en heeft zijn bruikbaarheid al in de praktijk bewezen. Natuurlijk is er altijd ruimte voor verbetering, maar deze versie voldoet en vormt een sterke basis voor toekomstige verbeteringen. Ik ben ervan overtuigd dat dit board met enkele aanpassingen kan uitgroeien tot een nog krachtiger en flexibeler tool voor embedded ontwikkeling.

sensor testing component list

Vragen of opmerkingen?

Als u vragen hebt over dit artikel, e-mail dan de auteur op saad.imtiaz@elektor.com of het redactieteam van Elektor op editor@elektor.com.


Noot van de redactie: Het oorspronkelijke artikel, “Een modulaire benadering van sensortests” (240472-01), is verschenen in Elektor maart/april 2025.


Inschrijven
Schrijf u in voor tag alert e-mails over IoT & Sensors!