Close

uploaded module for 4.4.48+

A project log for pi2wifi

$5 WiFi for the Pi Zero without using USB

mincepimincepi 03/04/2017 at 01:144 Comments

I uploaded a kernel module for kernel version 4.4.48+, which corresponds to 2017-02-16 raspbian.

On another note, with the release of the Pi Zero W, this project is obsolete.

Or is it really? After thinking about it, I realized it could still be useful for a multi-radio mesh node. So, I'll make some modifications so it will work better in that role.

The only thing I'll have to do is redesign the PCB. Basically I'll flip the ESP module over, and let it hang over the GPIO edge of the Zero a bit. It'll make the assembly a little bit larger, but improve signal strength greatly, both for the ESP radio and the one built into the Zero W.

Using this, and a USB WiFi adapter, you could build a three-radio mesh node without using a USB hub!

Discussions

Arsenijs wrote 03/13/2017 at 16:57 point

Yes, there's AFAIK only two SDIOs - one for SD card, one free. I'm working on #ZeroPhone now and I'm making only one set of boards for both Zero and Zero W, so the ESP8266 solt on the Zero W-equipped ZeroPhone will stay unpopulated and I need to think of some kind of expansion thingie for that slot. I was thinking "SD card slot" but then I realised the SDIO is already busy, and bitbanging is a quite shitty option =(

  Are you sure? yes | no

ajlitt wrote 03/04/2017 at 02:07 point

Unfortunately there is only one SDIO host on the BCM2835, and on the 0W it's presumably assigned to the Broadcom WiFi chip.

However, the ESP8266 can run in a SPI slave mode, as does the ESP8089 driver, so it may be possible to use the SPI master on the GPIO header.

  Are you sure? yes | no

mincepi wrote 03/04/2017 at 02:47 point

Ah, I remember you mentioning the SPI possibility in your write-up. You're probably right about the SDIO usage: the device tree overlay that disables the Pi 3/W wifi chip simply disables SDIO. Thanks for the tip, I'll look into it.

  Are you sure? yes | no

ajlitt wrote 03/04/2017 at 03:58 point

The tricky part would be that the SPI flash shares the SDIO/SPI slave bus.  We've been lucky that the SPI flash in the ESP-12F module stays inert while the bus is used for SDIO.  But in SPI mode you have no choice but to drive the chip select which will cause the SPI flash to assert SDO.  But, since SPI mode is 1-bit only, you can hold SD_D2/#HOLD low which will put the SPI flash into hold mode just like we did for 1-bit SDIO mode.

I would love to see this work with a generic SPI master!  If you do get it to work, you could add multiple ESPs on the SPI bus and multiplex them with chip selects.  You wouldn't get much throughput, but it would be good for mesh.

  Are you sure? yes | no