Przenoszenie projektów do nowej wersji

Wstęp

W grudniu 2015 roku ukazała się kolejna wersja stabilna programu: KiCad 4.0.0. Zmiany jakie zostały w niej wprowadzone będą wymagać, by starsze projekty – np. utworzone przez poprzednią wersję stabilną BZR4022 – nieco zmodyfikować, tak by bez przeszkód dokonywać w nich dalszych edycji.

W tym artykule postaram się opisać jakie problemy można napotkać podczas przenoszenia projektu i jak je dość szybko rozwiązać by taki projekt był kompatybilny z nową wersją.

Projekt

Na potrzeby tego artykułu został utworzony testowy projekt w programie KiCad BZR4416, który wykorzystuje tylko elementy biblioteczne dostarczone razem z programem. Wiadomym jest, że wielu użytkowników przygotowuje swoje projekty z wykorzystaniem własnych bibliotek elementów. Ten przypadek również zostanie uwzględniony w miejscach gdzie problemy z tym związane mogą się pojawić.

Format projektu nie zmienił się, zatem bez przeszkód można otworzyć przykładowy projekt w nowszej wersji programu.

konw_rys1

Rysunek 1 Przykładowy projekt otwarty w jednej z nowszych wersji

Jak widać, drzewo projektu zawiera wszystkie podstawowe pliki:

  • kicad4416.brd – gdzie zapisano obwód drukowany, jeszcze w starszym formacie pliku.
  • kicad4416.cmp – gdzie znajdują się powiązania footprintów wykonane w programie CvPcb.
  • kicad4416.net – gdzie znajduje się utworzona dla projektu lista sieci, zapisana z lub bez uwzględnienia numeracji wstecznej.
  • kicad4416.sch – gdzie znajduje się jednoarkuszowy schemat.
  • kicad4416-cache.lib – gdzie program Eeschema umieścił kopie symboli użytych na schemacie.

Schemat

Format plików w których zapisane są schematy nie zmienił się i można je bez większych przeszkód odczytać. Można jednak napotkać problemy związane z bibliotekami symboli, gdy w schematach stosowano symbole dostarczone razem z programem – tak jak w przykładowym projekcie.

W nowszych edycjach programu ponad połowa z bibliotek symboli została diametralnie zmieniona i zawarte w nich symbole mogą nie pasować do starych schematów. Co więcej, pewne biblioteki nie wchodzą już w skład domyślnie instalowanych bibliotek. Przykładem niech będzie biblioteka special.lib, która została podzielona na kilka tematycznych bibliotek. Dlatego też po otwarciu schematu warto śledzić komunikaty o braku wymaganych bibliotek, oraz uaktualnić ich listę w projekcie.

Jeśli w projektach schematów, używano tylko bibliotek symboli spoza oficjalnej dystrybucji (np. własnych lub znalezionych w sieci) to w zasadzie nic nie trzeba robić. Wystarczy tylko zadbać o to, by biblioteki te przenieść do nowej instalacji i by miały wyższy priorytet od innych, tak by uniknąć konfliktów nazw z domyślnymi symbolami. Jednak gdy w projekcie stosowano biblioteki domyślne, to program Eeschema może poinformować Nas o tym, że symbole ze schematu nie są takie same jak te występujące obecnie w bibliotekach.

konw_rys2

Rysunek 2 Kreator odzyskiwania symboli na schemacie

Istnieją dwa sposoby naprawy:

  • Wczytanie schematu tak jak jest poprzez kliknięcie przycisku Anuluj. Będzie wymagane wykonanie ręcznych poprawek w schemacie. Ilość poprawek jest zależna od stopnia skomplikowania schematu i dostępności wolnego miejsca na arkuszu projektowym, gdyż niektóre symbole zostały nieco powiększone. W takim przypadku będzie wymagane dokładne sprawdzenie schematu, samo sprawdzenie narzędziem ERC może nie wystarczyć.
  • Skorzystanie z propozycji naprawy z odzyskaniem symboli z pamięci podręcznej (pliku -cache.lib), które uruchamia się poprzez kliknięcie przycisku OK.

W przypadku potwierdzenia propozycji naprawy, elementy wyszczególnione na górnej liście zostaną zapisane w zapasowej bibliotece o specjalnej nazwie składającej się z nazwy projektu i słowa rescue. Biblioteka ta zostanie automatycznie dopisana na początek listy domyślnych bibliotek, tak by miała najwyższy priorytet.

konw_rys3

Rysunek 3 Biblioteka zapasowa umieszczona na szczycie listy bibliotek symboli

Jeśli wszystko poszło sprawnie schemat nie ulegnie żadnej degradacji. Wystarczy tylko ponownie go zapisać.

konw_rys4

Rysunek 4 Schemat po operacji odzyskania symboli

W tym miejscu nie warto jeszcze ponownie zapisywać listy sieci, gdyż w nowszej wersji lista sieci przenosi także informacje o footprintach. Poprzednio footprinty były pobierane z domyślnie z pliku CMP, który tworzony był przez CvPcb i mógł zostać ewentualnie zmodyfikowany również przez Pcbnew przy operacji zamiany footprintów.

Przed uruchomieniem CvPcb należy jeszcze skonfigurować biblioteki footprintów. Najbezpieczniej zrobić to z pomocą Pcbnew, gdyż uruchomienie teraz programu CvPcb mogłoby zniszczyć plik CMP, który będzie potrzebny w późniejszym czasie.

Biblioteki footprintów

Największe zmiany pomiędzy wersjami programu zaszły w programie Pcbnew. Najważniejsza z nich to wprowadzenie systemu tabel bibliotek – FP-LIB-TABLE, który w pewnym sensie uniezależnia biblioteki od projektu.

Więcej szczegółów na temat tego systemu można znaleźć w oddzielnym artykule Konfiguracja FP-LIB-TABLE. Warto przeczytać początkowe rozdziały by wiedzieć jak poprawnie konfigurować tabele bibliotek.

W tym miejscu należy dokonać wyboru jednego ze scenariuszy:

  1. Jeśli chcemy zachować bieżące footprinty z możliwością ich późniejszego dodawania podczas przyszłych modyfikacji projektu – archiwizujemy footprinty i generujemy specjalną bibliotekę, dopisując ją do tabeli bibliotek powiązanej z projektem.
  2. Jeśli chcemy by biblioteki użyte wcześniej były dalej dostępne dla innych projektów to odnajdujemy w pliku projektu ich nazwy oraz konwertujemy je na nowy format i dołączamy do tabeli bibliotek dostępnych globalnie. Taka opcja będzie przydatna w przypadku stosowania własnych bibliotek w projektach.
  3. Nie robimy żadnego z powyższych kroków, przy pierwszej modyfikacji zawartości obwodu drukowanego zastosowane będą nowe footprinty. Ewentualne modyfikacje wykonane zostaną ręcznie.

Scenariusz 1: Archiwizacja footprintów

By rozpocząć proces archiwizacji należy najpierw utworzyć pustą bibliotekę w folderze z projektem. Ponieważ w chwili obecnej biblioteki w formacie Pretty to zwykłe foldery na dysku, to najszybszą metodą jej utworzenia jest po prostu utworzenie pustego katalogu z rozszerzeniem .pretty w folderze z projektem.

konw_rys5

Rysunek 5 Tworzenie pustej biblioteki Pretty w folderze projektu

Teraz, aby biblioteka taka była widoczna w programie Pcbnew należy ją dodać do właściwej tabeli bibliotek. Najbezpieczniej biblioteki lokalne, powiązane z projektem – a taką jest biblioteka zarchiwizowana umieszczona w folderze projektu – dodawać do tabeli własnej projektu.

konw_rys6

Rysunek 6 Tabela z bibliotekami własnymi projektu

Będzie ona dostępna tylko dla tego projektu i będzie ją można przenosić razem z projektem.

Sam proces archiwizacji odbywa się wywołując polecenie Utwórz archiwum footprintów z menu Plik. Program poprosi tylko o wskazanie biblioteki, której to zawartość zostanie wypełniona footprintami z otwartego pliku BRD.

