A Python 3 wrapper of libmodbus wrote with CFFI and available on GitHub.
It's currently a partial wrapper of the library, the package is available from pypy.
A small Modbus library for Arduino.
The source code is available on GitHub.
Stéphane Raimbault wrote a version dedicated to Arduino devices:
- to talk with a standard Arduino UNO or Duemilanove via the integrated USB serial line (8N1)
- to have the lowest footprint (binary sketch size and SRAM)
- to be robust.
Only the RTU slave code has been extracted/adapted only the slave, reading/writing registers of libmodbus. To reduce the footprint even further, the fast CRC code based on precomputed arrays (512 bytes) by a slow one (not so slow!). The result is clean library for Arduino able to handle exceptions if an error occurs.
The binary sketch size is 2,450 bytes and around 1,830 bytes of memory still free when running on 2K SRAM model.
Other projects existed already when the library has been created:
- Master/slave by jpmzometa and others is great but the reading in loop doesn't handle serial latency and the code contains too many arrays IMHO
- ModbusMaster is a master and I want a slave.
Arduino-Modbus, the code is, eh, ugly!
- modbusmq by Mario Di Bacco is based on libmodbus but it aims Modbus TCP.
The project is referenced in the arduino.cc playground wiki.