Обзор Pironman – корпус для Raspberry Pi 4 с поддержкой M.2 SATA, безопасным отключением питания, RGB-лентой и другими функциями

SunFounder Pironman – это корпус для Raspberry Pi 4, вдохновленный самодельным мини-сервером на Raspberry Pi 4 от Michael Klement с OLED-дисплеем и системой охлаждения ICE Tower , а также включающий ряд улучшений, таких как корпус из алюминиевого сплава и акрила, поддержку M.2 SATA SSD, кнопку питания для безопасного выключения, ИК-приемник и RGB-ленту.

Компания предоставила комплект Pironman без Raspberry Pi 4 для тестирования. В обзоре будет рассмотрена комплектация, процесс сборки, установка ПО и тестирование перечисленных уникальных функций.

Распаковка Pironman

Pironman unboxing

Основные характеристики указаны на боковой стороне упаковки.

Pironman case specifications

Корпус поставляется в разобранном виде и включает плату Pironman, металлические и акриловые панели, RGB-ленту, OLED-дисплей, радиатор, вентилятор, адаптеры, плоские кабели, винты, стойки и другие компоненты.

Pironman case kit

На верхней стороне платы Pironman (JMS580-V1.8) расположены мост JMicron JMS580 USB 3.2 Gen 2 – SATA 6Gb/s, слот для microSD карты, USB-порт для SSD, USB-порт для питания, а также разъемы для GPIO-экспандера, OLED-дисплея и моста microSD карты, а также контакты для подключения вентилятора, кнопки питания и RGB-ленты.

Pironman board

На нижней стороне находится разъем M.2 SATA, поддерживающий накопители форматов 2230, 2242, 2260 и 2280, три RGB-светодиода и 40-контактный GPIO-разъем.

Pironman board M2 socket RGB LEDs

В комплекте также имеется руководство по сборке. Оно достаточно подробное и значительно упрощает процесс сборки.

SunFounder Pironman Case user guide Pironman assembly guide page 2

Дополнительно доступна подробная онлайн-документация .

Сборка Pironman с Raspberry Pi 4 и M.2 SATA SSD

Необходимо подготовить одноплатный компьютер Raspberry Pi 4 и карту MicroSD с установленной Raspberry Pi OS, а также, опционально, SSD-накопитель формата M.2 SATA.

Raspberry Pi 4 M2 SATA SSD MicroSD card

Первым шагом устанавливаются стойки в монтажные отверстия платы Pironman, а также подключается OLED-дисплей к соответствующему разъему. Для этого необходимо поднять черную защелку, вставить гибкий плоский кабель (FFC) в разъем и зафиксировать защелку. Важно убедиться, что кабель правильно ориентирован, как показано на фото ниже.

Pironman board OLED display standoffs

Затем дисплей крепится к панели B корпуса, после чего устанавливается выключатель питания.

OLED power button front panel

Теперь можно подключить четыре провода от выключателя питания: красный к контакту 5V, черный к GND, а два зеленых — к оставшимся контактам рядом с 5V/GND (порядок не важен). Аналогичным образом подключаются мост для карты microSD, RGB-светодиод и плата расширения GPIO.

Pironman microSD GPIO OLED power button

Пространство внутри корпуса довольно ограничено, но сборка возможна. Наибольшую сложность вызвало подключение FFC-кабеля для GPIO. Черная защелка не поднимается, а поворачивается, и либо кабель слишком толстый, либо разъем слишком узкий — закрыть его было крайне сложно. В итоге пришлось использовать плоскогубцы, обмотанные толстой пластиковой лентой, чтобы зафиксировать защелку как на небольшой переходной плате, так и на основной плате Pironman.

GPIO connector pliers

Провода, используемые для подключения кнопки питания, RGB-светодиода и, как будет показано позже, вентилятора, кажутся недостаточно надежно закрепленными. Не исключено, что они могут отсоединиться при транспортировке корпуса. Однако в данном случае таких проблем не возникло.

Pinronman Raspberry Pi 4 installation

