Raspberry Pi Pico W as USB Wi-Fi Adapter (gitlab.com)

230 points by byb 14 hours ago

MisterTea 3 hours ago

I had the same idea for a Plan 9 USB WiFi using an ESP32. You serve the wifi device as a ether(3) device which negates the need for janky side band config as the config is done over the same 9P interface. Never got around to it.

polpo 11 hours ago

Interesting that Gemini said it was infeasible. It should be aware that using a Pico W as a transparent ethernet bridge has been done several times over in open source projects, for example on BlueSCSI (emulating a Daynaport SCSI-Ethernet adapter) and PicoMEM and my own PicoGUS project (emulating an NE2000 Ethernet adapter).

dsign an hour ago

My experience with questions to LLM is that they mimic reddit a lot: ask them an apparently simple thing that is not possible, and they will bend backwards to tell you it's possible and give you tons of convoluted possible solutions. Ask them a thing that is possible but complicated, and they will be overly dismissive. The good thing however is that between those two banks there's a wide river of utility...more often than not they'll at least mention things I haven't considered before.

vlovich123 4 hours ago

I just did this test with Gemini Flash-Lite 3.1:

> Can you use a raspberry pi pico W as a USB WiFi adapter

> Yes, it is possible to use a Raspberry Pi Pico W as a USB Wi-Fi adapter, but it is a project that requires custom firmware and a clear understanding of your goals.

Then goes off and lists the things you’ll need which at a cursory glance seems like good starting points.

byb 10 hours ago

Exactly, bit banging an 8-bit bus isn't that different from pushing the data out of the USB port. It would be great to try an LLM trained on pre-1900 documents and ask it if powered flight is possible.

Great work on PicoGUS.

dofm 10 hours ago

tonyhart7 8 hours ago

does the LLM speak old english ???

wongarsu 5 hours ago

tehlike 8 hours ago

It's often good to approach what llm said as a guidance, and not as ground truth.

You can ask follow up questions or point to potential feasibility and it will change its answer.

mrhottakes 2 hours ago

"Guidance" that's often wrong and that will change if I ask a follow-up question? Wow where can I send my money??

Chu4eeno an hour ago

I'm not sure even treating it as a guidance is the best approach, generally you should challenge it a lot (which is what CoT kind of emulates), you never know what it is confabulating and when it is correct.

bookofjoe 6 hours ago

Yes, but. I asked Perplexity Pro the same fact question (sports) three days in a row after correcting its error the first day and having the correction acknowledged with a promise to get it right in the future. Same error on second day, same promise. Third day: correct. Perhaps it needs to be in the "Slow" classroom....

oarsinsync 5 hours ago

functionmouse 5 hours ago

rvz 5 hours ago

SecretDreams 5 hours ago

xd1936 5 hours ago

stopcitingai.com. Been trying to say this as much as possible.

alexjurkiewicz 8 hours ago

It was Gemini Flash, probably an even faster variant optimised for immediate response on search pages.

rvz 8 hours ago

> Interesting that Gemini said it was infeasible.

Unless there is a hardware limitation or the hardware does not support it, anything in software is possible.

Gemini and all these other LLMs are designed to convince you that they have "awareness" which they do not have any of the sort. They are neither sentient nor do they have consciousness

whywhywhywhy 6 hours ago

Something doesn’t have to be sentient or have consciousness to answer a technical question like that.

dTal 7 hours ago

Bad take. Some things are feasible and some things are not, "anything is possible" is a useless framework. Example: go convert two smartphones to communicate p2p over their 4g radios - it's all software!

LLM "awareness" is similarly irrelevant. They process information usefully, in a way grounded in reality, and that's that.

rvz 6 hours ago

alnwlsn an hour ago

Buried the lede by calling this a "usb wifi adapter" and not "magic Ethernet adapter that you don't have to plug a cable into". This will come in handy for my systems that are normally air gapped or currently connected to something else, but sometimes I need to get another network connection on there for a few minutes. I don't always have a USB ethernet adapter on hand or enough cable, but I almost always have a Pico around.

Also I posted this comment using one. Speedtest says about 4 Mbps. Surprisingly usable for web browsing though. Very nice tool! I'll be keeping the .uf2 file around for sure.

1vuio0pswjnm7 an hour ago

No Javascript

Peruse README and source code

   x=pico-usb-wifi
   tnftp -4o"|unzip -p /dev/stdin $x-main/README.adoc $x-main/src/*.c" \
   https://gitlab.com/baiyibai/$x/-/archive/main/$x-main.zip \
   |tr -cd '[ -~\n]' \
   |less

xondono 2 hours ago

I’ve been looking for a good solution for doing the exact opposite, being able to connect stuff through USB in my bench, and see them pop up in my office desktop as if they were usb devices.

The closest I’ve gotten is using a raspberry pi in the workbench, but for some weird devices that’s sometimes not good enough.

EvanAnderson an hour ago

In a Windows world I've used the hell out of these devices for licensing dongles on Windows virtual machines: https://www.silextechnology.com/connectivity-solutions/devic...

They're much cheaper than the competing devices from Digi and they've been bulletproof for me. I've got some out there running >10 years.

I've even done stupid stuff like hung a USB Ethernet adapter off of one and made it a NIC on my local PC to talk to another of the same unit hanging off that USB NIC (just to be cheeky-- not for actual use). Stacking things on top of other things is fun.

My only complaint is I wish they did PoE. I use a cheap PoE splitter for that but it would be nice not to have to do that.

anotherpaulg 2 hours ago

If you have CAT5/6 between the locations, USB-over-CAT5/6 adapters are inexpensive and work quite well. I've used OREI's successfully over >60m. But there are many options, with varying limits on cable length.

https://www.orei.com/products/usb-over-ethernet-extender-upt...

marysol5 an hour ago

I've used USB over Network in the past, worked well on Linux

KJs6ZxELzQM37O 7 hours ago

I recently bought Pico 2 W for DualSense (https://github.com/awalol/DS5Dongle).

asc91 2 hours ago

I would like to ask the author, what do they mean when they say 'I spent 2 days and 1M claude code tokens' Did you completely vibe code this? or did you create a spec and asked claude to implement that? How many times did you need to course correct claude when it deviated if it did? How much of your own experience as working in WiFi industry was useful while building this project? And what would be different if you had worked on this project without that experience?

byb 14 hours ago

pico-usb-wifi is firmware for the Raspberry Pi Pico W that turns it into a driverless USB Wi-Fi adapter, enumerating as a USB CDC-NCM device.

fragmede 14 hours ago

Hah! That's neat! So much fun stuff to be had with that particular bit of kit.

WhyNotHugo 2 hours ago

Would love a Bluetooth variant, so I can use Bluetooth HID devices on a host with no Bluetooth stack.

bri3d 2 hours ago

The default reference firmware for the nRF52840 Desktop Dongle does this. https://github.com/nrfconnect/sdk-nrf/blob/main/applications...

bhouston 7 hours ago

Interesting project.

In a similar but opposite vein, I am going on a vacation and I wanted to share the stupidly expensive internet in my room at night with the family so I am likely bringing a raspberry pi to have as a travel router attached to my Mac. In this case, I can use the RaspAP project: https://raspap.com/

This is slightly different in that I do want a NAT.

forinti 4 hours ago

I like this little thing: https://openwrt.org/toh/gl.inet/gl-usb150

You can use it as a repeater, so the whole family can just use the same network/password we use at home. And it is so small, you can run it from a power bank for hours.

Unfortunately, they are not sold anymore.

Tepix 6 hours ago

It's also slightly different because this project is for the Pi Pico.

bhouston 6 hours ago

Yeah, given the through put on the Pico is just 4Mbps in this setup, it will not work as a travel router for the family.

palata 8 hours ago

> Average 4.75 Mbits/sec throughput

Isn't that slow for WiFi?

I mean it's an interesting learning experience, but isn't that strictly worse than pretty much any WiFi dongle?

tehlike 8 hours ago

Yes, the guy clearly spent more of his time than it's worth - you can buy a wifi dongle for a few bucks on aliexpress.

But that's exactly the point of such experience. It's a challenge, and the guy/gal nailed it.

bhouston 6 hours ago

You can not buy wifi usb adapters that work with MacOS on MacBooks I believe. I could be wrong but I think none of them have driver support.

moffkalast 7 hours ago

Well Claude nailed it, but they get credit for the idea.

tehlike 6 hours ago

teaearlgraycold 8 hours ago

The Pico is USB 1.1, so the upper bound is 12 Mb/s.

15155 2 hours ago

Totally pedantic deep dive: the Pico has a USB FS PHY (the numbered versions don't directly correlate to line rate, and FS was defined in 1.0) - the signaling rate is 12Mb/s, but it's impossible to achieve sustained transfers at this data rate under any circumstance:

- USB FS has a 1ms frame limit (HS is 125µs)

- UBS FS Bulk is thusly limited to ~19 transactions x 64 bytes maximum (HS is 512)

- USB FS Isochronous can do 1023 byte transfers, but you can only fit one of those in a 1ms frame (resulting in a giant quantization hole in the packet)

- Focusing on bulk only: the token packet, ACK handshake, inter-packet bus turnaround time minimums, framing bits, CRC bits, and periodic FS SOF packets mean that the actual theoretical maximum data rate is ~81% of the signaling rate

- Bit stuffing optimality issues (required for clock recovery) eat an additional several percent on most data, up to ~17% on pathological data

Therefore: ~9.5Mb/s is the best theoretical data rate that can be obtained with optimal host and device IP and an ideal application layer.

Realistically, ~8Mb/s is the most one can expect on real hardware with an ideal application (and this is optimistically high in my experience.)

drop-volley 12 hours ago

Can you have the Pico operate as an access point? Would love to be able to use this to connect over wifi to a printer (printer in client mode), with the printer and macos talking directly over IP without needing to configure any other routing/forwarding on macos.

bdcravens 12 hours ago

Wifi printer, where both your machine and the printer are connected to the same AP? yes

If you'd rather just expose a USB printer to the network, a Pi Zero is a better fit.

drop-volley 7 hours ago

No. The printer cannot connect to the wifi network that the macbook is connected to. I don't want to expose a USB printer to the network. I just want to allow the printer to connect to an AP created by the Macbook/PiZero/ESP32/insert_cheap_widget device and then allow the Macbook to connect to the printer's IP.

teaearlgraycold 8 hours ago

The Pico W can host an AP.

nicman23 12 hours ago

close enough, welcome back 56(0)k

vardump 10 hours ago

Thanks! Now I potentially have ~20 USB WiFi adapters I didn’t have yesterday.

Even better, no need to hassle with the WiFi settings on the target system.

In wrong hands, Pico W is actually a bit terrifying device, because it combines USB and wireless.

eeesdfsdfg 2 hours ago

I need mesh too

hellweaver666 10 hours ago

Oooooh, now I'm thinking... you could design a simple circuitboard that holds multiple picos (surface mounted) and uses the USB data pads on the back to pull all the USB ports out to an onboard USB hub basically allowing you to add a multitude of wifi adapters to a project in one USB cable. Would be great for War Driving!

JSR_FDED 13 hours ago

Love the way the author labels each of his diagrams as “AI Slop”!

byb 11 hours ago

It's one of the neat features of the AsciiDoc language. The user is able to change captions mid document, in this case :figure-caption:. AsciiDoc and Antora are things I've invested a lot of my time into

https://baiyibai-antora.gitlab.io

MgB2 8 hours ago

I'm kind of fascinated by the first diagram on the page. It sits so firmly in the uncanny valley for me and I can't put my finger on why. By itself every part looks ok and normal, but as a whole it just screams AI to me. I don't know if its the color choices or the composition or something else. It all just feels that little bit off.

I mean, I know its AI, the page says so itself, no one is trying to hide it. But it also just gives me AI vibes on such a subliminal level that I can't figure out why.

Tepix 6 hours ago

It's the amount of little icons and bold text. And then phrases like "No NAT, No Port-forwards"

Also details like the light blue boxes being swapped.

kalleboo 6 hours ago

To me there's something about the "AI Slop Font" where it instantly triggers that uncanny valley. I guess since it's kind of an average of a bunch of fonts so it's somehow familiar but also unfamiliar at the same time.

mhl47 6 hours ago

Absolutely can relate. Thats why I would say: Do your own diagrams! At least the text and formatting.

Where I do think it ads value is "AI slop 2". This is somehow even better comprehensible than an average photo.

Tepix 6 hours ago

The pic "AI Slop 2. A Real World Situation" is great, the USB cable is connected to the wrong end of the Pico!

andrewstuart 12 hours ago

Google Gemini is that naysayer senior developer who confidently tells you it can’t be done.

Claude is that easy to get along with smart hard working guy who just gets on with it and builds it double quick.

ChatGPT is the eager senior developer who says it can be done but can’t actually work it out and fluffs it.

lionkor 9 hours ago

Actually, all of them are fallible, very incompetent machines that are good at writing text. They're not people, they don't have any qualities of people except the really bad ones, and they are absolutely miserable at reasoning.

The only people I know who use Gemini are unemployed.

The only people I know who use Claude vibe-code everything, often including their communication -- they probably let Claude kiss their kids goodnight.

Everyone else uses ChatGPT, and the world is worse off for it.

They are machines. "it" is the only acceptable pronoun, and personifying these machines adds emotion into the discussion and the use of the tool. They are not people. They do not behave like people. If you feel like they do, and you're e.g. autistic, that's entirely fair, so please take my word that they do not behave sufficiently like people in any way.

Nothing they do mirrors the behavior of engineers. They instead mimic the language of engineers. I understand that this is all it takes in a lot of circles to gain respect, which is quite a sad state for those circles, but that doesn't mean its a universal experience.

type0 6 hours ago

> Everyone else uses ChatGPT

I'm actually tired that people put stupid questions in ChatGPT and then present in with a straight face as a source of truth. Sometimes it hallucinates completely, sometimes the conditions or regulation have changed and it gives false answers and no-one cares. Simple collaborations that was possible before now turn into unnecessary arguing. Some ChatGPT users aren't even aware that LLMs hallucinate, I just pointed it out recently and was accused of mansplaining and being a tinfoil hat.

> Nothing they do mirrors ...

"Mirror, mirror on the wall, who is the fairest of them all?"

mechazawa 10 hours ago

Gemini writes pretty shitty code in my experience. We tried it out for a grand total of half a day at work before deciding it wasn't worth our time and switched back to Opus.

ChatGPT writes like it's life depends on it and refuses to correct its own mistakes. It'll figure out a way to write 4k lines for something that could've been done in 500

mrhottakes 2 hours ago

They're all actually a pile of numbers getting multiplied against each other to sometimes produce output that convinces some humans they're people.

puppymaster 10 hours ago

DeepSeek will just wing it and tell you it's done only for you to find 1 major + 3 edge case bugs.

petesergeant 10 hours ago

ChatGPT is very good at code-reviewing Claude’s work and finds the howlers in it fairly reliably

amelius 9 hours ago

How many Mbps?

smilespray 9 hours ago

6

tonyhart7 8 hours ago

not very a lot are they

InsideOutSanta 8 hours ago

seba_dos1 4 hours ago

tehlike 8 hours ago

diego_moita 4 hours ago

I don't have any idea of what is the purpose of this.

Do you want to share an USB device across the WiFi?

If so, why not use the USB-IP protocol? It is already part of the Linux kernel, has implementation for Windows and doesn't require additional hardware.

raffael_de 7 hours ago

what is this useful for?

throwwwll 8 hours ago

AI Slop.

xd1936 5 hours ago

I like that the second image filename is slop_2.png. At least they're self-aware.

arcza 8 hours ago

[flagged]

nolok 7 hours ago

Meta comment to your meta comment : this is a very personal opinion but I cannot stop myself from thinking less about your message (even though I agree with it), just because of that edgy wannabe way to go about naming Microsoft. You want to say Microsoft say that, you want to say Github say that but if you say a vaguely insulting name only to have to specify what you actually mean... It doesn't bring anything to the conversation, except lower the level, and if a company has flaws as big as Microsoft you don't need to resort to childish name calling to expose them. This is my personal opinion.

joejohnson 6 hours ago

I thought it brought something to the conversation

devsda 5 hours ago

> just because of that edgy wannabe way to go about naming Microsoft.

I think it stopped being edgy and transitioned to a symbol of user frustration the moment their CEO tried to address the slop without acknowledging their customer pain.

It is not much different from the micro$oft used here often.

techbrovanguard 7 hours ago

won’t somebody please think of the billion dollar company?

nolok 7 hours ago

LearnYouALisp 6 hours ago

It means GH is now full of slop and pointing out it's owned by Microsoft, for those who may not have known or LMS who did not until recently

ranger_danger 12 hours ago

> I spent two days of a long holiday weekend and about one million Claude Code tokens building this firmware.

GL26 11 hours ago

one million Claude Tokens (assuming you are on opus) = 5 USD = the very dongle you tried to replace. Add the cost of the rasberry pico, you'll have an easier time buying the wifi dongle. The project is cool thought to learn about networks, NAT, Proxys, ect...

byb 10 hours ago

No, it's not really easier to buy a Wi-Fi dongle. My target device is the Spotify Car Thing and SuperBird doesn't have Wi-Fi components. My Claude Code Pro subscription was idle, so it cost me nothing. Also, according to an article from Tom's Hardware from two years ago, four million Picos have already shipped, so I've unlocked this ability for let's say 500,000 devices. Finally, my day job is in the Wi-Fi industry... this wasn't a learning exercise.

farfatched 9 hours ago

The author's tone when they discuss the cost of the project is self-deprecating. They know it would have been simpler to just buy one.

But also, the author has given the community a great gift, both directly (the blog post and the project!) and indirectly (the idea: what else can be implemented in similar ways).

Mashimo 6 hours ago

Finally hacker news on .. Hacker News. No need for it to be economical cheap.

mschuster91 3 hours ago

Is it truly hacking in the traditional sense if everything was done with AI?

dirasieb an hour ago

bdavbdav 10 hours ago

It’s nice that it doesn’t need the WiFi stack or host side configuration though. This would be great for headless machines.

throwwwll 8 hours ago

> The project is cool thought to learn about networks, NAT, Proxys, ect...

The author learned nothing though...

teaearlgraycold 8 hours ago

Eh maybe a few tidbits. But the world gained a new WiFi adapter!

lithiumii 10 hours ago

except now we don't need to spend that $5

gavinsyancey 11 hours ago

You can do this by installing OpenWRT on the Pi and controlling it from the web interface.

matthewmacleod 11 hours ago

But this is a Pi Pico, which is a microcontroller and not a Linux system.

hparadiz 10 hours ago

Two arm cores at 133 MHz. That's already more powerful than my first computer. For $4. It qualifies as a computer on it's own. It runs Linux just a hacked version with an emulated MMU

https://github.com/tvlad1234/pico-rv32ima

Tepix 6 hours ago

RossBencina 7 hours ago