SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

Na temat specyfikacji technicznej o Raspberry Pi 2 w sieci można znaleźć wiele informacji, dlatego nie będę bezsensownie powielał tych informacji. Bardziej zależy mi na ponownym porównaniu nowej maliny z jej poprzednią wersją oraz bezpośrednim konkurentem jakim jest ODROID C1. Dzięki uprzejmości sklepu elty.pl mam dziś taką możliwość.

Odnoszę nieodparte wrażenie, że Raspberry Pi 2 z jednej strony pojawił się zbyt późno, a z drugiej zbyt wcześnie. Nie da się ukryć faktu, że specyfikacja RPi 2 nie zachwyca niczym szczególnym w dzisiejszych czasach - owszem mogła wywołać ona pożądany efekt, ale rok temu.

Osobiście więc uważam, że model Raspberry Pi 2 został wepchnięty na rynek na siłę, jako reakcja na zaprezentowany przez Hardkernel komputerek ODROID C1.

Oczywiście zdaję sobie sprawę, że za Raspberry Pi 2 przemawia silna i prężna społeczność, bez której nawet największy gigant ma gliniane nogi. Mam jednak to szczęście, że z maliną pożegnałem się, gdy rozpocząłem swoją przygodę z modelem ODROID-X2.

W tamtych czasach społeczność ODROID-a dopiero się budowała, dlatego marka nie była zbyt popularna w Polsce. Dziś jest zupełnie inaczej, bowiem nazwa ODROID jest bardzo dobrze rozpoznawana, a społeczność coraz większa i silniejsza. Nie przesadzę jeśli stwierdzę, że jest to druga społeczność pod względem wielkości, zaraz po "malinowcach", gdzie nie ma już problemu z uzyskaniem odpowiedzi na trapiące nas problemy.

Nie chcę wywoływać zbędnego hejtu i jestem bardzo od tego daleki, ale będąc użytkownikiem maliny, czułbym się najzwyczajniej zawiedziony nowym wydaniem, a całą sytuację opisałbym zapytaniem "jak to? to już wszystko?".

Fundacja Raspberry Pi mogła sobie jednak na to pozwolić i delikatnie odświeżyć specyfikację, ponieważ przyzwyczajenie użytkowników jest bardzo silne - a to kwestia łatwego przeniesienia obecnego oprogramowania, a to istniejąca już społeczność i szereg rozwiązań. Niestety dalej uważam, że została wybrana droga przez łatwiznę, dlatego też ponownie wybieram w tym przedziale budżetowym ODROID-a C1.

Poniżej wyniki w starciu z ODROID-C1 oraz poprzednią generacją maliny, natomiast tutaj znajdziecie zestawienie wszystkich testowanych na łamach mojego Bloga mini-komputerków.

Reklama

Raspberry Pi Foundation przedstawiła "dopakowaną" wersję Raspberry Pi 2, będącą następcą modelu Raspberry Pi B+. Nowa płytka została wyposażona w czterordzeniowy procesor ARMv7 Cortex-A7 Broadcom BCM2836 900MHz (ARMv7 Cortex-A7) oraz 1GB pamięci RAM, co pozwoli uzyskać sześciokrotną przewagę nad B+.

Jednostka BCM2836 jest bardzo podobna do swojego poprzednika BCM2835, dlatego też stare oprogramowanie nie będzie wymagało praktycznie żadnych modyfikacji, aby działało prawidłowo na Raspberry Pi 2. Biorąc jednak pod uwagę, że BCM2836 obsługuje instrukcje NEON, rekompilacja będzie wskazana. Według testów SunSpider wydajność pojedynczego rdzenia jest trzykrotnie większa od poprzedniego modelu. Produkcja modelu RaspberryPi B+ będzie dalej kontynuowana, ale szacuje się, że będzie stanowiła jedynie 20% całej produkcji. Cena ma pozostać bez zmian, czyli 35$.

