Recenze: Raspberry Pi 3

29.2.2016 – Přesně čtyři roky po vydání populárního Raspberry Pi B přichází nadace Raspberry Pi s novou generací svého minipočítače. Raspberry Pi 3 staví na zbrusu novém SoC a přináší tak navýšení výkonu a také příchod 64bitové architektury. Nadace také vyslyšela časté žádosti komunity o přidání bezdrátové konektivity a počítač byl nově obohacen o Bluetooth 4.1 Low Energy a WiFi 802.11 b/g/n. To vše při zachování ceny, původních rozměrů desky, původního umístění konektorů (identického s RPi 2 či RPi B+) a zachování softwarové kompatibility.

Balení

Raspberry Pi 3 model B package
Raspberry Pi 3 model B – balení a jeho obsah

Raspberry Pi 3 dostanete v úhledné kartonové krabičce. Stejně jako v případě Raspberry Pi 2, potisk krabičky se liší podle konkrétního výrobce. Balení obsahuje pouze stručný manuál s bezpečnostními informacemi a samotné Raspberry Pi 3 v antistatickém obalu.

Hardware

Jak už je u minipočítačů Raspberry zvykem, základem desky je SoC (system on chip) společnosti Broadcom. V případě Raspberry Pi 3 jde o čip BCM2837 – jde tedy o třetí iterace tohoto SoC (BCM2835-RPi1, BCM2836-RPi2, BCM2837-RPi3). Čip v sobě ukrývá čtveřici jader Cortex-A53 standardně taktovaných na 1,2GHz. Jádro Cortex-A53 je postaveno na architektuře ARMv8 (předchozí generace RPi využívaly ARMv6, později ARMv7) a kromě obligátního rozšíření Thumb2 či VFPv2 zahrnuje procesor také SIMD engine NEON. GPU zůstalo stejné jako v předchozích modelech, o akceleraci grafiky se tak stále stará VideoCore IV, nově ovšem taktovaný na 300MHz (původně 250MHz). Podpora GPU technologií (OpenGL ES 2.0 či hardwarová akcelerace komprese/dekomprese H.264 1080p30) zůstává na stejné úrovni. Vstupy a výstupy, stejně jako celý layout desky zůstaly maximálně kompatibilní s předchozím Raspberry Pi 2. Video výstup zajišťuje HDMI verze 1.3a (podpora přenosu zvuku přes HDMI) a také analogový kompozitní výstup (NTSC/PAL). Dalším analogovým výstupem je stereo audio výstup. Kompozitní video výstup i audio výstup, stejně jako u předešlých modelů, sdílí stejný konektor – 4polový jack. Ze SoC BCM2837 jsou dále pomocí diferenciálních spojů vyvedeny sběrnice pro kamerové rozhraní MIPI CSI a displayové rozhraní DSI. GPIO header disponuje 40 piny a je opět umístěním i zapojením kompatibilní s Raspberry Pi 2 i Raspberry Pi B+. Stále je zde I2C, SPI, I2S a UART (defaultně použitý pro Linux terminál) a vyhrazená I2C sběrnice pro komunikaci s kompatibilními rozšiřujícími moduly (tzv. HATy). Prostřednictvím této I2C je možné také přímo z HATu stáhnou a aplikovat ovladač (resp. Device tree overlay). GPIO piny stále využívají 3.3V TTL logické úrovně a nejsou 5V tolerantní. RAM čip je typu LPDDR2 a je osazen na spodní straně desky (již tedy není sendvičově posazený na SoC).

O napájení desky se stále stará integrovaný dvojitý spínaný stabilizátor PAM2306AYPKE (poskytující 1.8V a 3.3V). Napájení jádra SoC je nově zajišťováno spínaným měnič RT8088AWSC. Ten nahradil původní NCP6343, který díky waffer-level designu způsoboval na předchozím Raspberry Pi 2 restarty při vystavení desky prudkému světelnému záblesku (Raspberry camera-shy problém).

