RAK is a company specialized in IoT hardware, particularly in the LoRaWan domain. They are well known for their LoRaWan concentrators working with raspberryPi.
Since a couple of month they have launched a new family of device, the Wisblock. This is a kind of Arduino solution with a MCU part (running a NRF chip with a LoRa transceiver) and different sensors you can connect to it to make an IoT device. That’s a really simplified way to see the solution as in fact the architecture is really different.
At first, the solution is based on a motherboard where you can plug different type of modules. You can have multiple additional sensors both side of the motherboard. We are also going to see that the way all of this is connected is industrial and can be use for prototypes, medium scale field deployment and finished product. That’s the main difference with a classical Arduino board.
The unit price of a solution with a GPS, MCU, Accelerometer is about $50, nothing really expensive for prototyping, a bit too high for a field experimentation, really high for an end product but apparently you can negotiate that price when you have a certain volume.
A kind of Lego for IoT
The principle is to have a compact motherboard where you can attach different modules through a bus.
The particularity in my point of view is the way the board and the sensors are designed. They are respecting a certain form factor and are screwed to the motherboard. So you can easily create your sensor setting, screw them altogether and get something reliable for being deployed in field and production.
The solution is powered by a battery (LiPo), USB or a 5V solar panel. USB and Solar input can charge the LiPo battery.
You can make your own sensor board and find the one you need in the product catalog.
With a smart connector & screw solution
The system is built on low cost and really tiny connectors to connect the MCU to sensor boards. Here highlighted in green.
We also have SMD female screw (circled in red) where you will use tiny screws to fix the boards.
This solution is really efficient for an industrial production: durable and reliable in a final product with an easy assembly for making final product with it.
The size of the motherboard is tiny 31x62mm so you can install it in a small plastic box to make a compact circuit. I can regret there is only one motherboard form factor. A scare one could have been better for certain casing / applications. But nothing impossible to make on your side if you need it.
The connector can be purchased on the shop also if you want to make some ; and they are also standard electronic pieces.
A powerful MCU running Arduino
Even if you can imagine to use any MCU, the one currently provided by RAK is a NRF52840 MCU inside a module with a SX1262 transceiver. This solution provides LoRaWAN and Bluetooth communication protocols.
The NRF52840 solution provides 1MB flash and 256KB RAM, something really large for most of the IoT application even if running on Arduino base. With a 64MHz core it makes it a powerful solution but also a low power platform.
The development environment is Arduino / PlatformIO, this is really cool to quickly getting started with the platform. So it’s really good for prototyping. I’ve made some time to identify the right way to program it but you have different ways to do it. The first and easier way for prototyping is using the USB connector. The default boot-loader supports a Serial DFU over USB. So in Arduino you just have to find the right port. You can also push a feather DFU file on the automatically mounted drive (but I did not find a way to automatically generate that file). This method will be more efficient if you have 10-100 pieces to flash. At the end you can flash over JTAG for a mass production approach.
The more complex part at start is to understand that the MCU module is named RAK4630 when the WisBlock board handling it is RAK4631. Knowing this you will save some time trying to understand why Arduino does not list the RAK4630 in the targets !!
The Arduino environment comes with many different sample code for the different sensor board so making a prototype is really fast and easy.
Perfect for prototyping, less for production
Even if the hardware is really good for making product and high quality IoT field test, the development environment based on Arduino is not at the right level for making production ready IoT in my point of view. Not because of Arduino itself but because you need to implement a lot of modules to manage configuration / login / credential protection / encryption / logging and advanced low-power management. My experience with it-stm32-sdk, my IoT sdk addressing all these points show me how it takes time to implement such features.
The choice of Arduino environment is good for many reason but it will also have a consequence of strong firmware investment before going to production with this platform. This could be improved with the use of a better SDK environment.
At the end it seems to provide something new in the IoT ecosystem
In my point of view, this solution provides something new in the ecosystem. It can address maker like Arduino but it also address IoT professional market like other company like MCCI. The WisBlock solution add a modular perspective and an industrial grade including the sensors integration. The price seems to be correct as the volume price seems to be negotiable. We just need some European and North American distributor to facilitate the product ordering.
Nice review, thanks
Totally agree on the software environment question about Arduino for a production product. But given the card is based on a nRF52840, then it should be easy enough to re-flash with either the Nordic SoftDevice/SDK environment or another OS that supports this MCU.
As such, I was interested by the stm32 iotsdk project you have created. I was suprised that part of it is essentially a re-implementation of an embedded OS – this seems like a lot of work when there are several good options in that space.
We also wanted to have a stable application environment with a good framework to avoid the usual problems with embedded dev, but we decided to start with MyNewt as the base OS for MCU/BSP support (and a nice build system), and build app level blocks on top (see github.com/wyres/mynewt-generic-base and mynewt-generic-app).
The advantage of using MyNewt as a base is that the nRF52 family is already supported by this OS so I could (in theory) be up and running on this card just with a BSP file to map the IOs…
Thank you for your feed-back.
I love people coming and advertise about their own work on someone else blog. Explaining the work made by the blog owner is a re-implementation blabla, when the same guy have also re-implemented the thing… but is far away to have deliver the same level of work yet.
Basically if we re-implement something, you and me, it is because we are not fully satisfied with what is existing.
I wish you a good development time to reach the same level of feature as it-sdk.
This is a very detailed article.
But I want to know some more on Why and how it is different from the Arduino’s used on a small scale and also some real-time application for these.
I was expecting the blog post to highlight the difference:
– more industrial way to assemble MCU and sensors for small / medium batch of devices
– reduced / no R&D to be made on component / board part
– more communication options available within a common architecture