Pełna specyfikacja:

  • Broadcom BCM2836 quad core Cortex A7 @ 900MHz
  • Układ graficzny VideoCore IV
  • Pamięć 1GB SDRAM
  • Czytnik kart pamięci micro SD
  • Wyjście HDMI oraz AV (3.5mm jack)
  • Karta sieciowa Ethernet 10/100M
  • 4x porty USB 2.0, 1x micro USB
  • Rozszerzenia: 40 pinowe złącze GPIO, złącze kamery, złącze wyświetlacza
  • Zasilanie 5V z portu micro USB

Jak myślicie? Jest to pstryczek w nos dla Hardkernela i jego ODROID-C1? Czy może jednak model RPi 2 i tak miał się pojawić?

W poprzednim wpisie pokazywałem Wam,  jak Cubieboard 4 sprawuje się pod Androidem. Tym razem sprawdzimy jego zachowanie pod systemem Linux. Na chwilę obecną dostępne są dwie dystrybucje: Linaro oraz Debian Server. 

Pierwsze co mnie pozytywnie zaskoczyło, to sposób instalacji systemu. W poprzednich płytkach Cubieboard proces nie należał do przyjemnych, ponieważ wymagał dodatkowego oprogramowania LiveSuit do flashowania i operowania przyciskiem FEL. Tym razem wystarczy wgrać obraz systemu na kartę microSD, włożyć do czytnika i podłączyć zasilanie, a cały proces możemy podglądać na monitorze. Kiedy instalacja dobiegnie końca, "Cubie" automatycznie się wyłączy i będziemy mogli wyciągnąć kartę oraz zresetować urządzenie.

Chcąć powrócić do systemy Android, musimy zaś posłużyć się programem LiveSuit (Linux) lub PhoenixSuit (Windows) trzymając przysick "boot" podczas podłączenia do USB.

Gdzie jest Wi-Fi?

O ile karta ethernet działa od razu, to niestety z włączeniem karty Wi-Fi będziemy musieli się po gimnastykować. Na szczęście nie czeka nas kompilacja jądra, ponieważ AP6330 jest dobrze obsługiwana przez moduł bcmdhd. Jak ją odpalić?

Do pliku /etc/rc.local dodajemy polecenie modprobe i nazwę wymaganego modułu:

  1. modprobe bcmdhd

Tworzymy plik /etc/wpa_supplicant.conf i wpisujemy dane do punktu dostępowego:

  1. ctrl_interface=/var/run/wpa_supplicant
  2. network={
  3.     ssid="NAZWA SIECI"
  4.     psk="HASLO"
  5. }

Na koniec, w pliku /etc/network/interfaces dodajemy wpis:

  1. auto wlan0
  2. iface wlan0 inet dhcp
  3. wpa-conf /etc/wpa_supplicant.conf

Restart i gotowe.

Testy pamięci eMMC

Prędkości zapisu i odczytu nie powalają z nóg, gdyż Cubieboard 4 wyposażony jest w starszy rodzaj pamięci eMMC.

Zobaczmy jeszcze bardziej naturalne wyniki, w których uwzględnimy synchronizację nośnika po zapisie. Dla objaśnienia podaję regułę, w jaki sposób została ona określona:

time sh -c "dd if=/dev/zero of=/home/file bs=4k count=200000 && sync"

200000+0 records in
200000+0 records out
819200000 bytes (819 MB) copied, 62.9674 s, 13.0 MB/s

real 1m9.723s
user 0m0.170s
sys 0m8.880s

sync ; sh -c 'echo 3 > /proc/sys/vm/drop_caches'
time sh -c "dd if=/home/file of=/dev/zero bs=4k count=200000"

200000+0 records in
200000+0 records out
819200000 bytes (819 MB) copied, 29.2347 s, 28.0 MB/s

real 0m29.334s
user 0m0.110s
sys 0m3.330s

Czas zapisu bez synchronizacji wyniósł 62,96 sekundy. Z synchronizacją dysku po zapisie, czas ten zwiększył się do 69,72 sekundy, a więc rzeczywista prędkość to (819200000/1024/1024) / 69.72 = 11,2 MB/s.

Testy CPU

Jeśli chodzi o jednostkę Allwinner A80 to wypada całkiem nieźle. Wyniki jakie uzyskuje w testach są nieco wolniejsze od Exynosa 5422 zastosowanego w ODROID-XU3. Wyjątek stanowi dekompresja pliku BZIP2, gdzie spore znaczenie ma prędkość pamięci eMMC.

Testy GPU

Tutaj wielkie zaskoczenie. W testach glmark2-es2 off-screen przewaga nad XU3 jest 2.5-krotna. Dla pewności wykonałem nawet testy dwukrotnie na obu platformach. Wnioski mogą być dwa. Albo obsługa układu Mali w ODROID-XU3 jest nie do końca przemyślana, albo PowerVR G6230 robi to wyjątkowo dobrze!

linaro@cubieboard4:~$ glmark2-es2 --off-screen
=======================================================
glmark2 2012.08
=======================================================
OpenGL Information
GL_VENDOR: Imagination Technologies
GL_RENDERER: PowerVR Rogue G6230
GL_VERSION: OpenGL ES 3.1 build 1.4@3064661
=======================================================
[build] use-vbo=false: FPS: 108 FrameTime: 9.259 ms
[build] use-vbo=true: FPS: 1461 FrameTime: 0.684 ms
[texture] texture-filter=nearest: FPS: 3614 FrameTime: 0.277 ms
[texture] texture-filter=linear: FPS: 3601 FrameTime: 0.278 ms
[texture] texture-filter=mipmap: FPS: 3629 FrameTime: 0.276 ms
[shading] shading=gouraud: FPS: 843 FrameTime: 1.186 ms
[shading] shading=blinn-phong-inf: FPS: 1331 FrameTime: 0.751 ms
[shading] shading=phong: FPS: 1200 FrameTime: 0.833 ms
[bump] bump-render=high-poly: FPS: 510 FrameTime: 1.961 ms
[bump] bump-render=normals: FPS: 3664 FrameTime: 0.273 ms
[bump] bump-render=height: FPS: 3963 FrameTime: 0.252 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 2310 FrameTime: 0.433 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 2217 FrameTime: 0.451 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1434 FrameTime: 0.697 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 127 FrameTime: 7.874 ms
[desktop] effect=shadow:windows=4: FPS: 264 FrameTime: 3.788 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 148 FrameTime: 6.757 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 148 FrameTime: 6.757 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 100 FrameTime: 10.000 ms
[ideas] speed=duration: FPS: 487 FrameTime: 2.053 ms
[jellyfish] <default>: FPS: 461 FrameTime: 2.169 ms
[terrain] <default>: FPS: 22 FrameTime: 45.455 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 2322 FrameTime: 0.431 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 2346 FrameTime: 0.426 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 2320 FrameTime: 0.431 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 2327 FrameTime: 0.430 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 2355 FrameTime: 0.425 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 2349 FrameTime: 0.426 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 2353 FrameTime: 0.425 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 2377 FrameTime: 0.421 ms
=======================================================
glmark2 Score: 1679
=======================================================

Pobór mocy

Na Wasze specjalne życzenie przyjrzałem się również poborowi energii:

  Cubieboard 4 ODROID-XU3
Xorg 3,1 W 4,0 W
Xorg + Logitech Unifying 3,8 W 4,8 W
Xorg + Logitech Unifying + Wi-Fi 4,6 W 5,3 W

Kolejne testy polegały na obciążaniu kolejnych rdzeni na 100% przy konfiguracji Xorg + Logitech Unifying + Wi-Fi:

  Cubieboard 4 ODROID-XU3
1 rdzeń 7,4 W 9,6 W
2 rdzenie 9,6 W 13,1 W
4 rdzenie 17,8 W 16,4 W
8 rdzeni 22,0 W 17,0  W

Na zakończenie pobór mocy przy teście glmark2-es2 -s 1920x1080 oraz konfiguracji Xorg + Logitech Unifying + Wi-Fi:

  Cubieboard 4 ODROID-XU3
glmark2-es2 -s 1920x1080 6,9 W 8,8 W

Podsumowanie

Wyniki Cubieboard 4 wyglądają dobrze. Jedyne nie udało mi się sprawdzić działania XBMC, ponieważ w repo dostępny jest leciwy Frodo, który morduje procesor materiałem 1080p dekodując strumień programowo. Niebawem postaram się skompilować coś nowszego i sprawdzić jak spisze się nowsza wersja, wszak pod Androidem płynnie odtwarzany jest materiał 4K.

