Het oplossen van stappenmotor-problemen begint vaak met de verkeerde verdachte. In een recente aflevering van Elektor Engineering Insights met Placitech beschreef Alessandro Placitelli een probleem dat aanvankelijk leek op een defecte driver of falende mechanica, maar uiteindelijk een firmware-timingprobleem bleek te zijn dat verborgen zat in een groter elektromechanisch project.

Een stappenmotor bug die niet aan de driver lag

Het betreffende project combineerde meerdere subsystemen: 3D-geprinte mechanica, schakelingen, LED's en een stappenmotor-aangedreven mechanisme in een kluisbouw met een iris en een lift. Volgens Placitelli werkte de machine ongeveer een week naar behoren voordat de motor stappen begon over te slaan en verontrustende geluiden maakte. De voor de hand liggende diagnose was de hardware. Hij koppelde de motor los en testte hem afzonderlijk. Die werkte prima. Dan was het dus de driver. Maar omdat die in de printplaat was geïntegreerd, maakte hij een nieuwe print. Het probleem verdween niet.


Na nog een paar dagen zoeken vond hij de werkelijke oorzaak: zowel de motor als de LED's werden door dezelfde code aangestuurd. De tijd die nodig was voor het updaten van de LED's bleek voldoende om de timing van de motor te verstoren. De stappenmotor bug was dus helemaal geen motorbug. Na het aanpassen van de code zodat de LED aansturing de bewegingsroutine niet meer verstoorde, werkte het mechanisme weer correct. Wat hem nog steeds bezighoudt, en dat is begrijpelijk, is waarom exact dezelfde opstelling een week lang probleemloos functioneerde voordat het fout ging.

Waarom integratiebugs zo vervelend zijn

Die onzekerheid is een van de redenen waarom dit fragment de moeite waard is om te bekijken. Het illustreert een bekend ontwikkelprobleem: een subsysteem werkt perfect op de testbank, maar gedraagt zich verkeerd zodra de hele machine in elkaar zit. In hetzelfde gesprek komt nog een voorbeeld naar voren uit veldtests, waarbij een op batterijen werkende opstelling onverwacht resette doordat het inschakelen van Wi-Fi meer stroom vroeg dan de voeding kon leveren. Dat is een andere fout, maar het behoort tot dezelfde categorie van integratieaandoeningen.

De praktische les is eenvoudig genoeg, ook al zijn de bugs dat niet. Een stappenmotor bug kan wijzen op bekabeling, mechanica, voeding, taakplanning of timingconflicten tussen taken die op papier niets met elkaar te maken hebben. Bij grotere projecten is debuggen niet vertrouwen op de eerste indruk en maar het systematisch toetsen van elke aanname. Dat is geen spectaculaire les, maar wel een echte, en Placitech vertelt die op een manier die makers en ingenieurs direct zullen herkennen.

Inschrijven
Tagmelding: Abonneer u op de tag Elektor Engineering Insights en u ontvangt een e-mail zodra er een nieuw item hierover op onze website wordt gepubliceerd!