Graviti Energy sought a cutting-edge IoT solution to remotely power cycle their car charger stations, and they turned to us for our expertise. We took the challenge by developing a robust IoT system, leveraging our SMQ IoT protocol, and meeting their unique requirements.
The robust Mako Server is central to our IoT solution, which operates as an online cloud portal and provides seamless functionality and efficient edge device management capabilities. This portal, which acts as a control hub, enables remote access and control over IoT-enabled car charger stations. Users can thus interact with these IoT devices effortlessly through our cloud-based server portal.
Our team used Lua, a versatile scripting language, to craft the software for both the server-side portal and edge device code. This allowed us to create a cohesive ecosystem that seamlessly integrates all components. The client-side browser code was designed as a Single Page Application (SPA) by using React.
Using Active Directory Single Sign-On (SSO) for the portal presents numerous advantages over traditional authentication methods, including enhanced convenience, improved operational efficiency, bolstered security, reduced IT support costs, and facilitated compliance.
Check the tutorial Single Sign On for Microcontrollers to learn more about the benefits of using SSO.
The main page displays a comprehensive list of all the sites registered in the database. Each device is initially set up and linked to a specific site by the operator.
Not only did we excel in software development, but we also took the hardware design of the devices to new heights. We meticulously selected the best hardware components, designed the PCB, and crafted the device housing, as showcased in the accompanying image. The attention to detail in our design is a testament to our commitment to delivering excellence in all aspects of the project.
One of the most remarkable aspects of our solution is the efficiency of our development process. Thanks to the exceptional capabilities of the Xedge32 Lua Integrated Development Environment, we were able to achieve all our goals without the need for custom C code. Xedge32 not only facilitated development but also enabled smooth transition to the Xedge production mode, significantly reducing development hours and costs.
With Xedge all embedded code can be developed directly in Lua, a high-level and easily readable language, making it a faster, more efficient, and more user-friendly development process compared to conventional C programming. In a nutshell, the Xedge Lua IDE simplifies and streamlines the embedded software development process, significantly reducing the time to production and improving overall software quality.
The Xedge Development Environment, built upon the Barracuda App Server C Code Library, serves as an integral platform for an array of Internet of Things (IoT) protocols. This comprehensive suite is tailored for industrial edge devices, integrating advanced protocols such as MQTT, OPC UA, and Modbus. Additionally, Xedge facilitates the creation of web-based device management applications, significantly elevating the standards of device interaction and control. See the Barracuda App Server Reference Manual for details.
In the realm of embedded applications, many engineers gravitate towards using a High-Level Operating System (HLOS), such as embedded Linux, driven by factors like legacy needs, familiarity, or specific requirements. However, this also introduces security risks due to its inherent ability to dynamically modify the system architecture at runtime. Although the ease of adding or modifying programs on a HLOS can be advantageous, it simultaneously serves as a potential gateway for attack vectors and system vulnerabilities. For example, a successful attack could allow unwanted system processes or backdoors to be installed.
In contrast, firmware, typically stored in non-volatile memory such as ROM or Flash memory, is based on a fixed monolithic system structure and consists of application code, a Real Time Operating System (RTOS), and Middleware utilities. This low-level program control for the device is inherently resistant to attack vulnerabilities due to the complexity of a complete firmware replacement.
Xedge32 leverages this inherent security of firmware while providing the flexibility of programming in the high-level Lua scripting language. It facilitates easy and secure product design, but at the same time making the solution less prone to security risks compared to a traditional HLOS. The architecture of Xedge32 is devised in such a way that while it allows easy modification and addition of Lua programs, it simultaneously mitigates the risk of exposing the system to attack vectors, resulting in a more secure, reliable, and robust IoT solution. In this way, Xedge32 successfully combines the convenience of an HLOS with the security of firmware, making it a superior choice for designing secure products.