konw_rys7

Rysunek 7 Archiwizacja footprintów wymaga wybrania istniejącej biblioteki

Generując archiwum nie musimy wykonywać dodatkowych konwersji, gdyż program dokona jej sam już w czasie tworzenia archiwum. Można za pomocą przeglądarki bibliotek sprawdzić, czy wszystkie footprinty istniejące na płytce zostały skopiowane.

konw_rys8

Rysunek 8 Zawartość biblioteki archiwalnej

Scenariusz 2: Konwersja starych bibliotek Legacy na format Pretty

W przypadku gdy projekt korzystał z innych bibliotek, na przykład utworzonych przez użytkownika lub pobranych z innych źródeł niż oficjalne, to najpierw należy wyszukać pliki tych bibliotek. Nazwy bibliotek, można łatwo odszukać, przeglądając za pomocą zwykłego edytora tekstu plik z projektem (.pro). Lista bibliotek programu Pcbnew powinna znajdować się sekcji [pcbnew/libraries].

konw_rys9

Rysunek 9 Plik projektu zawiera informacje o użytych bibliotekach footprintów

W zasadzie, w chwili obecnej KiCad w dalszym ciągu potrafi odczytywać pliki formatu Legacy (.mod), dlatego można używać starszych bibliotek – oczywiście po umieszczeniu ich na liście w tabeli bibliotek z ustawieniem odpowiedniej wtyczki. Problem pojawi się wtedy, gdy taka biblioteka musiałaby zostać zmodyfikowana.

Nowa wersja programu KiCad nie potrafi zapisywać już plików formatu Legacy i dlatego warto posiadane biblioteki skonwertować na biblioteki formatu Pretty. W chwili obecnej proces konwersji można przeprowadzić automatycznie za pomocą edytora bibliotek footprintów ModEdit, który sam informuje o tym przy próbach zapisu starszych wersji plików.

fplib_rys22

Rysunek 10 Próba zapisania bibliotek w formacie Legacy się nie powiedzie

Załóżmy, że projekt korzystał z jednej biblioteki użytkownika, która została zapisana pod nazwą mylibrary.mod w folderze z pozostałymi bibliotekami programu: /share/modules.

Najpierw należy dopisać bibliotekę mylibrary.mod do globalnej tabeli bibliotek jeśli dotychczas tam nie figuruje.

Nazwa skrótowa Ścieżka Typ wtyczki
MyLibrary ${KISYSMOD}\mylibrary.mod Legacy

Następnie uruchomić ModEdit i wybrać ją jako bibliotekę roboczą. Powinna pojawić się wtedy możliwość zapisania jej pod nową nazwą.

fplib_rys23

Rysunek 11 Wybór biblioteki docelowej

Sama konwersja pliku dokonuje się automatycznie w trakcie zapisu. Poszczególne footprinty ze starszego pliku mylibrary.mod zostaną zapisane jako pojedyncze pliki .kicad_mod z nazwami tożsamymi z nazwami własnymi poszczególnych footprintów, w wybranym wcześniej folderze MyLibrary.pretty.

fplib_rys24

Rysunek 12 Zawartość nowej biblioteki to pliki z poszczególnymi footprintami

Aby teraz skorzystać w projekcie z wersji skonwertowanej na format Pretty, to należy tylko zmodyfikować poprzedni wpis na liście w tabeli bibliotek by odnosił się już do wersji skonwertowanej.

NAZWA SKRÓTOWA ŚCIEŻKA TYP WTYCZKI
MyLibrary ${KISYSMOD}\mylibrary.pretty KiCad

Scalenie informacji o footprintach zapisanych w pliku CMP do listy sieci

Operację przeniesienia informacji, należy wykonać dwuetapowo. Pierwszym etapem, będzie import danych z pliku .CMP do schematu i wygenerowanie nowej listy sieci, która od tej pory będzie już zawierać informacje o footprintach, lecz w dalszym ciągu nie będą to informacje właściwe, z uwagi na brak formatu FPID (Nowy system identyfikacji nazw bibliotek w tabelach bibliotek).