Zastrzeżenie budzi jedynie powolna pamięć eMMC 4.5. Jednak jeśli przez chwilę się zastanowię, to prędzej wykorzystałbym do tego celu dysk twardy, który bez problemu podepniemy pod USB 3.0

Dzięki uprzejmości sklepu internetowego elty.pl, mam dziś przyjemność pokazać Wam nowiutką platformę Cubieboard 4 wyposażoną w ośmiordzeniowy układ SoC Allwinner A80

Cubie przyszedł co mnie zapakowany w solidne pudełko, wypełnione czymś na kształt utwardzonej gąbki. Osobiście bardzo podoba mi się pakowanie produktów z serii Cubieboard, które zapewnia duże bezpieczeństwo zawartości podczas transportu. Wewnątrz opakowania znajdziemy naszego "małego" urwisa :)

 

Na dnie pudełka znajduje się dodatkowy kartonik, w którym zostały zapakowane niezbędne akcesoria. Podstawowe wyposażenie jest całkiem pokaźne, bowiem zazwyczaj takie akcesoria trzeba dokupić osobno. W tym przypadku wszystko dostajemy praktycznie na tacy. Znajdziemy tu prostą obudowę wykonaną z plexi, kołki dystansowe, radiator, pastę termoprzewodzącą, przejściówkę microUSB 3.0 na USB 3.0 oraz kabelek USB 3.0 OTG. Opróćz tego, na wyposażeniu znalazła się antena Wi-Fi oraz bateria 1220 do podtrzymywania zegara RTC w przypadku odłączenia całej płytki od zasilania.

 

Montaż jest banalnie prosty, praktycznie nie wymagający użycia żadnych narzędzi. Również założenie radiatora nie powinno sprawić nikomu problemów za sprawą sprężynowych kołków rozporowych - nie zapominajmy oczywiście o uprzednim posmarowaniu pastą termoprzewodzącą!

 

Allwinner A80 z bliska

Allwinner A80 wspiera technologie big-LITTLE, gdzie mocniejsze cztery rdzenie stanowią ARM Cortex A15 potrafiące rozpędzić się do częstotliwości 2GHz oraz cztery rdzenie do mniej wymagających zadań ARM Cortex A7 taktowane do prędkości 1.3GHz.

Układ graficzny zastosowany w tej jednostce to 64-rdzeniowy PowerVR G6230 o deklarowanej przepustowości powyżej 100GFLOPS, wspierając standardy takie jak OpenGL ES 3.0, OpenGL 3/4, OpenCL 1.x oraz DirectX10. Oznacza to, że jednostka ta powinna być równie wydajna jak układ Mali-T628 MP6 zastosowany w Exynosach 5420/5422/5430. Allwinner A80 bez problemowo powinien sobie zatem radzić z kompresją i dekompresją H264/H265 w rozdzielczości 4K.

Sama płytka Cubieboard 4 została wyposażona w 2GB pamięci RAM (4 kości Hynix H5TQ4G63AFR 512MB) oraz 8GB pamięci eMMC 4.5 z której uruchamiany jest system operacyjny Linux lub Android. Do teg celu możemy równiez wykorzystać karty pamięci MicroSD

Płytkę możemy podłączyć do telewizora lub monitora ze złączem HDMI 1.4 lub VGA (podłączenie monitora VGA umożliwia tutaj zastsowanie układu GM7123). Dodatkowo otrzymujemy 4 porty USB 2.0 oraz jeden port USB 3.0 z możliwością pracy w trybie OTG.

Za dostęp do sieci odpowiada gigabitowa karta RTL8211e oraz dwuzakresowa karta Wi-Fi AP6330 potrafiąca osiągnąć rzekomy transfer na poziomie 300Mbps oraz posiada wbudowany Bluetooth 4.0+EDR.

Na płytce umieszczono również odbiornik podczerwieni oraz zegar RTC z koszykiem na baterię 1220, a także stereofoniczne gniazdo jack 3.5mm oraz wejście mikrofonowe. Nie mogło również zabraknąć gniazda rozszerzeń I/O, które zostało opisane na płytce PCB.

