I was shocked when I found out ESP wasn't ARM. It's a weird arch you never heard of. They distribute an ancient Gcc in their SDK, and at least Debian only packages an ancient Gcc for it. Don't know if anybody packages a current-ish compiler. Don't know how big a hassle it is to build one.
There is reasonable GCC support for the ESP Vertex arch, and they seem to be migrating toward RISC-V, so the current ESP32-C3 uses RISC-V arch. But they still have another Vertex part in the works.
We switched from Arduino (which is ARM) to ESP32 and all dependencies compiled and just worked, so I wrongly assumed that it'd be ARM, too. But apparently, their tooling is just really good.
Charles Lohr made the amazing design. I built a little on top, and made a slight modification to the firmware to allow text entry in all languages by sending Unicode codepoints.
So now I can type Chinese (or Japanese, Korean, Russian, Arabic, Thai...) on my phone's keyboard, and have the EspUSB type it into my laptop. Very convenient when the characters aren't printed on the keys.
Pity I never figured out how to do the regulatory compliance for the EspUSB, so couldn't follow through on actually getting it onto a web store (e.g. Tindie, AliExpress, eBay, TradeMe). I looked into it, but the lack of EM shielding is quite difficult to justify, and adding such shielding would make it too big.