Konfiguracja FP-LIB-TABLE

Biblioteki footprintów – Starsze i nowsze wersje

W chwili obecnej obowiązują dwa formaty plików z bibliotekami footprintów:

  • Legacy – Biblioteki starszego typu czyli pliki .MOD, które obecnie uzyskały status plików przestarzałych. Możliwość zapisu tego typu plików została już wyłączona.
  • Pretty (KiCad) – Biblioteki nowego typu czyli folder posiadający rozszerzenie .pretty, a w nim pojedyncze pliki .kicad_mod stanowiące zawartość biblioteki.

Biblioteki Legacy są tak skonstruowane, że pojedyncza biblioteka stanowi jeden plik, w którym zapisane są definicje poszczególnych footprintów z biblioteki. Rozmiar biblioteki, a zatem również pliku, wzrasta razem z ilością footprintów jakie są w nim zapisane.

Nowy format bibliotek zwany Pretty zakłada, że jeden footprint to jeden, z reguły dość mały plik wewnątrz biblioteki, którą stanowi po prostu odpowiednio nazwany folder.

fplib_rys1

Rysunek 1 Przykład biblioteki nowego typu zapisanej lokalnie na dysku komputera

W przykładowej bibliotece Housings_SOT.pretty znajduje się 5 definicji footprintów. Wszystkie z nich dotyczą jednego typu obudowy, w kilku wariantach montażowych.

Taka zmiana podejścia do zapisu bibliotek dała możliwość umieszczenia plików bibliotek nie tylko na dysku lokalnym komputera, ale także na serwerach zdalnych gdzie małe pliki umożliwiają pobieranie potrzebnych porcji danych w tle.
Między innymi dlatego oficjalny zestaw bibliotek footprintów programu KiCad został przeniesiony na platformę GitHub, która jest pewnym rodzajem chmury obliczeniowej i udostępnia dostęp do plików w tzw. zdalnych repozytoriach.

Tabele Bibliotek – Garść informacji na początek

W kompilacji numer BZR4535 zostało całkowicie zmienione podejście do konfiguracji bibliotek w programie Pcbnew jak i CvPcb. Konfiguracją tą zajmują się dwie tzw. Tabele Bibliotek:

  • globalna – obowiązująca dla całego programu, choć zależna od zalogowanego w danej chwili użytkownika,
  • lokalna – dla poszczególnych projektów, która jest przedłużeniem tabeli globalnej i nie jest wymagana.

Tabele te są zapisywane w plikach o nazwie fp-lib-table (bez rozszerzenia). Plik globalnej tabeli jest zapisywany w folderze z ustawieniami programu KiCad każdego z użytkowników w systemie operacyjnym. Na przykład w systemie Windows będzie to %APPDATA%\kicad\. Plik lokalnej tabeli bibliotek zapisywany jest zaś w folderach poszczególnych projektów.

Co daje taki podział?

Chcąc mieć wszystkie posiadane biblioteki footprintów skonfigurowane tak, by były dostępne dla wszystkich projektów – także tych które dopiero powstaną – trzeba utworzyć lub zmienić globalną tabelę bibliotek. Gdyby jednak zaistniała potrzeba utworzenia biblioteki powiązanej z projektem, tak by przenosiła się razem z nim, trzeba utworzyć lokalną tabelę bibliotek, a sam plik lub pliki używanych bibliotek zapisać tym samym folderze co projekt.

Instalacja i konfiguracja gotowego rozwiązania

Korzystając z instalatora jaki został przygotowany i udostępniony tutaj istnieje ograniczona możliwość automatycznego dostosowania podstawowej wersji globalnej tabeli bibliotek do instalowanych składników.

fplib_rys2

Rysunek 2 Składniki instalatora powiązane z bibliotekami

Użytkownicy posiadający słabsze łącze z siecią Internet lub nie korzystający z bibliotek w zdalnych repozytoriach, np. oficjalnym repozytorium GitHub programu KiCad; mogą zainstalować lokalne kopie plików na dysku lokalnym. Wystarczy zaznaczyć wskazaną na rysunku 2 opcję.
Użytkownicy posiadający stały dostęp do sieci Internet i chcący skorzystać z bibliotek z repozytoriów GitHub nie muszą tego składnika instalować by zaoszczędzić miejsce na dysku.

Na końcu instalacji można w zależności od wyboru opisanej wyżej opcji dokonać wyboru, jaką predefiniowaną globalną tabelę bibliotek instalator ma umieścić w miejscu domyślnej tabeli. KiCad EDA Suite przy pierwszym uruchomieniu Pcbnew albo CvPcb, jeśli w folderze z ustawieniami nie znajdzie istniejącej tabeli bibliotek, potraktuje ją jako wzorzec i skopiuje ją jako domyślną.

fplib_rys3

Rysunek 3 Opcje poinstalacyjne

Nic nie stoi na przeszkodzie, by zainstalować kopie lokalne bibliotek, a skonfigurować tabelę, by korzystała z repozytorium GitHub. Może to być przydatne w tych przypadkach, gdzie chwilowo nie mamy dostępu do sieci, a chcemy nadal korzystać z programu Pcbnew. Wtedy będzie można łatwo przygotować rezerwową tabelę i nie utracimy dostępu do oficjalnych bibliotek.

Użytkownicy, którzy nie korzystają z wskazanego instalatora wystarczy, że po zainstalowaniu lub skompilowaniu ze źródeł programu KiCad odszukają folder /share/templates gdzie znajdą predefiniowane pliki fp-lib-table.for-github bądź fp-lib-table.for-pretty:

fplib_rys4

Rysunek 4 Predefiniowane pliki tabeli bibliotek

Jeden z wybranych plików będzie trzeba skopiować do folderu z ustawieniami programu KiCad i usunąć rozszerzenie pliku by powstał plik fp-lib-table.

Dostosowywanie do własnej konfiguracji

Struktura tabeli bibliotek

Tabela bibliotek to prosta baza danych zawierająca jedną tabelę. Zapisane są tam ścieżki dostępu, dane identyfikacyjne poszczególnych bibliotek oraz powiązane z nimi opcje.

fplib_rys5

Rysunek 5 Pola danych

Najważniejsze pola jakie muszą być obowiązkowo wypełnione to:

  1. Nazwa skrótowa – Pod tą nazwą biblioteka będzie figurować na liście dostępnych bibliotek oraz w liście sieci przetworzonej przez CvPcb. Nazwa ta musi być unikalna dla tabeli w której się znajduje.
  2. Ścieżka – Zawiera ścieżkę i nazwę pliku lub folderu biblioteki. Może zawierać odnośniki do, specjalnie utworzonych zmiennych systemowych programu KiCad, a także zmiennych systemowych.
  3. Typ wtyczki – Definiuje jaka wtyczka do obsługi pliku w programie KiCad ma być używana przy dostępie do biblioteki. Próby otwarcia biblioteki nieodpowiednią wtyczką zakończą się błędem.

Pozostałe pola mogą pozostać puste. Ich znaczenie jest następujące:

  • Opcje – W tym polu można umieścić dodatkowe opcje. Obecnie związane one są z wtyczką GitHub, choć w przypadku dołączenia kolejnych wtyczek mogą mieć znaczenie.
  • Opis – Zawiera krótki opis, np. zawartość biblioteki, autora, itp.

Zmienne systemowe programu KiCad

Obecnie program KiCad wykorzystuje pięć swoich specjalnych zmiennych systemowych. Trzy z nich dotyczą bibliotek, jedna dotyczy modeli 3D, a ostatnia (nie wyświetlana w tym miejscu) dotyczy szablonów projektowych:

fplib_rys6

Rysunek 6 Zmienne systemowe i ich zawartość

  • KIGITHUB – zawiera adres URL głównego repozytorium programu KiCad na platformie GitHub,
  • KISYSMOD – zawiera domyślną ścieżkę do folderu modules gdzie zapisywane są lokalne pliki bibliotek footprintów,
  • KIPRJMOD – zawiera domyślną ścieżkę do folderu gdzie zapisane są pliki obecnie załadowanego projektu,
  • KISYS3DMOD – zawiera domyślną ścieżkę do folderu modules/packages3d gdzie domyślnie umieszczone są modele 3D.

Oprócz powyższych zmiennych można wykorzystać też inne zmienne istniejące w systemie. Aby poznać listę zmiennych systemu operacyjnego Windows™ wystarczy wywołać z konsoli polecenie: set.

Zmienne systemowe programu KiCad są zdefiniowane w plikach ustawień programu każdego z użytkowników. Ich modyfikacja jest możliwa z poziomu menadżera projektu za pomocą wbudowanego narzędzia do ich edycji.

fplib_rys25

Rysunek 7 Edycja zmiennych systemowych z poziomu menadżera projektu.

Wspomniane zmienne systemowe można także zdefiniować na liście zmiennych systemu operacyjnego (użytkownika) lub dopisać je do pliku wsadowego RunKicad.bat.

Ostatnia zmienna: KIPRJMOD jest tworzona i modyfikowana na bieżąco, i wskazuje na folder gdzie znajduje się obecnie otwarty projekt. Gdy projekt nie został załadowany zawartość tej zmiennej nie jest określona.

Odwoływanie się do zmiennych

Do zmiennych systemowych można odwoływać się w polu Ścieżka stosując zapis: ${zmienna}. Przy próbie dostępu w miejsce zmiennej będzie wstawiana jej wartość.

Sytuacja po instalacji

W przypadku wybrania domyślnej konfiguracji z repozytoriami zdalnymi GitHub, domyślna tabela bibliotek będzie wyglądała w ten sposób:

fplib_rys7

Rysunek 8 Globalna tabela bibliotek dla bibliotek zdalnych

W przypadku wybrania domyślnej konfiguracji z repozytoriami lokalnymi Pretty, domyślna tabela bibliotek będzie wyglądała podobnie:

fplib_rys8

Rysunek 9 Globalna tabela bibliotek dla bibliotek lokalnych

W obu przypadkach będzie to ten sam zestaw bibliotek domyślnych, aktualny na dzień wydania instalatora. Różne będzie tylko źródło plików i rodzaj użytej wtyczki.

Biblioteki nowego typu razem z bibliotekami starszego typu

System tabeli bibliotek jest na tyle elastyczny, że można w tabeli umieszczać odwołania do plików lokalnych na równi ze zdalnymi. Pliki również nie muszą być tego samego typu. Program Pcbnew na podstawie zawartości pola Typ wtyczki będzie wybierał odpowiednią wtyczkę obsługi takiej biblioteki.

Zatem jeśli użytkownik posiada własne biblioteki Legacy (.MOD) z poprzednich wersji programu KiCad, może je umieścić na liście dodając kolejne rekordy danych.
Wystarczy skorzystać z przycisku Dołącz bibliotekę by na końcu listy pojawił się nowy rekord. Następnie wypełnić wymagane pola i ewentualnie przesunąć pozycję rekordu w górę.

fplib_rys9

Rysunek 10 Lista mieszana

Powyższa lista zawiera jedną bibliotekę ze zdalnego repozytorium, dwie z dysku lokalnego zapisane w domyślnej lokalizacji wskazywanej przez zmienną oraz jedną bibliotekę starszego typu, również zapisaną lokalnie.

Dodawanie większej ilości plików może być uciążliwe, dlatego w takim wypadku lepiej posłużyć się prostym kreatorem wywoływanym przyciskiem Dołącz z pomocą kreatora.

Użycie kreatora przy dostosowywaniu konfiguracji

Kreator to dość proste narzędzie przeznaczone do szybkiego dodawania wielu rekordów do tabel bibliotek. Jego działanie opiera się na przejściu kilku kroków z różnymi opcjami do wyboru.

W pierwszym kroku wybiera źródło bibliotek, skąd kreator będzie wyszukiwał biblioteki. Do wyboru są dwie opcje: pliki z komputera lub z repozytorium zdalnego na platformie GitHub. W przypadku repozytorium zdalnego, można podać adres internetowy repozytorium oraz od razu zażyczyć sobie by dane zdalne zostały skopiowane na dysk lokalny. Opcja ta może przydać się później gdy będziemy chcieli modyfikować zdalne biblioteki poprzez COW.

Rysunek 11 Krok pierwszy – wybór lokalizacji

W drugim kroku kreator pokaże listę odnalezionych bibliotek w podanej lokalizacji. W przypadku bibliotek zdalnych pobranie listy może nieco potrwać, w zależności od szybkości łącza lub jego obciążenia.

Rysunek 12 Krok drugi – wybór bibliotek

Rysunek ukazuje listę bibliotek Pretty znaleziona pod ustaloną wcześniej ścieżką na dysku lokalnym. Można wybrać wiele elementów naraz.

W trzecim kroku wybrane biblioteki zostaną sprawdzone i ustalony zostanie ich format by odpowiednio ustawić typ wtyczki w Tabeli Bibliotek.

Rysunek 13 Krok trzeci – sprawdzenie

Ostatnim krokiem kreatora jest wybranie docelowej tabeli bibliotek.

Rysunek 14 Krok ostatni – wybór docelowej tabeli bibliotek

Rezultatem działania kreatora w tym przypadku było dodanie dwóch nowych bibliotek z dysku lokalnego na końcu tabeli globalnej. Należy zauważyć, że kreator automatycznie wybrał typ wtyczki oraz zastosował odpowiednie zmienne systemowe.

fplib_rys15

Rysunek 15 Tabela bibliotek z dołączonymi nowymi rekordami

