As far as I know this took them a while to learn. In the beginning they were your typical weird chinese chip maker, but people volunteered effort into documenting their products because they were just that good. Now they've learned to do it themselves and can probably help M5 with it too.
Edit: I took a look at the current ESP32 technical manual[0] as well as an example of Xtensa ISA documentation[1] - it definitely looks way more detailed than what I remember. I'd have a lot more confidence debugging weird behavior today -- it looks like I have enough to determine if there's a bug in my written/compiled code vs. a bug/discrepancy between the silicon vs. documentation.
0: (730 pages) https://www.espressif.com/sites/default/files/documentation/...
1: (702 pages) https://www.cadence.com/content/dam/cadence-www/global/en_US...
Edit to add: I just visited their site and saw they released a new version of the Core series a few months ago : the CoreS3 (which upgrades and replaces the Core2). Obviously, more, faster and better but I was curious about the specific differences. After some searching I found this article covering the changes and upgrades in detail: https://shop.m5stack.com/blogs/news/m5stack-cores3-the-third...
If I was teaching a middle school or high school hands-on intro to computers, electronics and making lab, these would be where I'd start. With screen, wifi, BT, touch, RGB LEDs, buttons, camera, mics, IR and a diverse set of sensors all built in, kids could make just about anything. And that's before even getting into the hundred-plus stackable or pluggable add-ons ranging from motor controllers and physical interfaces to LoRA, PoE and encoders.
They are a pleasure to work with, be it the programming methods, documentation or esp-idf SDK.
But yes, it is a shortcoming.
So, hopefully this is a good thing for M5Stack. I don't know what kind of pressures this will have on the company internally, but hopefully their outward facing presence will only get better.
I was debugging an issue with a gps chip on a custom PCB and decided to get a reference hardware implementation to do some sanity checking. After doing some searching I found the M5Stack U032 GPS module which claimed to use the same chip and amplifier that was on the PCB...
So I ordered it and it showed up and printed on the case is the model # of the GPS chip which matched the documentation. Doing due diligence I open the case and notice that the footprint of the GPS chip on the board doesn't match the datasheet for that IC and there is no identification marking stamped on the chip housing, but there is a spot of glue residue where it looks a sticker was removed...
After some sleuthing I finally identified the gps chip on the board, which was not the chip listed in the documentation or printed on the case of the module!
I can understand having documentation that gets out of sync, but the fact that it looks like an identification sticker was intentionally removed from the chip housing leaves a very bad taste in my mouth.
But despite the lack of super granular detail, I haven't ever noticed their high-level documentation being straight-up misleading like that.
Tried Platform.IO?
https://platformio.org/platformio-ide
As much as I despise IDE's for embedded systems development, I've become quite a fan of the PlatformIO IDE solution .. its quite comfortable, and being able to switch to PlatformIO-CLI tooling has made for a "best of both worlds" scenario.
One of the things that might be a bit different is that M5Stack has had decent Python support and Espressif has typically only done the core C-based stuff.
But I'm optimistic. Hopefully this just means more access to newer chips sooner for M5Stack.
Plug for https://www.nanoframework.net/ https://github.com/nanoframework/nanoFramework.M5Stack
Hopefully they fix their website though, documentation links to nowhere left and right last time I was on there. Granted I found what I needed mostly on Github.