Connecting to HiveMQ cluster via LTE module

Hi all. I’m developing an NB-IOT weather station for a university project. At the moment I’m trying to prototype the design using a SIMCOM7080G, which means trying to make MQTT connections via AT command, which is proving to be extremely difficult.

According to this modules very lacking documentation

I have the following parameters set up, at the connect command (AT+SMCONN) I always encounter a connection error (and yes, I have an active LTE connection, having no problem pulling APIs)

Currently my script is

def mqtt_init():
    # Set MQTT parameters
    commands = [
        'AT+SMCONF="CLIENTID","pico_client"',
        'AT+SMCONF="URL","fakeurlgoeshere123456.s1.eu.hivemq.cloud","8883"',
        'AT+SMCONF="USERNAME","picotest"',
        'AT+SMCONF="PASSWORD","Hello123!"',
        'AT+SMCONF="CLEANSS",1',
        'AT+SMCONF="QOS",1',
        'AT+SMCONF="TOPIC","picosend"'
    ]
    
    # Send commands
    for command in commands:
        send_at_wait_resp(command, 'OK')

    # Connect to the MQTT broker
    send_at_wait_resp('AT+SMCONN', 'OK')

# Function to publish message over MQTT using AT commands
def mqtt_publish(message):
    # Publish a message
    send_at_wait_resp('AT+SMPUB="picosend","{}",{},{},{}'.format(message, len(message), 1, 1), 'OK')

Am I missing something re TSL? The only other option I can see involves .PEM files, which I cannot find a way to acquire for my cluster.

Thanks for any feedback and help! Relative beginner.

Hi @Bfreak

Welcome to the HiveMQ Community! I agree with you regarding the lack of documentation of these modules but you are looking into the wrong documentation, the one you have shared just has some basic AT commands, please take a look into this one that provides AT MQTT TLS commands samples.

There is a thread where another forum member was able to connect a SIM7600 device. It might be useful to use it as a reference for the SIMCOM7080G module.

The root certificate needed to connect to HiveMQ Cloud can be downloaded from https://letsencrypt.org/certs/isrgrootx1.pem . This will create a file isrgrootx1.pem which should be used as a “server certificate”.

Another suggestion is to always use the latest firmware version available to avoid any issue related to MQTT compatibility on older firmware versions.

Kind regards,
Diego from HiveMQ Team

Team,

I gave up in the end. Issue for me was the inability to be able to update the firmware on my Lilygo SIM7600. Although the documentation confirms it supports it after a lot of research and testing it came down to the Cert that HiveHQ uses was not supported by the SIM in my case. This is why I wanted to update the firmware.

Read towards the end of the thread.
T-SIM7600X

Managed to connect to AWS as it supports older cert Cipher.
AWS

Cipher Block Chaining: TLS_RSA_WITH_AES_128_CBC_SHA

So in summary my advice is see if SIMCOM7080G supports the HiveHQ cipher (isrgrootx1.pem) on the cert.

If so then use sim7080_sim7500_sim7600_sim7900_sim8200 qdl v1.58 only for update.exe or similar to update the firmware if applicable and if you can find it. Check Simcom’s support page.

The use putty or sscom5.13.1.exe tools to copy the basic AT commands step by step to see what the response and/or error was.

Note read my thread as you will need to get the isrgrootx1.pem cert to the SIM7080G and to do that read the commands (SIM7070_SIM7080_SIM7090 Series_AT Command Manual_V1.07) that are supported. Refer to the manual here or if no login try here and MQTTS.

Hope this helps but the key was to ensure the sim7080x supports the Ciphers in HiveHQ’s isrgrootx1.pem cert file and if it does upload that isrgrootx1.pem to the SIM and check the size.