Ask HN: Why No Smart Phone Esque IoT Device?

19 points by raizinho ↗ HN
I've been playing around with hardware, IOT, and microcontrollers for the past year, and always wondered why there isn't the equivalent of a smart phone IOT device or microcontroller in the space. Even the cheapest phone has a host of sensors already integrated which would make getting up and started with projects so much easier. (I still haven't managed to get a consistent working GSM connection.)

What am I missing?

28 comments

[ 3.6 ms ] story [ 59.2 ms ] thread
Buying a phone and replacing the software will be cheaper unless you're making truckloads of these? (There are a dozen brands of point-of-sale systems that are an iPod Touch or similar with a magnet attached to the headphone jack)
Not quite sure what you mean by "Smartphone-esque". There is a bunch of devkits with multiple sensors integrated, systems with standard connectors and a range of matching sensors and outputs, ..., which make prototypes and one-offs quicker to make. Of course more expensive than starting with individual parts. And sometimes using a phone, possibly with a small custom board, can indeed work.
Not sure what you mean exactly but coming from the IoT end there are plenty of options to connect existing platforms to mobile networks (ArduinoGSMShield for example). Coming from the smartphone end there are several hackable projects too that enable you to build a smartphone like IoT device. Look at pine64.org for example they basically have all the parts to build a smartphone like device with sensors.
There are dev devices like the M5StickC & M5Stack Fire that comes with a bunch of sensor bundled.
Ordered a couple recently, so I'll play around with them once they arrive.
Are you asking about a small tablet or ipod-like device, or a phone with cellular?

I haven't closely followed tablet/ipod type devices, but pinephone and purism librem 5 are (not-quite-out-yet) linux-based phones.

They're called development boards

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)

Here's an elaboration of what I was going for: https://news.ycombinator.com/item?id=23114566.

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.

I'm not sure about GSM but try making your own board combining a PSoC and ESP32, or even just a board with the sensors and maybe and i2c interface over a header?

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.

What's your actual requirements?

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.

Will do re GSM.

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.

I mentioned it in my other comment but I think what you're after is TinkerForge [0].

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...

Have you had a look at Particle? https://www.particle.io/

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.

Played around with it a while back when my attempt at doing hardware died pretty quickly. Will check them out again.
Cellular modules, they come in a lot of flavors.
I think you're missing that most IoT products are designed to be put into products sold at scale. There are exceptions like devkits and hobbyist products but generally, the expectation is that everyone interested in IoT hardware is developing a hardware product and needs little more than a convenient interface to prototype and evaluate with before buying millions of chips to send to a PCB fab.

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.

I get that and I suppose there's isn't much incentive to build something like that purely for the hobbyist market. I should have included this in the original post but here's an elaboration of what I was thinking of: https://news.ycombinator.com/item?id=23114566
You could check out the pine phone with ubuntu port or postmarket os. It has all the standard sensors, gsm, and runs mainline linux kernel. It's basically a phone for developers.

https://www.pine64.org/pinephone/