One Less Binary Blob

Open-source software has gone a long way into making modern technology the way it is today. The Linux kernel alone is almost single-handedly holding up the entire Internet, and various other open-source projects allow for more access to computing resources not just because the software is often free, but because it’s possible to look under the hood and modify it for specific needs. Without open-source software available we often run into problems both expected, such as software licensing costs, and unexpected, which often come up because a developer can’t or won’t fix issues or add features. To that end, a group at Ghent University in Belgium are attempting to rectify a problem with the ESP32 by eliminating one of its binary blobs and replacing it with an open source driver.

The ESP32 is famously a low-cost microcontroller with on-board wireless capabilities, but its Wi-Fi functionality currently relies on closed-source software from Espressif. The team is currently working on building a fully working open-source networking stack with the hopes of enabling greater flexibility of these devices but also making things like security auditing possible. The other major goal is to improve low-cost mesh networking which is currently not available with the proprietary driver. Reverse engineering is the name of the game here, both from a hardware and a software level, but current versions of the software already able to send and receive packets.

The source code for the project is available on the team’s GitHub page for any open-source aficionados to take a look at. We certainly hope the project gains some steam, as any new open source project helps all of us using the platform. Open source projects frequently get stymied by a single or small handful of binary blobs too, often with little hope for recourse. Examples include Android being an open-source operating system but generally using the closed-source Google Play suite in practice, or Firefox including support for Adobe Flash. Another great example is that even computers running 100% open-source code once they boot their operating systems, there’s still some black boxes running in the background few of us think about.

Thanks to [Crote] for the tip!

36 thoughts on “One Less Binary Blob

    1. Yeah, I’d love to see this work ported to the ESP8266. I still have a ton of those, both in service and as new stock.

      Having a fully-open-source stack would give me a lot more peace of mind. Not super crazy about having a binary blob between me and the network interface when the device has internet access. I wouldn’t put it past them to not at least include the occasional telemetry packet back to home base.

    1. The firmware is developed and hosted in the EU, so no issue there. Its ultimatly up to the user to not break the law…

      A car can go faster then the speedlimit, yet no car manufacturer had to install speed limiters.

          1. A 65 MPH limiter for inexperienced and/or reckless drivers would be a great thing, would substantially reduce fatal accidents. Require extensive training and a clean driving record to have the limit removed. (For those who drive on the track, have a “track mode” that bypasses the limit but is illegal to use on public roads, with lights flashing in a specific pattern to make it easy to spot and only allow the mode to be enabled/disabled when parked.)

          2. @NiHaoMike
            Or, you know, it’d get them rear ended and killed on the highway. Or get someone else killed because of the tangled up mess that happens if there’s large number of people going significantly different speeds than each other.

      1. I don’t think that’s how FCC rules work in this case. If you have a device that’s capable of exceeding maximum possible TX power, it will not be FCC certified, regardless of what you’re running on it. With binary blob, Espressif was able to bs their way to FCC.

        1. Not really, this is a module and not an end product. While there is a question on the module certification document that asks how operation is restricted to FCC rules, saying you provide a driver that ensures this is accepted. If the user decides to uses another driver the modular certification obviously isn’t valid anymore, but they can theoretically certify the resulting system again (if it complies with the other driver).

          1. This is somewhat similar to the legal issue of using a certified module but increasing the supply voltage. A lot of simple SAW oscillator based transmitters will work and produce a higher output power.

    2. That’s a challenge for anyone who wants to use the fully open-source firmware on an ESP32 device they’re making available for sale. Which you’d have to contend with anyway, because using a module doesn’t magically obviate *all* of the regulations you would’ve needed to show compliance with anyway.

      And in any case, the only regulatory burden that adjustable TX places on you, the would-be seller, is that you have to lock out non-compliant TX power, which should be pretty trivial if you wrote your firmware right.

      I can, if I want to, buy the relevant parts to make a Sparkfun Artemis, and then write the firmware to give it adjustable TX. I know this can be done, because I have done it. Again, the stumbling point is when I turn around to sell it, or at least have it manufactured in large quantities, I have to get the relevant documents to show that I am compliant with FCC regs. And again, I know this, because I have done it.

    1. Both devices have same CPU architecture ( from same manufacturer ). that tplink adapter was “hacked” long time ago, they had to change chip-set to stop people from using it as wifi monitor / frame sniffer.

      1. It’s more that it reminds me of a meme image from around when I was in college, although it’s still drifting around the Internets if you look…

        The caption varies, but is universally some variant of “when there’s a will, there’s a way”. The picture depicts the back of… most likely some lower-end Dell OptiPlex from the Pentium 3 days, and a truly desperate string of adapters being used, in absurd fashion, in what appears to be a rather misinformed attempt to bypass the lack of a USB port, to access a USB thumb drive.

        From the back of the computer, it’s — a DB25 male-to-male gender changer, a DB25-to-DB9 serial adapter, a DB9-to-PS/2 serial mouse adapter, a green PS/2-to-USB-A-Female adapter, and finally the drive itself.

        I hope I don’t need to explain why that won’t work, least of all on /this/ site! but it’s good for a chuckle, regardless… and, a likely similar situation to the set of six (yes, I counted) adapters on that TP-LINK thing, up to and including the u.Fl/ipex-to-SMA or -RPSMA dongle that connects it to the board proper.

    2. Attenuator chain, looks like.

      It’s a way to let the devices talk directly, without radiating (regulatorily significant amounts of) RF onto the air, but also absorbing enough power that they don’t burn out each other’s receivers.

      If you cabled them directly without attenuators in the link, you’d exceed the Rx max power by quite a margin.

    1. Had a look around, but even when you’re talking about american manufacturers (eg. atmel/microchip’s ATWINC1500) there are zero chips that don’t require their own wifi firmware afaik. No chips allowing you to simply drive the radio registers yourself with a library.

  1. I’d guess;
    Rp-SMA -> SMA,
    30 dB (or so) attenuator,
    another attenuator (I still guess 20-30dB),
    some unknown thing (DC-block perhaps),
    SMA -> Rp-SMA,
    Rp-SMA – MCX pigtail, or is the connector on the ESP something else?

  2. Android open source?
    I had to Google that:

    “tl;dr: In the time since they released the first version of Android, Google has moved many important features to its proprietary Google Play Services. Therefore, Google’s version of Android, which is installed on most Android phones, cannot be called open-source.”

  3. “The Linux kernel alone is almost single-handedly holding up the entire Internet…”

    That’s quite the mono-culture you have there. Shame if anything should happen to it.

    1. Really not a mono-culture despite the truth of that statement – too much variation in which version of kernel and its configuration before you even get to the everything else on the stack and more than a few custom elements to address specific hardware. It is a mono-culture as much as the human-race – all within reason identical enough you can tell they are related but that is about all.

    1. Don’t know if Espressif made the WiFi IP, but they bought the Bluetooth core from CEVA. Atheros was licensing their WiFi core at one point so some derivative could well be in the ESP. There are many other vendors as well.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.