What am I missing?
Platforms are a fraught industry; Apple has done amazingly at making a closed platform that nonetheless manages to take a cut of third party apps. Generally either a platform is totally closed to extract all the value or totally commoditized so nobody makes much profit from it.
I would say that ESP32 is the "smartphone" for Wifi platforms; the SimCom and Sierra Wireless devices are the equivalent for GSM.
> I still haven't managed to get a consistent working GSM connection.
Pay very close attention to the power supply specs and antenna routing.
I guess my requirements is a microcontroller that just works. Let me elaborate.
I have a Galaxy S8. It has a:
* Accelerometer * Barometer * Gyroscope * Hall sensor * Proximity sensor * Fingerprint scanner, Iris scanner, Magnetometer
Ignore the last bullet. It also has WiFi, Bluetooth, and GSM. I don't have access to any of this data without putting in some work, eg. I can't get pressure readings from the barometer, or my location from the GSM. I'm expected to just use them as is.
Now take the ESP-32 which comes from the other end of the spectrum. I can cobble together a setup with all the sensors and communication protocols (recognizing that the ESP-32 comes with a few built in), but I have to write/copy a mountain of code to get them all working and integrated. The same goes for something like a RPi.
What I would like is a board that has these capabilities built-in with an API on top of it. So I could say something like:
``` import easy_api as ea
my_location = ea.get_location()
if my_location == (1,2): wifi_con = ea.connect_to_wifi("SSID", "PASSWORD")
message = ea.get_new_sms()
if sender(message) == "000-000-0000" and content(message) == 1: ea.buzz_piezo(duration = 5) ```
It's ease of use for prototyping that I'm looking for.
It's expensive but you can for example toggle mains electricity on and off with some super basic electronics skills and about 5 lines of Python [1] (or many other languages). You can add GSM functionality with a regular USB modem, though the API isn't quite as nice [2]. WiFi is much nicer [3].
[0]: https://www.tinkerforge.com/en/
[1]: https://www.tinkerforge.com/en/doc/Kits/HardwareHacking/Remo...
[2]: https://github.com/Tinkerforge/red-brick/blob/master/program...
[3]: https://www.tinkerforge.com/en/doc/Hardware/Master_Extension...
I used them for a previous job and had no problems. They support WiFi and GSM out the gate, and you don't even need to write any code for prototyping if you use their Tinker mode.
Unfortunately, even if the BOM costs them maybe £100 at volume for a chunky FPGA and some sensors and signal parts - much more for something specialized like an rfsoc board (like easily enough to buy a house), they're intended to be bought with people's bosses money so they're not really within budget for a hobbyist. That's also partly why the documentation can be quite poor - the bargain chips (think Chinese companies with funny names on LCSC and taobao) kind of assume you'll either reverse engineer it as a team, someone speaks chinese, or you'll ring them up and ask for support. The more mainstream parts in higher margin products have much better documentation, i.e. the big American silicon companies will usually document how their chips are programmed in depth rather than some obscure-ish Chinese parts I've seen where you either work it out yourself or use their slightly wonky freertos fork.
What kind of sensors do you have in mind? Phones do have sensors but the software isn't really optimized for high speed data acquisition (I think using camera interfaces is a hack used in industry for getting data into high level embedded systems)
Honestly, I'm really looking for a board with all the bells and whistles. Just a simpler interface and some stuff that just works out of the box. Especially communication protocols like GSM, Bluetooth, WiFi etc.
PSoC is basically a microcontroller with a small field programmable analog array bolted to it so you can get a but more bang for your buck on the board.
If you want high speed signal acquisition try the nxp lpc4370.
In cases like this, you want to pay only for what you need, monetarily but also thermally and in PCB real estate. You can't afford to have a bunch of random unnecessary sensors on board.
That's why you don't see some smartphone-esque everything-included devkit.
If you want a nice composable ecosystem to built things with, I'd look at Arduino and Raspberry Pi. They have a variety of "hats", which are extensions that you can use to interface with things, like a GSM modem or a sensor suite.
I'd also look at the TinkerForge ecosystem, which has a dizzying array of high-quality, well-integrated, pluggable blocks that you can use to construct various things. It is expensive however.
Hope https://postmarketos.org/ will be more successful.
I haven't closely followed tablet/ipod type devices, but pinephone and purism librem 5 are (not-quite-out-yet) linux-based phones.