Raspberry Pi Pico W 蓝牙功能已获得固件支持

Raspberry Pi Pico W 发布后,一年时间已卖出 50 万片。有众多应用项目是用它来实现,例如用来架设网站、用来监看植物生长状态等。

不过,Pico W 的无线功能只开启了部份,只能使用 WiFi 功能,蓝牙功能仍关闭着,而 Pico W 上的英飞凌(Infineon)CYW43439 芯片其实是 WiFi、蓝牙功能都有的。不仅可以使用 2.4GHz 频段的 IEEE 802.11n WiFi,也可以使用 2.4GHz 频段的蓝牙 5.2,而且是经典 classic 蓝牙、BLE(Bluetooth Low Energy)蓝牙都可以用。

所以在 Pico W 推出时,就已经有人推测之后会再推出可以启动蓝牙功能的版本,或者是已经售出的 Pico W 可以透过固件更新重启蓝牙功能,而这个猜测果然没错。树莓派官方在 2023 年 6 月释出更新,可以让已经卖出的 Pico W 也能启用蓝牙。

注:其实 2023 年 2 月的 C SDK 1.5.0 就已经支持蓝牙,但相同时间 MicroPython 还没有支持。

Pico W 的 C SDK 是以 BSD 3-Clause 协议,MicroPython 则是采 MIT 协议。

Pico W 支持蓝牙现况说明

由于 Pico W 支持 C 语言和 MicroPython 语言的开发,两种版本都有更新,都可以启用蓝牙。C 语言是 1.5.1 版的软件开发工具包(SDK)上开始支持蓝牙,MicroPython 则是透过新建立(build)的固件来支持。

新版虽然支持经典蓝牙,但有一部份暂时不行,即 ACL(Asynchronous Connectionless Lin)与 SCO(Synchronous Connection Oriented Link),估计要更后续才可能完备。而在 BLE 方面,Pico W 可以扮演中央(central)角色也可以扮演外围(peripheral)角色。

更重要的是,并不是同时间只能选择使用经典蓝牙或 BLE 蓝牙,其实是可以两者同时启用的,不需要取舍。至于新版到底支持多少种蓝牙应用型态与通讯协议,可以直接上 GitHub 查看:

https://github.com/bluekitchen/btstack#supported-protocols-and-profiles

为了方便大家尽快启用Pico W的蓝牙功能,官方推荐可以参考 Pico W 的在线文件:

https://www.raspberrypi.com/documentation/microcontrollers/

另外也有一份指引可以快速导引创客用 Pico W 连上 Internet:

https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf

Pico W 历经一年发展,大体可以看出其推进模式。首先,树莓派官方认为 WiFi 的需求会大于蓝牙,所以刚推出时只先支持 WiFi,之后再透过软件开发工具包与固件更新来补充支持蓝牙。

然后,由于软件开发工具包是在计算机上使用,加上 C 语言比较轻量,所以 C 语言的支持速度又比 MicroPython 快一点,MicroPython 是解释式程序语言,需要换替固件才能改变直译环境,也较吃硬件支持,所以支持的速度会慢于 C 语言。

或许未来树莓派也会开放 Pico W 上无线通信芯片,使创客撰写的程序可以直接跑在无线通信芯片上,而不一定非要跑在 RP2040 主控芯片上。

发表回复