Library Requested to Support the MKR Series


Now that the Dash is EOL, it would be helpful to us small developers if Hologram could supply a library to support the Ublox modem in the MKR GSM 1400 and support the basic Hologram.Cloud.* calls.

It would be great if the library would provide support for putting the modem in sleep mode to reduce the current consumption.

Perhaps others could shine in with specific requests.


This would also be helpful for me. I’ve been following some of the other Arduino tutrorals and i like what they have there, but I don’t understand what i should be putting towards my device to get it onto the Hologram dashboard. I saw this link yesterday and will be trying it soon:


Yep, that’s good to start with Maiky’s code. We’d be interested to hear more about how you plan to use the MKR 1400 in the future as well so we can better develop tutorials and libraries that help you out.


You can follow all tutorials and examples Arduino provides. To use a Hologram SIM and the Hologram Cloud here are the key parts of @Maiky’s scrip.

Step 1: Gaining network access:

Arduino’s MKRGSM Library requires a few global variables to access the SIM. Specifically, for the Hologram SIM all you need to provide is the APN "hologram". The SIM pin, login, and password can be left blank.

Step 2a (optional): Connect to Hologram’s Server

You’ll need to open a TCP connection to our server with this information.

GSMClient client;
// Hologram's Embedded API ( URL and port
char server[] = "";
int port = 9999;

void setup() {
  client.connect(server, port)

Step 2b: Send data to the Hologram Cloud

In order for our cloud to accept new data and attribute it to the correct user and device, we need all data to be specifically formatted as a string in the following structure. {"k": "DEVICE_KEY", "d": "MESSAGE", "t": "TOPIC(S)"}

String DEVICE_KEY = "lkdfjkdjfkjds";
String MESSAGE = "Your Message here";
String TOPIC = "topic";

if (client.connected()) {
  // Send a Message request:
  client.println("{\"k\":\""+DEVICE_KEY+"\",\"d\":\""+ MESSAGE+"\",\"t\":\""+TOPIC+"\"}");

Hope this helps. We’re working on some MKR resources and will be sure to share once they’re ready.


4 posts were split to a new topic: A NodeJS alternative to the hologram cloud


After reading about MKR NB 1500, it would be great if library support from Hologram could include the complete MKR family. Perhaps I jumped the gun too quickly thinking that the MKR GSM 1400 is the best alternative to the Dash hardware.


I have found this that looks interesting;


That is a walk though on how to program a SIMCOM module through TTL AT Commands. It uses a Adafruit Trinket with Circuit Python though.

You’ll be able to see how I used the same steps as above but more detailed.

The example also starts a local server and opens a port to listen for inbound messages.


@benstr Thanks - that’s awesome. I could probably code at an AT level through any micro if I had the full API for your cloud. This shows the send and receive messages to the cloud, I think the other example shows SMS… So how does the location work? I spent a small amount of time looking in to that on a SARA-U201 attached to the Onion… and then I found the dash.! :slight_smile:

Do you have a full embedded API at the socket level for the cloud (with prerequisites) such as and any further info on how to implement the location services at an AT level?

Thanks Ben.


Hey Evie.

Here is a link to our Embedded API.



I have a question on the Embedded API. I did get the example for the MKR to work on the MKR GSM 1400.
I generated a device key for the SIM that I was using. For Production, I don’t want to hard code the Device Key unless I can use it for all of my SIMS for that particular project. Is there a way to use the same Device Key for a group of SIMS? If so, is there then a way for me to get the SIM number to use as an index into my web database which uniquely defines which SIM the message came from?


Hey Mcrowley,

Due to their nature Device Keys are assigned to only one SIM and are randomly generated so there wouldn’t be a good procedural way to get them.