Gebruikershulpmiddelen

Site-hulpmiddelen


fabskills:programma:03_elproductie

03 - Electronica productie

Introductie

Deze maand borduren we verder op de introductieopdracht 'dobbelsteen solderen' - we gaan een bestaand ontwerp voor een printplaat frezen en 'bestukken' (onderdelen er op zetten). Het ontwerp bevat zowel onderdelen waarbij we eerst gaatjes moeten boren (dat noem je 'throughole') of op de koperzijde direct (dat noem je 'SMD' of 'surface mount')

Opdrachten:

  • Opdracht 0 (optioneel): Download en open de KiCAD file in KiCAD en exporteer je eigen *.svg of *.gbr bestand.
  • Opdracht 1: Genereer je eigen *.nc file met gebruik van FlatCam of Mods.
  • Opdracht 2: Frees je eigen PCB.
  • Opdracht 3: Popluleer je eigen PCB door de onderdelen er op te solderen / je PCB te bestukken.
  • Opdracht 4: Test je eigen board.

Opdrachten

Het ontwerp: de picoproto

We beginnen het thema elektronica met 'productie'. Daarna zullen onderwerpen 'ontwerpen' (onderwerp 5) en 'programmeren' volgen. De volgorde waarin deze onderwerpen worden aangeboden is al jaren discussie bij de docenten in de FabAcademy. Een logische volgorde is misschien eerst ontwerpen, dan maken, dan programmeren - aan de andere kant leer je ook veel over het ontwerpen door eerst een keer een kant en klaar ontwerp te maken (en later een keer te programmeren).

Het ontwerp dat we hebben gemaakt voor dit 'productie' onderdeel is een experimenteerprint voor de raspberry Pico. (wanneer we er een keer eentje echt hebben gemaakt zal hieronder een foto volgen :). Het ontwerp is gemaakt in KiCAD, en is zo ontworpen dat het 'enkelzijdig' op een printplaat gefreesd moet kunnen worden.

Het schema

Hieronder de schema-tekening gemaakt in KiCAD. Hierin zie je de verbindingen tussen de componenten. Je ziet een Pico (de rechthoek in het midden), een tweetal pin-headers (connectoren), een LED met weerstand, potmeter, 3-weg socket en een drukknop.

Hier kun je ook het schema als pdf downloaden.

De pcb

In KiCAD is met behulp van het bovenstaande schema een PCB ontworpen. Een Printed Circuit Board (PCB) bestaat uit een patroon dat typisch op een platte plaat kunststof met daarop een geleidende laag koper geproduceerd wordt. Meestal is het uitgangspunt dat uit het koper op de plaat materiaal wordt weggefreest of ge-etst zodat er gewenste sporen overblijven.

Dit is het ontwerp van de PCB:

Hier kun je ook de pcb als pdf downloaden.

De kiCAD files zijn ook beschikbaar zodat je zelf ook een poging kan doen om de gerber files te genereren.

De volgende stap is het genereren van de machinepaden (CNC code) op basis van de print-files. Vanuit KiCAD zijn zowel 'gerber' files als 'svg' bestanden beschikbaar. Gerber is een gebruikelijke productiestandaard (net zoals *.stl files dit zijn voor 3D print). SVG is makkelijk wanneer je zelf (b.v. in inkscape) nog met de tekeningen aan de gang wil. We laten hieronder twee verschillende tools zien om vanuit de gerber/svg CNC code (G-code) te genereren.

De belangrijkste files zijn de koper laag en board outline, als *.svg bestand en als *.grb bestand (even gezipt)

Opdracht 0 (optioneel): Download en open de KiCAD file in KiCAD en exporteer je eigen *.svg of *.gbr bestand.

Genereer CNC code

Gebruik FlatCam om vanuit een printplaat ontwerp de noodzakelijke G-code te genereren. Hierbij worden gerber en excellon bestanden gebruikt voor geometrie en gatenpatronen.

Gebruik Mods om de noodzakelijke G-code te genereren vanuit [.svg] bestanden.

Opdracht 1: Genereer je eigen *.nc file met gebruik van FlatCam of Mods.

Fabriceer het board

Plak een stuk 70×100 pcb materiaal (FR1, dus hardpapier met koper, niet de glasvezel (FR4) variant) in de 3018 of de Sable CNC frees. Gebruik hiervoor dubbelzijdig tapijt tape, zorg dat het egaal geplakt wordt (geen overlap) zonder stofjes of oude restjes. Start het programma 'grblcontrol(Candle)' op (of GCS, 'gcode sender') en laad het gcode (*.nc) bestand in. Uitgebreide handleidingen vind je door op de links te klikken.