Теперь можно установить Raspberry Pi 4, зафиксировав его дополнительными стойками и шестигранным ключом из комплекта. Также подключаются мосты GPIO и microSD, как показано выше.

Heatsink assembly thermal pads

Следующий шаг — подготовка радиатора: необходимо соединить две опоры (важно соблюсти правильную ориентацию) и разместить две термопрокладки под радиатором.

Pironman IceCube ICE Cooler Raspberry Pi 4SBC

Затем радиатор устанавливается поверх платы Raspberry Pi и фиксируется четырьмя винтами.

Pironman Raspberry Pi 4 enclosure assembly

На этом этапе можно начать добавлять акриловые и металлические панели. Вентилятор можно установить на любую из акриловых панелей, но в инструкции рекомендуется крепить его к крышке с отверстием для GPIO.

Pironman fan installation

Перед установкой нижней крышки необходимо подключить SSD-накопитель M.2 SATA.

Pironman M2 SATA SSD installation

Сборка почти завершена: осталось разместить демпфирующие прокладки на нижней крышке (здесь можно было бы сделать аккуратнее).

Pironman bottom cover

Было замечено, что RGB-лента установлена неправильно. Шаг 16 в инструкции гласит: «RGB-лента должна быть приклеена к нижней части металлической панели A», но не было понятно, как именно. На самой ленте не оказалось двустороннего скотча, поэтому она была размещена в центре с надеждой на лучшее. Позже обнаружились два оставшихся черных скотча.

LED strip taped

После этого верхняя крышка была снята, и RGB-лента зафиксирована по бокам корпуса.

SATA SSD USB adapter MicroSD card

Наконец, с одной стороны устанавливаются карта microSD и мост для SSD, а с другой — оставшаяся небольшая акриловая панель, закрывающая OLED-дисплей.

Pironman Raspberry Pi 4 enclosure assembled

Готово! Сборка выглядит аккуратно и, надеюсь, выполнена правильно.

### Установка ПО и тестирование функций

Проверим систему сразу после подключения к HDMI-дисплею и включения питания. Все работает корректно, SSD-накопитель определяется как «NEO Storage».

Pironman Raspberry Pi OS

Однако ранее была допущена ошибка: красный кабель от USB-адаптера был подключен не к USB-C порту Pironman, а напрямую к Raspberry Pi 4. В результате после установки ПО OLED-дисплей сначала отображал данные о загрузке CPU и памяти, а затем постоянно показывал «Power OFF». После переподключения блока питания к USB-C порту на задней панели проблема была решена.

Теперь необходимо следовать онлайн-инструкциям для установки драйверов и ПО, обеспечивающих работу OLED-дисплея, ИК-приемника, кнопки питания и других компонентов.

Сначала потребуется отредактировать /boot/config.txt добавив две строки в конец файла для поддержки кнопки питания и ИК-приемника:

dtoverlay=gpio-poweroff,gpio_pin=26,active_low=0
dtoverlay=gpio-ir,gpio_pin=13

Далее потребуется установить Python-скрипт pironman:

cd ~
git clone https://github.com/sunfounder/pironman.git
cd ~/pironman
sudo python3 install.py

Для полной работоспособности может потребоваться перезагрузка. Вот как выглядит система после установки скрипта.

Pironman review

На OLED-дисплее отображается IP-адрес, загрузка CPU, температура процессора, а также использование памяти и хранилища.

Pironman OLED information display

Текущую конфигурацию можно проверить следующей командой:

pi@raspberrypi:~ $ pironman -c
config file:/home/pi/.config/pironman/config.txt
temp_unit = C
fan_temp = 50
screen_always_on = False
screen_off_time = 60
rgb_switch = True
rgb_style = breath     
rgb_color = 0a1aff
rgb_blink_speed = 50

Скрипт pironman предоставляет несколько опций для настройки: порог температуры включения вентилятора, цвета и режимы работы RGB-светодиода, поведение экрана. Также можно переключаться между шкалами Цельсия и Фаренгейта.

pi@raspberrypi:~ $ pironman 

config file: /home/pi/.config/pironman/config.txt

