Nutcracker Challenge: Blob-Free WiFi and BLE
pine64.org
pine64.org
(Some background: Most western designs of wireless MCU have a user-programmable core and another core handling Wi-Fi running a proprietary blob. Often the flash on the Wi-Fi side of these is inaccessible to the user core and thus deblobbing them would be hard. The ESP8266 and ESP32 are unusual in that the Wi-Fi "blob" is just a proprietary static library (.a file) linked in with your application, so it would be entirely feasible to deblob it. The BL602 seems to be trying to compete with ESP parts, follows a similar design, and thus can also be deblobbed, but is presumably much less available and much less documented.)
Wasn't the BL602 just released last week? Bouffalo Lab is also a rather new company so trying to gain market share & attention with a more open strategy sounds like a good idea.
BL602 support Bluetooth 5.0 with longer range, mesh network, lower power consumption ++
For me this makes BL602 a winner, if the SW can catch up.
Because RISC-V
Basically they want to reverse engineer this 10MB binary file:
components/bl602/bl602_wifi/lib/libbl602_wifi.a
Which references an internal closed-source sdk:
phy_bl602.c
phy_hal.c
phy_tcal.c
rfc_bl602.c
bl602_rf_private.c
etc..A more serious reason I could think of : maybe pine64 is trying to convince them to do just that, and this contest is to show them there is public interest (pure speculation from me, of course).
If that blob was open sourced, it would have been great to make changes to the wifi stack and make it truly async.
Many of the solutions I had found talked about cooperative multi-threading, which doesn't work if I can't make the wifi stack cooperate with me.
Maybe I can make my device run that much smoother during wifi drops now!
The 4-day old HN thread BL602/BL604 RISC-V WiFi and Bluetooth 5.0 SoC will sell at ESP8266 price point [1] links to a cnx-software article with the following:
> TL Lim, the founder of Pine64, also participated in the discussion and would consider launching a Pine64 BL602 board if an open-source toolchain is available.
> A proprietary device driver is a closed-source device driver published only in binary code. In the context of free and open-source software, a closed-source device driver is referred to as a blob or binary blob.
Right now I see three pull requests: one that adds an echo statement to a build script, another that deletes a file they claim is not needed and one that renames a directory and changes some paths in the README.
In this link's case, if pine64 want to get people excited about that EVB and start hacking with it, it sounds like an efficient strategy. Whatever the real value of the commits are, it's the users who are committed :)
At least, in this case, they ask for contributions on a repos they own.
Sure, some people aim at low hanging fruit. But remember that this challenge was just announced. Actual quality contributions take time.
It'll be interesting to check again in a month or so, and see what has been committed.
Sure you can translate documentation or fix grammar, but otherwise there isn't much you can or even should do without a board to test your changes on. "It compiles: ship it" level contributions are not helpful in general
It should be possible to start documenting what it does, start investigating how it's structured, how it interacts with the HW, etc. This would help understanding the HW, and so on.
It will require more than I thought to make a non-trivial commit!
The vendor plans on releasing a low-level radio API.
https://github.com/bouffalolab/bl_iot_sdk/issues/1#issuecomm...
Is there something I'm not getting? Is this a filter to make sure only people that know git will get hardware to start hacking on top of?
https://github.com/apache/mynewt-nimble/tree/master/nimble/d...
There is no PC here - those are microcontrollers.
- the idle power consumption is noticeably higher, there are open bugs for more than 1 year about that
- They are not validated by the Bluetooth consortium. You're gonna need to get your own certification to claim product supports BLE.
If you're building a commercial BLE product - my advice: go with Softdevice.
MT76 firmwares are pretty small (of the order of 100kB), while Intel Iwlwifi firmwares are like 1MB, and ath10k-ct is like 200kB big, so it means reversing MT76 firmware is probably a bit easier.
Oh, yeah, it's probably not RISCV so no hype.
Good luck to them anyway, more "open" firmware, the better.
There isn't a blob-free WiFi/BLE IoT chipset. It would be appealing for many.
> Oh, yeah, it's probably not RISCV so no hype.
It is though?
Entirely different categories in both electrical and compute power.
Their marketing/product folk really aren't doing them any favors.