Zet de freesmachine op 0 in de hoek van de plaat linksonder, een paar mm uit de rand. De frees moet precies op het koper op 0 gezet worden (de Z-as). Dit kun je doen door de frees in kleine stapjes, (eerst mm, daarna 0.1 mm per stap) te laten zakken op een dun stukje papier. Zodra je wrijving voelt zit er nog een papierdikte tussen freesbit en koper. Haal het papier weg (eerst frees omhoog) en zet de frees terug, typisch 0.1 mm lager (de papierdikte). De G-code gaat er van uit dat de 0 (origin) op het materiaal ligt en zal paden van b.v. 0.2 mm diep gaan frezen.

De print na het frezen alleen een beetje opgeschuurd met het puimsteentje ('polyblock') om wat braampjes weg te halen.

Opdracht 2: Frees je eigen PCB en documenteer wat je hebt gedaan.

PCB solderen / bestukken

De print (picoproto) heeft twee SMD sockets van 20 pinnen aan weerszijden van de pico controller nodig om met draadjes verbindingen te kunnen maken met het breadboard.

Nu zijn er (helaas) alleen standaard pin-sockets van 40 pins beschikbaar. Die kun je doorsnijden, zagen, knippen of smelten (met een mes-punt in de soldeerbout). In de praktijk komt het er op neer dat je 1 pinnetje 'opoffert' of zo goed mogelijk bruikbaar probeert te houden.

Nadat de pin socket is doorgesneden moeten de pinnen om en om naar weerszijden gevouwen worden. Zorg ervoor dat je in de goede volgorde begint, anders past de socket niet (en nee, omdraaien helpt dan helaas niet). Na het vouwen is het nodig om de pinnen zo kort mogelijk af te knippen, er moet nog een klein stukje (0.5 mm) onder uit steken.

De printplaat moet / mag worden afgezaagd, vooral aan de kant van de USB stekker op de pico is dit noodzakelijk, anders kun je geen stekker aansluiten. Zaag rondom met figuurzaag (mes, snijden, kapzaag of lintzaag kunnen ook gebruikt worden).

Het beste kun je de socket solderen door eerst 1 pin te vertinnen, socket te plaatsen (goed uitlijnen, maar niet buigen, de sporen (koper) komen heel snel van de plaat los) vervolgens een pin aan de andere zijde te solderen en vervolgens de rest van alle pinnen.

Zorg bij het solderen dat de bout contact maakt met zowel het koper van de plaat als de pin, kleine beetjes tin (restanten verwijderen met de-soldeerlint). Zorg ervoor dat je geen (kort)sluiting maakt met het koper rondom. Meet na het solderen even alle pennen door om te controleren dat de pin daadwerkelijk verbinding maakt (en niet met de ground waar dat niet bedoeld is). Er zijn een aantal pinnen (b.v. pin nummer 3) die bewust contact maken met de ground (de (-), ook verbonden aan al het resterende koper rondom)

De PICO controller zelf moet worden voorzien van een beetje (kapton) isolatietape aan de onderzijde om te voorkomen dat de pads onder op het board contact maken met het groundplane.

Dit mag ook met 'gewoon' plakband, kapton heeft als voordeel dat het heel dun is, goed isoleert en ook goed tegen verhitting kan (dus de kans is kleiner dat het plakband alsnog wegsmelt tijdens soldeerwerkzaamheden). Vervolgens (goed om!) de pico vast solderen op het board.

Tenslotte de draadverbinding (er is er 1 tussen de twee ronde pads, rondom het breadboard leggen), op de pinnen kunnen pin-headers geplaatst (bovenin kan ook een potmeter), een LED (kleur naar keuze, SMD 1206 maat) en weerstand (100-330R, ook 1206 maat, naar keuze, beetje afhankelijk van LED type en gewenste helderheid).

Het maakt in principe niet uit op welke van de twee pads je de LED en de weerstand plaatst (ze moeten in serie), zolang je er maar voor zorgt dat de (-) kant van de LED (dus de kathode, de kant aangegeven door een streepje, of aangewezen door een groen dwarsstreepje op de onderzijde) op de (-) of GND wordt aangesloten. Op de foto hieronder zit de (-) kant van de LED dus naar rechts.

