RUI3—An Open Source SDK Designed for IoT
RAKwireless initiated the development of RUI3, a well-designed SDK specifically for IoT scenarios. We recognized that many IoT developers prefer open-source solutions, which is why Arduino is widely used in sensor-related products.
However, Arduino was designed for general embedded devices, not specifically for IoT. It falls short in terms of connectivity support and power consumption optimization, which are critical for IoT applications.
Addressing the Shortcomings of Existing Solutions
Two years ago, we set out to address these issues. We wrote the BSP from the chip level with the primary goal of minimizing power consumption. We achieved a power consumption below 2μA, which significantly extends the battery life of sensor devices, up to 5 years.
To ensure a smooth transition for developers, we kept our API format consistent with Arduino's from day one. This means that application code written for Arduino BSP can be directly loaded with RUI3 BSP.
To make RUI3 truly "born for IoT" we created more than 120 APIs, including multiple connectivity options for IoT scenarios such as LoRa®, LoRaWAN®, BLE, and Cellular (beta stage). We also included sensor and low-power consumption APIs to optimize device performance in IoT scenarios. In addition to APIs, RUI3 has a versatile AT command set that can work simultaneously with the APIs.
Furthermore, we made RUI3 a unified interface across different hardware platforms.
Achievements and Innovations with RUI3
So far, we have achieved what we set out to do. All the "must-have" features for IoT scenarios have been implemented and well-received by users.
But we believe there are still many "nice-to-have" features that could make RUI3 even more versatile in IoT scenarios. We think it's time to give back to the community and build an awesome IoT together.
In China, we have a saying, "人多力量大" (more people, greater strength).
Tools are meant to help people realize their dreams. We believe it's time to make RUI3 benefit everyone, rather than being a "blackbox" that delays innovation.
However, open sourcing RUI3 doesn't mean we will compromise on quality. RAKwireless will continue to be the most active contributor to this open-source project. The support platform will include the Issues list in the BSP repos, in addition to the existing HelpDesk and forum. RUI3 engineers will interact directly with customers/users in the Issues list.
Our Commitment to Quality and Community in Open Sourcing RUI3
BSP releases will go through the same testing procedure as before. Customers will have access to both staging releases (under test, with untested new functionality, use at your own risk) and tested, stable releases.
Regarding warranty, we have already included a limitation in the BSP readme:
"THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
We will still be responsible for the quality of any finished product running RUI3.
We invite you to join us in making the IoT-focused open-source SDK better and beneficial for everyone. Let's build an awesome IoT together!