Płytki PCP – frezowanie CNC #3

Projekt płytki został lekko zmieniony: mamy arduino Nano + LED + rezystor + wyprowadzenie na nRF24 (spi) oraz na OLED i2c. Grubość ścieżek 0.4 mm (choć z poprzedniego tygodnia testów wiemy, że i 0.25 mm daje radę na tej maszynie). Teraz Pan Bartek skupił się na wierceniu otworów na elementy lutowane – było z tym trochę zabawy 😉

Najpierw zamontowaliśmy płytkę miedzianą do stołu za pomocą dwóch śrub. Poprzednio była taśma dwustronna jako tymczasowe rozwiązanie, teraz to poprawiamy. Dwie śruby to też słaby pomysł, bo płytka po ich dokręceniu wybrzusza się rogami do góry. Oczywiście skanujemy płaszczyznę tworząc mapę wysokości, ale Pan Bartek uparł się na próbkowanie 3×3 😛 Ja proponowałem większe, ale co tam… to nie mój projekt 😉 To skanowanie okazało się jednak za skromne – z prawej strony frezowania wyraźnie słychać było zgrzyty frezu, jakby prowadzony był za głęboko… Na przyszłość trzeba zwiększyć rozdzielczość tej mapy wysokości (tworzy się szybko, więc po co upierać się na 3×3?) i zastosować 4 punkty mocowania (a nie tylko 2).

Wiercenie otworów dla elementów lutowanych. Cztery pierwsze wykonane wiertłem 1.1mm, a teraz zmiana na 0.8mm.

Frezowanie ścieżek zakończone. Teraz dziurki – pierwsze 4 poszły szybko, wiertłem 1.1mm (miało być 1mm, ale opisy na wiertłach takie malutkie, że faktycznie użyliśmy 1.1 mm). Sprawdzilismy, że te otwory są jakby za duże, więc zatrzymaliśmy maszynę i zmieniliśmy wiertło na 0.8mm. Było zabawnie, bo przez nieuwagę zapomnieliśmy o zapisaniu referencyjnego położenia na osi Z (pomimo kalibracji wykonanej zgodnie ze sztuką). W wyniku tego otwór chciał się przewiercić przez stół 😉 Miny głębokość wiercenia 3mm, ale jak się ma źle ustawioną oś Z to te 3mm oznacza przewiercenie na wylot stołu. Dlatego szybko praca maszyny została przerwana przez odłączenie zasilania (w prawdziwych maszynach jest taki czerwony grzybek – awaryjne wyłączenie, ale tutaj wtyczka zasilania i tyle w temacie). Uff… ale ale – chcemy kontynuować pracę z przygotowaną płytką, i wywierconymi już 4 otworami. W czym problem? Aktualnie pracujemy na maszynie bez krańcówek, czyli punkt (0,0) na osiach (x,y) został wybrany dowolnie. Po odłączeniu zasilania nie mamy już tej informacji! Co zrobiliśmy? Ręcznie nakierowaliśmy wiertło nad pierwszy otwór – tak „na oko”, ja mówiłem „jeszcze trochę w lewo”, a Pan Bartek i tak robił swoje 😉 Następnie podejrzeliśmy pierwsze instrukcje G-CODE i zobaczyliśmy, że pierwsza dziurka to instrukcja G00 X18.700 Y25.000. Czyli ręcznie cofnęliśmy wiertło do pozycji startowej – wydając instrukcję G00 X-18.700 Y-25.000. To wystarczyło – mamy poprzednio (sprzed awaryjnego wyłączenie zasilania) ustalony punkt (0,0) i możemy kontynuować pracę wiertła. Udało się.

Kolejne dziurki po zmianie wiertła na 0.8mm.
Już prawie koniec… jeszcze nie zdmuchujemy paprochów.
Płytka po wyczyszczeniu opiłków i paproszków.

(c) K.G. 2021

Płytki PCP – frezowanie CNC #2

Pan Bartek ulepszył mocowanie stołu – jest teraz stabilny. Zadanie na dziś to sprawdzenie, czy sprzęt jest na tyle precyzyjny, że może wykonać ścieżki o grubości 0.25mm, 0.5mm, 1mm oraz 2mm. Grubość frezu to 0.1mm – powinno się udać, o ile poprawnie skonfigurujemy parametry pracy maszyny CNC.

Projekt testowania grubości ścieżek – od 2 mm (skrajna lewa) do 0.25 mm (skrajna prawa).

Projekt zawiera wspomniane 4 ścieżki, zakończone polami: padami do lutowania (dół) oraz miejscami na wywiercenie otworów (fi=1mm) do przetkania i przylutowania nóżek rezystorów, LED-ów czy scalaków. Poniżej maszyna CNC w trakcie ustawiania mapy wysokości.

Tworzenie mapy wysokości – zetknięcie frezu z płytką to połączenie obwodu i sygnał zwrotny dla programu.
Drugi test frezowania (pierwszy nie wyszedł – widać go w prawym, górnym rogu płytki miedzianej).

Po 10 minutach pracy (czyszczenie płytki z opiłków tylko zgrubne, „tyle-o-ile”) główny test: przykładamy multimetr i sprawdzamy ciągłość ścieżek (najbardziej interesuje nas najmniejsza – o grubości 0.25 mm).

Test ciągłości – jest wyraźny sygnał dźwiękowy!

Sukces! Poniżej zdjęcie całej płytki:

Płytka testowa z dwoma próbami. Po lewej próba udana (patrz najcieńsza ścieżka, porównaj do tej na górze).

