Dear NuttX developers, I am not in the full sync with the project now due to load by teaching of the Computer Architectures course and others, but I have more ideas and project in the progress.
1) pysimCoder and silicon-heaven Michal Lenc's pysimCoder project advances well. His experimental branch shv_basic https://github.com/michallenc/pysimCoder/tree/shv_basic includes integration with silicon-heaven (SHV) which is the light weight system for distributed service parameters and process variables access. It has been started at https://www.elektroline.cz/ company by my friend Fratisek Vacek and is fully opensource used in the field worldwide etc. The prototype already allows introspection to single or even multiple running control applications generated by pysimCoder. It is tested on Linux now but pysimCoder supports NuttX well and we expect to be used with it as well. NuttX is selected as operating system of choice for MCU non safety critical targets at Elektroline for now. SHV provides nice services and is much smaller than CORBA or DDS. Due to hierarchy of brokers it allows to build world scale control over TCP when nodes communicate over NAT barriers easily. Each non root node only needs to know it superordinated broker address. When the tree root node is run at public address then request response and even changes substriptin communication finds the nearest node with visibility between two clients and uses it as a proxy. SHV provides really nice features, is mall etc. But it is not international standard (yet)... Does it worth to be offered as NuttX GSoC project? I am not sure. It will be developed to support NuttX anyway, but GSoC can speed it and provide frame for better documentation. 2) ORTE Data-Distribution Service (DDS) This is different case. It is international standard. Before my investment and hopes into formerg group at the university has been buried and burned hard, I have invested into ORTE project and helped it to architect. http://orte.sourceforge.net/ It was at time when Real Time Innovations started NDDS project and our ORTE implementation of the original protocol was the second required independed implementation to allow approve DDS RTPS 1.0 as Internet standard https://www.omg.org/spec/DDSI-RTPS/ When the version 2.0 has been published I have invested into our implementation update together with Jiri Hubacek Vlasak https://support.dce.felk.cvut.cz/mediawiki/images/3/37/Dp_2016_hubacek_jiri.pdf But speak with him on continuation of the work or even in general has been intentionally and hard way blocked by professor Zdenek Hanzalek and doctor Michal Sojka later when Jirka was allocated at proprietary NVIDIA work at university for company consortium. By the way that work has been paid from European public money. Actual DDS RSPS standard is core of ROS 2 system. I have seen many ROS related activities around NuttX but I am not sure if some of them attempts to bring DDS really on the NuttX nodes or all stay on use of agent on GNU/Linux side. The full DDS would not fit in limited memory nodes or nodes connected over serial link or CAN. But on chips like imxRT it could fit well. Our ORTE implementation worked on GNU/Linux, BSD, Windows, RTEMS on x86, ARM, PowerPC... When it is made to be interoperable with actual DDS standard it can be quite usable. 3) Motion control We have more than 30 years experience with motion control at our company. I have provided our know how as open source to our university and it helped them to participate in EUROBOT competition etc., but without any reference to the source.... another story.. Anyway, I see generic PMSM motor infrastructure getting into NuttX now. We have something similar but even with higher level control. There are some resources related to our Portable eXtendable Motion Control (PXMC) infrastructure. No fancy promo stuff but works in robots, industrial systems, medical infussion systems and laboratory instruments http://pxmc.org/ https://www.pikron.com/pages/products/motion_control.html Some demo on old robot with our second generation 20 years old system https://www.pikron.com/pages/products/motion_control/images/mars8_rosegarden.png Our actual designs https://www.pikron.com/pages/products/motion_control/lx_rocon.html fully open kit https://gitlab.com/pikron/projects/imxrt-devel/-/wikis/teensy_bb all sources in GITs, som in ours, some on SF.net etc... https://gitlab.com/pikron The command set, N-order coordinated spline trajectory generator and much more can be reused. The code has been used without operation system on 16-bit MSP430, ARMs, on RTEMS, GNU/Linux x86, Raspberry PI, Xilinx Zynq etc.. https://installfest.cz/if17/slides/so_t2_pisa_realtime.pdf https://pretalx.installfest.cz/media/installfest-2021/submissions/GBKNKE/resources/mz_apo-remote-lab_K5ZFgyq.pdf Is there some interrest to reuse some such stuff in the GSoC frame? 4) CAN and CAN FD We work lot in this area. More contribution of my cooleagues reached NuttX mainline some waits for it. I.e. actual ESP32C3 TWAI/CAN driver by Jan Charvat https://github.com/charvj/incubator-nuttx/tree/esp32c3-twai If you suggest some FPGA we can open project to test our open source CAN FD IP core and port drivers to it https://canbus.pages.fel.cvut.cz/ I have participated on CANopen FD standardization. We have developed CANopen generic infrastructure solution in past and I have included NuttX support http://orte.sourceforge.net/ Extension to CANopen FD would be another project option. My long term goal is to have all these components compatible with NuttX as well and have portfolio to build final NuttX applications on demanded easily and in reasonabale time. Best wishes, Pavel Pisa e-mail: p...@cmp.felk.cvut.cz Department of Control Engineering FEE CVUT Karlovo namesti 13, 121 35, Prague 2 university: http://dce.fel.cvut.cz/ personal: http://cmp.felk.cvut.cz/~pisa company: https://www.pikron.com/ projects: https://www.openhub.net/accounts/ppisa CAN related:http://canbus.pages.fel.cvut.cz/ Open Technologies Research Education and Exchange Services https://gitlab.fel.cvut.cz/otrees/org/-/wikis/home