SIM7000E | Converting Libraries

December 5 , 2019

As I already mentioned in a previous post, the simcom module allows you run your own code right inside the chip. This allows for some pretty interesting applications and reduces external components to a minimum. However the libraries which are used to interface to the kernel running inside the module are only provided as a ARMCC version which makes them quite hard to use with a more standard compiler like GCC. Because of this I developed an open source variant which allows compilation with gcc and can be modified as needed to add more features.

Continue reading


An IoT module with potential

October 30 , 2018

SIM7000E is a Cellular module which supports 2G as well as LTE CAT-M1 and LTE NB-IoT. In addition to a modem, the module integrates a GNSS receiver which allows it to find its position using GPS, Galileo, Beidou and Glonass. Unlike most other modules with similar features, however, it does not require a separate processor which allows smaller and cheaper devices.

Continue reading

How much memory requires malloc(0) ?

Why doing nothing is inefficient.

January 30 , 2018

At first glance, the answer seems clear: A request to allocate no memory should not require any memory at all. However, you can easily exhaust all available memory without ever allocating more than zero bytes. But before we take a look at malloc(0) lets first check the simpler case of malloc(1).

Continue reading

Milight Bridge problems and protocol

January 6 , 2018

While building my smart-home solution, one of the objectives was to integrate existing Milight lamps. Those lamps are similar to Philips Hue. Unlike hue, however, those lamps are a lot cheaper and are also available in a wider range of sockets. They are connected to the home WLAN using a bridge similar to hue bridge and can be controlled using an app on your smartphone after they are connected. The app uses a simple UDP protocol to connect to the bridge, which can be easily sniffed using Wireshark.

Continue reading

Reset a USB device on Linux

December 10 , 2017

In one of my projects, a USB Bluetooth stick was placed in a place that is not accessible anymore. However, after building we found out that after changing into power saving mode the stick does not work correctly anymore. Only disconnecting and reconnecting it to the port helped to make the stick usable again. However we do not have the possibility to do this anymore, so another solution had to be found. The result is a small c program that allows you to reset a USB port, which to the USB stick looks as if it was reconnected.

Continue reading