Software developer Arduino ESP32 FreeRTOS
Budget: €30 – €250 EUR
Hello,
For my personal project I need someone to develop software that manage collision detection and frame transmission between multiple ESP32 modules when transmitting over the UART.
The problem: many ESP32 boards are connected via a single wire using the UART. See the attached picture. Any ESP32 board can then transmit, and receive, data over the UART at any time. If concurrent transmission (two ESP32 transmission at the same time) occurs, it is managed by the collision detection algorithm to implement.
The solution: implement software for the collision detection mechanism to manage concurrent transmission. The algorithm to use is CSMA/CD. See the schema at the link:
https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection
Tasks to do:
1. Develop software that manages data transmission over the UART. First version to develop is a special case: one emitter and several receivers. The software will display the performances (throughput, latency…) of transmission on the Arduino serial monitor of each ESP32 board. The format of the data frame (preamble, destination address, source address, data, CRC…) to send will be discussed later during the project.
2. Develop software that implements the CSMA/CD. It has to manage the ESP32 TX pin when transmission is needed. ESP32 RX pin always enabled to listen to the traffic and then detect collisions.
3. Update the software of 1) to manage data transmission over the UART with several ESP32 managed by the collision detection algorithm develop in 2).
Requirements:
• Software has to work Arduino and with the FreeRTOS support
• The candidate must possess at least 3 ESP32 boards to do test at his place.
Other links to CSMA/CD (just for information):
• https://cs2it.blogspot.com/2015/12/csmacd.html
• https://github.com/deepakjayaprakash/CSMA-CD
• https://github.com/gpg/wk-misc/tree/master/ebus
For my personal project I need someone to develop software that manage collision detection and frame transmission between multiple ESP32 modules when transmitting over the UART.
The problem: many ESP32 boards are connected via a single wire using the UART. See the attached picture. Any ESP32 board can then transmit, and receive, data over the UART at any time. If concurrent transmission (two ESP32 transmission at the same time) occurs, it is managed by the collision detection algorithm to implement.
The solution: implement software for the collision detection mechanism to manage concurrent transmission. The algorithm to use is CSMA/CD. See the schema at the link:
https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection
Tasks to do:
1. Develop software that manages data transmission over the UART. First version to develop is a special case: one emitter and several receivers. The software will display the performances (throughput, latency…) of transmission on the Arduino serial monitor of each ESP32 board. The format of the data frame (preamble, destination address, source address, data, CRC…) to send will be discussed later during the project.
2. Develop software that implements the CSMA/CD. It has to manage the ESP32 TX pin when transmission is needed. ESP32 RX pin always enabled to listen to the traffic and then detect collisions.
3. Update the software of 1) to manage data transmission over the UART with several ESP32 managed by the collision detection algorithm develop in 2).
Requirements:
• Software has to work Arduino and with the FreeRTOS support
• The candidate must possess at least 3 ESP32 boards to do test at his place.
Other links to CSMA/CD (just for information):
• https://cs2it.blogspot.com/2015/12/csmacd.html
• https://github.com/deepakjayaprakash/CSMA-CD
• https://github.com/gpg/wk-misc/tree/master/ebus