Tips

Setting up SMS Sending and Receiving using a USB GSM Dongle by ZTE

Setting up SMS Sending and Receiving using a USB GSM Dongle by ZTE

There are various scenarios when you may have an IoT device in the field where you do not need a 4G LTE or 5G connectivity or where you have poor connectivity such as in forests or mountains. These scenarios include situations where your IoT device may only need to send data in occasional spurts, and may never need to receive any commands, or receive a very small set of pre-designed commands to control the device.

For such scenarios, where you do not want your IoT device to be connected to the internet all the time using a 4G or 5G network, use up too much battery power and be relatively secure from remote attacks over the internet, a simple GSM modem can solve your problem. For example, we have built a device in the past where a USB modem connected to a transport vehicle would send an SMS with the latitude and longitude of its location every 5 minutes. There were other scenarios where an IoT device we prototyped would be placed in a forest and would send the temperature and humidity levels over SMS every hour.

A perpetually connected device that uses a data plan can become prohibitively expensive if you want to just send short messages. This post describes how to write simple programs to use an off the shelf modem, that can be purchased for less than $10, and using a SIM card that provides Unlimited text messaging to send and receive SMS messages.

You may also want to build your own SMS over the internet service like that of Twilio from scratch and this script can help you start.

Setting up a Beaglebone Black with Debian Buster for IoT

Setting up a Beaglebone Black with Debian Buster for IoT

Our requirements were to use a low powered device that would be capable of running off a n off the shelf Lithium-ion (Li-ion) battery for at least 4-6 hours. With this in mind we dusted off a set of 3 Beaglebone Black (BBB) boards we have had since 2013. The BBB comes with a 2GB eMMC card on the board, a 10/100 Mbps ethernet PHY chip and connector, a USB-A and USB mini-B connector and 512MB of RAM. It also is capable of booting off a microSD card, which is the method we would be using. This post describes how to setup a BBB with Debian Buster with an image designed for IoT use in the year 2021.

How to set up your own in-house HPC Cluster (and the many ways to use it)

How to set up your own in-house HPC Cluster (and the many ways to use it)

High Performance Computing (HPC) and Systems Engineering are part of our company DNA (our 5 core areas of expertise, to be exact), so needless to say, we really enjoy setting up our own hardware clusters. Recently we came across an opportunity to purchase some really great systems from an IT liquidator company. We couldn't pass it up... We ended up buying two NVIDIA Tesla S1070 1U servers, each with 4 NVIDIA Tesla C1060 GPUs, and 8 Dell 1950 III 1U servers, each with 2 quad-core Xeon 5400 CPUs and 16 GB RAM. The specification manuals of the NVIDIA system are available here and for the Dell system, here.

Despite cloud computing getting more popular, it is definitely useful to have your own in-house development HPC cluster for conducting work. Here's how we went about setting one up for ourselves.

Perl's Pegex Module: a great way to parse files by creating grammars

Perl's Pegex Module: a great way to parse files by creating grammars

We recently came across Pegex and found it to be an interesting module for parsing text data. Instead of using regular expressions directly, the user can write a grammar for the data to be parsed. The data can be automatically converted to a native Perl object or, if the user desires, it's possible to use actions to handle the grammar while parsing using a Pegex::Receiver class.

How to use CMake to add Third Party Libraries to your Project

How to use CMake to add Third Party Libraries to your Project

CMake is an excellent cross-platform build tool for automatically generating Unix Makefiles, Windows NMake Makefiles, Microsoft Visual Studio® Solution projects or Apple Xcode® projects for MacOS. It has its own domain specific language and various modules for most commonly used libraries and software frameworks. In this blog post we demonstrate how to use CMake to build a large toolkit like Intel's Threading Building Blocks (TBB).