USB hub a řadič 100Mbit ethernetu je stejně jako v Raspberry Pi B+ řešen obvodem LAN9514. Obvod je spojen se SoC BCM2837 opět pomocí USB. Zůstává zde tak úzké hrdlo (jednou USB linkou prochází komunikace čtveřice stejně rychlých USB + ethernetu).

SoC Broadcom BCM2837
CPU čtyřjádrový Cortex-A53 na 1,2GHz
Architektura ARMv8 (64-bit)
RAM 1GB LPDDR2 (900 MHz)
GPU VideoCore IV
Úložiště microSD karta
I/Os RJ45 pro 10/100 ethernet, 2.4GHz 802.11n wifi, Bluetooth 4.1 Classic, Bluetooth Low Energy, HDMI (full size), MIPI-CSI pro kameru, DSI konektor pro display, 1x napájecí microUSB, 4x USB2.0 host, 40pin GPIO header, 3.5 4-pólový jack pro audio výstup a analog. video výstup
Napájení 5V/2,4A
Rozměry 56×85mm

Spotřeba

Měření spotřeby bez připojených USB periferií. Použitý OS je Raspbian Wheezy nastartovaný do konzole.

vypnutá deska 0.325W (65mA)
systém v klidu (LAN odpojený) 1W (213mA)
systém v klidu (LAN připojený) 1.3W (260mA)
CPU všechna jádrana 100% (LAN připojený) 1.95W (390mA)

Software

Raspberry Pi 3 vyžaduje operační systém schopný běžet na architektuře ARMv8. Díky zpětné kompatibilitě ARMv6 a ARMv7 lze ovšem stále použít původní Raspbian kompilovaný pro ARMv6. Raspbian mimo jiné zahrnuje proprietární ovladače pro GPU VideoCore, mnoho device tree overlayů pro ovládání různých periferií desky či utility pro snadnou konfiguraci RPi. Součástí systému je také desktopové grafické prostředí LXDE. Vše nicméně v současnosti kompilované a adaptovaná původnímu procesoru (založenému na ARMv6 s rozšířením Thumb a VFPv2). Raspbian používá svůj vlastní repozitář instalačních balíčků, aby byla zajištěna kompatibilita s vlastním buildem systému. Na Raspberry Pi 2 lze ovšem využít i repozitář klasického Debianu armhf, odkud lze čerpat novější balíčky či aplikace kompilované nativně pro ARMv7.

Pro vývoj softwaru lze vybírat z klasické škály jazyků dostupných na Linuxu. Za výchozí jazyk pro RPi je někdy považován Python (jeho podpora a IDE je předinstalované, syntaxe je jednoduchá), nicméně není problém vyvíjet nativně v C/C++. Např. populární IDE Code::Blocks (je v oficiálním repozitáři) funguje na RPi poměrně svižně. Samozřejmě lze využít přímo gcc resp. g++ a pracovat pouze prostřednictvím terminálu. Raspberry Pi 2 již poskytuje dostatek výkonu a paměti pro kompilaci větších projektů. K desce jsou díky široké podpoře komunity dostupné knihovny pro práci s GPIO porty (např. Pigpio, WiringPi či RPi.GPIO). K dispozici je mnoho “driverů” (overlayů či kernel modulů) pro různé externí obvody. Velmi snadné je také využití sběrnic (I2C, I2S, SPI, UART).

Existuje mnoho dalších dostupných alternativních operačních systémů, resp. jejich portů jako např. Ubuntu mate, OSMC, OpenELEC, OpenWrt. Různé systémy často slouží nějakému specifickému účelu a směřují RPi do embedded nasazení. Nově je pro Raspberry Pi 2 ovšem dostupný také Windows 10 IoT Core.

Windows 10 IoT Core

Pro příznivce Microsoftu a jazyka C# je nepochybně dobrou zprávou, že Windows 10 IoT Core bude dostupný ve verzi pro Raspberry Pi 2. Pro čtenáře, kteří o Windows 10 IoT slyší poprvé ve stručnosti připomenu, že jde o edici Windows 10 určenou o malá zařízení ze světa IoT (internet of things). Systém neosahuje žádné grafické uživatelské rozhraní (kromě obrazovky se základní konfigurací) a samozřejmě nepodporuje x86 aplikace ze světa desktopových Windows. Windows 10 IoT umožnuje teoreticky spouštět univerzální Windows aplikace (UWP). Ovšem bez problémů budou fungovat v zásadě pouze ty, které s nasazením na RPi už při vývoji počítaly. Je také potřeba počítat s tím, že grafický kabát univerzálních Windows aplikací je často pevně svázán s DirectX, který na GPU RPi nemá přímou podporu. Mnoho aplikací tak bude pracovat bez hardwarové akcelerace grafiky a mnoho úloh využívajících specifické funkce GPU nebude pracovat vůbec (hardwarové kódování/dekódování videa, MIPI-CSI kamera). Je také potřeba počítat s tím, že systém se stále vyvíjí a mnoho harwarových komponent RPi tak zatím nemusí mít dostupné drivery.

Co pod Windows IoT Core v současné době nefunguje:

  • audio výstup
  • kompozitní video výstup
  • I2S sběrnice
  • hardwarové PWM
  • hardwarová akcelerace grafiky
  • Raspberry Camera (MIPI-CSI)
  • sériová linka UART

“Out of box” také nefunguje většina rozšiřujících shieldů a HATů, USB Wifi klíčenek, 3G donglů, bluetooth donglů atd. Občas pomůže s něčím pomůže nějaký komunitní hack, ale kolem proprietárního Win IoT je logicky komunita řidší než okolo Raspbianu.

Oficiální list kompatibilních zařízení:
https://ms-iot.github.io/content/en-US/win10/SupportedInterfaces.htm

K vývoji pro Windows IoT potřebuje PC s nainstalovaným Windows 10 a Visual Studiem 2015. Nastavení Windows IoT lze provádět pomocí webového rozhraní či pokročileji prostřednictvím PowerShellu. Vývoj a debugování se provádí vzdáleně prostřednictví ethernetového spojení. Vše je možné obsluhovat velmi pohodlně z desptopového prostředí. K vývoji lze použít C++ ale za preferovaný je samozřejmě považový přívětivější C#. Snadno lze vytvořit např. webový server, či TCP server ovládající GPIO piny. Ke všemu jsou dostupné přehledné příklady. Windows IoT Core je tedy poměrně vhodný pro účely výuky.
MS přednedávnem uvolnil Windows IoT Core i ke komerčnímu použití (prostřednictvím tzv. komercializačního procesu, viz https://blogs.microsoft.com…). Drobný háček je že Windows IoT Core budou mít povinné automatické aktualizace, které při instalaci mohou vaše zařízení spontálně restartovat či na okamžit pozastavit. Software takového zařízení se již tedy nechová deterministicky a je pro ostré embedded nasazení obtížně použitelný. Pokud chcete problém vyřešit je třeba sáhnout po Windows IoT Core Pro, ten už ovšem pravděpodobně zdarma nebude. Microsoft tak navazuje na svou politiku (známou již z desktop Win10), kdy si za plnou kontrolu nad svým zařízením musíte připlaťit.

Benchmarks

pracuju na tom… :)

Závěr

Raspberry Pi 3 představuje nejvýkonnější dostupné Raspberry Pi. Je maximálně kompatibilní s předchozím Raspberry Pi B+ (včetně tvaru DPS a umístění montážních otvorů). Zachována je i softwarová kompatibilita, přechod z předchozích generací tak nemůže být snazší. Za cenu 35$ jde o ideální volbu i z pohledu poměru výkon/cena.

Be the first to comment

Leave a Reply