Er zijn twee pads om een (passieve) buzzer op aan te sluiten. Tenslotte is er ook ruimte voor een drukknop MAAR het lijkt dat daar onverwacht verschillen in bestaan - niet iedere 4-voudige knop is geschikt. Op de PCB hebben we de knop uit de FabLab-library gebruikt, maar ik moet nog zoeken naar een drukknop die daar goed op past.

Opdracht 3: Popluleer je eigen PCB door de onderdelen er op te solderen / je PCB te bestukken en documenteer wat je hebt gedaan.

Testen van je board

Tijdens het solderen zie je vaak genoeg dat je met soldeertin een bruggetje maakt, of misschien een verbinding die er een beetje twijfelachtig uit ziet. Probeer er zo vroeg mogelijk achter te komen of verbindingen kloppen of kortsluiting maken. Dit kun je het beste testen met de multimeter op 'doorgangstester' stand, waarbij de multimeter een pieptoon geeft wanneer de twee meetpennen contact maken. Hiermee kun je dus goed controleren of de soldeerverbinding contact maakt (piep) of te veel contact maakt met b.v. de rest van het koper er omheen.

Next up is natuurlijk het testen van de controller en bijvoorbeeld de buzzer, potentiometer, knop en LED. De simpelste programmeeromgeving voor de controller is de Arduino omgeving.

Vanaf Arduino 2.0.0 kun je goed met de Pico aan de slag. Je moet alleen de zogenaamde 'board definitions' voor de pico installeren. Arduino heeft daarvoor een ingebouwde 'board manager', maar standaard is daarin niet de beste omgeving voor pico beschikbaar.

Bij 'Settings' ('File' –> 'Preferences') kun je onderaan 'Additional URL's for board definitions' toevoegen. Die worden toegevoegd aan de lijst boards die geinstalleerd kunnen worden. Voeg de volgende regel toe:

https://github.com/earlephilhower/arduino-pico/releases/download/2.7.3/package_rp2040_index.json

Nu kun je in de 'Board Manager', wanneer je zoekt/filtert op 'pico' de Raspberry Pi Pico by Earl Phil Hower installeren. Op dit moment is dat versie 2.7.3 — Edwin Dertien 2025/03/20 11:42

Set vervolgens bij 'Tools' het goede board en port, en probeer het volgende programma:

picoproto.ino
void setup() {
  // put your setup code here, to run once:
  pinMode(27,OUTPUT); // the LED pin
  Serial.begin(115200);
  pinMode(22,INPUT_PULLUP); // should be the button... 
}
 
void loop() {
  // put your main code here, to run repeatedly:
  static unsigned looptime;
  if(millis()>looptime+99){
    looptime = millis();
    if(digitalRead(27)) digitalWrite(27,LOW); else digitalWrite(27,HIGH);  
    int value = analogRead(28);
    Serial.println(value);
    if(value>200) {tone(21,map(value,200,1023,440,880),50);}
  }
}

Opdracht 4: Test je eigen board.

Eindproject

Voor je eindproject kun je deze weken na denken over hoe je electronica productie in je eindproject kunt gebruiken. In de tijd die je over hebt kun je ook aan je eindproject werken. Documenteer je ideeën en stappen in je portfolio.

De Badge

Als je de opdrachten hierboven succesvol hebt afgrond dan mag je een triviantsteentje Electronica productie voor de badge maken.

Bronnen

Pinout van de Pico

Een behulpzame afbeelding (alvast) is de pinout van de Pico. Deze zal veel vaker gebruikt gaan worden (dus kunnen we niet genoeg laten zien in de wiki:)

Electronics Production van Fabacademy

Group assignment:

  • Characterize the design rules for your in-house PCB production process: document feeds, speeds, plunge rate, depth of cut (traces and outline) and tooling.
  • Document the workflow for sending a PCB to a board house
  • Document your work to the group work page and reflect on your individual page what you learned

Individual assignment:

  • Make and test a microcontroller development board

Learning outcomes:

  • Described the process of tool-path generation, milling, stuffing, de-bugging and programming
  • Demonstrate correct workflows and identify areas for improvement if required

Have you answered these questions?

  • Linked to the group assignment page
  • Documented how you made the toolpath
  • Documented how you made (milled, stuffed, soldered) the board
  • Documented that your board is functional
  • Explained any problems and how you fixed them
  • Uploaded your source code
  • Included a ‘hero shot’ of your board
fabskills/programma/03_elproductie.txt · Laatst gewijzigd: door miranda