Jeśli w projekcie dokonano już wcześniej procesu numeracji wstecznej to w zasadzie nie ma potrzeby odrębnego wykonania etapu pierwszego, gdyż schemat zawiera już odpowiednie informacje. W przeciwnym wypadku właśnie teraz należy uruchomić numerację wsteczną za pomocą polecenia Importuj dane o footprintach. Program Eeschema zapyta tylko o to, czy wypełnione pola Footprint każdego z symboli na schemacie mają być widoczne, czy nie.

konw_rys10

Rysunek 13 Schemat po wykonaniu numeracji wstecznej z opcją normalnej widoczności pól

Drugi etap musi się odbyć w programie CvPcb, który na podstawie obecnych informacji z listy sieci, będzie próbował automatycznie dopasować odpowiednie footprinty z bieżącego zestawu bibliotek oraz sformatuje informacje do postaci FPID.

konw_rys12

Rysunek 14 Informacja o konieczności zmiany obecnych odnośników

Jeśli zgadzamy się na działania automatyczne trzeba odpowiedzieć Tak. W przeciwnym wypadku program usunie wszystkie przypisania i będzie trzeba je wykonać ponownie.

Może się zdarzyć, że automatyka programu CvPcb wykryje, iż pewne nazwy footprintów występują w kilku bibliotekach.

konw_rys13

Rysunek 15 Informacje o konfliktach nazw które należy rozwiązać

W takim przypadku przypisania nie zostaną uaktualnione i będzie trzeba je wykonać ręcznie lub automatycznie z wykorzystaniem plików automatycznego kojarzenia footprintów (.equ).

konw_rys14

Rysunek 16 Lista footprintów po modyfikacji automatycznej

Po poprawkach manualnych lista powinna wyglądać w sposób następujący. Jeśli lista jest poprawna to można już przenieść zmiany wprowadzone przez CvPcb do schematu.

konw_rys15

Rysunek 17 Właściwa lista footprintów po poprawkach manualnych

Po odświeżeniu widoku schematu pola Footprint powinny zostać zmienione i zawierać nazwy skrótowe bibliotek oraz nazwy footprintów, które z nich pochodzą.

konw_rys16

Rysunek 18 Schemat z nowymi wpisami, zgodnymi z FPID

Po ponownym zapisaniu pliku z listą sieci będzie można ją już bez przeszkód wczytać w programie Pcbnew.

Obwód drukowany

Aby dokończyć proces konwersji projektu wypada teraz otworzyć projekt obwodu drukowanego w programie Pcbnew, gdyż trzeba w nim również uaktualnić listę sieci, a także zapisać go w nowszym formacie .kicad_pcb.

konw_rys17

Rysunek 19 Lista sieci odczytana na nowo

Odczytanie listy sieci powinno przebiec teraz bez błędów, o czym można się przekonać przeglądając okienko z wiadomościami. Można dla ułatwienia zastosować filtry i włączyć tylko błędy, i ostrzeżenia lub zapisać raport, i przejrzeć go w edytorze tekstu.

Przy końcowym zapisywaniu płytki program automatycznie zmieni nazwę starego pliku .brd na .brd-bak by nie pokazywał się on w drzewie projektu. Ponowne uruchomienie Pcbnew z Menadżera projektu spowoduje otwarcie pliku kicad4416.kicad_pcb.

konw_rys18

Rysunek 20 Obwód drukowany zapisany w nowym formacie

Sytuacje nieprzewidziane

Brak pliku -cache.lib z zapisanymi kopiami symboli

Jeśli w projekcie brakuje tego pliku, to niestety schemat może wymagać przerysowania jeśli obecne symbole w bibliotekach będą różnić się od tych umieszczonych na schemacie. System bibliotek programu Eeschema nie przewiduje, by symbole były zapisywane w pliku schematu, tak jak to robi Pcbnew z footprintami.

Brak pliku .CMP

