Tic Arduino library not working on Arduino Nano 33 BLE?

Hi there,
I was using Tic 500 Stepper motor controller with my older Arduino Nano and it was working just fine.
I have upgraded to new Arduino Nano 33 BLE. I tried to compile one of the examples.
This are the error messages

Arduino: 1.8.15 (Windows 10), Board: "Arduino Nano 33 BLE"

In file included from C:\Users\GEORGE\Documents\Arduino\sketch_jun20a\sketch_jun20a.ino:17:0:

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h: In member function 'void TicBase::setAgcBottomCurrentLimit(TicAgcBottomCurrentLimit)':

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h:688:63: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]

     commandW7(TicCommand::SetAgcOption, 0x10 | (uint8_t)limit & 0xF);

                                                ~~~~~~~~~~~~~~~^~~~~

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h: In member function 'void TicBase::setAgcCurrentBoostSteps(TicAgcCurrentBoostSteps)':

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h:698:63: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]

     commandW7(TicCommand::SetAgcOption, 0x20 | (uint8_t)steps & 0xF);

                                                ~~~~~~~~~~~~~~~^~~~~

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h: In member function 'void TicBase::setAgcFrequencyLimit(TicAgcFrequencyLimit)':

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h:708:63: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]

     commandW7(TicCommand::SetAgcOption, 0x30 | (uint8_t)limit & 0xF);

                                                ~~~~~~~~~~~~~~~^~~~~

In file included from C:\Users\GEORGE\Documents\Arduino\libraries\Tic\Tic.cpp:1:0:

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h: In member function 'void TicBase::setAgcBottomCurrentLimit(TicAgcBottomCurrentLimit)':

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h:688:63: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]

     commandW7(TicCommand::SetAgcOption, 0x10 | (uint8_t)limit & 0xF);

                                                ~~~~~~~~~~~~~~~^~~~~

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h: In member function 'void TicBase::setAgcCurrentBoostSteps(TicAgcCurrentBoostSteps)':

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h:698:63: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]

     commandW7(TicCommand::SetAgcOption, 0x20 | (uint8_t)steps & 0xF);

                                                ~~~~~~~~~~~~~~~^~~~~

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h: In member function 'void TicBase::setAgcFrequencyLimit(TicAgcFrequencyLimit)':

C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h:708:63: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]

     commandW7(TicCommand::SetAgcOption, 0x30 | (uint8_t)limit & 0xF);

                                                ~~~~~~~~~~~~~~~^~~~~

C:\Users\GEORGE\Documents\Arduino\libraries\Tic\Tic.cpp: In member function 'virtual void TicI2C::commandW32(TicCommand, uint32_t)':

C:\Users\GEORGE\Documents\Arduino\libraries\Tic\Tic.cpp:190:22: error: call of overloaded 'write(uint32_t)' is ambiguous

   Wire.write(val >> 0); // lowest byte

                      ^

In file included from C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h:15:0,

                 from C:\Users\GEORGE\Documents\Arduino\libraries\Tic\Tic.cpp:1:

C:\Users\GEORGE\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.2.0\libraries\Wire/Wire.h:59:20: note: candidate: virtual size_t arduino::MbedI2C::write(uint8_t)

     virtual size_t write(uint8_t data);

                    ^~~~~

C:\Users\GEORGE\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.2.0\libraries\Wire/Wire.h:60:20: note: candidate: virtual size_t arduino::MbedI2C::write(int)

     virtual size_t write(int data) {

                    ^~~~~

C:\Users\GEORGE\Documents\Arduino\libraries\Tic\Tic.cpp:191:22: error: call of overloaded 'write(uint32_t)' is ambiguous

   Wire.write(val >> 8);

                      ^

In file included from C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h:15:0,

                 from C:\Users\GEORGE\Documents\Arduino\libraries\Tic\Tic.cpp:1:

C:\Users\GEORGE\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.2.0\libraries\Wire/Wire.h:59:20: note: candidate: virtual size_t arduino::MbedI2C::write(uint8_t)

     virtual size_t write(uint8_t data);

                    ^~~~~

C:\Users\GEORGE\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.2.0\libraries\Wire/Wire.h:60:20: note: candidate: virtual size_t arduino::MbedI2C::write(int)

     virtual size_t write(int data) {

                    ^~~~~

C:\Users\GEORGE\Documents\Arduino\libraries\Tic\Tic.cpp:192:23: error: call of overloaded 'write(uint32_t)' is ambiguous

   Wire.write(val >> 16);

                       ^

In file included from C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h:15:0,

                 from C:\Users\GEORGE\Documents\Arduino\libraries\Tic\Tic.cpp:1:

C:\Users\GEORGE\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.2.0\libraries\Wire/Wire.h:59:20: note: candidate: virtual size_t arduino::MbedI2C::write(uint8_t)

     virtual size_t write(uint8_t data);

                    ^~~~~

C:\Users\GEORGE\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.2.0\libraries\Wire/Wire.h:60:20: note: candidate: virtual size_t arduino::MbedI2C::write(int)

     virtual size_t write(int data) {

                    ^~~~~

C:\Users\GEORGE\Documents\Arduino\libraries\Tic\Tic.cpp:193:23: error: call of overloaded 'write(uint32_t)' is ambiguous

   Wire.write(val >> 24); // highest byte

                       ^

In file included from C:\Users\GEORGE\Documents\Arduino\libraries\Tic/Tic.h:15:0,

                 from C:\Users\GEORGE\Documents\Arduino\libraries\Tic\Tic.cpp:1:

C:\Users\GEORGE\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.2.0\libraries\Wire/Wire.h:59:20: note: candidate: virtual size_t arduino::MbedI2C::write(uint8_t)

     virtual size_t write(uint8_t data);

                    ^~~~~

C:\Users\GEORGE\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.2.0\libraries\Wire/Wire.h:60:20: note: candidate: virtual size_t arduino::MbedI2C::write(int)

     virtual size_t write(int data) {

                    ^~~~~

exit status 1

Error compiling for board Arduino Nano 33 BLE.



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Not sure if I am doing something wrong ot just the library does not work on Arduino Nano 33 BLE.

Thanks!

Hello.

There was an issue with how the Tic Stepper Motor Controller library for Arduino worked with the Wire library used for the Arduino Nano 33 BLE. We just published a new version (2.1.1) of the library that should fix the problem. Please note it will take some time be available in the Arduino IDE’s Library Manager.

Thanks for bringing this to our attention, and please let us know if you run into any other problems.

- Amanda