User Tools

Site Tools


cyberdeck

This is an old revision of the document!


Cyber Deck - uConsole

Dzień 1

Zamówienie uConsole zajmuje kilka minut, ale dostarczenie do klienta trwa już od 6 do 12 miesięcy. Podchodziłem więc do tego dość luźno, aż ktoś na Discordzie wspomniał, że jeśli mieszka się w Unii Europejskiej, można zamówić urządzenie w Czechach w sklepie https://rpishop.cz i czeka się tylko kilka dni. Wychodzi to trochę drożej, ale perspektywa czekania roku vs. dopłata ~30 euro i otrzymanie sprzętu w tydzień przeważyła.

Zamówiłem:

  1. rpishop.cz – konsolę bez CM za 174 euro z przesyłką
  2. w lokalnym sklepie w Irlandii CM Lite 4GB – za około 88 euro z przesyłką

Łącznie zapłaciłem około 262 euro za uConsole i akcesoria, a po tygodniu miałem urządzenie w domu :)

W tym samym czasie zamówiłem moduł CM Lite RPi (bez eMMC), więc gdy wszystko dotarło, w ciągu 20–30 minut złożyłem całość i mogłem rozpocząć konfigurację uConsole. Kartę SD z dedykowanym systemem przygotowałem oczywiście wcześniej. Dla pewności użyłem karty microSD o pojemności 64 GB.

Dzień 2

Włożyłem kartę SD z systemem i włączyłem zasilanie. Bootowanie zajęło około 2 minut. Następnie wykonałem kilka podstawowych ustawień — to Debian, więc nie było to dla mnie nic nowego. Zaktualizowałem cały system i zainstalowałem ponownie narzędzia, których używam na co dzień.

Pierwszym problemem, jaki zauważyłem, był bardzo słaby sygnał Wi-Fi — do tego stopnia, że musiałem położyć konsolę blisko routera. Gdzieś na forum wyczytałem, że ludzie kupują składaną antenkę Wi-Fi i problem znika. Znalazłem model STL, wydrukowałem część i zamówiłem składaną antenę z kabelkiem.

Zauważyłem też, że trackball nie działa prawidłowo. Jakoś się do tego przyzwyczaiłem, ale będę musiał coś z tym zrobić. Czytałem, że istnieje na to jakieś rozwiązanie :)

Zestaw części to uplepszenia zasięgu Wifi

Dzień 3

Przeglądając forum w poszukiwaniu pomysłów na to, do czego można wykorzystać tę maszynę, natrafiłem na informacje, że ludzie używają jej z modułem ADS-B do śledzenia samolotów. Znalazłem jakiś stary moduł USB, którego kiedyś używałem z RPi 1. Skompilowałem TAR1090, podłączyłem dongla i uruchomiłem aplikację. W efekcie mogłem śledzić samoloty w mojej okolicy.

Następnie zainstalowałem Pygpsclient i podłączyłem tani moduł GPS/GLONASS. Wybrałem się na krótką przejażdżkę samochodem i po około 10 minutach złapałem fixa :)

Dzień 4

Po internetowych poszukiwaniach postanowiłem zamówić moduł AIOv2, który ma na pokładzie GPS, LoRa, ADS-B, CB radio oraz ITP. Czas oczekiwania to około miesiąca do wysyłki plus sam okres dostawy, więc się nie spieszę i na spokojnie sprawdzam, co jeszcze można wycisnąć z tej maszynki.

Dzień 5

Dziś przyszły pierwsze części do ulepszenia sygnału Wi-Fi. Od razu sprawdziłem długość kabelków i coś mi się nie zgadzało. Zapytałem na forum, czy przypadkiem nie podłączyłem kabla Wi-Fi w niewłaściwe miejsce na płytce. Okazało się, że mogę podłączyć kabel bezpośrednio do CM4, dzięki czemu udało się zwiększyć zasięg Wi-Fi. To naprawdę usprawniło korzystanie z uConsole.

Tutaj, zastąpilem 'stockowa' wifi antenke na taką z lepszym zasięgiem

Kolejnym „upgrade’em” było wydrukowanie osłony na LCD. Sam wydruk poszedł szybko — jedyne, co musiałem zrobić, to znaleźć nowe śrubki, skrócić je i je zamontować.

Jeden z pierwszych upgrade'ow - wydrukowałem osłonkę na ekran

Prawdziwy cyberdeck musi mieć walizkę - własnie ją mam :-)

Dzień 6

Sprawdzam teraz, czy dam radę zainstalować wszystkie programy potrzebne do AIOv2 na stockowej dystrybucji Raspberry Pi, czy jednak powinienem użyć jakiejś customowej wersji. Wolałbym zostać przy oficjalnym systemie, ale jest on dość stary i nie wszystkie pakiety są dostępne. No cóż — trzeba jeszcze trochę poczytać.

Czekam na moduł Nooelec RTL-SDR v5 USB bundle — ma przyjść jutro, więc dziś instaluję aplikacje, które będę mógł jutro przetestować.

Zainstalowałem dziś klienta DINO (XMPP), ale zauważyłem, że nie ma powiadomień. Trochę z tym powalczyłem i udało mi się je częściowo uruchomić, ale tylko poprzez wysyłanie komend — w samym DINO nadal nie widzę żadnych powiadomień.

Dzień 7

Dziś przyszedł dongle Nooelec RTL-SDR v5 USB bundle - poniżej tłumaczenie ze strony producenta:

NESDR SMArt RTL-SDR v5 może być używany do odbioru radia AM, radia FM, radia krótkofalowego, radia CB, łączności służb publicznych, systemów radiowych trunkingowych, kontroli ruchu lotniczego, ACARS (komunikacja samolot–ziemia), ADS-B (śledzenie samolotów), AIS (śledzenie statków), POCSAG (pagery), satelitów pogodowych NOAA i GOES (obrazy pogodowe), balonów meteorologicznych, radiosond, radia DAB, wideo DVB-T, Inmarsat, Iridium oraz wielu innych! 

Pierwsze, co zrobiłem, to zainstalowałem SDR i zacząłem nasłuchiwać różnych częstotliwości. Najlepiej wychodziło znajdowanie stacji FM, ale miałem antenę w domu, więc muszę spróbować, jak będzie cieplej, i wyjść z konsolką na zewnątrz.

Dzień 8

Ta maszynka wymaga skalibrowania, aby poziom naładowania baterii był poprawnie raportowany.

Proces kalibracji wygląda następująco:

  1. Naładuj konsolkę do 100%.
  2. W terminalu wykonaj polecenie:
echo 1 | sudo tee /sys/class/power_supply/axp20x-battery/calibrate
  1. Pozwól baterii całkowicie się rozładować.
  2. Naładuj ponownie do 100%.

W razie potrzeby powtórz proces.

Dodatkowo napisałem skrypt, który monitoruje stan baterii i zamyka system, gdy poziom spadnie poniżej 30%. Skrypt został dodany do crontaba, aby uruchamiał się co 5 minut.

#!/bin/bash

BAT="/sys/class/power_supply/axp20x-battery"
THRESHOLD=30

LEVEL=$(cat "$BAT/capacity")
STATUS=$(cat "$BAT/status")

echo "Battery level: $LEVEL%"
echo "Battery status: $STATUS"

if [ "$LEVEL" -le "$THRESHOLD" ] && [ "$STATUS" != "Charging" ]; then
    logger "Battery ${LEVEL}% — shutting down"
    sudo shutdown -h +1
else
    logger "Battery ${LEVEL}% — OK (status: $STATUS)"
fi

Dzień 9

encrypt home directory

sudo apt install fscrypt
sudo fscrypt setup
Replace "/etc/fscrypt.conf"? [y/N] y
Defaulting to policy_version 2 because kernel supports it.
Customizing passphrase hashing difficulty for this system...
Created global config file at "/etc/fscrypt.conf".
Allow users other than root to create fscrypt metadata on the root filesystem? (See
https://github.com/google/fscrypt#setting-up-fscrypt-on-a-filesystem) [y/N] n
Metadata directories created at "/.fscrypt", writable by root only.
karcio@clockworkpi:~ $ 

sudo fscrypt encrypt /home/karcio

sudo mkdir "/home/karcio.new"
sudo fscrypt encrypt "/home/karcio.new"
The following protector sources are available:
1 - Your login passphrase (pam_passphrase)
2 - A custom passphrase (custom_passphrase)
3 - A raw 256-bit key (raw_key)
Enter the source number for the new protector [2 - custom_passphrase]: 2
Enter a name for the new protector: home
Enter custom passphrase for protector "home": 
Confirm passphrase: 
"/home/karcio.new" is now encrypted, unlocked, and ready for use.

sudo cp -a -T "/home/karcio" "/home/karcio.new"
find "/home/karcio" -type f -print0 | xargs -0 shred -n1 --remove=unlink
rm -rf "/home/karcio"
mv "/home/karcio.new" "/home/karcio"
sudo chown karcio:karcio -R /home/karcio
cyberdeck.1775075283.txt.gz · Last modified: by karcio