Usage:
  pironman <OPTION> <input>

Options:
  start            start pironman service
  stop             stop pironman service
  restart          restart pironman service
  -h,--help        help, show this help
  -c,--check       show all configurations
  -a,--auto        [ on ],enable auto-start at boot
                   [ off ], disable auto-start at boot
  -u,--unit        [ C/F ], set the unit of temperature,
                       C or F (Celsius/Fahrenheit)
  -f,--fan         [ temp ], Temperature at which the fan switches on, 
                   in celsius (default 50),in range (30 ~ 80)
  -al,--always_on  [on/off], whether the screen is always on,
                   default False
  -s,--staty_time  [time], screen display duration in second,
                   in second, default 30
  -rw,--rgb_sw     [on/off], rgb strip switch
  -rs,--rgb_style  rgb strip display style, default: breath,    
                   in [breath / leap / flow / raise_up / colorful]
  -rc,--rgb_color  [(HEX)color], set the color of rgb strip,
                   default: 0a1aff
  -rb,--rgb_speed  [speed], rgb blink speed (0 ~ 100, default 50)

Скрипт можно модифицировать, так как он написан на Python. Также возможно использование других скриптов, поскольку это стандартный OLED-дисплей. Вот краткая демонстрация работы RGB-ленты и вентилятора.

Работу RGB-ленты, OLED-дисплея и вентилятора уже проверили. Короткое нажатие кнопки включает дисплей, а удержание в течение 2 секунд выключает Raspberry Pi. Повторное нажатие кнопки включает компьютер.

Протестируем ИК-приемник с LIRC:

$ sudo apt install lirc

После установки LIRC проверим прием команд с пульта ДУ телевизора:

$ mode2 -d /dev/lirc0
Using driver devinput on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0
code: 0xffffff003096a2007800000103570003
code: 0xffffff0077887900cd0f00019a0f0000
code: 0x28020001cd07000029020001cf070000
code: 0x26020001cd07000028020001cd070000
code: 0x29020001e603000028020001cc070000

ИК-приемник работает корректно. Его можно использовать с Kodi и другими медиацентрами.

SATA-накопитель был распознан, но производительность еще не проверяли. Установим iozone3 для тестирования:

wget http://www.iozone.org/src/current/iozone3_494.tgz
tar xvf iozone3_494.tgz
cd iozone3_494/src/current/
make -j4 linux-arm
sudo cp iozone /usr/local/bin/

Перед запуском теста iozone3 перейдем в точку монтирования (/mediap/pi/NEO Storage):

pi@raspberrypi:/media/pi/NEO Storage $ iozone -e -I -a -s 1000M -r 16384k -i 0 -i 1
	Iozone: Performance Test of File I/O
	        Version $Revision: 3.494 $
		Compiled for 32 bit mode.
		Build: linux-arm 

	Include fsync in write timing
	O_DIRECT feature enabled
	Auto Mode
	File size set to 1024000 kB
	Record Size 16384 kB
	Command line used: iozone -e -I -a -s 1000M -r 16384k -i 0 -i 1
	Output is in kBytes/sec
	Time Resolution = 0.000001 seconds.
	Processor cache size set to 1024 kBytes.
	Processor cache line size set to 32 bytes.
	File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         1024000   16384    85561   293438   325212   325262                                                                                  

iozone test complete.

Скорость чтения (~325 МБ/с) через USB 3.0 нормальная, как и скорость перезаписи, но скорость записи (~85 МБ/с) неожиданно низкая. Повторные тесты дают тот же результат. Проблема не наблюдалась при тестировании этого SSD в USB-C доке под Windows . Накопитель отформатирован в файловой системе exFAT:

$ mount | grep NEO
/dev/sda1 on /media/pi/NEO Storage type exfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,iocharset=utf8,errors=remount-ro,uhelper=udisks2)

Видно, что для устройства используется драйвер uas (поддержка UASP):

