[DIY] Raspberry Pi (lub inny SBC) schowany w klawiaturze mechanicznej (część 1)

Moje Raspberry Pi Zero W v1.1 dzielnie służyło jako serwer wydruku, udostępniając w domowej sieci drukarkę HP LaserJet M1132. Odkąd zastąpiłem ją drukarką z WiFi, spędziło parę miesięcy w szufladzie. Postanowiłem więc zacząć od jakiegoś prostego DIY typu "prawie AiO" (bez monitora), czyli ukryć taki SBC w klawiaturze mechanicznej - czyli coś a'la mikrokomputery z lat osiemdziesątych - podłączasz zasilanie, ekran i voila.

Chwilę po wykonaniu projektu dowiedziałem się, że coś takiego istnieje już fabrycznie - Raspberry Pi 400. Niestety, na czas tego wpisu dostępność RPi w oficjalnych kanałach dystrybucji znacznie spadła, a ceny na rynku wtórnym poszybowały. Stąd decyzja o wykorzystaniu tego, co już mam. Najprawdopodobniej w Internecie znajduje się już sporo tego typu pomysłów, ale od czegoś trzeba zacząć.

Uwaga: jeśli zdecydujesz się powtórzyć ten eksperyment, robisz to wyłącznie na własną odpowiedzialność. Nie odpowiadam za uszkodzenia mienia i zdrowia.

Potrzebny sprzęt:
  • Raspberry Pi Zero W v1.1 
  • Klawiatura mechaniczna - tutaj Krux Atax RGB Outemu Brown TKL USB
  • Zasilacz 5V / 3A z wtyczką 2,1/5,5mm
  • Tani hub USB 2.0
  • Przewody
  • Lutownica
  • Gniazdo 2,1/5,5 mm
  • Przejściówka miniHDMI na HDMI
  • Super glue i klej na ciepło
  • Taśma izolacyjna

Rozbiórka klawiatury i HUBa USB

Rozebrana klawiatura, z usuniętymi plastikami w podstawie i wyciętymi otworami na porty. Dodane gniazdo DC
Klawiatura jest złożona z trzech części: obudowy górnej, dolnej i PCB z przyciskami. Kabel USB jest podłączony na chyba gniazdo JST, z niestandardowymi kolorami przewodów, nie pasują do typowego opisu USB, a ponadto jest ich pięć. Obok złącza JST są pady, chyba na drugie gniazdo. Są połączone z tym pierwszym i mogłem ich użyć w celu przylutowana klawiatury do HUBa. Usunąłem sporo plastików wzmacniających, wyciąłem miejsce na porty USB, HDMI i DC.

Przylutowane przewody do klawiatury. Od lewej: GND obudowy USB, GND, D+, D-, +5V.

Hub za to wygląda jak typowy tani hub, płytka z układem scalonym i wyprowadzeniami na porty. Jeden z nich został usunięty aby zrobić miejsce dla klawiatury.
Hub z usuniętym portem

Zasilanie i podłączenie USB

Pora na zasilenie komputerka. MicroUSB nie wchodziło w grę, wolałem wystawić via gniazdo DC. Skorzystałem z pinów GPIO (J8) - +5V podajemy na pin 2, masę na pin 6. Z kolei do podłączenia USB wykorzystałem pady do testowania. Ponieważ RPi Zero ma USB OTG, trzeba w jakiś sposób powiedzieć systemowi, aby użył trybu hosta. Można to rozwiązać na dwa sposoby:
  1. Dodać dtoverlay=dwc2,dr_mode=host do pliku /boot/config.txt. To działa, ale niestety po nagłej utracie zasilania można się obudzić z pustym plikiem config.txt co mi się już przydarzyło podczas testów.
  2. Zewrzeć pad USB_ID z GND. To to samo, co podłączenie przejściówki USB OTG. Rozwiązanie bardziej na stałe.
Podłączenia użyte w projekcie. Zdjęcie z angielskiej wersji tego wpisu.
Dolne pady wykorzystane do podłączenia HUBa.


Wyjście wideo i składamy

No i ostatnia rzecz, czyli podłączenie wyjścia obrazu. Jeśli interesuje nas RCA, czyli cinch, można skorzystać z pinów oznaczonych TV. Ja jednak wolę HDMI. RPi Zero posiada miniHDMI, więc wziąłem przejściówkę miniHDMI na HDMI, wyciąłęm zbędny plastik i wkleiłem na ciepło do obudowy. Jednocześnie zapewnia to utrzymanie maliny w miejscu. Wkleiłem także HUB, z przylutowaną klawiaturą, malinka wpięta w przejściówkę, jack DC również wklejony i można testować. OS - Raspbian.
Składamy, kleimy i taśmujemy.


 
Wycięcia w obudowie na wszelkie porty


Uruchomiony FUSE - emulator ZX Spectrum

A teraz problemy, które wynikły

  1. Raspberry Pi Zero W w wersji 1.1 ma małą moc obliczeniową, i jakkolwiek nadaje się do zastosowań mało zasobożernych (jak serwer wydruku), to kompilowanie czegokolwiek z procesorem 1GHz (jednordzeniowym) i 512MB RAM jest tragiczne. Emulationstation ładuje się bardzo wolno, środowisko graficzne (OpenBox) jest mało używalne. Pi Zero W v2 byłoby lepsze, aczkolwiek teraz trudno dostać je w cenie sugerowanej.
  2. Po kilku restartach HUB USB przestał być poprawnie wykrywany przez malinę (klawiatura ta nie świeci, jeśli nie ma komunikacji z komputerem). Rozebrałem wszystko, podłączyłem go do komputera- działa. Klawiatura - działa. Klawiatura podłączona bezpośrednio do maliny via USB OTG - działa, hub także. Podejrzewam albo problemy z zasilaniem albo z hostem USB. Niewykluczone, że coś uszkodziłem
Ciąg dalszy nastąpi - w miejce Pi Zero W zamówiłem Orange Pi Zero 2 (około 30 EUR z wliczonym VAT). Niestety na ten moment kupno RPi 4 pełnowymiarowej w normalnej cenie graniczy z cudem, więc szukam alternatywnych rozwiązań.

 Parametry Orange Pi Zero 2 to Allwiner H616 (4 rdzenie A53), 1GB RAM, ma także port Ethernet (natywny), 3x host USB. Może być nieco za duża, ale trzeba kombinować - może się skończy inną obudową.

Do następnego razu!

Komentarze

Popularne posty z tego bloga

[HowTo] Terminal (thin client) Dell Wyse D10D jako bramka VLAN

Xeon E3-1240v5 na chipsecie B150?

Monitoring z terminala Dell D10D - część I: dokładanie dysku, instalacja Debiana i niemiła niespodzianka