A MicroPython library implementing Modbus RTU and TCP protocols for both master (client) and slave (server) roles.
MicroPython Modbus is a library that implements the Modbus RTU and TCP protocols for MicroPython-powered devices. It allows these embedded systems to act as Modbus masters (clients) or slaves (servers), enabling communication with industrial sensors, PLCs, and other automation equipment. It solves the problem of integrating lightweight MicroPython devices into standard industrial networks.
Embedded developers and engineers using MicroPython on devices like ESP32, Raspberry Pi Pico, or other microcontrollers that need to communicate via the Modbus protocol in industrial or automation settings.
Developers choose this library because it provides a dedicated, full-featured Modbus implementation for the MicroPython ecosystem, supporting both RTU and TCP as well as master/slave roles. It is a community-maintained fork built upon proven work, offering reliability and comprehensive protocol support where few alternatives exist.
MicroPython Modbus RTU Slave/Master and TCP Server/Slave library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements both Modbus RTU (serial) and TCP (Ethernet), providing flexibility for various industrial network setups, as highlighted in the key features.
Can act as a client to read/write data or a server to respond to requests, enabling versatile device roles in automation systems.
Supports essential Modbus operations like reading coils and registers, and writing single/multiple values, covering the eight core function codes listed in the README.
Designed for resource-constrained MicroPython devices, ensuring compatibility and reliability in embedded environments.
Requires internet connectivity via mip or upip for installation, which can be cumbersome for offline or isolated embedded systems, as shown in the quickstart guide.
Full functionality with boot.py and main.py files depends on external modules from separate repositories, adding setup complexity and potential version conflicts.
Only supports eight core Modbus functions; lacks advanced or less common functions, which may not meet needs for specialized industrial protocols.