pi@raspberrypi:/media/pi/NEO Storage $ lsusb
Bus 002 Device 002: ID 152d:0580 JMicron Technology Corp. / JMicron USA Technology Corp. USB to ATA/ATAPI Bridge
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 1c4f:0003 SiGma Micro HID controller
Bus 001 Device 003: ID 1a2c:0002 China Resource Semico Co., Ltd USB Keykoard
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@raspberrypi:/media/pi/NEO Storage $ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 3: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

Запустим SBC bench для оценки эффективности охлаждения:

$ sudo ./sbc-bench.sh -c 

Average load and/or CPU utilization too high (too much background activity). Waiting...

Too busy for benchmarking: 10:23:07 up 44 min,  3 users,  load average: 0.52, 0.50, 0.30,  cpu: 4%
Too busy for benchmarking: 10:23:12 up 44 min,  3 users,  load average: 0.48, 0.50, 0.30,  cpu: 4%
Too busy for benchmarking: 10:23:18 up 44 min,  3 users,  load average: 0.44, 0.49, 0.30,  cpu: 5%

Но скрипт не запускается, а загрузка CPU даже немного возрастает в простое!

pironman script cpu usage Это происходит потому, что скрипт Pironman использует 4-5% CPU при активном OLED-дисплее. В основном цикле установлена задержка 0.5 секунды, но при включенном дисплее есть дополнительный цикл с задержкой всего 0.01 секунды для мониторинга кнопки. Изначально дисплей был настроен на постоянную работу для контроля температуры и загрузки CPU, но позже настройки были изменены на автоматическое отключение дисплея после бездействия. После этого удалось запустить скрипт SBC-bench.sh:

Checking cpufreq OPP again. Done (20 minutes elapsed).

It seems neither throttling nor frequency capping has occured.

Memory performance
memcpy: 2566.6 MB/s
memset: 3399.8 MB/s

7-zip total scores (3 consecutive runs): 5400, single-threaded: 1655

OpenSSL results:
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc      61461.41k    75719.87k    82240.51k    84407.30k    84751.70k    84683.43k
aes-128-cbc      61748.61k    76364.71k    82733.91k    84307.29k    84789.93k    84781.74k
aes-192-cbc      55657.62k    66900.16k    71660.20k    72982.53k    73187.33k    73405.78k
aes-192-cbc      55676.30k    66874.01k    71821.48k    72860.67k    73444.01k    73220.10k
aes-256-cbc      50343.01k    59848.85k    63227.48k    64422.57k    64432.81k    64574.81k
aes-256-cbc      50459.91k    59570.86k    63347.20k    64332.12k    64476.50k    64623.96k

Full results uploaded to http://ix.io/4jVw. Please check the log for anomalies (e.g. swapping
or throttling happenend).

График температуры представлял собой практически прямую линию благодаря массивному радиатору и вентилятору, который периодически включался при однопоточных тестах и работал постоянно во время многопоточного теста 7-zip.

RPI-Monitor Pironman CPU temperature SBC-bench

Это также подтвердилось наблюдениями на OLED-дисплее во время теста 7-zip.

Pironman stress test CPU usage temperature

Дополнительные тесты не проводились, так как уже были протестированы возможности ICE Tower с вентилятором и без, а также при разгоне Raspberry Pi 4 до 2.0 ГГц . Данная система охлаждения более чем достаточна, даже с избытком, для Raspberry Pi 4 в большинстве сценариев, включая разгон до 2.x ГГц.

Заключение

Pironman представляет собой отличный корпус для Raspberry Pi 4. Инструкции подробные, программная поддержка на уровне, а дизайн привлекательный. Есть несколько моментов для улучшения: возникли сложности с установкой FFC-кабеля для GPIO-адаптера, а соединительные кабели могут ослабляться при транспортировке. Также остался открытым вопрос о низкой скорости записи (но не перезаписи) на M.2 SATA накопитель.

Благодарим SunFounder за предоставленный для обзора корпус Pironman. Комплект из обзора можно приобрести за $63.99 плюс доставка , либо полный комплект с Raspberry Pi 4 (2GB RAM) и картой MicroSD на 32GB за $237.97. Корпус Pironman также доступен для покупки на Amazon US .

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments