Od razu uprzedzam, że ciekawy, ale paskudnie spartaczony.
Nawet te wersje, które można ściągnąć ze zlinkowanej strony nie są najnowsze, zawierają błędy, i pierwszą czynnością powinno być uaktualnienie (File->Check for updates), taki tam burdel...
Najpierw próbowałem uruchomić wersję dla Linuksa, na dzień dobry zaczęły się schody...
Program korzysta z python2, który jest przestarzały i od dwóch lat niewspierany. Niektóre dystrybucje Linuksa pozwalają na równoczesne zainstalowanie python2 i python3, ale efekty są trudne do przewidzenia, bo obie wersje gryzą się ze sobą i nigdy nie wiadomo które pliki się uruchomią...
Tak więc na Xubuntu 22.04 nawet nie próbowałem, ale mam na maszynie wirtualnej Xubuntu 18.04, w którym python2 jest standardem.
Niestety du** blada...
Błąd z kategorii debilnych ale powszechnych, czyli zmajstrowanie kretyńskich zależności...
Otóż program kompilowany na określonej dystrybucji potrafi być zależny od biblioteki glibc w ściśle określonej wersji, z czym właśnie tutaj mamy do czynienia.
Oczywiście można podłożyć glibc z innej dystrybucji, ale to pomysł wyjątkowo głupi, bo na pewno coś innego działać przestanie...
Tak więc 18.04 odpada...
Ale zanim w ogóle do tego doszedłem, to byłem święcie przekonany, że program się wiesza i postanowiłem zainstalować wersję na Windows.
Windows 11, instalacja bez problemów, ale przy próbie wgrania na płytkę Arduino Uno program stanął dęba jak pod Linuksem.
Komunikat błędu z kategorii debilnych i mylących, że czegoś tam się nie da usunąć bo inny program tego używa...
Wyjaśnienie znalazłem zupełnym fuksem i nigdy bym się tego nie domyślił...
Otóż, po poleceniu wgrania do ściśle określonej płytki, program ściąga wszelki możliwe kompilatory i inne śmiecie, także do tych płytek, których nigdy na oczy nie widzieliśmy i nigdy nie użyjemy...
W sumie jest to dobrze ponad gigabajt kodu, co przy dobrych wiatrach może trwać godzinę...
Żeby było weselej, zamknięcie programu nie powoduje zabicia procesów potomnych, które nadal ściągają pliki w tle.
W tej sytuacji, po ponownym uruchomieniu programu nie da się nic zrobić, bo faktycznie "inne programy" korzystają z tych samych plików które należy ściągnąć...
Czyli, po zainstalowaniu programu robimy jego update, po czym uruchamiamy wgrywanie na płytkę i cierpliwie czekamy aż skończy...
Po ściągnięciu wspomnianego gigabajta program rozpakowuje i instaluje pliki do folderu arduino15, co by wskazywało, że najpierw należy zainstalować ArduinoIDE, po czym zajęte jest prawie siedem gigabajtów na dysku, co trzeba mieć na uwadze przed instalacją...
Jak wspomniałem totalny debilizm.
Po tym program działa jak można się spodziewać...
Wróćmy do Linuksa.
Po doświadczeniach z instalacją na Windows wiedziałem już wszystko co powinienem.
Wybór padł na Xubuntu 19.10, czyli ostatnią dystrybucję z python2 w standardzie.
Tu się zaczęły poważniejsze schody, bo opiekunów Ubuntu po prostu posrało...
Wszystkie starsze wersje oprócz LTS zostały usunięte z serwerów, zarówno pliki instalacyjne iso, jak i repozytoria...
Czyli Xubuntu 19.10 najpierw nie zainstalujemy, bo nie mamy z czego, a potem nie będziemy mogli używać, bo repozytoria zostały usunięte z serwerów Canonical...
Na pierwsze receptą jest szukać. Ja akurat znalazłem plik iso w swoich backupach, ale gdzieś w internecie istnieją jakieś kopie...
Na drugie, też trzeba szukać, ja znalazłem http://old-releases.ubuntu.com/ubuntu/.
Po prostu w pliku /etc/apt/sources.list należy podmienić adresy repozytoriów, po czym apt zacznie normalnie działać.
Po zainstalowaniu ArduinoIDE oraz OpenPLC wszystko zacznie działać jak pod Windows.
Nie wiem czy da się zainstalować na Xubuntu 20.04 i nie mam ochoty sprawdzać.
Wygląda to tak:

Xubuntu 19.10 jest uruchomiony na maszynie wirtualnej (quemu/kvm).
Okno w lewym dolnym rogu jest oknem gospodarza (Maszyna wirtualna -> Przekierowanie urządzenia USB) i umożliwia dostęp do urządzeń USB gospodarza z poziomu systemu operacyjnego gościa.
Reszta widocznych okien należy do systemu gościa.
W OpenPLC Editor jest otwarty plik Blink z przykładów.
Ten plik skompiluje się i wgra do Arduino Uno, ale LED migać nie będzie, bo plik przykładu ma charakter uniwersalny i nie ma przypisanych fizycznych pinów do sygnałów. W przypadku Uno trzeba do odpowiedniej kratki "Location" wpisać "%QX0.3", co akurat odpowiada pinowi 13 Arduino.
Opis dla różnych płytek jest tutaj: https://openplcproject.com/docs/2-4-phy ... ddressing/
Jak widać lista obsługiwanego sprzętu jest dość długa...
I na razie to by było na tyle.