pico-usb-wifi เป็นโครงการเฟิร์มแวร์โอเพนซอร์สที่เปลี่ยน Raspberry Pi Pico W ให้กลายเป็นอะแดปเตอร์ USB WiFi แบบไม่ต้องติดตั้งไดรเวอร์ โดยสามารถใช้งานได้กับ Windows, Linux, macOS และระบบปฏิบัติการอื่น ๆ ที่รองรับ USB CDC-NCM
เนื่องจากชิป Infineon CYW43439 บนบอร์ดไม่สามารถทำงานเป็นบริดจ์ (Bridge) ระหว่าง USB กับ WiFi ได้โดยตรง เฟิร์มแวร์จึงสร้าง Layer-2 Bridge แบบโปร่งใส ระหว่างโมดูล WiFi ของ Pico W กับอินเทอร์เฟซ USB ทำให้บอร์ดทำหน้าที่เสมือนเกตเวย์หรือบริดจ์ Ethernet-to-WiFi โดยนำเสนอการเชื่อมต่อ Ethernet ผ่าน USB (USB Gadget Mode) เพื่อส่งต่อแพ็กเก็ตข้อมูลผ่านเครือข่าย WiFi ได้อย่างราบรื่น

คุณสมบัติเด่นของ pico-usb-wifi :
- รองรับ Transparent Layer-2 Bridging เชื่อมต่อระหว่างอินเทอร์เฟซ WiFi ของ Pico W กับ USB
- แสดงตัวต่อระบบเป็นอุปกรณ์ USB CDC-NCM
- รองรับทั้ง IPv4 และ IPv6 โดยไม่ต้องใช้ NAT, ไม่ต้องสร้างเครือข่ายย่อย (Private Subnet) และไม่ต้องตั้งค่า Port Forwarding
- มีช่องทางสำหรับการจัดการและดีบักแยกต่างหาก ผ่านพอร์ตอนุกรม CDC-ACM
- รองรับการยืนยันตัวตนด้วย WPA2-PSK, WPA3-SAE และเครือข่าย WiFi แบบเปิด (Open Network)
- อัตราการรับส่งข้อมูล เฉลี่ยประมาณ 4.75 Mbps โดยข้อจำกัดหลักมาจากอินเทอร์เฟซ USB 1.1 ที่มีความเร็วสูงสุด 12 Mbps

แต่เมื่อพิจารณาว่าอะแดปเตอร์ USB WiFi ระดับเริ่มต้นมีราคาเพียง$2 (~70฿) ถึง $3 (~100฿) และโซลูชันนี้ยังมีข้อจำกัดด้านประสิทธิภาพจึงเหมาะสำหรับการใช้งานในกรณีฉุกเฉินที่ต้องการเชื่อมต่อ WiFi และมี Raspberry Pi Pico W เหลือใช้งานอยู่ เรามองว่าแทบเป็นไปไม่ได้ที่จะเพิ่มประสิทธิภาพให้สูงกว่าข้อจำกัดของพอร์ต USB ที่มีอยู่แต่ผู้พัฒนาโครงการ (白一百, baiyibai) ระบุว่าอาจสามารถใช้ประโยชน์จาก Programmable I/O (PIO) ของชิป RP2040 เพื่อปรับปรุงประสิทธิภาพได้ โดยโครงการ Pico-100BASE-TX อาจเป็นจุดเริ่มต้นที่น่าสนใจ
ข้อมูลเครือข่าย WiFi และพารามิเตอร์อื่น ๆ สามารถกำหนดค่าได้ผ่าน Management Console:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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 แล้ว ยังมีพอร์ต /dev/ttyACM1 สำหรับการดีบักโดยเฉพาะ แม้ว่าโครงการนี้จะได้รับการออกแบบมาสำหรับบอร์ด Raspberry Pi Pico W แต่ก็คาดว่าน่าจะสามารถใช้งานกับ Raspberry Pi Pico 2 W ได้เช่นกัน หากคอมไพล์เฟิร์มแวร์สำหรับบอร์ดรุ่นดังกล่าว (อยู่ระหว่างการยืนยัน)
โครงการนี้ได้รับการพัฒนาด้วย Claude Code โดยใช้โทเค็นในการสร้างโค้ดประมาณ 1 ล้านโทเค็น ซอร์สโค้ดภาษา C (พัฒนาบน Pico SDK) พร้อมคำอธิบายหลักการทำงาน และขั้นตอนการคอมไพล์เฟิร์มแวร์จากซอร์ส สามารถดูได้จาก GitLab หรือถ้าต้องการใช้งานทันที ก็สามารถดาวน์โหลดไฟล์ pico-usb-wifi.uf2 ไปติดตั้งลงบนบอร์ดได้โดยตรง
แปลจากบทความ : pico-usb-wifi firmware converts the Raspberry Pi Pico W into a driverless USB WiFi adapter

บรรณาธิการข่าวและบทความภาษาไทย CNX Software ได้มีความสนใจในด้านเทคโนโลยี โดยเฉพาะ Smart Home และ IoT

