Прошивка pico-usb-wifi превращает Raspberry Pi Pico W в USB-адаптер Wi-Fi, не требующий драйверов

pico-usb-wifi — это проект прошивки с открытым исходным кодом, который превращает Raspberry Pi Pico W в USB-адаптер Wi-Fi без драйверов, работающий с Windows, Linux, macOS и другими операционными системами с поддержкой USB CDC-NCM.

Чип Infineon CYW43439, установленный в SBC, невозможно напрямую использовать в качестве моста USB-WiFi; вместо этого прошивка реализует прозрачный мост второго уровня (Layer-2) между беспроводным модулем Pico W и интерфейсами USB. По сути, он работает как шлюз/мост Ethernet-WiFi, предоставляя Ethernet-соединение через USB (так называемый режим USB-гаджета), используемое для маршрутизации пакетов Wi-Fi из сети.

raspberrypi pico w usb wifi adapter
Источник изображения: репозиторий проекта на GitLab

Особенности pico-usb-wifi:

  • Прозрачный мост второго уровня (Layer-2) между беспроводным и USB-интерфейсами Pico W
  • Предоставляется как устройство USB CDC-NCM
  • IPv4 и IPv6 без NAT, без частной подсети и без необходимости настройки перенаправления портов
  • Внеполосное управление и консоли отладки через последовательный порт CDC-ACM
  • Аутентификация WPA2-PSK и WPA3-SAE (а также открытые сети)
  • Пропускная способность – в среднем 4,75 Мбит/с; в основном ограничена интерфейсом USB 1.1 на 12 Мбит/с

pico-usb-wifi architecture

Raspberry Pi Pico W USB WiFi adapter
Ещё одно изображение, сгенерированное ИИ, из репозитория проекта, показывающее подключение

Рассматривая недорогой USB-адаптер Wi-Fi стоит $2-$3 и выше , а из-за ограниченной производительности решения оно в основном полезно в экстренных случаях, когда нужна связь WiFi, а под рукой есть запасной Raspberry Pi Pico W. Вряд ли возможно значительно улучшить производительность по сравнению с родным портом USB, но, как отметил разработчик (白一百, baiyibai), использование программируемых I/O на RP2040 может быть вариантом, и проект Pico-100BASE-TX может стать отправной точкой.

Учетные данные WiFi и другие параметры можно настроить через консоль управления:

picocom /dev/ttyACM0

-- pico-usb-wifi v1.1.0 --
    profiles:   0 saved (active: none)
    ssid:       (unset)
    pass:       unset
    country:    (unset)
    debug:      off
    status:     associating
    host IPv4:  (not seen yet)
(set|scan|list|use|save) # scan
[*] scanning...
    networks (3):
       1  MyNetwork             -47 dBm  a4:b1:c2:d3:e4:f5
       2  CoffeeShop            -68 dBm  00:11:22:33:44:55
       3  Neighbour             -81 dBm  9c:65:ee:ef:27:c7
(back|join|scan|live) # join 1
[*] staged -- set pass <password> then save
...
    profiles:   1 saved (active: 1)
    ssid:       MyNetwork
    pass:       unset
...
(set|scan|list|use|save) # set pass hunter2
[*] applying -- re-associating
...
(set|scan|list|use|save) # save
[*] saved to flash

Помимо управляющего порта /dev/ttyACM0, порт /tty/ttyACM1 используется для отладки. Хотя проект разработан для платы Pico W, он может работать и на Pico 2 W при компиляции для последней (TBC).

Проект разработан с помощью Claude Code (использовано около миллиона токенов), а исходный код (C, основанный на PicoSDK), объяснения принципов работы и инструкции по сборке прошивки из исходников можно найти на GitLab Кроме того, вы можете загрузить и установить бинарный файл pico-usb-wifi.uf2 непосредственно на плату.

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

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

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

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

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