Raspberry Pi Zero USB Stem: подключение, настройка и начало работы

Используйте Zero USB Stem для превращения самых маленьких Raspberry Pi, а точнее Zero и Zero W в компактный USB-стик.

Полноценный USB-порт позволит подключать малинку к ПК аналогично USB-флешке без единого провода. А программное обеспечение подарит возможность коммуницировать с Zero по USB как OTG-устройство, например притворится виртуальным COM-портом или полноценным Ethernet устройством. А в завершении USB Stem позволяет запустить малинку без SD-карты.

Сборка устройства

Raspberry Pi Zero Stem поставляется в разобранном виде. После покупки вам нужно пройти небольшой квест и спаять модуль. Следуйте нашей инструкции, и вы получите готовое к работе устройство!

Что понадобится

  1. 1× Raspberry Pi Zero или Zero W
  2. 1× Плата Pi Zero Stem
  3. 1× Разъём USB Type-A
  4. 2× Гайка М3
  5. 2× Винт М3

Как спаять

  1. Установите разъем USB на лицевую сторону платы Zero Stem.
  2. Припаяйте два крепления порта USB на обратной стороне платы.
  3. Припаяйте USB-разъём к контактным площадкам SMD на лицевой стороне платы.
  4. Скрепите Zero Stem с платой Raspberry Pi через винты и гайки.
  5. Спаяйте между Raspberry Pi и Zero Stem контактные площадки питания VBUS и земли GND.
  6. Спаяйте между Raspberry Pi и Zero Stem контактные площадки D+ и D−.
  7. Ура, устройство готово. Теперь можно переходить к примерам использования малины в виде USB-стика.

Примеры для USB-стика

На большинстве плат Raspberry Pi, USB-порты подключены к центральному процессору через USB-концентратор и настроены как хост-устройства. Т.е. порты ожидают подключения только периферийных устройств, например USB-Flash накопителя, клавиатуры, мышки и т.д.

Но на Raspberry Pi Zero и Zero W контакты USB-порта подключены непосредственно к самому процессору малины. Это даёт возможность использовать младшую версию Raspberry Pi не только как хост-устройство, но и выступать самой в виде периферийного девайса, например при подключении к ПК по USB стать Flash-накопителем, MIDI-устройством, виртуальным COM-портом «Serial Gadget», Ethernet-соединением «Ethernet Gadget» и т.д.

Serial Gadget

Драйвер Serial Gadget позволяет Raspberry Pi Zero при подключении к ПК по USB, определятся как последовательный COM-порт. Простота коммуникации заключается в том, что вы можете использовать малину с любым компьютером без дополнительных драйверов и танца с бубном.

Настройка Serial Gadget

  1. Отредактируйте файл config.txt. Добавьте в конец файла строчку:
    dtoverlay=dwc2
  2. Отредактируйте файл cmdline.txt. Найдите в файле строку
    rootwait

    и добавьте после неё строку

    modules-load=dwc2,g_serial
  3. Подключитесь к Raspberry Pi через рабочий стол по HDMI или SSH.
  4. Проверьте установку драйвера g_serial, вбейте в терминал команду:
    sudo dmesg

    Найдите в отображенном списке, драйвер g_serial среди других устройств.

  5. Далее привяжите консоль Raspberry Pi к новоиспеченном последовательному порту. Вбейте в терминале команду:
    sudo systemctl enable getty@ttyGS0.service
  6. Перезагрузите малину:
    sudo reboot
  7. Проверьте привязку консоли к COM-порту. Вбейте в терминал команду:
    sudo systemctl is-active getty@ttyGS0.service

    В ответ вы увидите одно из двух сообщений системы:

    1. active: всё получилось и можно переходить к следующему шагу.
    2. inactive: что то пошло не так, повторите предыдущие шаги.
  8. Выключите Raspberry Pi
    sudo shutdown -r now
  9. Отключите все устройства и провода от малины, кроме SD-карты.

Запуск

  1. Подключите Raspberry Pi к USB-порту компьютера через Zero Stem без единого провода.
  2. Запустите диспетчер устройств Windows и раскройте вкладку Порты (COM и LPT). Вы должны увидеть COM-порт с именем ELMO GMAS (COMx), где x — номер последовательного порта, запомните его.
  3. Запустите любой клиент с поддержкой Serial-соединения, например Putty. Вбейте номер COM-порта из предыдущего пункта, выставите скорость 115200 бод и нажмите на кнопку Open.
  4. Введите логин и пароль от малины, по умолчанию логин — pi, пароль — raspberry. В случае успешного ввода данных, увидите приветственное окно консоли.
  5. Для теста подключения, вбейте в консоль команду отображения даты и времени:
    date

  6. Putty не единственная программа, который может осуществлять Serial-комуникацию. Для связи можно использовать любой софт, например встроенный терминал из Arduino IDE.

Ethernet Gadget

Драйвер Ethernet Gadget позволяет Raspberry Pi Zero при подключении к ПК через USB-стик, определятся как виртуальное сетевое подключение Ethernet. Это даёт возможность общаться с малинкой по протоколам SSH, SCP, VNC без дополнительных Ethernet-соединений и Wi-Fi. Ethernet Gadget также позволяет поделится настройками сети, что бы Raspberry Pi мог получить доступ к интернету через внешний компьютер по USB-подключению.

При подключении к Raspberry Pi через USB-стик в режиме «Ethernet Gadget», IP-адрес назначается системой динамически, т.е. малинке будет присваиваться новый IP-адрес при каждом включении питания. А это означает, что заранее нельзя узнать к какому IP-адресу подключатся для коммуникации. Решение проблемы — Zeroconf, технология которая позволяет подключатся к локальным устройствам по имени.

  • OS Mac: настроен по умолчанию
  • OS Linux: установите утилиту Avahi
  • OS Windows: установите утилиту Bonjour

Настройка Ethernet Gadget

  1. Отредактируйте файл config.txt. Добавьте в конец файла строчку:
    dtoverlay=dwc2
  2. Отредактируйте файл cmdline.txt. Найдите в файле строку
    rootwait

    и добавьте после неё строку

    modules-load=dwc2,g_ether
  3. Подключитесь к Raspberry Pi через рабочий стол по HDMI или SSH.
  4. Проверьте установку драйвера g_ether, вбейте в терминал команду:
    sudo dmesg

    Найдите в отображенном списке, драйвер g_ether среди других устройств.

  5. Выключите Raspberry Pi
    sudo shutdown -r now
  6. Отключите все устройства и провода от малины, кроме SD-карты.

Запуск

  1. Подключите Raspberry Pi к USB-порту компьютера через Zero Stem без единого провода.
  2. Запустите диспетчер устройств Windows:
    1. Если во вкладке Сетевые адаптеры вы видите Ethernet-соединение с именем USB Ethernet/RNDIS Gadget. Это значит всё получилось и можно переходить к следующему шагу.
    2. Если во вкладке Сетевые адаптеры Ethernet-соединение с именем USB Ethernet/RNDIS Gadget нет, тогда скорей всего система Windows назначила девайсу неправильный драйвер. Для проверки откройте вкладу Порты (COM и LPT) и если обнаружите девайс с именем Устройство с последовательным интерфейсом USB (COMx), тогда обновите драйвер вручную.
  3. Запустите любой SSH-клиент, например Putty. Вбейте в поле хост строку raspberrypi.local, порт оставьте по умолчанию 22 и нажмите на кнопку Open.
  4. Введите логин и пароль от малины, по умолчанию логин — pi, пароль — raspberry. В случае успешного ввода данных, увидите приветственное окно консоли.
  5. Для теста подключения, вбейте в консоль команду отображения даты и времени:
    date

  6. Проверьте текущий IP-адрес назначенной системой по USB через виртуальное Ethernet-соединение. Вбейте в консоль команду:
    ifconfig

    В ответ вы получите список сетевых подключений, где нас интересует тип соединения usb0. Обратите внимания, что при каждом новом включении малины, IP-адрес будет меняться.

Доступ к интернету

Режим Ethernet Gadget также позволяет дать доступ Raspberry Pi к интернету через внешний компьютер по USB-подключению.

  1. Откройте страницу сетевых подключений.
  2. Выберите текущее подключение по которому осуществляется выход в интернет и в настройках подключения предоставьте общий доступ.
  3. Проверьте доступ в мировую сеть. Вбейте в консоль команду:
    sudo ping www.google.com

    В ответ вы увидите процесс обмена данными между клиентом и сервером. Это значит всё получилось и можно переходить к дальнейшим экспериментам и урокам.

Элементы платы

USB-порт

На торце платы расположен USB-порт Type-A, который позволяет подключить малину непосредственно в USB-порт компьютера без дополнительных кабелей аналогично обычной флешке.

Контакты питания

Имя контакта Назначение
VBUS Входной пин для подключения источника напряжения малины
GND Вывод земли

Контакты данных

Имя контакта Назначение
D− Сигнальный пин для обмена данными по USB
D+ Сигнальный пин для обмена данными по USB

Габаритный чертёж

Характеристики

  • Модель: Raspberry Pi Zero USB Stem
  • Совместимость: платы Raspberry Pi Zero и Zero W
  • Размеры: 49,7×30×5 мм

Ресурсы