MQTT-SN over xE910 modem?

I have a custom board, based loosely on a STK3700 (EFM32GG), that has a Telit HE910 modem on board. I need to buffer up remote data from a serial port connected sensor and periodically send that to a FTP server.

What I'd /like/ to do, instead of just simply using AT FTP commands to send the data to a server, is to use this project as an excuse to gain some experience with IOT protocols and processes. Would it be possible to use RIOT for this with MQTT-SN? So, publish the serial data (via a Mosquitto broker) to a subscriber on a local server using the HE910 modem as the transport mechanism. The subscriber could then do something more intelligent than simply store the data to a FTP server. If possible to use riot, what would I need to do to make this work?

Hi Trevor,

Have you looked at the asymcute_mqttsn example in the repository? I have not used it, but ‘main.c’ in the example includes a UDP endpoint. You also might want to review the PR used to merge it in for any additional discussion.


Hi Ken,

Yes, I did look at that. In my case I have no network controller - only the on board GSM modem. The example uses 6LoWPAN(?) presumably pushing packets to a 6LoWPAN/Ethernet gateway. What would I need to do to push MQTT packets directly through the modem to a broker somewhere?

I don’t contrubiute at this level, but I think I understand the issue. I searched in PRs for “modem driver” and found work on other cellular modems (#10086) as well as AT commands and PPP (#5470). I don’t see anything ready to use, and don’t know how much work would be required to adapt for your hardware.

Another option is if Telit has some proprietary driver you can reuse that provides a transport layer interface. In that case you can implement the sock interface for it. I am working on something similar in #10579.

If anyone else has experience or suggestions, please jump in.