Hey Daniel, sorry for late response, we’ve been a bit under the water in the past 2 weeks, but should now be getting back to better supporting our community of developers.
When it comes to some super-simple GPIO example, it really is super simple: you set your GPIO pins to “input”, and you either send electrical current (~3.3 V AFAIK) to the port, or not (: And then in the Estimote Telemetry packet, you’ll see if the state is “high” or “low”:
There are ready-made SDK methods for detecting and parsing Telemetry, more in our Telemetry tutorial. Or, you can always just connect to the beacon (there are connection guides for iOS and Android SDKs in the respective GitHub repos), and read the values directly.
Something more exciting and sophisticated is to use the GPIO ports in UART mode—we’ve developed a protocol (“EstiUART”) for steering the beacon advertising over GPIO, by sending a string of bits and bytes to GPIO on a certain clock. Here’s an Arduino example, a PDF with the specs, and an iOS app to set your GPIO ports to UART:
We totally agree this needs to be public—we plan to clean it up a bit and post to our Developer Portal soon.