Rozmiarowo Cubieboard 4 jest nieznacznie mniejszy (114x114mm) od opisywanego już Jetsona TK1 od NVIDIA.

Niestety w zestawie nie znajduje się zasilacz, dlatego powinniśmy się wcześniej w niego zaopatrzyć. Zalecany zasilacz to 5V/4A. Co ciekawe, płytkę możemy zasilić bezpośrednio baterią Li-po 3.7V za pomocą dedykowanego gniazda oraz z portu USB 3.0.

Android 4.4

Domyślnie zainstalowany jest system Android 4.4.2 i podstawoweoprogramowanie. Bardzo cieszy od razu doinstalowany Google Play co pozwala nam na szybką instalację dodatkowego oprogramowania.

 

Do dyspozycji użytkownika pozostaje ponad 5GB pamięci, jednak bez problemu możemy wspomóc się dodatkową kartą microSD:

  

Na pierwszy ogień zobaczmy jakie osiągi uzyska Cubieboard 4 w programie AnTuTu. Po krótkiej chwili uzyskuje on wynik na poziomie 37.857 punktów, a więc nieco słabiej niż ODROID-XU3, który uzyskał wynik 46.213 w rozdzielczości 1080p.

Zwróćmy jednak uwagę na to, że Cubieboard 4 posiada pamięć eMMC 4.5, podczas gdy XU3 posiada pamięć eMMC 5.0. Obecność HMP w Odroid-XU3 zapewne też nie pozostaje tutaj bez znaczenia. Dla porównania przypomnijmy, że model ODROID-XU uzyskał tutaj wynik słabszy, bo 30.054 punktów.

 

Zobaczmy zatem jak sprawa wygląda w programie 3D Mark Ice Storm. Cubieboard 4 zdobywa tutaj 7.293 punktów w trybie Extreme oraz 13.955 punktów w trybie Unlimited. Ponownie są to wyniki wolniejsze od ODROID-XU3:

Mark 1080p Unlimited 1080p Extreme
Cubieboard 8  13.955 7.293
ODROID-XU3  15.073 10.044

 

W programie PC Mark udaje mu się uzskać wynik 4.155 punktów, czyli nieco lepszy niż ODROD-XU3 z wynikiem 3.898 punktów.

Multimedia

Nie ma również żadnych problemów z odtwarzaniem filmów w Kodi/XBMC. Materiał odtwarzany jest bez zająknięcia we wszystkich rozdzielczościach 720p/1080p/2K/4K:

 

Rozrywka

Z ciekawości sprawdziłem również dwie gry Modern Combat 4: Zero Hour oraz  Modern Combat 5: Blackout. Obie działają idealnie, dobrze współpracując z posiadanym przeze mnie padem Logitech F710.

 

Podsumowanie

Cubieboard 4 jeśli chodzi o Androida sprawuje się bardzo dobrze. Podczas długich testów całość działała płynnie i stabilnie. Temperatury podczas typowej pracy to 53°C i 72°C w trakcie długotrwałego stresu. 

 

Cubieboard 4 wybada również bardzo dobrze w stosunku możliwości do ceny. Jeśli weźmiemy pod uwagę, że za ODROIDa-XU3 przyjdzie nam zapłacić kwotę 179$, doliczając drobnicę w postaci szybkiej karty Wi-Fi, obudowy, odbiornika BT / IR, pamięci eMMC 8GB oraz kabli, wyjdzie nam kwota ponad 220$. Doliczając podatek, transport i cło w sumie przyjdzie nam zapłacić grubo ponad 1100zł. Tymczasem opisywany dziś Cubieboard 4 możemy dostać w sklepie elty.pl za połowę ceny 580zł

Mała prezentacja:

W kolejnej części sprawdzimy sobie, jak Cubieboard 4 radzi sobie pod Linuksem, kiedy stanie w szranki z pozostałymi platformami. Jestem szalenie tego ciekawy :)

Hardkernel wydaje się mieć chrapkę na segment, który zdominował Raspberry Pi, uderzając w niego swoim budżetowym produktem ODROID-C1. Nowe dziecko koreańskiego producenta wyposażone zostało w czterordzeniowy układ SoC Amlogic Cortex-A5 (ARMv7) taktowany częstotliwością 1.5Ghz. Układ graficzny stanowi popularny Mali-450 MP2 z obsługą standardów OpenGL ES 2.0/1.1.

Jednostka ta została wyposażona w pamięć DDR3 SDRAM o rozmiarze 1GB, gigabitowy port Ethernet, 40-pinowe złącze GPIO, cztery porty USB 2.0 oraz odbiornik podczerwieni. System operacyjny (Linux lub Android) może być uruchomiony z karty pamięci MicroSD lub pamięci eMMC 4.5.

ODROID-C1 wyposażony jest również w odbiornik podczerwieni, który bez problemu powinien obsłużyć wszystkie nadajniki pracujące w standardzie 37.9kHz wykorzystując do tego celu specjalnie przygotowany program odroid_remote. Oprócz wspomnianych 4 portów USB 2.0, dostępny jest również pojedyncze gniazdo Micro USB pracujące w trubie OTG, które możemy w razie konieczności wykorzystać jako dodatkowy port. Należy jednak pamiętać, że nie możemy zasilać z niego ODROIDa.

Zastanawiacie się ile przyjdzie nam zapłacić za te cudeńko? ODROID-C1 został wyceniony na kwotę 35$, czyli w takiej samej cenie jak Raspberry Pi. W polskim sklepie dostaniemy go bez problemu za 209 zł

40-pinowe gniazdo GPIO

