I like this question and I think another question should be on the features of the software that are most powerful.
sensorsFor the sensors, after M5 with display, we are mainly using the M5Atom and then connecting the various plugin sensors (like QR scanner, Speaker, GPS, or others) - and the GROVE cable to stand along like sensors for LUX, Motion, Buttons (especially for disabled users). But either GROVE or directly into the M5Atom using the pins to control things like buzzers, and motors. For Motors, we need the 5v power.
software featuresAs for software, I've built a really cool framework that incorporates the BLE, and the WIFI (with MQTT and web POST/GET) messaging. But for us, the ability to update already fielded systems requires the OTA capability. So any partition scheme without OTA isn't used.
Object Oriented DesignI still code entirely in C and now C++. I feared C++ was too heavyweight for that small M5Atom - but it turns out it works nicely - and let me wrap those various sensors in an Object Oriented (plug compatible) feature that is adaptable at runtime via BLE/MQTT messages - basically tell it to use the GPS or QR OO Class, and also pins 28 and 32, etc. This is without modifying the installed code (or use OTA to add new sensor options). (I also use Xcode as the editor)
backend web and message processingNote for the MQTT and other to work, there needs to be cloud processing. I have the ability to send any messages to all my devices. So the web needs the MQTT host, and if you want HTTP GET messages to work, there should be a node.js based controller (I use node-red.org). - Also for OTA, there needs to be an "http" host (not https).
If anyone is interested in more of our projects, which we are open sourcing, let me know. We are using 3d printed housing as well.
Check out at least:
https://github.com/konacurrents
https://github.com/konacurrents/SemanticMarkerAPI
and more..
Cheers,
scott