Kapesní hotspot







Před necelým rokem jsem publikoval článek o HotSpot - tak trochu jinak a musím přiznat, že jsem nečekal takový ohlas. Někteří zahraniční čtenáři dokonce neváhali "prohnat" článek překladačem. Od doby publikování článku jsem zjistil, že popsaná sestave s Bluestackem je pro mne nepraktická a to především kvůli svým omezením ze strany obslužné aplikace - nemožnost vypnout display, velice náchylné na běh jiných aplikací na pozadí a jejich procesorového času. Výsledkem byl trhaný přenos s množstvím výpadků. Sestava fungovala bezchybně pouze v případě, že jssem použil naprosto čistý, rozuměj prázdný, telefon či tablet a krom operačního systému tam běžela jen BlueDV aplikace. Jenže to znamenalo mít dedikované jedno zařízení pro hotspot a to není komfortní situace - je to "další krám", který s sebou musí člověk tahat na dovolenou. Bezproblémového chování šlo dosáhnout použitím jiného počítače, takže nakonec to stejně sklouzlo k osvědčené kombinaci DVmega + RasPI.

Tak vlastně vznikl "Mobilní hospod", což je samostatné nařízení skvěle plnící svůj účel. Při jeho návrhu byla jedním z kritérií výdrž na baterie a proto byl kladen důraz na dostatečnou bateriovou kapacitu, se kterou vydrží hospod fungovat 15-27 hodin dle okolností. To je samozřejmě fajn a mnohokráte jsem tuto výdrž ocenil. Na hospod jsem využil brašnu pro střední objektiv zrcadlovky, kde se krásně vejde i s wifi donglem, modemem a anténkou. Pěkné, přenosné, ale již monohokrát mi to celé přišlo stéle velké a místy i docela neohrabané. Rodina na vás kouká s podezřením, když ve spěchu při odjezdu na víkend ještě něco prapodivného kutíte na zadním sedadle rodiného vozu a je tam "zase jakási krabička", kterou nenápadně sledujete ve zpětném zrcátku po každém průjezdu ostřejší zatáčkou.

Jelikož jsem od postavení "Mobilního hospodu" původní bluetooth hotspot nepoužil a on tak smutně ležel nevyužit, rozhodl jsem se jej reinkarnovat právě na co nejmenší hotspot, ideálně kapesní. Tento nápad uzrál, když mi dorazilo Raspberry pi zero W a já pro něj hledal nejoptimálnější uplatnění. V ten moment jsem si umínil pokusit se vměstnat celý hotspot do původní krabičky, kde byl BlueSpot společně s DVmegou. Vytýčil jsem si tedy vlastnosti pro nový kapesní hotspot:
Prvotní rozmístění modulu uvnitř krabičky ukázalo, že cíl je realizovatelný, ale že půjde o desetiny milimentru. Koncept rozvržení modulů jsem změnil nesčetněkrát, až jsem se pro jeden z nich rozhodl a začal rozmístění rozměřovat a zkoušet. Čelil jsem několika málo nástrahám, ale podařilo se mi je překonat a pomalu usazovat jeden modul za druhým. Nejdřive jsem vyřízl okénko pro display a vlepil do něj "sklíčko". Pak jsem přilepil matičky 2.5 mm (vždy dvě na sebe - to je optimální výška). Matičky jsem nejdříve našrouboval na šroub, jehož tělo bylo o malinko kratší než součet louštěk RasPI desky a matiček. Prostě jsem do otvorů v RasPI modulu strčil šroub a ze spodu našrouboval obě matičky. Pak jsem na spodní z nich opatrně nanesl malé množství sekundového lepidla a usadil celý modul na své místo. Počkal jsem, až lepidlo zaschne a opatrně jsem šrouby vyšrouboval a modul odstranil. Pak jsem šroub i s jednou matkou opět zašroubil do přilepené matičky (aby navazovaly závity) a nanesl epoxyd. U dvou takto vytvořených úchytů jsem musel část epoydu odbrousit, aby nezavazel HDMI a USB konektoru modulu. Tím bylo zajištěno, že Raspberry modul bude spolehlivě připevněn ke krabičce a zárověň bude, v případě potřeby, vyměnitelný. Baterii jsem vybíral podle rozměru a nakonec jsem zvolil Sanyo 1 800 mAh z Avacomu. Baterie je přilepena oboustrannou lepící páskou.

Z hlediska napájení jsem zvolil dva moduly. Jeden modul slouží jako nabíjecí a obsahuje též ochrannou elektroninku pro akumulátor. Druhý modul byl původně určen jako powerbanka a zvládal tedy jak nabíjení baterie, tak i poskytnutí 5V z baterie. K nabíjení tam byl mikro usb konektor, ale já jej odstranil, přestože by použití jednoho modulu bylo jednodušší a prostorově úspornější, tak při připojení usb nabíječe došlo k přerušení výstupního napětí a hotspot by tak nemohl být provozován s připojeným nabíječem. Proto jsem z tohoto modulu odstranil mikro usb konektor (aby nepřekážel) a modul použil jen jako napájecí. Proto jsem nakonec zvolil sestavu tak, jak jsem nastínil - nabíjecí modul, baterie, napájecí modul. Baterie spolehlivě "ukrmí" hotspot po dobu 6 hodin (při použití WiFi). Ve skutečnosti je to něco kolem 6,5 hodiny, což více než bohatě převyšuje vytýčenou hodinu.

Ostatní moduly jsem již lepil dle možností. Stačilo už jen vyříznout potřebné otvory na konektory a vypínač. Vše jsem zalepil, pospojoval a vyzkoušel. Ukázalo se, že bude potřeba ještě drobného nastavení na straně Raspbianu, neboť seriový port (UART) na Raspberry PI zero W má stejnou "vlastnost" jako u Raspberry PI 3 - tedy že je použit na jinou periférii a nelze tak komunikovat s DVmegou. Stačí ale udělat dvě úpravy v konfiguračním souboru a po rebootu je již sériový port plně dostupný.

sudo systemctl disable bluetooth.service
Přidat na dva řádky na konec souboru /boot/config.txt:
enable_uart=1
dtoverlay=pi3-disable-bt
sudo reboot

Po rebootu je sériový port dostupný jako /dev/ttyAMA0

Co se týče konektivity a možnosti připojení hotspotu k masteru, tak Raspberry PI zero W má integrovanou WiFi s podporou standardů 802.11 B/G. Jako další možnost je použití externího USB zařízení, ať už je to opět WiFi nebo LTE modem. K tomu se krásně hodí USB port na napájecím modulu. Stačí jen "nadrátovat" datové vodiče z Raspberry na USB-A konektor na napájecím modulu a můžeme vesele připojit cokoli až do spotřeby cca 400 mA - napájecí modul zvládne dodat maximálně 600 mA a samotne Raspberry zbaští cca 200 mA.

Popisovat tu znovu celé zprovoznění mi přijde zbytečné, protože vše již bylo popsáno a nemá smysl se opakovat. Časová náročnost se dá odhadnout na cca 10 hodin čisté práce. Nutno přiznat, že návrh rozmístění modulů a mechanické úpravy zabraly nejvíce času, protože místa uvnitř je skutečně málo a každý krok si člověk musí dobře rozmyslet a v lepším případě i na nečisto odzkoušet. Každopádně na konci čeká spoustu radosti a to nejenom proto, že si to člověk ubastlil sám, ale i že to funguje :-)

Update - Postřehy z provozu (15.11.2017):
Prostě to funguje. Samozřejmě to má své mouchy. Není to sice nic vážného, jen chyby na kráse, ale přeci jen tam jsou. O co jde. Po "aktivaci" UARTu se vlastně stane to, že na GPIO piny se namapuje softwarový UART, což sice funguje, ale má to pomalý nájezd. Je pěkně vidět, když je hotspot v IDLE režímu, začnu vysílat na kmitočtu hotspotu - hotspot zareaguje asi az po vteřině nebo necelých dvou. Na displayi je to pěkně vidět. Když je už ale hotspot "probuzený", tak funguje okamžitě. Toto chování nemá vliv na funkci jako takovou, ale na to, že krátké pakety jednoduše neprojdou, jelikož nejsou dostatečně dlouhé na to, aby hotspot probudily z IDLE režimu. Krátkými pakety mám na mysli GPS, SMS, Radio Check, atd...

Update - HW reorganizace (5.12.2017):
HotSpot fungoval dobře, ale jak jsem psal o odstavec výše, tak SW UART měl své limity. Rozhodl jsem se proto použít Raspberry Zero (bez WiFi), neboť to má ještě klasický HardWarový UART. Sliboval jsem si 100% zachycení všech (především krátkých) packetů. Musel jsem ale osadit externí WiFi, abych měl konektivitu. Takže jsem koupil nějaký Edimax nano, vykuchal plošňák z "USB konektoru" a připojil ho na USB port Zera. Dle očekávání vše najelo. Tím byl ovšem jediný USB port obsazen, tak jsem objednal NanoHUB a použil jej pro získání dvou USB portů. Na jeden jsem zapojil WiFi a na druhý externí USB port. Tady je třeba podotknout, že přímé připájení na kontakty USB konektoru z napájecího modulu se ukázalo jako nevhodné neboť kontakty jsou na plošňáku spojeny a port tak nefungoval. Musel jsem kontakty nad plošným spojem přerušit a signálové vodiče napájet tam. Pak již bylo vše hotovo a mohl jsem přistoupit k testování.

Výsledek je lepší, ale stále to není ono. Přemýšlel jsem, zda nemuže být na vyně výpočení výkon Zera, ale podrobuji to ještě dále zkoumání.



Původní hotspot s BlueSpotem


Vlepení sklíčka displaye


Přilepení displaye


Zalité matičky ve funkci distačních sloupků


Přišroubené Raspberry PI jen necelý milimetr nad displayem


Osazení nabíjecího a napájecího modulu


Kompletně osazený hotspot s propojkami


První test funkčnosti


Test externího WiFi USB donglu


WiFi dongle po nainstalování


Doosazen USB HUB


USB hub zapojen na WiFi a externi USB port


Hotový komplet


Porovnání velikosti
7.11.2017