Do dyspozycji dostajemy także 40-pinowe gniazdo rozszerzeń, na którym znajdziemy wyprowadzania GPIO/I2C/SPI/UART/ADC. Do obsługi wystarczy nam jedynie znajomość języka C/C++ lub Pythona. Z pomocą przychodzi również przeportowana biblioteka WiringPi, która jest doskonale znana przez "malinowców". Projektując urządzenie pamiętajcie, że ten port rozszerzeń nie jest zgodny z portem rozszerzeń z Raspberry Pi B+ (piny #37, #38, #40 pracują tutaj jako wejścia analogowe o dopuszczalnym poziomie 1.8V).

WiringPi GPIO# Export GPIO# ODROID-C PIN Label HEADER Label ODROID-C PIN Export GPIO# WiringPi GPIO#
        3V3 1 2 5V0        
  74   I2CA_SDA SDA1 3 4 5V0        
  75   I2CA_SCL SCL1 5 6 GND        
7 83   GPIOY.BIT3 #83 7 8 TXD1 TXD_B   113  
        GND 9 10 RXD1 RXD_B   114  
0 88   GPIOY.BIT8 #88 11 12 #87 GPIOY.BIT7   87 1
2 116   GPIOX.BIT19 #116 13 14 GND        
3 115   GPIOX.BIT18 #115 15 16 #104 GPIOX.BIT7   104 4
        3V3 17 18 #102 GPIOX.BIT5   102 5
12 107 MOSI GPIOX.BIT10 MOSI 19 20 GND        
13 106 MISO GPIOX.BIT9 MISO 21 22 #103 GPIOX.BIT6   103 6
14 105 SCLK GPIOX.BIT8 SCLK 23 24 CE0 GPIOX.BIT20 CE0 117 10
        GND 25 26 #118 GPIOX.BIT21   118 11
  76   I2CB_SDA SDA2 27 28 SCL2 I2CB_SCL   77  
21 101   GPIOX.BIT4 #101 29 30 GND        
22 100   GPIOX.BIT3 #100 31 32 #99 GPIOX.BIT2   99 26
23 108   GPIOX.BIT11 #108 33 34 GND        
24 97   GPIOX.BIT0 #97 35 36 #98 GPIOX.BIT1   98 27
      ADC.AIN1 AIN1 37 38 1V8 1V8      
        GND 39 40 AIN0 ADC.AIN0      

Znacząca przewaga nad Raspberry Pi

ODROID-C1 znacznie przewyższa możliwościami "malinę", biorąc pod uwagę głównie czynnik finansowy. Różnice są ogromne - zarówno pod względem sprzętowym jak i wydajnościowym. Spójrzmy na małe porównanie, które mówi wręcz za siebie:

  ODROID-C1 RPi Model-B+
Procesor Amlogic S805 Broadcom BCM28351
Rodzina ARMv7 @28nm ARM11 @40nm
Liczba rdzeni 4 1
RAM 1GB 32bit DDR3 512MB 32bit LP-DDR2
Układ graficzny 2x ARM® Mali 450MP 1 x VideoCore IV
Taktowanie procesora 1.5GHz 700Mhz
Taktowanie rdzenia graficznego 600MHz 250MHz
Taktowanie pamięci 792MHz 400MHz
Pamięć FLASH Micro-SD UHS-1
100Mhz/SDR50
Micro-SD
50Mhz/SDR25
Pamięć eMMC Tak Nie
USB 2.0 4 4
USB 2.0 OTG 1 Nie
Ethernet 10/100/1000 Mbit/s 10/100 Mbit/s
Wyjście wideo HDMI HDMI / Composite RCA
Wyjście audio HDMI HDMI / 3.5mm Jack
Wejście kamery USB 720p MIPI CSI 1080p
Zegar RTC Tak Nie
Odbiornik podczerwieni Tak Nie
Port rozszerzeń 40pin
GPIO/UART/SPI/I2C/ADC
40pin
GPIO/UART/SPI/I2C/I2S
ADC 2 kanały po 10-bitów Nie
Rozmiar 85 x 56mm 85 x 56mm
Waga 40g 42g

A jak z wydajnością w starciu z "maliną"? Tutaj również walka wydaję się być zbędna. W zależności od przeprowadzonych testów, ODROID-C1 osiąga od 4x do 8x lepsze wyniki, niżeli konkurent.

Ubuntu i porównanie z innymi platformami

Na chwilę obecną dostępny jest standardowy Ubuntu 14.04 w wersji 1.2 z jądrem 3.10.64, którego znamy już z poprzednich ODROID-ów. Oczywiście nie zapomniano o narzędziu ODROID Utility i odtwarzaczu Kodi, który dobrze sobie radzi z materiałem wideo kodowanym z bitrate 120Mbps!

Prędkość pamięci eMMC również jest na zadowalającym poziomie. Zapis kształtuje się na poziomie 46MB/s, a odczyt na poziomie 81MB/s. Są to wyniki porównywalne jakie osiąga Jetson TK1.

time sh -c "dd if=/dev/zero of=/home/file bs=4k count=200000 && sync"

200000+0 records in
200000+0 records out
819200000 bytes (819 MB) copied, 17.788 s, 46.1 MB/s

real    0m18.741s
user    0m0.290s
sys    0m7.030s

sync ; sh -c 'echo 3 > /proc/sys/vm/drop_caches'
time sh -c "dd if=/home/file of=/dev/zero bs=4k count=200000"

200000+0 records in
200000+0 records out
819200000 bytes (819 MB) copied, 10.0623 s, 81.4 MB/s

real    0m10.103s
user    0m0.080s
sys    0m2.670s

Zobaczmy jak wygląda to dokładniej w pojedynku z innymi platformami:

 

Powyższe wyniki jasna pokazują, że pomimo tego, że ORDOID-C1 jest najsłabszy ze swojej rodziny, to jest zdecydowanie lepszym wyborem niż platformy wykorzystujące układy Allwinner A10/A20 czy RK3066. Pamiętajmy jednak o bardzo niskiej cenie C1 jako bezpośredniego konkurenta dla RaspberryPi.

Rzućmy jeszcze okiem na wyniki glmark2 dla OpenGL ES:

=======================================================
    glmark2 2012.08
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-450 MP
    GL_VERSION:    OpenGL ES 2.0
=======================================================
[build] use-vbo=false: FPS: 159 FrameTime: 6.289 ms
[build] use-vbo=true: FPS: 184 FrameTime: 5.435 ms
[texture] texture-filter=nearest: FPS: 184 FrameTime: 5.435 ms
[texture] texture-filter=linear: FPS: 190 FrameTime: 5.263 ms
[texture] texture-filter=mipmap: FPS: 189 FrameTime: 5.291 ms
[shading] shading=gouraud: FPS: 146 FrameTime: 6.849 ms
[shading] shading=blinn-phong-inf: FPS: 140 FrameTime: 7.143 ms
[shading] shading=phong: FPS: 117 FrameTime: 8.547 ms
[bump] bump-render=high-poly: FPS: 95 FrameTime: 10.526 ms
[bump] bump-render=normals: FPS: 186 FrameTime: 5.376 ms
[bump] bump-render=height: FPS: 173 FrameTime: 5.780 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 104 FrameTime: 9.615 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 56 FrameTime: 17.857 ms
[pulsar] light=false:quads=5:texture=false: FPS: 198 FrameTime: 5.051 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 52 FrameTime: 19.231 ms
[desktop] effect=shadow:windows=4: FPS: 146 FrameTime: 6.849 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 35 FrameTime: 28.571 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[ideas] speed=duration: FPS: 99 FrameTime: 10.101 ms
[jellyfish] <default>: FPS: 98 FrameTime: 10.204 ms
[terrain] <default>: Unsupported
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 197 FrameTime: 5.076 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 115 FrameTime: 8.696 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 195 FrameTime: 5.128 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 149 FrameTime: 6.711 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 99 FrameTime: 10.101 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 144 FrameTime: 6.944 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 142 FrameTime: 7.042 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 138 FrameTime: 7.246 ms
=======================================================
                                  glmark2 Score: 138
=======================================================

oraz w trybie offscreen:

=======================================================
    glmark2 2012.08
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-450 MP
    GL_VERSION:    OpenGL ES 2.0
=======================================================
[build] use-vbo=false: FPS: 205 FrameTime: 4.878 ms
[build] use-vbo=true: FPS: 280 FrameTime: 3.571 ms
[texture] texture-filter=nearest: FPS: 351 FrameTime: 2.849 ms
[texture] texture-filter=linear: FPS: 294 FrameTime: 3.401 ms
[texture] texture-filter=mipmap: FPS: 305 FrameTime: 3.279 ms
[shading] shading=gouraud: FPS: 193 FrameTime: 5.181 ms
[shading] shading=blinn-phong-inf: FPS: 192 FrameTime: 5.208 ms
[shading] shading=phong: FPS: 157 FrameTime: 6.369 ms
[bump] bump-render=high-poly: FPS: 106 FrameTime: 9.434 ms
[bump] bump-render=normals: FPS: 337 FrameTime: 2.967 ms
[bump] bump-render=height: FPS: 357 FrameTime: 2.801 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 136 FrameTime: 7.353 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 70 FrameTime: 14.286 ms
[pulsar] light=false:quads=5:texture=false: FPS: 406 FrameTime: 2.463 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 71 FrameTime: 14.085 ms
[desktop] effect=shadow:windows=4: FPS: 200 FrameTime: 5.000 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 40 FrameTime: 25.000 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[ideas] speed=duration: FPS: 122 FrameTime: 8.197 ms
[jellyfish] <default>: FPS: 128 FrameTime: 7.812 ms
[terrain] <default>: Unsupported
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 352 FrameTime: 2.841 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 171 FrameTime: 5.848 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 323 FrameTime: 3.096 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 220 FrameTime: 4.545 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 137 FrameTime: 7.299 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 206 FrameTime: 4.854 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 206 FrameTime: 4.854 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 217 FrameTime: 4.608 ms
=======================================================
                                  glmark2 Score: 214
=======================================================

Mówcie co chcecie, ale współczynnik wydajności całej platformy do ceny jest zdumiewający. W stresie bez radiatora, główna jednostka nie przekroczyła temperatury 50 stopni Celsjusza:

A co Androidem?

Oczywiście jest dostępny jest Adnroid 4.4.2, który działa bardzo przyzwoicie, osiągając wynik 14989 punktów w programie AnTuTu. Na tle top smartfonów wypada trochę blado, ale i tak jest bardzo dobrze i sprawdzi się również w roli domowego centrum rozrywki.

Dla osób ciekawych wrażeń, jest również osiągalny Android 5.0.2 Lollipop: