Requirement to develop embedded software in C for ARM Cortex M4 STM32, using Keil MDK IDE within RTOS middleware with multithreading. Environment already prepared.
This requirement is to reliably send strings between our MCU's (up to 4) and the Raspberry Pi SBC running Linux Raspbian.
We also need memory allocation from each of the STM32 MCU's IO, and to reliably update I2C master's with memory addresses upon polling request.
We need to have firmware written and tested for the MCU and also Node.js code written and tested for the Raspberry Pi, through to Node-Red, with existing Node-Red I2C npm package nodes being utilised or alternatively develop a new package. Developer must configure Linux Raspbian and document all the CLI commands used.
Must have strong Experience with STM32CubeMX and HAL for I2C. Need to be able to develop the slave and master mode control, which can be selected by the user as a config setting.
Must also have good experience in Node.js and be able to develop and troubleshoot the I2C scripts for Node-Red that operate the Raspberry Pi's I2C peripheral. Must have worked with Linux and Raspbian OS and some experience with I2C on this SBC is required.
The developer will need hardware testing tools such as an oscilloscope and power supply for testing the hardware, also require their own ST-Link and tool chain, with the licenced development environment including debugging for >32kb in Keil uVision MDK.
All work needs to be thoroughly documented in the code and in a separate Word doc for explaining the methodology and all functions and commands.
Work is to be completed on a fixed price contract. We can discuss any further details over chat. I will be available throughout the project to assist the developer.
Example I2C Topology:
Raspby Pi (Master) <==> STM32L452 MCU1 (Master/Slave) <==> STM32L452 MCU2 (Master/Slave) <==> STM32L452 MCU3 (Master/Slave) <==> STM32L452 MCU4 (Master/Slave)