I use NANO as USB-to-I2C Adaptor.
In my applications, I have to write more than 32 bytes on one command.
But NANO has a limit 32 bytes.
For example, write command as follows,
Device Address (I2C Slave: A2)
/S: START
/P: STOP
33 bytes write:
/SA2000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20/P --> Write
In oscilloscope result,
/SA2000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F/P
34 bytes write:
/SA2000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021/P --> Write
In oscilloscope result,
/SA2000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F/P
How to do solve this issues? Please let me know your know-how.
Thanks.
I solved this issues from Why does the arduino I2C library have a 32-byte buffer limitation? - Networking, Protocols, and Devices - Arduino Forum .
I changed two defines statements, which are located at "arduino-PR-.../hardware/arduino/avr/libraries/"
- wire.h --> #define BUFFER_LENGTH 64 // 32 --> 64
- twi.h --> #define BUFFER_LENGTH 64 // 32 --> 64
Thanks a lot.
Koepel
3
That is correct, however, when you update the Arduino IDE, then it will be 32 byte again.
The Arduino Zero/M0/MKR boards have a buffer of 256 bytes and some software Wire-compatible libraries have almost no limit, see: Buffer size of the Wire library · Koepel/How-to-use-the-Arduino-Wire-library Wiki · GitHub.
Koepel:
That is correct, however, when you update the Arduino IDE, then it will be 32 byte again.
The Arduino Zero/M0/MKR boards have a buffer of 256 bytes and some software Wire-compatible libraries have almost no limit, see: Buffer size of the Wire library · Koepel/How-to-use-the-Arduino-Wire-library Wiki · GitHub.
Thank you for your comment.