Tytułem wyjaśnienia dodam o co tutaj chodzi: cała płytka pokryta jest miedzią, która obrabia się według projektu tak, aby odciąć ścieżki od zewnętrza. Frez musi pracować precyzyjnie, aby pozostawił miedź wewnątrz ścieżki – co się nie udało za pierwszym razem (najcieńsza ścieżka jest „wyryta” frezem zbyt głęboko i nie ma wcale miedzi – nie przewodzi).

FlatCAM

Opis kroków do wykonania (w przygotowaniu)

(c) K.G. 2021

Płytki PCP – frezowanie CNC

Dziś Pan Bartek testował wydziałową frezarkę CNC w zastosowaniu do przygotowania płytek PCB. Najpierw przygotował projekt pierwszej płytki w KiCad-dzie, który składa się z Arduino Nano + moduł nRF24L + LED + rezystor (polecamy filmik na YT z tutorialem jak pracować w KiCadzie). Dalej wczytał wyeksportowany plik do GRBL-u w Candle i podłączył frezarkę. Candle to fajny program, intuicyjny i pomimo dość skomplikowanie wyglądającego interfejsu – da się zrozumieć o co w nim chodzi. Jedyny minus to to, że jest 32-bitowy: dlatego uruchomiliśmy go pod Windowsem, który wspiera prehistoryczne aplikacje 🙂 W międzyczasie zająłem się wersją na Linuxa (na końcu wpisu wersja 64 bit do pobrania). Aby nie tracić czasu sterowanie frezarką odbywało się z Windowsa.

Kolorowa mapa wysokości płytki – próbkowanie 3×3 punkty.
LIVE podgląd podczas pracy frezarki – fajna sprawa!
Maszyna w działaniu – pierwszy projekt płytki PCB.

Konfiguracja frezarki polegała na poprawnym podłączeniu, zdefiniowaniu pozycji startowej (punkt 0,0, czyli „dom”), stworzenie mapy wysokości (skanowanie kierunku na osi Z). Chwilowo używamy dwustronnej taśmy przylepnej, niebawem będzie coś odpowiedniejszego.

Frezarka w trakcie pracy. UWAGA: ścisz swoje głośniczki!

Efekt końcowy po 30 minutach pracy (no i po wyczyszczeniu płytki z opiłków):

Pierwszy frez!

Ciągle jest jeszcze sporo pracy przed ostatecznym przygotowaniem płytki (np. wywiercenie otworów). Jak na razie cieszymy się, że wszystko zadziałało (nawet pomimo tymczasowego mocowania stołu i płytki – na taśmę dwustronną). Niestety, ścieżki są miejscami połączone, ale to wina a) mocowania stołu, b) luzach na głowicy frezującej lub c) złego zdefiniowania parametrów frezu w Candle. Projekt do poprawki, ale i tak jesteśmy zadowoleni 😉

Candle 64-bit

Jak wspomniałem na początku wpisu, z repozytorium githuba pobiera się archaiczną wersję 32-bitową (niezależnie czy Win czy Linux). Windows zawsze był przestarzały więc obsługę aplikacji 32-bitowych ma wszyte w system, pomimo faktu, że jest systemem operacyjnym 64-bitowym. Dla Linuxa (oczywiście 64-bitowego) musiałem zainstalować pakiet ia32-libs aby umożliwić działanie starych programów. Na szczęscie nie trzeba się męczyć w ten sposób. Można przekompilować źródła i mieć własną wersję 64-bit. Dla dystrybucji bazująych na Ubuntu (czyli np. Ubuntu, Mint) należy mieć zainstalowane biblioteki QT5 (patrz krok 0), pobrać źródła (krok 1), wykonać konfigurację i kompilację (krok 2) a potem pobrać wersję v1.1, rozpakować (krok 3) i podmienić plik wykonywalny 32-bitowy Candle na właśnie skompiowany plik 64-bitowy (krok 4). Poniżej kilka instrukcji z poszczególnymi krokami.

(krok 0 - biblioteki)
sudo apt install qt5-default qt5-qmake libqt5serialport5-dev
(krok 1 - źródła)
cd
git clone http://github.com/Denvi/Candle.git
Klonowanie do „Candle”...
warning: przekierowanie do https://github.com/Denvi/Candle.git/
remote: Enumerating objects: 5618, done.
remote: Counting objects: 100% (55/55), done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 5618 (delta 29), reused 36 (delta 18), pack-reused 5563
Pobieranie obiektów: 100% (5618/5618), 35.47 MiB | 5.36 MiB/s, gotowe.
Rozwiązywanie delt: 100% (4166/4166), gotowe.
(krok 2 - konfiguracja) 
cd ~/Candle/src/
qmake
make
(krok 3 - binarki 32-bit) 
wget http://github.com/Denvi/Candle/releases/download/v1.1/Candle_1.1.7.tar.gz 
sudo tar -xf Candle_1.1.7.tar.gz -C /opt/
(krok 4 - podmiana na 64-bit) 
cd /opt/Candle
sudo mv Candle Candle.32bit.old
sudo cp ~/Candle/src/Candle .
(krop 5 - sprawdzenie)
file Candle
Candle:       ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=e1cb49635ed9370e88b3744ca76c0990403ad2b0, for GNU/Linux 3.2.0, not stripped

Dla leniwych wykonywalny Candle (wersja 64-bit) do pobrania tutaj (md5sum: dbcade0a80bc555d4ec3cbaba9105852).

(c) K.G. 2021