Как стать автором
Обновить

Добавляем WiFi к Raspberry Pi всего за $2

Время на прочтение2 мин
Количество просмотров29K


Разного рода хаков для мини-ПК Raspberry Pi Zero, вышедшего в тираж пару недель назад довольно много. Правда, пока что большая часть — простенькие приемы, типа впайки WiFi модуля, что и хаком особо назвать нельзя. Сейчас начинают появляться более интересные вещи, среди которых — использование SDIO для добавления WiFi модуля. Причем USB при этом не используется, порт остается функциональным.

Пользователь Hackaday.io с ником ajlitt некоторое время задумался о возможности добавления WiFi модуля к таким платам, как Raspberry Pi A+ и Raspberry Pi Zero. Дело в том, что у Raspberry Pi B+, например, несколько USB портов, и один из них можно без проблем занять соотвествующим WiFi модулем. Но у Zero и A+ портов минимум, и подключать к ним WiFi модуль не всегда представляется возможным. Решение умельца оказалось довольно оригинальным. Дело в том, что у Raspberry Pi есть специальный GPIO-разъем с пинами, и к этому разъему можно подключать различные устройства, в том числе, и SDIO-девайсы. Эту особенность «малинки» и было решено использовать.

SDIO — это специальное расширение SPI-подобного протокола, который используется для работы с SD картами памяти. Идея SDIO — подключение совместимого устройства к разъему, для получения дополнительной функциональности гаджета. Этот способ активно использовался, например, в наладонниках (КПК). К такому разъему можно было подключить GPS-модуль, или что-то другое, получив новую функцию в своем устройстве.


Пример подключения GPS-модуля к КПК

Ajlitt попробовал найти драйвер для чипа ESP8089, и нашел спецификации самого чипа, где говорилось о том, что шину ESP8266 SPI можно освободить, убрав чип флеш-памяти. Оставалось только подключить SPI-контакты ESP8266 к SDIO Raspberry Pi, и остальную работу по подключению уже доделывал драйвер.

Для того, чтобы WiFi заработал, необходимо в самом начале отпаять SPI-память от модуля ESP-03.

Распиновка следующая:



Далее соединяем 3.3V и GND. Подключаем CH_PD (CH_EN на ESP8266 чипе) к любому свободному GPIO. Можно использовать, к примеру GPIO4. Это позволит подключить питание к модулю, а драйвер правильно активирует чип. Другие GPIO после подключения уже не стоит использовать. В противном случае ESP8266 захочет загрузиться из флеш-памяти, которая уже удалена, и ничего не получится.

После этого качаем 4.2 kernel из Raspberry Pi Github. Лучше всего https://github.com/raspberrypi/linux.git, ветка rpi-4.2.y.

После создаем esp8089 модуль:
git clone github.com/al177/esp8089.git
cd esp8089
make


И загружаем модуль:
modprobe mac80211
insmod esp8089.ko


Результат — WiFi модуль без использования USB. Вся работа довольно простая, нужны минимальные навыки пайки. При этом стоимость модификации составляет всего $2. А вот такие способы уже не нужны. Канал в случае работы со SDIO не такой быстрый, как в случае использования выделенного модуля, но вполне приемлемо.





Страничка проекта с техническими подробностями.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+17
Комментарии11

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн