Author here - original HN post https://news.ycombinator.com/item?id=48654676
HN user
byb
I'm flattered. You asked very good questions. I'd be happy to de-mystify it with a longer conversation. Find me on LinkedIn: 白一百
Author here: I have wanted to make a wireless USB mouse and keyboard switch out of RPI Pico Ws for a long time. I would go a layer deeper than USB/IP, because I want to cache the USB handshake to keep the connection enumerated on multiple systems without dropping.
Author here: good point - I do hope the retro computing community enjoys this tool. It does remind me of the Espressif line if ESP8266 and ESP32 devices which have Wi-Fi devices which are available on UART and respond to AT modem commands. Pico-usb-wifi is a nice tool which some clever YouTubers will hopefully be able to use to get old internet appliances, or systems that didn't have Wi-Fi, online.
Personally, I rescued a dozen PogoPlugs from the trash a decade ago and used one to practice self hosting a word press instance. Having a dongle like this would have allowed me to stick it in a corner and run something like librespot or snapcast. Instead, I eventually sent them to the recycler when I moved.
Author here: thank you for this deep dive. I saw peaks of 5.9 Mbps, it might be possible to increase throughput by allocating more memory. The link between the rp2040 and Infineon Wi-Fi device is 31.5 Mb/s. It might be possible to push that out over PIO to an external USB 2.0 PHY. Apparently the Wi-Fi device is capable of higher speeds. Who knows what will be the limiting factor. I'll leave it to someone else to experiment, my focus was the stock hardware without any modifications.
Author here: Thank you, this is one of the nicest things anyone has ever said about my work.
I achieved two goals today: a front page post on hackernews and for being recognized for my work; or more accurately, for being very good at using AI ;)
Author here: You're welcome!
Author here: I will consider writing a blog about ir, but it will require a lot of work on my part, because as I mentioned, this was a digression/side quest from the main task of hacking my Spotify Car Thing. It might work better as a YouTube video.
Author here: Thank you! It's a nice thought that something I made will become a trusted tool for IT professionals.
Now I need to make a nice 3D-printed case.
I admit, I almost couldn't believe it when I turned off my regular blazing fast 802.11ax NIC in the KDE network manager and switched to the pico-usb-wifi and I watched the YouTube "stats for nerds" buffer fully fill up and playback was totally smooth.
Author here: this is actually a "side quest" which I alluded to in the README.adoc and another comment. I've had a few Spotify Car Things (SuperBird) sitting on my desk that I have not touched in a year because I was waiting for the community to come out with a non-tethered approach to reclaiming them. All of the existing continue to either require a host PC, phone, or RPI Zero. I want to deploy these throughout my home and have them usable without my PC or phone nearby - likely with just a Home Assistant dashboard. I spent the first few hours cloning repositories of existing firmware, and examining other approaches, such as Bluetooth low energy with ESPHome Bluetooth proxies, but they ended up being dead ends. I took a compromise that a small wireless dongle would be acceptable. I then began examining the Linux source tree to see if it was possible to flip the USB from client to host and spent a considerable amount of time recompiling BishopDynamics' SuperBird NixOS distribution and building a test dashboard to show the IP networking information, because I knew that once I flipped the device's USB mode, I would lose access to the device. SuperBird took almost four hours to compile on my low end CPU - I let it compile while I hit my five hour Claude Code quota.
https://gitlab.com/baiyibai/superbird-host-mode
I also did not look forward to trying to build in wireless functionality in to NixOS, because it also took 30 minutes to flash the device - I had to lower the transfer block size and add more retries in the flash utility because it kept crashing.
ultimately both the SuperBird work and the RPI pico firmware was about 300 prompts of investigation, research, creating potential approaches, architecting, designing, debugging, testing/validating, and documenting.
Regarding your last two questions... I started out 25 years ago by studying for a CCNA in high school and joined the industry just as first generation 802.11ac devices began hitting the market. From my position, I've worked on every layer from the SoC, PCB, to software. I want to be very careful and say software estimation is very difficult. The main bug (issue #1) I encountered would have been very difficult to diagnose and resolve ten years ago using traditional development workflows.
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.
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.
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
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.
Embrace cheap hardware.
CachyOS on a 200-300 USD Intel n100 tablet with a wired or wireless keyboard of your choice is my go-to recommendation these days. I have one connected to a 4k display and it handles 4k YouTube just fine. It handles Windsurf as well. By comparison, Debian 13 could not handle 4k video and Windsurf overtaxed the system, causing write access errors.
https://www.chuwi.com/product/items/Chuwi-hi10-x2.html
Or spend a little more to get a 12 inch higher resolution display: https://www.chuwi.com/product/items/chuwi-hi10-max-n150.html
If you need more video outputs, higher speed I/O, or a faster CPU for video editing, I cannot help you.
Yes, a neat follow-up would be to clone the copy protection device with a cheap microcontroller. A lot of these devices were filled with epoxy, but it would be funny to find out these were all just 1Kbit EEPROMs. Such an article could give some background on parallel port communication, EEPROMs, and how regular printer data was passed through.
Neat. A personal tone trainer. Seriously, shut up and take my money now. Of course, it needs a vocabulary trainer, and zhuyin/traditional character support.
My biggest source of paranoia is my open home assistant port, while it requires a strong password and is TLS-encrypted, I'm sure that one day someone will find an exploit letting them in, and then the attacker will rapidly turn my smart home devices on and off until they break/overheat the power components until they start a fire and burn down my house.
What a story. This brings back memories and ties directly into my life.
In fall of 1999, I built my first PC with an Abit BE6 to use with an Intel Pentium 3 'Coppermine' 500 MHz. I was a fifteen year old kid working at pizzeria in the midwest making minimum wage to feed my computer hobby. At the time I was reading hardocp, and compiled a list of "good" BX motherboards to try and find at computer show that was organized on a semi-regular basis at the local fairgrounds. This event saw numerous mom&pop computer stores travel from hours away to sell custom PCs, software, and hardware. I remember having a bit of buyer's remorse because I actually wanted the BE6-II which featured the ability to change the front side bus in 1 MHz steps, while the older BE6, only had a set of fixed multiplers and PCI dividers. My 500 MHz coppemine (5 x 100 MHz) didn't post at 750 MHz (5 x 150 MHz) and was unstable above 667 MHz (5 x 133 MHz). This overclock still 'saved' me a considerable amount of money by allowing me to purchase the cheapest part and squeeze performance out of it. That computer hobby led me down a path of studying computer engineering and my eventual departure (escape) from the Midwest.
Years later, in 2015 I moved to Taipei, and remember walking around Neihu seeing all the headquarters of the computer part manufacturers I used in my childhood (Liteon, ECS, Nvidia). I didn't realize that Abit's former headquarters on 陽光街 is right next to many of the places I've been living and working next to for the past decade.
Another memory from that time was buying 128 MB of SD-RAM from Crucial (Micron). I remember being a little pissed because the price had gone up 50% due to the 921 earthquake, which killed thousands and left many homeless, and knocked the fabs offline which led to a supply shortage.
The website https://nissan.com shows how to avoid this outcome.
They were listed in the numerous other replies, and in the initial blog post. Both have been dismissed as undesirable/unworkable. What's your point. I'm not interested in a discussion as to whether alternatives exist, I'm interested in discussing the merits of those alternatives.
The two alternative solutions posed so far are 1) drop the ai bounty program 2) charge for submissions.
Present an alternative.
We are witnessing a new eternal summer and the only way to stem to tide is to increase the amount of required personal identifying information to register, and then publicly shame these people as a warning to others. Maybe it is a good thing that I don't run any massively popular open source projects.
I'm hoping more people will author articles about using these types of displays full time. There was an article posted a month ago about someone using XREAL ONEs with an x86 PC and a portable power bank. https://news.ycombinator.com/item?id=43668192
I've done some cursory research on the XREAL Air 2 Pros because they are currently discounted at 299 USD. I'm interested in retiring a 4K 43" monitor which has been slightly too large.
My question to anyone who has tried XREAL's products is whether the more expensive XREAL ONE model provides a much better productivity experience for 499 USD?
So far, I'm not convinced the Air 2s provide a 'stable' enough image for productivity tasks as this article states. I found a Youtube reviewer who created a rendition of what it is like to use them for video editing - and they weren't enthusiastic https://www.youtube.com/watch?v=-ZhD8Dt6akY&t=316s
Linus Sebastian from LTT did go on Jimmy Fallon a few months ago and show off the XREAL ONEs https://www.youtube.com/watch?app=desktop&v=vybLi25Q8Fw
For me, I'm not interested in XREAL's Android offerings; I'm more interested in Graphine or e/OS, but would need to purchase a new tablet and a new phone with USB-C display output. I did pick up a Chuwi Hi10 X1 Intel n100 tablet a few months ago for about 200 USD, so that solves the battery problem for me. https://store.chuwi.com/products/hi10-x1-n150
If I didn't have that, and wanted to go the powerbank with X86 route, the company MeLE does have some very, very small mini pcs. https://store.mele.cn/products/mele-quieter-4c-n100-3-4ghz-f...
To many people asking about keyboards, I'd recommend simply getting a 60% with bluetooth, or an adapter which converts a regular USB keyboard into a bluetooth adapter. I'm also a trackball user, and the Japanese company DEFT makes some decent ones.
e/OS is the best. To anyone reading this, give it a shot - you can break from from Apple and whatever spyware garbage is installed on your Android phone.
I've installed it to three devices and have daily driven it since June 2023. I got tired of paying the Apple tax, so I picked up a Motorola Edge 30 (Dubai) for ~200 USD which was the newest non-Murena/Fairphone listed on the website - but it is no longer listed because they've shifted to the "easy installer". I've turned to community-built ROMs for my other devices, including a Xiaomi Pocophone F1 from 2017 - which works great - and a Lenovo Tab. I specifically purchased the Lenovo tablet because there was a ROM; there's a user on the forums who is creating a lot of ROMs for devices. I was looking for a tablet to serve as an e-reader and media consumption device, but it's powered off most the time.
The OS is very nice to use. It's very similar to iOS. The browser has automatic ad blocks, so some sites complain that I need to turn off my ad blocker, but this isn't possible. The privacy-first focus has helped me to avoid becoming a smart phone addict. I use it primarily for consuming hacker news articles on the go.
As far as errors go, /e/OS developers have stated they need to invest more time on tablet features, so the Lenovo Tab I have isn't an iPad competitor. Also, my Motorola Edge 30 was stuck on version 1.19 for about 7 months until I manually side-loaded the update. For the past month, App Lounge was having trouble anonymously connecting and updating apps. V2.5 was released a couple days ago and everything seems fixed.
I like being able to anonymously install apps using the "App Lounge". I tend to keep less than 30 apps on my phone and don't use it for gaming. The only Google App I've installed is Gboard for additional language input - other than that it seems like every other app is available. My bank and brokerage apps are supported. I did set up a Garmin smartwatch on the tablet so I could get offline Spotify playback. One negative is that Uber recently updated their app in the last 6 months which broke scrolling on the map, which makes it difficult to see how far away my driver is.
The only concern I really have is that the boot loaders aren't lockable, which could be a security risk if the phone gets out of my possession. Luckily, I have treated my phones as disposable for years.
There are only two things I dream of: 1. An open-source Samsung Dex alternative so that I could plug my phone into a monitor and keyboard and use it as a PC. 2. An /e/OS ROM for an e-ink device with support from Murena//e/OS developers for e-ink devices.
I'd like to plug AsciiiDoctor-Web-PDF. Simple AsciiDoctor markup + the resume template and you get a really nice PDF and HTML output.
100% agree. Most of my bare except: are followed by import pdb;pdb.set_trace() so I can figure out what went wrong and then fix my code so that it never happens again, but I still leave it there because I I don't have time to consider the millions of ways my hastily thrown-together python script is going to fail nor do I want to game out how many different errors could happen. If Python would have been this hard to use 20 years ago, I wouldn't have been able to learn to program.
great read.
I have several Daikin split units and installed Faikins on them. https://github.com/revk/ESP32-Faikin
Having the PCBs made, flashing them, sourcing the connectors,and installing them was a bit involved, but setting them up in home assistant was one of the best things this nerd has ever done.
I wish there was an over-arching collective of hackers who would teach the principles, and help collaborate to decipher these protocols and help build software and microcontrollers to replace proprietary systems like the one Advantage Air has. I bet a simple ESP32 could handle this.
I've had the same desire to extend USB HID devices, but I want to take it a step further. Once a USB device <- Wi-Fi ->USB host technology is available, then a wireless USB switch should be possible. The research in this article is critical to understanding the impact of latency on the experience.
Several months ago, I built a project using USB host mode on a Raspberry Pi Pico, which uses a USB numpad to pass messages to an MQTT server. This uses the Rp2040's USB host mode https://gitlab.com/baiyibai/pico-w-usb-host-mqtt-numpad
https://github.com/adafruit/Adafruit_TinyUSB_Arduino
My implementation plugs in much higher into the stack and doesn't read the full USB bit mask output, which indicates how many keys are pressed/released.
From my limited understand ing, it should be possible to pass these USB messages from HID client to HID host and vice-versa. Then it's only a matter of sending this information over a TCP/UDP interface. However, from my research, it seems the TinyUSB library doesn't provide the full bitmask resolution necessary for all devices. The YouTuber Wendell from LevelOneTechs has also talked about the troubles of getting some devices working with his KVM products, so it may not be as simple as I'm suggesting here.
Overall though, a $15/endpoint is very attractive.
I tried using a Flipper with some NFC stickers so I wouldn't have to carry around so many FOBs and cards. It turns out that the Flipper does not excel at this task. It complained that the NFC stickers I bought were non-writable. And it couldn't read all the sectors on some NFC tags. However, I was able to use the Android MCT app to write to the same stickers and read the tags the flipper couldn't read. Cloning required copying strings to the clipboard, which is something the Flipper's UI is not really designed for.