If you are asking a question, please follow this template:
I am evaluating mongoose OS for implementing an Industrial IoT solution on esp32 that requires the following technologies: modbus client/server, bacnet and protobuf among other things. We already have a working solution based on a raspberry pi compute module 3 and linux and would like to move to an esp32 based solution.
I already spent time experimenting with freertos (aws flavor) and esp-ifd.
-
My goal is: My goal is to assert that if we choose mongoose OS, we can use these technologies.
-
My actions are: I read almost all documentation available, look at the forum posts and run all tutorials.
-
The result I see is: No references or questions about these technologies found. I saw we can create libraries but not sure how we can use existing ones and reuse them without extensive modifications.
-
My expectation & question is: Have some user feedback about reusing existing external libraries, in particular modbus, bacnet and protobuf.
mOS is an event-driven framework. You can run whatever you write to run on it, providing you keep your feet on the ground and know of limitations in memory size and processing power for constrained embedded systems. This is not Linux, on the ESP32 mOS runs on top of the Espressif IDF which is a framework running on FreeRTOS. The TCP/IP middleware is lwIP, you can do lotsa stuff with that, but you usually have to work a little harder.
If there are no references to Bacnet and Protobuf that is perhaps because nobody has written such a library yet. I don’t know them and I can’t comment on that.
You failed to find references to Modbus, cause they do exist, and Modbus (serial, RTU) is simple enough to run on 8-bit processors with almost no memory (I did that decades ago). The only hard part is handling the time-related framing.
Or do you mean Modbus TCP ? Well, that is “easy” too. Perhaps even easier since there is no fiddling with the UART to detect start/end of frames.
I’m not sure but I seem to recall there is some Modbus library available, and if it is not, it wouldn’'t be hard to port any existing library.