Liberating Wi-Fi on the ESP32 [video]
media.ccc.de
media.ccc.de
By being compatible, users get all the benefits of the existing corpus of help on the internet. And being compatible make the cost to entry lower. If somebody wants to make a very small modification of the MAC layer, they can do it as with the closed source and just go behind the curtain and file a little the thing they want to hack, without the cognitive load of learning a new API.
ST still far behind when it comes to this stuff.
That'd be revolutionary.
I love the ESP32. But they love (too much) current.
Search for the SiPs and SoCs, they all support BLE.
Edit: also afaik they don't have a mcu+wifi in one yet.
- BK72xx Ex: BK7231T, BK7231N
- RTL87xx Ex: RTL8710BN, RTL8710BX
- RP2040 But seems like the wifi is an extranl module in W boards
Taken from https://esphome.io
And they're programmed in IAR or CCS instead of in the Arduino IDE, and they're programmed with an RTOS and the Cortex M4's powerful ISR engine instead of just a "while" loop.
ESP32/ESP8266 are basically optimized to be hobbyist-friendly, while most other wireless systems are not.
Arduino was similar at first, but stayed on low-performance avr chips for way too long and non-chinese ones were expensive (and well, no wifi), rpi pico has some nice features, but much harder to get at first, and everything else is a "raw chip" bought on sites like digikey, with expensive shipping, 600+ pages of documentation, 300+ of them needed to send a first ping, you need to solder them onto a board and programming usually requires some expensive rig.
I don't remember the CFR off hand, but the FCC explicitly allows anyone to use small numbers of uncertified devices. It would still be a violation if those devices don't otherwise follow regulations, but using modified hardware or software isn't itself prohibited.
What about integrated circuits?
Where's the line drawn?
Am I allowed to order some parts from Digikey and assemble them into a widget, or must I start closer to the beginning by mining my own ores?
Even if it's not FCC regulations, but some other agencies, there may be some close re-examination of what's allowed due to safety.
I'm guessing certain manufacturers are going to be impacted more than others.
I'm sorry for the uncertainty in boardrooms and garages across the world. I diversified my embedded sources but damn it's annoying.
But I suppose that's the machine.
I just picked up an ESP32-C6 for some mostly legal Bluetooth and maybe Zigbee experiments. I don't plan on hacking to this level, the Rust ecosystem is welcoming enough to make just building fun so far.
On a side note, I stepped in shit today. I know I have five q-tips in storage somewhere. And a few more in the closet. Sorry for the weird tangent.
I'm sorry to all.
Financial independence is just... it's nice having on top of other security and basic life guarantees.
Enjoy it while it is there.
And there is at least one good reason: certified and unlicensed radio equipment, like Wi-Fi(or unlike HAM) are expected to be tamper resistant, for public good. And so last time FCC discussed certification requirements for Wi-Fi routers, they naturally considered extending it to software in form of mandatory Secure Boot - for every ultra vulnerable garbage Wi-Fi routers! That was a horrible idea and was scrapped.
For now, I think, IANAL, this is semi-legal or semi-illegal unless resulting firmware clearly generates out-of-spec emissions.
This is such an own-goal.
The way manufacturers implement this is by locking out third party firmware. Then the device goes out of support a decade before people stop using it, but because nobody else can update it either -- and the manufacturer has higher internal support costs because there is no community submitting patches they could just adopt and ship -- the device gets full of public unpatched security vulnerabilities. Which at scale is a significant threat to national security. On top of losing whatever other benefits the public would derive from the community being able to fix firmware bugs or add features.
Meanwhile the purpose of the requirement is supposed to be to keep users from modifying the radio parameters to exceed regulatory limits. Which, first of all, hardly anybody is going to do anyway, because the vast majority of people don't even know how and most of the remainder aren't interested in risking huge fines just to avoid buying a second access point. But the people who are going to do it, because the devices don't get patched, can just use the vulnerabilities to root them and then modify the radio parameters anyway.
Which makes it a pointless rule that compromises the public good.
I guess it's another anecdotal datapoint that shows disastrous state of the field called software engineering, especially relative to other professional fields of engineering(cf. https://xkcd.com/2030/).
As far as I can tell there is no actual requirement to block third party firmware, merely a vague rule that says they have to do something. But designing hardware specifically to enforce the regulatory limits even if the firmware requests otherwise would cost money whereas blocking third party firmware just screws over the public, so in practice that's what they pick when you force them to check the box.
On top of that, using that method is also the least effective because then any firmware vulnerability still allows regulatory limits to be exceeded. And if you're okay with that then there are plenty of alternative measures that could be used to check the box at low cost as long as you don't care that they're not very effective. But somehow that's a failing for the alternatives whereas with software it's just expected to be rubbish.
I even made a sample implementation for Linux. Unfortunately, I couldn't find a single IoT chip that would give low-level access to the PHY good enough for this :(
Cleaning up the Linux code and publishing it is on my TODO list...
Unfortunately since the chip doesn’t support 5G WiFi it’s a mess where you need to switch the phone to a different 2.4 only network, configure the device, then switch back. Better to just use BLE..
[1] https://events.ccc.de/2024/12/22/38c3-poc-isdn-version/
[2] https://dashboard.eventphone.de/d/de7sgxz63vzeoe/38c3?orgId=...
Also it's got its own frequency so it's not cluttering the ones used for WiFi, Bluetooth, Zigbee etc.
I guess they could use an app or something but dect is rock stable and has much better range than WiFi.
I got a nice Siemens one that is about the size of a nokia 8210 so it's not like you have to carry a huge brick either. I guess the battery is pretty dead now though. But it is replaceable like all batteries of that time.
Way more robust than VoIP over Wifi.
A perfect example is chess. It used that a lot of knowledge was in books, often in foreign languages. Nowadays everything is out there in the open and additionally you can casually play games against top 100 opposition once you are okeish enough accelerating the development even more.
Doesn't matter if the C code is open or not when calling into it from Python
I guess that they had no choice, the 8266 was originally meant to only be used in serial to WiFi converters but it kinda exploded in the maker community. I guess that drew regulator attention.
But cool to see that this is being worked around.
So, the original thinking was "if you need wifi, we can't price a standalone chip competitively, just buy a SoC". But the genius of ESP32 was that they approached it the other way round: they built a wifi chip, and then figured they can carve out some room for user code. No need to pay for a separate MCU. This worked for a lot of customers, and the economies of scale took care of the rest.
A general purpose WiFi adapter can do gigabit sustained connections over PCI or some other high speed interface. Entirely different class of chip.
It easily goes to tens of Mb/s.
I can't think of an Apple product that needs low power Wifi and/or Bluetooth, and also operates at such a low price-point that there's not budget to put something bigger on the BoM.
Apple products would absolutely suck if they used ESP32 for their wifi and Bluetooth functionality.
The RAM use is also... noticeable. It takes quite a lot for this chip do WiFi.
Other 10 pins, on which ADC2 channels are possible, can only accept pulse data if you are using Wifi.
This is probably due to firmware limitations.
The genius of Espressif was that they didn't issue C&D letters and DMCA takedowns when people started modifying firmware for their product using garden variety GCC without even asking and then ported hobbyist garbage called Arduino Core. They did initially panic a bit, but soon their management realized it's a golden ticket to something, and they bet the whole company on it. And they got the return they deserve.
There aren't a lot of aspects that are technically so advanced about ESP8266/ESP32. It's just the ones made by the hungriest and most aspiring Wi-Fi chip manufacturer.
Relevant:
Copying Is Not Theft
https://www.youtube.com/watch?v=IeTybKL1pM4
Copying is not theft.
Stealing a thing leaves one less left
Copying it makes one thing more;
that’s what copying’s for.
Copying is not theft.
If I copy yours you have it too
One for me and one for you
That’s what copies can do
If I steal your bicycle
you have to take the bus,
but if I just copy it
there’s one for each of us!
Making more of a thing,
that is what we call “copying”
Sharing ideas with everyone
That’s why copying
is
FUN!Otherwise why is sharing the norm in one small specific instance and not the rest?
Taking is the norm.
CATL isn’t “sharing” any of their battery IP with competitors. They consider it trade secret and will actively pursue recourse inside or out of China.
What is apparent is they use cultural misunderstanding to justify stealing IP, even though they actively try to protect their own inside and outside of the country.
https://www.ess-news.com/2024/10/28/calb-sues-catl-over-pate...
Patents were established even before Columbus.
Do you have some examples of this? Because I hear it parroted a lot and yet the only thing people can point to is "but the US stole some designs from Brittain on some early machines" - which is not at all what we're talking about here, and was at nowhere near the scale of China's theft.
Then there is Eli Whitney, to give an example of an American who enjoyed US patent protection. He patented his cotton gin.
You would want to ask a historian for other examples.
(damn, the imaginary property maximalists really came out of the woodwork on this thread)
Indeed the lowest price $2.551 from Arrow has a MOQ of 5000 but Newark does have it for a promotional price of $2.73 for quantities as low as 1.
It’s not $2.5 but that’s why it was quoted as ~$2.5 in my reply, since it’s in the ballpark.
For volume production (10K, 100K, or more units) you can get other WiFi ICs that are cheaper than buying an ESP32 module. The difference is that other companies don’t care about engaging the hobby and low volume markets so they don’t put an effort into making them cheap.
If you’re doing one-off builds, you’re at the mercy of whoever decides to make an effort to make things cheap and accessible. Some companies deliberately make their products hard or even impossible to access for hobbyists because it’s not worth it unless you’re the hobbyist market leader (Espressif)
https://github.com/espressif/esp-hosted
I assume it uses the blob that is mentioned in the video.
As for why? Regulatory (FCC) compliance is probably a part of it, I think the ealy ESP chips were dubious in this regard. Licensing might be a factor as well (a lot of wifi chips use ARM cores; Espressif doesn't, though not sure how much of a factor this is). Support comes into it too - established wifi vendors provide support and help you with RF designs; Espressif has forums (maybe larger customers get proper support now?)