<!DOCTYPE html> <html lang="en-us"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="generator" content="GitLab Pages"> <meta name="description" content="Fab Academy documentation site for Charlotte Fab-C"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" /> <link rel="stylesheet" href="../assets/css/main.css" /> <title>Charlotte Fab-C - Fab Academy</title> </head> <body class="is-preload"> <!-- Wrapper --> <div id="wrapper"> <!-- Main --> <div id="main"> <div class="inner"> <!-- Header --> <header id="header"> <a href="../index.html" class="logo"><strong>Charlotte - FabLab de Charleroi</strong> Fab Academy website</a> <ul class="icons"> <li><a href="https://www.facebook.com/littlebelge" class="icon brands fa-facebook-f" target="_blank"><span class="label">Facebook</span></a></li> <li><a href="https://www.instagram.com/little.belge/" class="icon brands fa-instagram" target="_blank"><span class="label">Instagram</span></a></li> <li><a href="https://gitlab.fabcloud.org/charlotte-vandenbulcke" class="icon brands fa-gitlab" target="_blank"><span class="label">Gitlab</span></a></li> </ul> </header> <!-- Section --> <section id="banner"> <div class="content"> <header class="main"> <h2>8. Electronics Design</h2> </header> <section> <h3>Hero shot</h3> <span class="image object"> <img src="../images/current-hero-shot.jpg" alt="..." /> </span> <br> </section> <hr> <section> <h3>Group assignment</h3> <p>We were asked to observe the operation of a microcontroller circuit board.</p> <p>For that, we used our Quentorres + our "blink" Arduino code + an Arduino "fade" code and we checked the measurements with our RIGOL DS1054 oscilloscope.</p> <h4>RIGOL DS1054 oscilloscope</h4> <span class="image object"> <img src="../images/oscilloscope.jpg" alt="..." /> </span> <h5>Specifications</h5> <table> <tbody> <tr> <th scope="row">Memory</th> <td>24 Mpts (divided by number of channels)</td> </tr> <tr> <th scope="row">Sample rate</th> <td>250 MS/s (4 channels active),<br> 500 MS/s (2 channels active), <br> 1 GS/s (1 channel active)</td> </tr> <tr> <th scope="row">Display</th> <td>7" TFT, 800x480 pixels 160,000 colors</td> </tr> <tr> <th scope="row">Input impedance</th> <td>1 MΩ</td> </tr> <tr> <th scope="row">Number of channels</th> <td>4</td> </tr> <tr> <th scope="row">Horizontal scale (input)</th> <td>5 ns/div - 50s/div</td> </tr> <tr> <th scope="row">Vertical Sensitivity (input)</th> <td>1 mV/div - 10 V/div</td> </tr> <tr> <th scope="row">A/D converter</th> <td>8 bits resolution</td> </tr> <tr> <th scope="row">Maximum voltage</th> <td>CAT I 300 Vrms, CAT II 100 Vrms, transient overvoltage 100Vpk</td> </tr> <tr> <th scope="row">Rise Time</th> <td>DS1104Z: 3.5 ns<br> DS1074Z: 5 ns<br> DS1054Z: 7 ns</td> </tr> <tr> <th scope="row">Probe support</th> <td>0.1x - 1000x</td> </tr> <tr> <th scope="row">Measured noise value</th> <td>1 mVpp (at 100ms,1mV/div, record length: 3Mpts)</td> </tr> <tr> <th scope="row">Connections</th> <td>USB 2.0 type A, USB 2.0 type B, LAN</td> </tr> <tr> <th scope="row">Weight (without box)</th> <td>3.2 Kg</td> </tr> <tr> <th scope="row">Dimensions</th> <td>313 x 161 x 122 mm</td> </tr> </tbody> </table> <h4>Coding the Quentorres</h4> <h5>The Arduino Blink Code</h5> <pre> <code> const int ledPin = 26; // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(ledPin, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(ledPin, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(ledPin, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } </code> </pre> <h5>The Arduino Fade Code</h5> <pre> <code> int led = 26; // the PWM pin the LED is attached to int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin to be an output: pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness analogWrite(led, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } // wait for 100 milliseconds to see the dimming effect delay(100); } </code> </pre> <h4>Microcontroller observation</h4> <p>The oscilloscope displayed different variations when we launched the blink program and then the fade program.</p> <span class="image object"> <img src="../images/blink-oscilloscope.jpg" alt="..." /> </span> <span class="image object"> <img src="../images/blink-oscilloscope-1s-2s.jpg" alt="..." /> </span> <span class="image object"> <img src="../images/fade-oscilloscope.jpg" alt="..." /> </span> <span class="object"> <video width="600" height="300" controls> <source src="../images/fade-oscilloscope.mp4" type="video/mp4"> </video> </span> <br> <p>Link to our <a href="https://fabacademy.org/2024/labs/fabc/group-assignment/week008/" target="_blank">Group page</a></p> </section> <hr> <section> <h3>Individual assignment</h3> <h4>Discovering Kicad</h4> <p>On our previous electronics assignments, we've already had the design files ready to be used (thanks to Quentin and Adrian).</p> <p>This week it was our turn to do everything and for that we took our firsts steps in the "world of electonics board design" by learning to use the <a href="https://www.kicad.org/" target="_blank">Kicad software</a>.</p> <p>Our instructor (Sylvain Denis) taught us to install the program and the different libraries (symbols and footprints) that already contain all the components we will use during the Fab Academy.</p> <h4>My Micro-Cat-Controller</h4> <p>To create my electronics board, we chose some components that would be useful for my final project :</p> <p> <ul> <li>A distance detector</li> <li>A LED ring</li> <li>A Seeed Studio</li> </ul> </p> <span class="image object"> <img src="../images/...jpg" alt="..." /> </span> <h5>Design</h5> <p>Well, no surprise. I wanted to make a cat ! XD</p> <p>To find out the shape of the board and the components' placement, I first tried to draw everything on paper but then I came with the idea to draw the components on a transparent plastic A4 sheets, cut them out and place all the pieces manually like solving a puzzle.</p> <span class="image object"> <img src="../images/first-doodles.jpg" alt="..." /> </span> <span class="image object"> <img src="../images/components-drawings.jpg" alt="..." /> </span> <p>Then I took another transparent plastic sheet and covered the pieces to draw my "cat shape" ideas for the board.</p> <span class="image object"> <img src="../images/cathead-shape-ideas.jpg" alt="..." /> </span> <span class="image object"> <img src="../images/paw-shape-ideas.jpg" alt="..." /> </span> <p>It really helped me to visualize how to place every piece of the complete board and how it would look like at the end.</p> <p>It will result on a cat with an open luminar mouth requesting food !</p> <span class="image object"> <img src="../images/cat-head-final-idea.jpg" alt="..." /> </span> <p>I first drew the cat head myself in Kicad but it didn't work out because the lines weren't closed all together so the GBR edges cut file was empty.</p> <span class="image object"> <img src="../images/catPCBv1.jpg" alt="..." /> </span> <p>I searched after a solution on internet and found a <a href="https://www.youtube.com/watch?v=rhqlP8CRct0&ab_channel=StuartPatterso" target="_blank">video tutorial</a> explaining how to import a complexe file made in Inkscape to use it as edge cut in Kicad.</p> <span class="image object"> <img src="../images/...jpg" alt="..." /> </span> <p>I chose on internet simple cat head silhouettes and vectorized one in Inkscape, following the instruction on the video tutorial.</p> <span class="image object"> <img src="../images/...jpg" alt="..." /> </span> <p> <blockquote> Funny thing is that I unintentionally placed the routes to look like a real cat face, with closed mouth and a nose (created by the Seeed Studio) ! </blockquote> </p> <p>I generated the GBR files by clicking on "trace" in Kicad and then converted them in PNG images using the great <a href="https://quentinbolsee.pages.cba.mit.edu/gerber2img/" target="_blank">gbr2img program</a> made by Quentin Bolsee (thanks a lot ! <3).</p> <span class="image object"> <img src="../images/...jpg" alt="..." /> </span> <p> <blockquote> I had to change my cat head shape because the width was too large for the copper plate (100mm x 100mm)... So back in Inkscape I resized it to fit 80mm width, which was perfect without changing the whole board too much. </blockquote> </p> <h5>Milling</h5> <p>The milling part was simple.</p> <p>After generating the G-Code of the interior file and the traces file in Mods with the right CNC parameters, I sent them on the CNC program.</p> <p>After fixing the plate and the tool, we made the z-zero and launched the auto-leveling to mostly make sure that the shape really fits on the plate.</p> <span class="image object"> <img src="../images/...jpg" alt="..." /> </span> <p>Time to launch the routes tracing. It took approximately 25min.</p> <p>Next step was to quickly clean the plate with our mini duster, change the tool, check the z-zero again and launch the cutting.</p> <p>At the end, quick dusting, plate water cleaning (with soap and a toothbrush) + drying... and <strong>TADAAAA</strong> : a beautiful meow-cat-controller ! YAY :D <3</p> <span class="image object"> <img src="../images/cat-controller-milled.jpg" alt="..." /> </span> <h5>Soldering</h5> <p></p> <h5>Functioning</h5> <p></p> </section> <hr> <section> <h3>My journey</h3> <p></p> <span class="image object"> <img src="../images/...jpg" alt="..." /> </span> </section> <hr> <section> <h3>Files and resources</h3> <p><strong>My files</strong></p> <ul> <li><a href="../files/cat-controller.kicad_pro" target="_blank">Cat-Controller Kicad-Pro file</a></li> <li><a href="../files/cat-controller.kicad_pcb" target="_blank">Cat-Controller Kicad-PCB file</li> <li><a href="../files/cat-controller-v2.kicad_pcb" target="_blank">Cat-Controller v2 Kicad-PCB file</li> <li><a href="../files/cat-controller.kicad_sch" target="_blank">Cat-Controller Kicad-Schematic file</li> <li><a href="../files/cathead.svg" target="_blank">Cat-Controller edge-cuts SVG file</a></li> <li><a href="../files/cathead2.svg" target="_blank">Cat-Controller v2 edge-cuts SVG file</a></li> <li><a href="../files/cathead.dxf" target="_blank">Cat-Controller edge-cuts DXF file</a></li> <li><a href="../files/cat-interior.png" target="_blank">Cat-Controller Interior PNG file</a></li> <li><a href="../files/cat-interior.png.nc" target="_blank">Cat-Controller Interior G-Code file</a></li> <li><a href="../files/cat-traces.png" target="_blank">Cat-Controller Traces PNG file</a></li> <li><a href="../files/cat-traces.png.nc" target="_blank">Cat-Controller Traces G-Code file</a></li> <li><a href="../files/cat-interior2.png" target="_blank">Cat-Controller Interior v2 PNG file</a></li> <li><a href="../files/cat-interior2.png.nc" target="_blank">Cat-Controller Interior v2 G-Code file</a></li> <li><a href="../files/cat-traces2.png" target="_blank">Cat-Controller Traces v2 PNG file</a></li> <li><a href="../files/cat-traces2.png.nc" target="_blank">Cat-Controller Traces v2 G-Code file</a></li> </ul> <p><strong>Resources</strong></p> <ul> <li><a href="https://www.kicad.org/" target="_blank">Kicad website</a></li> <li><a href="https://www.youtube.com/watch?v=rhqlP8CRct0&ab_channel=StuartPatterso" target="_blank">English tutorial : Complex Edge Cuts in KiCAD 5.x with Inkscape</a></li> <li><a href="https://quentinbolsee.pages.cba.mit.edu/gerber2img/" target="_blank">Quentin Bolsee's gerber2img program page</a></li> <li><a href="https://fabacademy.org/2024/labs/fabc/" target="_blank">Our group page</a></li> </ul> </section> </div> </section> </div> </div> <!-- Sidebar --> <div id="sidebar"> <div class="inner"> <!-- Menu --> <nav id="menu"> <header class="major"> <h2>Menu</h2> </header> <ul> <li><a href="../index.html">Homepage</a></li> <li><a href="../assignments.html">Assignments</a></li> <li> <span class="opener">Week per week</span> <ul> <li><a href="../assignments/week01.html">1. Project Management</a></li> <li><a href="../assignments/week02.html">2. Computer Aided Design</a></li> <li><a href="../assignments/week03.html">3. Computer Controlled Cutting</a></li> <li><a href="../assignments/week04.html">4. Electronics Production</a></li> <li><a href="../assignments/week05.html">5. 3D Scanning And Printing</a></li> <li><a href="../assignments/week06.html">6. Embedded Programming</a></li> <li><a href="../assignments/week07.html">7. Computer Controlled Machining</a></li> <li><a href="../assignments/week08.html">8. Electronics Design</a></li> <li><a href="../assignments/week09.html">9. Output Devices</a></li> <li><a href="../assignments/week10.html">10. Mechanical Design And Machine Design</a></li> <li><a href="../assignments/week11.html">11. Input Devices</a></li> <li><a href="../assignments/week12.html">12. Molding and Casting</a></li> <li><a href="../assignments/week13.html">13. Networking And Communications</a></li> <li><a href="../assignments/week14.html">14. Interface And Application Programming</a></li> <li><a href="../assignments/week15.html">15. Wildcard Week</a></li> <li><a href="../assignments/week16.html">16. Applications And Implications</a></li> <li><a href="../assignments/week17.html">17. Invention, Intellectual Property And Income</a></li> <li><a href="../assignments/week18.html">18. Project Development</a></li> </ul> </li> <li><a href="../final-project.html">Final Project</a></li> <li><a href="../about.html">About Me</a></li> </nav> <!-- Footer --> <footer id="footer"> <p class="copyright">© Charlotte - FabLab de Charleroi. Fab Academy 2024. All rights reserved. Design: <a href="https://html5up.net">HTML5 UP</a>.</p> </footer> </div> </div> </div> <!-- Scripts --> <script src="../assets/js/jquery.min.js"></script> <script src="../assets/js/browser.min.js"></script> <script src="../assets/js/breakpoints.min.js"></script> <script src="../assets/js/util.js"></script> <script src="../assets/js/main.js"></script> </body> </html>