Dear NuttX community, I am delighted to announce I was accepted into the Google Summer of Code event, participating in Firmware Upgrades over Silicon-Heaven Protocol for NXboot Demonstrated on pysimCoder.
I am writing this a bit late because I was finishing a lot of work at university. But now that I have more time, I would like to introduce related subjects and ask some questions as well. Firstly, I want to congratulate Michal Matias, a colleague of mine who also participates in NuttX GSoC. The goal of this project is to leverage the Silicon Heaven (SHV) protocol. This protocol was specified by the Czech company Elektroline, a.s. and it is used for remote procedure calls. The protocol is fully open, as well as the implementations in various programming languages, such as Python, Rust and C. For example, see all implementations here: https://github.com/silicon-heaven . Documentation: https://silicon-heaven.github.io/shv-doc/. The SHV protocol is also used in pysimCoder, a block diagram editor used to create rapidly prototyped applications for control engineering purposes, specifically for remote tuning of blocks' parameters (such as reference values or values of PID controllers). This can simplify the design of the control application. The work was carried out by Michal Lenc, a former GSoC contributor and now my mentor. The goal of my project is to integrate the SHV protocol fully in NuttX. Despite the existing C SHV implementation, I aim to use the pieces from the pysimCoder that fit better for memory-constrained devices. My first step is to add new features to this implementation so it can be used with other parts of the coding task. The second part of this project is to implement an add-on for the NuttX bootloader (NXBoot). This application will connect to the SHV infrastructure and download a new firmware image to be booted by NXBoot. Moreover, in my case, this firmware updater will be used within pysimCoder to flash new images with a new model. >From the NuttX perspective, the seamless integration of SHV into NuttX is very important. The integration should allow any user to use SHV for any application that requires remote procedure calls, using a documented SHV API, even outside the NXBoot firmware updater. Also, the NXBoot firmware updater will become part of the NuttX codebase. I have got some questions: 1. How is the NuttX community leaning towards cloning new repositories? The plan is to use a standalone repository for the lightweight SHV C implementation. 2. Where should the SHV implementation reside? My best bet is to put it into apps/netutils but I need to export the .h files API to any application. 3. Does NuttX have some internal implementation of data structures, such as lists, trees, etc., generally for any datatype? The current implementation of pysimCoder's SHV methods depends on an external library. This question also concerns the first question. I am looking forward to participating in this project and cooperating with the rest of you. Best regards, Štěpán Pressl