Tabela globalna i lokalna

Tabela globalna to niezbędny element nowego systemu bibliotek footprintów. Generalnie rzecz biorąc, taka tabela musi istnieć, nawet gdyby nie zawierała żadnych rekordów. Jeśli taka tabela nie istnieje zostanie ona automatycznie utworzona ze wzorca umieszczonego w folderze /share/template.
Takiego obostrzenia nie posiada zaś tabela lokalna, która jest tworzona dopiero wtedy, gdy zostanie wypełniony choć jeden rekord w tej tabeli.

Obie tabele są w pewnym sensie połączone ze sobą. Biblioteka o tej samej nazwie skrótowej z tabeli lokalnej jest przedłużeniem biblioteki z tabeli globalnej. Występuje tu jednak prosty mechanizm priorytetowy. Gdy jakikolwiek footprint występuje w obu instancjach takiej biblioteki, to pierwszeństwo ma ten z tabeli lokalnej.

Zasady tworzenia wpisów w tabelach

Najważniejsza zasada to umieszczanie bibliotek dostępnych dla wszystkich projektów w bibliotece globalnej, a bibliotek specyficznych dla projektu w bibliotece lokalnej. Oczywiście, wiąże się to z odpowiednim rozplanowaniem plików tych bibliotek.

W bibliotece globalnej najlepiej używać tylko odwołań do zmiennych systemowych ${KISYSMOD}, ${KIGITHUB} lub ewentualnie zmiennych pochodzących z systemu.

W tabeli lokalnej, powiązanej z projektem najbezpieczniej jest użyć odwołania do zmiennej ${KIPRJMOD} w ścieżce do pliku, gdyż będzie ona aktualizowana przez program automatycznie. Przy przeniesieniu całego projektu w inne miejsce lub na inny komputer ścieżka do biblioteki lokalnej będzie nadal poprawna.

Biblioteki zdalne i ich modyfikacja

Generalnie biblioteki zdalne są tylko do odczytu. Jest jednak możliwość modyfikacji ich zawartości w razie potrzeby.

Każdą bibliotekę zdalną można skonfigurować tak, by część jej zawartości pochodziła z sieci, a część zmieniona była tworzona i pobierana z lokalnego folderu na dysku komputera. Jest to system zwany COW – Copy on Write.

Konfiguracja z wykorzystaniem COW

Aby włączyć system COW dla biblioteki z repozytorium GitHub, należy w polu Opcje dodać parametr allow_pretty_writing_to_this_dir i przypisać mu ścieżkę na dysku lokalnym gdzie zapisywane będą zmodyfikowane pliki.
Przy dodawaniu opcji można posłużyć się specjalnym oknem dialogowym lub wpisać je ręcznie jak również stosować odwołania do zmiennych systemowych.

fplib_rys16

Rysunek 16 Aktywacja systemu COW dla biblioteki GitHub

Po dodaniu tego parametru należy podany folder utworzyć, gdyż edytor bibliotek samodzielnie ich nie tworzy. Od tej pory wszelkie zmodyfikowane pliki biblioteki będą trafiać do podanego folderu i przesłaniać te które są zapisane zdalnie.

fplib_rys17

Rysunek 17 Zmieniony plik w folderze ‚COW/Transistors_SMD.pretty

Folder COW nie jest żadnym domyślnie tworzonym folderem podczas instalacji programu i służy tu tylko jako przykład. Pliki systemu COW można umieścić gdziekolwiek, byleby program miał do nich dostęp podczas normalnej pracy.

Pliki zmodyfikowane można w dość prosty sposób zaproponować do scalenia z częścią zdalną, tak by były dostępne także dla innych użytkowników.

Własna kopia repozytorium w GitHub i jej aktualizacja

Jak już wspomniano pliki zmodyfikowane można zaproponować do scalenia z częścią zdalną. Do tego potrzebne będzie przede wszystkim konto w systemie GitHub. Do tych celów wystarczy darmowa wersja konta. Następnie oprogramowanie klienckie oraz nieco miejsca na dysku lokalnym komputera by trzymać lokalne kopie repozytoriów.

Gdy posiadamy już konto i jesteśmy na nim zalogowani, możemy odszukać właściwe repozytorium na stronie https://github.com/KiCad/ i stworzyć osobną gałąź, gdzie będzie można umieszczać własne modyfikacje. Samo utworzenie kopii sprowadza się do jednego kliknięcia w przycisk Fork. System sam skopiuje bieżącą zawartość repozytorium w przestrzeni użytkownika i przypisze mu prawa zapisu.

fplib_rys18

Rysunek 18 Lokalizacja przycisku Fork

Po zainstalowaniu oprogramowania klienckiego i skonfigurowaniu potrzebnych danych identyfikacyjnych pozostanie tylko pobrać zawartość swojej gałęzi na dysk lokalny by móc ją swobodnie modyfikować i ewentualnie przygotować do scalenia.

fplib_rys19

Rysunek 19 Klonowanie swojej gałęzi repozytorium

Mając folder lokalny gdzie aplikacja kliencka przechowuje lokalną kopię pobranej gałęzi repozytorium wystarczy zmodyfikowane pliki z systemu COW do niego przekopiować. Resztą zajmie się aplikacja kliencka GitHub.

Scalanie własnej gałęzi repozytorium z gałęzią główną

Scalenie własnej gałęzi do gałęzi głównej jest nieco trudniejsze do wykonania. Jako zwykli użytkownicy nie mamy możliwości bezpośredniego zapisu do głównej gałęzi repozytoriów KiCad-a. Dlatego należy posłużyć się systemem propozycji scalenia – Pull Request.

Należy mieć na uwadze, że propozycje te są oceniane i rozpatrywane przez opiekunów repozytorium, dlatego scalenie może być odwleczone w czasie lub w najgorszym przypadku po prostu odrzucone.

Najpierw należy przygotować tzw. Commit, który będzie zawierał dotychczasowe zmiany jakie zostały wprowadzone i przesłać go do własnej gałęzi.

W tym celu należy rozwinąć sekcję Uncommited changes i obowiązkowo wprowadzić krótki opis zmian. Szerszy opis można dodać w polu Description jeśli nasze zmiany obejmują większy zakres. Na koniec wystarczy tylko skorzystać z polecenia Commit to master oraz zsynchronizować zawartość lokalną naszej gałęzi z zawartością zdalną poleceniem Sync.

fplib_rys20

Rysunek 20 Akceptacja zmian w lokalnym repozytorium

Jeśli wszystkie zmiany zostały już przesłane na serwery systemu GitHub, można utworzyć propozycję ich scalenia. W pola edycyjne wpisujemy tytuł propozycji i opis zmian jakie zostały wykonane, następnie korzystamy z polecenia Send pull request.

fplib_rys21

Rysunek 21 Tworzenie propozycji scalenia

W głównej gałęzi repozytorium pojawi się nowy Pull Request i będzie oczekiwał na zatwierdzenie przez któregoś z opiekunów biblioteki. Warto od czasu do czasu przeglądać zgłoszone a niezatwierdzone propozycje scalenia, by móc zareagować na uwagi ze strony opiekunów. W razie potrzeby będzie można dokonać niezbędnych poprawek.

Konwersja bibliotek Legacy na format Pretty

Jak wspomniano na początku, nowsze wersje programu KiCad nie potrafią zapisywać już plików Legacy (.MOD) i będą proponowały konwersję takiej biblioteki na format Pretty.

fplib_rys22

Rysunek 22 Próba zapisu plików Legacy się nie powiedzie

W chwili obecnej proces konwersji można przeprowadzić za pomocą edytora bibliotek footprintów ModEdit. Najpierw należy dopisać bibliotekę Legacy (plik .MOD) do tabeli bibliotek jeśli dotychczas tam nie figuruje. Następnie uruchomić ModEdit i wybrać ją jako bibliotekę roboczą. Powinna pojawić się wtedy możliwość zapisania jej pod nową nazwą.

fplib_rys23

Rysunek 23 Zapis biblioteki w formacie Pretty

Sama konwersja pliku wykona się automatycznie i poszczególne footprinty ze starszego pliku .MOD zostaną zapisane jako pojedyncze pliki .kicad_mod z nazwą tożsamą z nazwami footprintów w wybranym wcześniej folderze .pretty.

fplib_rys24

Rysunek 24 Pliki po konwersji

Jeśli zamiast biblioteki Legacy chcemy użyć teraz jej wersji Pretty, to należy zmodyfikować na liście w Tabeli Bibliotek stary wpis by odnosił się już do wersji skonwertowanej.

Zakończenie

Powyższy opis porusza tylko najważniejsze kwestie związane z nowym systemem bibliotek programu KiCad. Opisanie wszystkich niuansów zajęłoby znacznie więcej miejsca – zwłaszcza procedury uaktualniania gałęzi repozytoriów oraz rozwiązywanie konfliktów między nimi. Gdyby jednak pojawiły się następne, acz istotne dla użytkowników kwestie zostaną one dodane.

Witryna poświęcona aplikacjom KiCad EDA Suite