wCncPcb


Aplikáciu wCncPcb naprogramoval Mgr. Vladimír Višňovský. Aplikácia wCncPcb je určená na výrobu plošných spojov pomocou malej GRBL frézy route 3018 pro. Aplikácie wCncPcb je freeware a nespadá pod licenciu Open Source.

wCncPcb - Úvod


    V tomto článku sa budem venovať výrobe jednoduchých plošných spojov (ďalej len PCB) pomocou malej frézy a aplikácie wCncPcb.
    Pri praktickom vyučovaní často potrebujem vyrobiť viacero jednoduchých PCB nejakou rýchlou a nenáročnou cestou. Spočiatku som si navrhol PCB na štvorčekovaný papier a z neho som následne napísal gCode pre frézu. Neskôr som navrhol jednoduchú aplikáciu, v ktorej som nakreslil náčrt dier, drážok, kontúry a aplikácia následne z toho vygenerovala gCode. Takto som dostal doštičku presne podľa mojich predstáv. Túto aplikáciu som nazval wCncPcb.
    Po nejakom čase som sa dostal k malej fréze Route 3018 Pro (ďalej len 3018). Rozhodol som sa preto celú aplikáciu naprogramovať odznova s tým, že som opravil nedostatky prvej verzie, dodal komponenty (súčiastky) a možnosť frézovať obojstranné PCB. Druhá verzia wCncPcb generovala gCode, ktorý som mohol odoslať do frézy Proxxon pomocou aplikácie ncCad9, alebo do frézy 3018 pomocou aplikácie gSender. Malá fréza 3018 ponúka možnosť vloženia súboru aj na SD kartu a vyrobiť tak doštičku PCB v režime offline. V tomto časovom bode som radšej vyrábal PCB na veľkej fréze Proxxon, keďže sa malá fréza 3018 často „zasekla“. V aplikácii gSender som videl, ako počítač čaká na potvrdenie vykonanej úlohy od frézy, a naopak, ako fréza čakala na ďalší príkaz. Chýbalo zázračné tlačidlo „pokračuj“. Dokonca vznikli situácie, kedy sa malá fréza zavŕtala až do podkladovej dosky, alebo vyrezala drážky niekde inde.
    Na druhej strane fréza 3018 je rozmerovo malá, šikovná a lacná. Preto som sa prioritne snažil spojazdniť komunikáciu medzi počítačom a touto frézou. Našťastie ku GRBL (interpret použitý v 3018) je k dispozícii rozsiahla dokumentácia, čo mi veľmi pomohlo. Aby som eliminoval všetky chyby, ktoré by mohli vzniknúť zlou komunikáciou, rozhodol som sa namiesto klasického pripojenia cez USB k PC použiť prepojenie pomocou kábla USB-USART. Stranu s rozhraním USART som pripojil do komunikačného konektora frézy určeného pre Bluetooth. Musím s pokorou priznať, že aplikácia s frézou komunikuje absolútne bezchybne. Podľa mňa bola chyba zapríčinená zdrojom. Kábel USB-USART dodáva záložné napätie 5 V centrálnej jednotke, preto pri zakolísaní napätia adaptéra v komunikácii nenastane chyba. Ale to je len môj osobný názor. Keď mi už aplikácia spoľahlivo komunikovala s frézou, doprogramoval som ešte zopár funkcií na spravovanie interpretera GRBL.
    Z predošlých skúseností som pre istotu do wCncPcb zabudoval spomínané tlačidlo „pokračuj“. Môže sa použiť v prípade núdze, ak by fréza nepotvrdila prijatie dát a proces by v nejakom bode zamrzol.
    Keď mi komunikácia tak dobre fungovala, vŕtalo mi hlavou: „A čo tak skúsiť Bluetooth?“ Kúpil som najlacnejší Bluetooth (ďalej len BT) modul, aký bol v tej dobe dostupný – JDY-33. Myslel som si, že ak nastavím v aplikácii rýchlosť sériového portu na 115 200, tak aj modul s frézou bude komunikovať tou istou rýchlosťou. Je to mylná predstava. Rýchlosť komunikácie BT je nutné nastaviť cez USART. Aj s tým nám dokáže naša aplikácia pomôcť. V konzole sú doprogramované tlačidlá, ktoré prestavia BT na požadovanú rýchlosť. K napájaniu BT modulu som prispájkoval 1500 uF kondenzátor kvôli spomínanému výkyvu napätia. Funguje to naozaj spoľahlivo. Najväčšia výhoda bezdrôtovej komunikácie je, že notebook môže byť v inej miestnosti ako fréza, a tak sa do notebooku nedostane prach z frézovania.
    Chcel by som upozorniť na jednu dôležitú vec. Pri priamom odosielaní dát do 3018 sa gCode generuje postupne počas frézovania. Ak by sme vybrali na odoslanie iba dve položky, aplikácia by spustila inicializačný kód, odoslal by sa kód pre obe položky a zakončil by sa ukončovacím kódom. To dáva možnosť opraviť niektoré zle vyfrézované cestičky, poprípade dokončiť výrobok pri nejakej poruche. Má to ešte jednu veľkú výhodu, a to použiť korekciu nerovnosti povrchu.
    Nerovnosť povrchu je ďalšia vec, ktorá mi nedala spať. Najprv som vyrovnával podkladovú dosku podkladaním papierikov, neskôr mi napadlo doprogramovať „vyrovnávanie povrchu frézou“. Funguje to jednoducho. Vyfrézuje povrch v zadaných rozmeroch. Teda odfrézovaná časť v podkladovej doske bola voči nástroju 100 % rovná. No aj tak je často PCB ohnuté a pri jemnom frézovaní napríklad 0,3 mm je každý ohyb veľký problém. Tu prišla na rad potreba vykonať meranie nerovnosti. GRBL má špeciálny príkaz, ktorý pri prepojení vstupu A5 zastaví motor a v chybovom hlásení odošle súradnice, kde sa presne vreteno nachádza. Keďže PCB má medený (vodivý) povrch, aj motorček s vrátidlom a frézkou sú kovové (vodivé), stačí pripojiť jeden vývod A5 na motorček frézy a druhý na PCB. Táto funkcia sa v GRBL označuje ako PROBE – sonda. Aplikácia wCncPcb pozná tri úrovne merania povrchu. Prvá je najjednoduchšia a v podstate iba nastaví nulový bod pri dotyku frézky o PCB. Druhá úroveň vykonáva štyri merania na hranách PCB. Takto si vie prekladač kódu vytvoriť korekciu súradnice Z. Najvyššia úroveň (Multi-meranie) vykoná sieť meraní. Vhodné pre väčšie PCB. Tu len dodám, že multi-meranie má zmysel iba vtedy, ak sú cestičky krátke. Aj na tom som myslel a do aplikácie som doprogramoval rozdelenie dlhých cestičiek.
    Zo strany návrhu PCB treba mať na pamäti, že aplikácia zobrazuje pohľad zo strany súčiastok, teda pohľad zhora (ako v Eagle). Pre zostrojenie jednoduchého obvodu stačí vložiť potrebné súčiastky a natiahnuť čiary tam, kde majú byť vyfrézované drážky. Nástroj „kontúra“ vyfrézuje kontúru PCB s úchytkami. Pri komplikovanejšom obvode je aj návrh dosky podstatne zložitejší. Pre zložité obvody by bolo lepšie navrhnúť PCB v nejakej klasickej aplikácii, ako napríklad Eagle, a dáta následne preniesť do wCncPcb. To ma prinútilo doprogramovať niekoľko možností importu. Bolo problematické vytvoriť celkový obrys pospájaných cestičiek. Preto som spočiatku využil na tento účel aplikáciu FlatCAM. Z Eagle som vytvoril GERBER a ten som následne importoval do FlatCAM. Vygenerovaný súbor DXF obrysu som nakoniec načítal do wCncPcb. Tu chcem podotknúť, že DXF neobsahuje diery. Preto som musel doprogramovať import Excellon priamo z GERBER. Zdalo sa mi to celkom komplikované. Tak som skúsil importovať obrázok a z neho vytvoriť obrys cestičiek. Celkom to funguje, len treba zachovať správne rozlíšenie DPI a potom obrázok nastaviť na diery z Excellonu. Nebol som s tým spokojný. Chcel som importovať GERBER jedným stlačením. To nakoniec vyriešila knižnica Clipper (autor: Angus Johnson), ktorá dokáže zjednotiť polygóny. Konečne som dokázal z GERBER súboru vytvoriť polygóny (cestičky, pady...), ďalej knižnicou Clipper.union zjednotiť spojené objekty do jedného tvaru (polygónu) a v poslednom kroku vyexportovať obrys jednotného tvaru posunutý o polomer frézky. Momentálne import funguje tak, že stačí kliknúť na akýkoľvek súbor GERBER a aplikácia si sama vyhľadá všetky potrebné súbory. Algoritmus na dekódovanie súborov DXF, GERBER, EXCELLON som prispôsobil jestvujúcim súborom vyexportovaným z programov EAGLE a FlatCAM. Môže sa stať, že iná aplikácia vygeneruje súbor GERBER v inej štruktúre a súbor nemusí byť správne načítaný. Napríklad GERBER súbor z aplikácie Eagle obsahuje makro „AMOC8“, ktoré vytvára osemuholník. Aplikácia wCncPcb nevytvára objekt „OC8“ pomocou spomínaného makra, ale berie ho priamo ako objekt osemuholník. Ak by niekto importoval súbor GERBER, ktorý by bol zle načítaný, prosím, napíšte mi. Veľmi rád opravím chyby.
    Po importovaní dosky PCB z Eagle sa objavili ďalšie požiadavky. Tenšie frézované drážky (výmena nástroja) a zmena rýchlosti či priemeru nástroja. Doprogramoval som ďalšie tri tlačidlá, ktoré spúšťajú jednotlivo fázy výroby PCB. Prvé tlačidlo spustí vŕtanie malých dier (do polomeru nástroja – frézky), druhé tlačidlo frézuje iba drážky (vyššou rýchlosťou). Posledné tlačidlo spustí frézovanie otvorov (diery väčšie ako polomer nástroja – frézky) a kontúry.
    Aj keď frézou dokážeme vytvoriť dosku pre SMD montáž, nejako sa to na praktickom vyučovaní neujalo. Vyfrézovaná drážka je pre začiatočníkov príliš tenká a žiaci radšej osadzujú dosky, ktoré majú podstatne väčšie spájkovacie plochy a medzery. Vrátil som sa k idei výroby PCB jednou frézkou (napríklad 0,8 mm). Doplnil som preto možnosť zmeny rýchlosti frézovania podľa toho, či frézka vŕta, odoberá meď (frézuje drážky), alebo reže (frézuje obrys).
    Nutnosť vyrobiť viacero dosiek naraz mi dala príležitosť doprogramovať špeciálne tlačidlo. Po nastavení požadovaného počtu PCB ho stačí stlačiť a fréza si sama nameria nerovnosť povrchu a jednou frézkou vyfrézuje požadovaný počet dosiek. Dnes už na frézu 3018 nedám dopustiť.
    Nakoniec len dodám, že wCncPcb nie je komerčná, profesionálna aplikácia. Naprogramoval som ju ako voľne šíriteľný softvér pre výrobu PCB v školských a domácich podmienkach. Teda nevzťahuje sa na ňu žiadna licencia (ani Open-Source). Aplikácia je primárne určená pre operačný systém Windows, ale vďaka „wine“ funguje aj pod Linuxom.