LoRaWAN Heltec CubeCell Capsule: my review after almost a year of use
It was December 2019 when I discovered a new interesting product by Heltec: the LoRaWAN Heltec CubeCell Capsule. At the time, I was fiddling with many LoRaWAN (what is LoRaWAN?) development boards, in particular the Pycom FyPy and LoPy 4, followed by the Heltec ESP32 Lora V2, which I used to create a single channel LoRaWAN gateway, as reported in THIS article, and many remote sensing applications using many ready-to-use Arduino IDE libraries. However, they were too power hungry and incomplete for the use case I had in mind at the time.
In fact, I was looking for something smaller, cheaper, Arduino IDE ready and suitable for an outdoor use case without buying any IP67 box or additional housing. Also, one of the main requirements was to find a solution with built-in battery charger and protection circuit, suitable to be used for solar-powered applications. My choice fell on the new LoRaWAN Heltec CubeCell Capsule because it met all my needs and because there were almost no second choice, at least at such low prices.
So, we are at the end of this crazy year, a year where many things happened and, among them, I had a positive experience with this product by Heltec. So I’d like to share with you my opinion about this product, its cons and pros, what can be improved and which are its use cases, since I could not find any decent review online. I hope it will help you too!
A year with the LoRaWAN Heltec CubeCell Capsule
Specifications and features
I don’t wanna spend much time talking about the “numbers” of this development board, because you can easily find it online (HERE the official product page), but I just wanna share the main features that let me choose this solution for my application.
The Heltec CubeCell Capsule is based, as many other product of the same series, on the ASR6051 chip, which integrates a 24 MHz ARM Cortex M0+ Core and a SX1262 Lora modem, allowing the system to achieve an ultra low power consumption in deep sleep states (3.5 uA). It has 32 kB of internal flash memory plus 4kB of RAM, which is much lower then the ESP32 or ESP8266, but enough for remote sensing applications where you have to collect one ore more data through one or more sensors and then send them to your application server through LoRaWAN communication protocol.
It is fully compliant with LoRaWAN specifications, so it can be used as Class A or C device (you can check the difference between LoRaWAN device classes HERE) and it has a built-in battery charger module. That means that if you plan to use it with a battery and a solar panel (and, given the specs, it is the perfect use case), you won’t need an external battery charger module. You only have to connect the wires coming from the solar panel to the two inputs on the development board. The same can be said about the battery, since there are two ready to use soldering pads on the board. There is also a battery protection circuit, so if your LiPo goes under the nominal voltage of 3.3 Volt, the board will shut off itself until the battery voltage returns above the minimum threshold.
The LoRaWAN Heltec CubeCell Capsule comes with a small size in a nice chassis made of durable plastic. The company says that it’s an IP65 chassis (for the full closed one), which makes it suitable for many outdoor applications, of course not under direct rain. Its size is really small, for comparison, its diameter is about 2 cm, almost the same size of a 1.5 litre Coke bottle cap, while its height is between 5 and 6 cm with both the lateral shielding. They can be removed in order to access to real development board and the inputs.
Under the hood you can find a tiny 80 mAh battery (you have to purchase it on the Heltec store, they will solder it on the board, otherwise you can solder any battery on the two charging pads) and an RGB LED which is very useful for debug purposes, but of course you can also switch it OFF to reduce power consumption and an integrated copper antenna. On the other side, there are the inputs pins and two buttons: the BOOT button and RESET button.
To flash and program the Heltec CubeCell Capsule you’ll need the “programming bracket“, which connects with the pins in the lower side and and offer a built-in microUSB and buttons to work and program on the development board in an easy way. It costs about three dollars, but I think that you can flash the board with a common USB-to-serial adapter by manually wiring the inputs, but, if like me your going to use many of these boars, I strongly suggest you to buy the “programming bracket“. The board has 20 useful pins, with some typical applications (TX, RX, GND, 3 Volt power, SCL, SDA, solar panel input, etc, see the pinout diagram below), so only some of them can really be used for your applications. Given the small memory size and board type, they should be enough, since you’ll probably going to use it for a couple of sensors. In the picture above, I plugged-in a Bosch BME280 pressure, humidity and temperature sensor, which I found to be enough reliable for this kind of applications.
The overall build quality is quite good. The plastics are really solid, the dimensions are very compact and board is complete, since it has all we need for remote sensing applications.
The software part
As almost any development board for this kind of applications, even the LoRaWAN Heltec CubeCell Capsule comes with fully Arduino IDE support, making the deploy of your applications faster and easier on the Arduino IDE. You can easily find all the installation guide on the official repository, with many ready-to-use usage example.
The libraries installation is almost the same as many other development boards, you only have to install Arduino IDE and then install the chipset libraries using the Arduino IDE Board Manager functionality, as shown in this tutorial. Otherwise, you can use Git and download the libraries into the Arduino IDE folder. Whatever you choose, you can easily find the step by step guide on the official repository linked above.
Let’s talk a bit about the example available. You can check them on the online repository or, once you have installed it, directly inside your Arduino IDE. Among them, there are some simple and easy to understand example which illustrates how to setup a LoRaWAN connection between the Heltec CubeCell Capsule and the LoRaWAN network. Some of them also, show advanced capabilities with LoRaWAN network, allowing more complex applications with sensors and broadcasting functionalities.
Of course, you can also flash the AT example and use the development board with AT commands on the serial connection, in order to perform live tests on LoRaWAN or even Lora, since the board can also be used for simple Lora communications. In fact, there are many Lora basic examples which show how to use the board for Lora applications.
Last but not least, there are also many useful example to fiddle with on-board interfaces and features. For example, since the board has built-in battery pads, it is possible to detect the battery voltage and send it through LoRaWAN to your application server, in order to detect if the battery is charging or not during daylight. There also low power wakeup example, RGB LED examples and many others, providing to new users a good starting point with many simple and easy to understand examples.
The board also supports some interesting features, like the Adaptive Data Rate (ADR), which automatically changes the Data Rata of the LoRaWAN communication, thus the Spreading Factor. Then, it is possible to set Confirmed or Unconfirmed Uplink mode (I strongly suggest Unconfirmed mode), which enables or disables a downlink ACK message from the gateway for each uplink message. You can of course join the LoRaWAN network through OTAA or ABP authentications and finally you can choose between different debug levels.
By default you can’t lock the modem on a single uplink channel, but, editing the original libraries, you can manually chose the channel you prefer and even the Spreading factor, of course, which is changed by changing the Data Rate parameter.
- Official LoRaWAN Heltec CubeCell Capsule product page: HERE
- Official Arduino IDE libraries and example: HERE
- Arduino IDE CubeCell installation instructions: HERE
- Where to buy: HERE
- LoRaWAN Heltec CubeCell Capsule pinout: HERE
How does it work after a year of use?
One year has not passed yet but … I’m pretty sure it gonna last at least until 2021. So, here my conclusion, pros and cons of this development board. First of all it has been very easy to program, since the examples provide a nice starting point to build over. I’m not a skilled programmer, but I could easily create my remote sensing node with some of the examples code and some own code. I decided to use a BME280 sensor because it has a pressure, humidity and temperature sensor all in the same package, allowing a very small and low power sensing node.
Battery life and behaviour
I decided also to collect the battery level data, in order to know remotely if something is going wrong or not, and also to study and analyse how a such tiny 80 mAh battery can survive to completely different weathers, since it has been exposed to temperature between -10°C and +40°C in this year of use. I have to say that the battery is the weakest point of this device, but ….. it depends on your use case. I can tell you that at the beginning of the remote sensing project, the LoRaWAN Heltec CubeCell has been placed at about one kilometre from my LoRaWAN gateway, so Spreading Factor 7 was completely enough to get my data. With this setup, I could reach a battery life of more than a week without any solar panel and with a message interval of five minutes, so about 400 messages a day with a payload size of 31 bytes (13 bytes of LoraWAN header plus my data).
After a month of testing, I decided to install a small solar panel, which let the real remote sensing node adventure begin. Therefore, with a 1 Watt 6 Volt solar panel, the tiny integrated battery could receive enough power to recover in a couple of hours under direct sunlight, allowing a fully autonomous remote node with some spare days of battery life during cloudy days. So, it has been a real success. However, late on last September 2020, I decide to move the node at about 2 kilometre away from my gateway, thus increasing the Spreading Factor to 9 in order to overcome the obstacles between the node and my house.
This, of course, increased the energy consumption of the node, given the higher symbol time of SF9 (you can check what is Spreading factor and its consequences HERE). Therefore, battery life went from a week at SF7 with a message every five minutes, to a couple of days with SF9 and the same time interval. But … Autumn was coming, which means less sunlight, less energy, cold weather and foggy/cloudy days.
Unfortunately, the first cold nights in late October together with more than a week of heavy rain and foggy days, killed my sensing node battery life down to about 12 hours. In fact, the board could wake-up with the early morning sun (6-7 AM), charge the battery up to 4.2 Volt and slowly die to 3.3 Volt at about 10-11 PM, providing only daylight data. This is of course related to the tiny battery, which could not survive the continuous charge and discharge cycles for such amount of time (about 10 months).
So, at the beginning of November 2020 I decided to purchase a bigger 1000 mAh battery and connect it to the Heltec CubeCell Capsule. Of course, I have to modify a little the chassis, because the battery could not fit inside the casing. I made a small hole in the white component of the casing in order to let the two battery wire came out. Then I soldered them to the battery and fixed it to the CubeCell with some electrical tape. A bad looking solution but it solved my battery problem. I will see how many months this battery will last.
Operating range and RSSI
I thing that I liked a lot of this LoRaWAN Heltec CubeCell Capsule is that, despite the small integrated antenna, I could easily reach a good operating range. It’s always difficult to talk about operating ranges, because it depends on many factors. First of all, your environment (urban environment, a hill, a forest, a city or countryside), then your gateway solution (in my case a Single Channel LoRaWAN gateway based on a cheap ESP32 dev board) and then your node positioning (over a roof, in a field, in building, etc). In my case, as I told before, at the beginning I placed it at about one kilometre from the gateway in a sub-urban environment with just a few houses and trees in the middle, so no hills, mountains or obstacles between the gateway and the node. The node has been placed inside a plastic solar shielding housing at two meters from the ground.
With SF7 I was able to receive messages with a Received signal strength indication (RSSI) of about -115 dBm, a bit higher than the minimum threshold of -120 dBm of SF7. 99%+ of the messages were successfully received in a week of tests, with just a couple of messages lost during a rainy day. For comparison, my Heltec LoRa V2 board with an external antenna, placed in the same place could obtain a better RSSI of about -111 dBm, on average. Anyway, this is a very good result for such a small device with an integrated antenna.
With SF9 I could reach about 2 kilometres operating range, with a typical RSSI of about -119 dBm and, of course, an higher gateway sensitivity. In this case I have to say that 100% of the messages have been received in a week of test, while, at the same distance, with SF7 only 80% of the packets could be received. Unfortunately I haven’t performed any test at SF12 and higher distances, but i believe that it is possible to easily reach an operating range between 3 and 5 kilometres with such Spreading Factor. I also believe that in a obstacle free environment with a better gateway than mine, the operating range could further be increased.
Closing thoughts, I suggest you to keep this device between one and three kilometres of distance between your gateway, in order to use the faster and low power consumption SF7. Of course, if you have many lost messages, you could switch to SF9 or even SF12, but they are much power hungry given their higher symbol time, thus limiting your daily network usage. Anyway, for such device, the operating range are quite good.
Housing resistance and software upgrade
I placed the capsule inside a solar shield back in late January 2020, and I removed from in early November 2020 to change the battery, as told before and, of course, I checked all the components in order to detects some possible rust or dust inside the case, but I did not find anything, which means that the casing of the capsule works quite well, protecting the board from the humidity and corrosion. Even the more exposed pins didn’t show any rust sign, which a very good news. Obviously, some spiders got inside the lower part of the Heltec CubeCell Capsule, but that’s a common problem.
About the software evolution, I have to say that in the last year many updates have been released, as visible on the repository activity. I don’t what have been improved, but the solution is still an active project, since the repo is well active and many new products based on the same chip has been release in the least months.
Conclusion and recap
For about 15 bucks, I found the LoRaWAN Heltec CubeCell Capsule a good and reliable solutions for some remote sensing projects. Ok, I have to replace the battery, but that was predictable, since the original one was really small and calibrated for a lighter use of the device, but the board had no issues in all this months. I think that I will use it again for other similar projects, because it’s a complete and ready-to-use solution, given its features and also the pletora of example available, which makes the programming of this board simple, easy and even funny. of course it’s not perfect, but still a good solution for the price.
- Fully LoRaWAN Class A & C compliant;
- Built-in solar pins and battery charger;
- Built-in battery pads;
- Small size;
- Many example and updated libraries for Arduino IDE;
- Good build quality and housing;
- Only small batteries fit inside the housing;
- Need a “programming bracket” to easily program it;
- Average operating ranges;
- No external antenna connector;
- Low memory and useful pins.