Brak pliku .cmp można łatwo naprawić odczytując jeszcze nie zmieniony plik .brd w programie Pcbnew. Po otwarciu płytki należy wybrać dowolny footprint i wywołać jego okno właściwości. Tam odszukać polecenie Zamień footprinty i z otwartego okna wywołać polecenie Eksportuj listę .cmp.

Polecenie to na podstawie informacji zaszytych w pliku z płytką odtworzy plik .cmp.

konw_rys19

Rysunek 21 Funkcja zamiany footprintów posiada opcję ponownej generacji plików CMP

Proces eksportu tego pliku i wykorzystanie go do przeprowadzenia numeracji wstecznej warto również uruchamiać zawsze gdy którykolwiek footprint na gotowej już płytce został zmieniony. W ten sposób schemat i obwód drukowany będą zgodne.

Plik z płytką zapisany w formacie .kicad-pcb z polskimi nazwami warstw

Przy próbie odczytania pliku .kicad-pcb zapisanego w poprzedniej wersji może pojawić się problem z polskimi nazwami warstw, które nowsza wersja uzna za błędne.

konw_rys20

Rysunek 22 Narodowe nazwy warstw technicznych nie są już dopuszczalne

W takim przypadku są dwa wyjścia z sytuacji:

  1. Jeżeli posiadamy jeszcze zainstalowaną poprzednią wersję programu to można próbować zapisać taki plik w formacie .brd gdzie nie występują wadliwe nazwy warstw. Następnie usunąć plik .kicad_pcb lub ostatecznie zmienić jego nazwę w folderze projektu by nie był traktowany jako domyślny plik z obwodem drukowanym.
  2. Jeśli nie posiadamy już zainstalowanej starszej wersji to musimy za pomocą zwykłego edytora tekstu dokonać modyfikacji pliku .kicad_pcb by przywrócić domyślne nazwy warstw. Ważne jest by edytor poprawnie obsługiwał kodowanie UTF-8 (bez BOM).

Aby dokonać edycji należy najpierw znać odpowiednie nazwy warstw. Nie musimy znać właściwych nazw warstw sygnałowych (numery od 0 do 15), gdyż program Pcbnew umożliwia ich dowolne nazywanie w menadżerze warstw. Zatem wystarczy znać odpowiedniki nazw pozostałych nazw, które zawiera poniższa tabela.

Polska nazwa Poprawna nazwa (obecnie)
Numer Nazwa Numer Nazwa
16 Kleju_Dolna 32 B.Adhes
17 Kleju_Gorna 33 F.Adhes
18 Pasty_Dolna 34 B.Paste
19 Pasty_Gorna 35 F.Paste
20 Opisowa_Dolna 36 B.SilkS
21 Opisowa_Gorna 37 F.SilkS
22 Maski_Dolna 38 B.Mask
23 Maski_Gorna 39 F.Mask
24 Rysunkowa 40 Dwgs.User
25 Komentarzy 41 Cmts.User
26 ECO1 42 Eco1.User
27 ECO2 43 Eco2.User
28 Krawedziowa 44 Edge.Cuts

Podane numery warstw służą tylko do orientacji na liście warstw – sekcja layers tuż na początku pliku – i nie należy ich zamieniać. Mogą się przydać gdy otrzymamy plik zapisany w programie Pcbnew z wybraną inną wersją językową.

Sama edycja sprowadza się do wyszukania wszystkich wystąpień niepoprawnych nazw i zamianie ich na poprawne nazwy. Przy zamianie należy zwrócić szczególną uwagę na duże i małe litery.

Plik do dokonaniu zmian należy zapisać w formacie UTF-8 (bez BOM). Inaczej próba odczytania poprawionego pliku się nie powiedzie ze wskazaniem na błąd w pierwszej linii pliku.

konw_rys21

Rysunek 23 Należy uważać na opcje formatu UTF-8

Próby edycji pliku systemowym Notatnikiem w systemie Windows skończą się właśnie takim komunikatem. Dlatego warto poszukać w sieci lepszego edytora do tego celu.

Pliki obu projektów użytych w tym artykule są do pobrania jako archiwum ZIP.

Witryna poświęcona aplikacjom KiCad EDA Suite