We’re using MWorks with an Arduino nano v3 to run an experiment that includes bar pulling - from the code attached (we use this demo program to try to isolate the issue), you can see our switch is connected to the Arduino digital IO pins. The Arduino is not working reliably- the variable associated with the digital IO changes status (from true to false) randomly (i.e., the program thinks a bar is being pulled when it’s not).
We also occasionally get an error when loading the program (the first error in the attached screenshot), which we think is probably related.
Have you encountered a similar issue before with original Arduino nano? Do you think the problem would resolve if we upgrade to the Arduino Nano 33 IoT?
I’ve never tested a plain Nano, so I can’t speak from experience.
In the past, when I’ve seen errors like this with other Arduino boards, it indicated that the board didn’t have enough on-device flash memory to store all of StandardFirmata. That said, the Arduino IDE says that StandardFirmata uses only 47% of the Nano’s available program space, so it doesn’t seem like that should be the problem.
Speaking of the Arduino IDE, make sure it isn’t running when you’re using the board with MWorks. If it is, it might attempt to interact with the board via serial I/O, which could break the communication channel with MWorks.
While I don’t see a reason why the plain Nano shouldn’t work as a Firmata device, the Nano 33 IoT is definitely a much better board overall. Its clock speed and flash memory are 3x and 8x those of the plain Nano, respectively, and there’s less than a dollar price difference between the two. Even if you don’t need the IoT’s Bluetooth capability, it’s still probably a better choice.