Gecko OS FAQ

I have developed my Gecko OS product. How do I put it into production?

See DMS Production FAQ.

Can we develop our own solution for updating firmware on a Silabs device, to avoid using the Zentri DMS for OTA?

You can avoid using the DMS for OTA only if you develop your own firmware to replace Gecko OS.

The DMS provides secure update of firmware and other files for a device, using digital signing and encryption.

Gecko OS is digitally signed for each and every physical device. This ensures hackers are unable to place rogue firmware on your device. The process requires that a device receives a uniquely encrypted firmware bundle that only that one device can decrypt and use. Protecting a device from such attacks helps ensure the worldwide IoT fleet becomes more secure which in turn also helps keep our customers (companies like yourself) out of the headlines when the next attack happens.

You can take advantage of the DMS to secure your host microcontroller firmware and configuration files, in addition to Gecko OS. There is a feature in Zentri DMS that allows you to store your host microcontroller's firmware in the DMS. An OTA update delivers your host firmware to the Gecko OS device, secured and digitally signed for that device only.

Zentri DMS has a feature called the CloudFS (Cloud File System). The CloudFS provides two features for device file storage: Assets and Device Files.

An Asset is for fleet wide distribution of files to devices with the same Product. This can include web server files, logo files, host micro firmware and configuration files and more. Devices can read, but not write, a DMS Asset. See DMS, Creating a Product Asset.

A Device File is specific to a single device. Devices can read and write their own Device Files. A Device File can be used for device log files, diagnostic reports and so on. See DMS, Adding a Device File.

Is there a way to run a script from the web setup?

See the setup command. See also: Configuration and Setup, Configuration Scripts.

Where does the module get the UTC time and which port needs to be open on our firewall for this to function?

See the ntp.server variable. The port is UDP port 123.

If I change the baud rate, does it go into effect after a save command, or immediately?

uart.baud changes after save and reboot. You can also apply changes without a save and reboot, using uart_update.

When should I use UART flow control?

You should always use UART flow control to ensure reliable data exchange with no dropped characters. See the uart.flow variable.

Is there anything to be careful about when enabling hardware flow control?

See the uart.flow variable. There are no special considerations about enabling flow control.

How do I turn off all log messages?

Use the command set system.print_level 0. See system.print_level.

How do I run the system in stream mode (UART0) and get the logs and all debug and informational responses from UART1?

Use the following command sequence:

set bus.data_bus uart0
set bus.log_bus uart1
set bus.mode stream

How do I verify my Azure certificates?

Tags: azure, tls client, cert, certificate, socket

You can use the following simple Python script to verify your Azure certificates. Change the cert file names and URL to fit your case.

from socket import *
from ssl import *

client_socket=socket(AF_INET, SOCK_STREAM)
tls_client = wrap_socket(client_socket, ssl_version=PROTOCOL_TLSv1, cert_reqs=CERT_REQUIRED, ca_certs="BaltimoreCyberTrustRoot.crt", keyfile="client-key.pem", certfile="client-cert.pem")
tls_client.connect(('', 8883))


# Close the socket