@abartjc and @Erik, Got it working. I took a bit to upgrade the Arduino package to 1.11 because I couldn’t find the Dash Board package listed anywhere. I finally reloaded the Arduino IDE and setup the board manager URL again and the package showed up and I was able to update it.
I did find a few more changes than I initially noticed in the Repo. Below is the stripped version I have working right now. This is stripped down from the Dash Cloud example.
//Process a received SMS
void cloud_sms(const String &sender, const rtc_datetime_t ×tamp, const String &message) {
//Echo the received SMS back into the cloud
HologramCloud.print("From: “);
HologramCloud.print(sender);
HologramCloud.print(” @ “);
HologramCloud.print(timestamp);
HologramCloud.print(” Message: ");
HologramCloud.print(message);
HologramCloud.attachTopic(“rx_sms”);
HologramCloud.sendMessage();
}
#define SIZE_INBOUND 4096 //Inbound message size limit
char buffer_inbound[SIZE_INBOUND]; //Holds inbound message
//Process a received inbound message
void cloud_inbound(int length) {
buffer_inbound[length] = 0; //NULL terminate the data for printing as a String
HologramCloud.sendMessage(buffer_inbound, “inbound”);
}
void cloud_notify(cloud_event e) {
switch(e) {
case CLOUD_EVENT_CONNECTED:
//re-open the server socket on port 4010
HologramCloud.listen(4010);
break;
}
}
void setup() {
//On startup the modem attempts to connect to the cell network, if available
//Use the cloud_sms function to process incoming SMS
HologramCloud.attachHandlerSMS(cloud_sms);
//Use the cloud_inbound function to process a received message.
//Uses a buffer and size defined in the sketch for user requirements.
//If String data, reserve one byte for NULL-terminator
//The full buffer size can be used for binary or non-printed data.
HologramCloud.attachHandlerInbound(cloud_inbound,
buffer_inbound,
SIZE_INBOUND-1);
HologramCloud.attachHandlerNotify(cloud_notify);
while(!HologramCloud.isConnected()) {
Dash.snooze(1000);
}
//Send a message to the Hologram Cloud with the topic “cloud_demo”
//Will connect to the Hologram Cloud automatically
HologramCloud.sendMessage(“Hologram Cloud Demo Active”, “cloud_demo”);
//sync clock with network time
rtc_datetime_t dt;
if(HologramCloud.getNetworkTime(dt)) {
Clock.setDateTime(dt);
}
}
void loop() {
//Blink the LED while the Dash is awake
Dash.pulseLED(500, 500);
//Set the Clock Alarm to wake the Dash up - Sets alarm state true for x mins
Clock.setAlarmMinutesFromNow(2);
while(!HologramCloud.isConnected()) {
Dash.snooze(1000);
}
//Open a server socket on port 4010 to receive messages
HologramCloud.listen(4010);
//Buffer a message to send to the Hologram Cloud
HologramCloud.print("A01: ");
HologramCloud.println(analogRead(A01));
// HologramCloud.print(“ChargerBattery: “);
// HologramCloud.print(Charger.batteryPercentage());
// HologramCloud.println(”%”);
HologramCloud.print("Signal Strength: ");
HologramCloud.println(HologramCloud.getSignalStrength());
//Attach topics to the message for advanced routing and processing
HologramCloud.attachTopic(“A01”);
//HologramCloud.attachTopic(“Battery”);
HologramCloud.attachTopic(“SignalStrength”);
HologramCloud.print("System Version: ");
HologramCloud.println(HologramCloud.systemVersion());
HologramCloud.print("BootVersion: ");
HologramCloud.println(Dash.bootVersion());
//Send Message
HologramCloud.sendMessage();
HologramCloud.clear();
//Dash.snooze(60000);
//Done with the modem for now, turn it off to save power
//This closes all sockets
//if(!Clock.alarmExpired())
HologramCloud.powerDown();
// deep sleep for x mins
// if(!Clock.alarmExpired())
Dash.deepSleepMin(15);
HologramCloud.powerUp();
//Manually check for events, such as an SMS received while in deep sleep
//Optional here because events are checked automatically before powering
//down the modem in the next line…
HologramCloud.pollEvents();
}
//After each loop, if the modem is powered, modem events are checked.