Coming out to the real world

New Vesta A2 from production

After a while with no news, occupied in other tasks and fighting with Visual Studio I’m proud to offer the first image of a new generation of Vesta devices.

Second prototype of new development

It may look poor and full of bugs, but considering the significant changes behind the scenes, it’s going to be a milestone soon. First of all, the generated device is the product of a compilation carried out by the real main star of this work: A module compiler that produces optimized code. All the calculations that were done over and over again in the previous version are already done in the generated code itself. This means less size, more speed and more solidity.

Second, all the structures that store the information are contained in a single module, accessible via pointers from all parts of the workspace. This implies less memory size, more speed by not having to replicate information and a more optimized and faster code.

All this remodeling has its downside and that is that the generated code can be more difficult for a human to understand. Fortunately no human is required to maintain the program because it is automatically generated by the compiler and that is precisely the big change. To develop a new Vesta device, information about the desired architecture, the number and type of devices it will contain, and their startup configurations must be exposed to the compiler. The compiler performs memory calculations, assigns addresses to each parameter, coordinates the web interface, precalculates the reports that will be presented in text mode by the serial port console, and creates the necessary infrastructure for the Modbus structure.

The compiler also guarantees that any Vesta device generated will meet all the integration and deployment requirements of the home automation architecture. It has been planned that each type of device can host improvements over time by coexisting different versions of hardware in the same installation. The home automation system will take advantage of the advances and will continue to be compatible with previous versions. Finally, the automatic generation of the Arduino code makes it possible to obfuscate the generated code to avoid unwanted manipulations and, as it is the product of a compilation, it will make future migrations to other hardware architectures easier, keeping its compatibility and saving deployment costs, since the product result will not depend on a specific hardware technology.

In this phase of the project, the best part is that from this point on there will be more progress and I will be able to show it.

Leave a Reply

Your email address will not be published. Required fields are marked *

WordPress Cookie Plugin by Real Cookie Banner