We are happy to announce the latest release of the Thingsquare IoT platform! This is the awesome system we use to produce kick-ass products and projects together with our customers.
This release brings better performance for even larger mesh networks (500+ nodes), IoT cloud integration with platforms such as Microsoft Azure IoT and AWS IoT, easier WiFi setup for Raspberry Pi-class gateways, and seamless switching between mesh networks.
With this new release, we also bump the version for the C compiler used to produce firmware binaries. We provide a Docker image with the correct tool chain installed to help with the transition. This move also means that the system has a lower flash footprint, due to more efficient compiler optimizations.
Even larger wireless mesh networks
With the 4.9 release, we introduce new optimizations that improve the network performance in very large (500+ nodes) mesh networks.
In particular, the optimizations reduce the overhead for networks where devices stay silent for most of the time and only occasionally wake up to communicate.
IoT cloud integration
We have developed a node JS npm module called thsq-jetstream
for integration between a Thingsquare-based system and IoT cloud providers such as Microsoft Azure IoT and AWS IoT. It can also be used to push data to proprietary REST APIs.
The tool can either be run standalone or used as part of a larger integration framework.
Find the tool, and instructions for how to use it, at https://www.npmjs.com/package/thsq-jetstream.
Docker firmware compiler
We have published a Docker image to make it easy to compile firmware binaries, without having to install complex tool chains.
To download the Docker image, first make sure to have Docker installed (find it at https://www.docker.com/).
Then pull the thsqfirmware
Docker image:
docker pull ghcr.io/thingsquare/thsqfirmware:latest
To compile a firmware binary file, navigate to your application source code directory, and run
# Linux:
docker run --rm -it -v $(pwd):/home/thsq/sdk ghcr.io/thingsquare/thsqfirmware
# Windows:
docker run --rm -it -v %cd%:/home/thsq/sdk ghcr.io/thingsquare/thsqfirmware
# Windows PowerShell:
docker run --rm -it -v ${PWD}:/home/thsq/sdk ghcr.io/thingsquare/thsqfirmware
# Cygwin:
docker run --rm -it -v `cygpath -d $(pwd)`:/home/thsq/sdk ghcr.io/thingsquare/thsqfirmware
The Docker image can also be used to create binary firmware images with a unique identities via the thsq-device-flasher
program, which is also provided as part of the Docker image:
docker run --rm -it -v $(pwd):/home/thsq/sdk ghcr.io/thingsquare/thsqfirmware /bin/bash -c "cd sdk; thsq-device-flasher -u [usertoken] -t disabled filename.bin"
For more information about the thsq-device-flasher
tool, see https://www.npmjs.com/package/thsq-device-flasher and this article.
Thingsquare gateway agent for Raspberry Pi-class devices
Linux devices of the Raspberry Pi-class are often used as gateway devices for wireless IoT mesh networks. The gateway has a wireless mesh access point either installed as an on-board chip, or as an external device connected via a USB port.
One common problem for a Raspberry Pi-class device is how to connect it to a nearby WiFi network, since it has no display or user interface.
To solve this problem, we have developed a thsq-agent
software that runs on the Raspberry Pi-class device that allows the device to be configured via Bluetooth and the Thingsquare app.
This software is made to be integrated with customer-specific smartphone apps. The Thingsquare app serves as one example how to use it.
A Raspberry Pi-class device running the thsq-agent
software will show up in the Nearby view in the Thingsquare app. Tapping the device will open up a view that allows entering a WiFi network SSID and password. The SSID and password are then securely transferred to the Raspberry Pi over Bluetooth, and the WiFi is configured accordingly.
For more information about the thsq-agent
software, see https://www.npmjs.com/package/thsq-agent.
Seamless mesh network switching
Because of channel hopping, multiple wireless mesh networks can easily coexist at the same location. With the 4.9 release, we have made it easier to switch between networks on the fly.
The network switching process consists of three steps:
Step 1: make sure that the network that we are switching to actually exists at the current location. This is done by attempting to switch to the new network and probe its network status. If no network status is found, an error is displayed, and the device remains in its existing network.
Step 2: receive the new settings for the new network, but do not apply them yet. Instead, report to the backend that the device has received its new settings and that they are ready to be applied.
Step 3: wait for a command to apply the settings.
This three-step process makes it easy to switch network for hundreds of devices in one go. Just wait for all devices to have received their new network information, then apply them all at the same time.
New hardware
In addition to the above new features, the 4.9 release also provides support for the Texas Instruments CC1352P single-chip power-amplified sub-GHz wireless microprocessor.
Your turn
Would you like to hear more about how Thingsquare can help your product come alive? We’re looking forward to talking to you! Drop us an email, or start a chat with us. And as always feel free to use the IoT solution planner to get an automated time and cost estimate of your product.