I want to run the ST1 using an Arduino MKR1000 board. The TX and RX pins on this board operate at a 3.3V logic. I’m using a sparkfun TXb0104 to translate the 5V pins from the servo to the 3.3V logic on the arduino. However, I can’t get any of the examples to work. The servo worked on an Arduino nano that has 5V logic pins. Has anyone tried running the ST1 through a level shifter?
@Chealsie Welcome to the RobotShop Community. Indeed a level shifter should do as the name implies - changes 3.3V level signals to 5V. Unfortunately 3.3V signals directly to the LSS are problematic. It sounds like perhaps something with the wiring of the board? You’re powering VccA and VccB?
Yes this is my pinout of the level shifter:
A1 → Tx of Servo
A2 → Rx of Servo
VccA → 3.3V
Gnd → common ground
B1-> RX of arduino
B2 → TX of arduino
VccB → 5v
Gnd → common ground
could the issue be that the MKR board has an ARM microprocessor instead of AVR?
Not sure. As you had mentioned, the servo worked before, so some quick ideas might be:
- Baud rate changed accidentally? Perhaps re-confirm the servo’s settings
- Ensure you have Tx to Rx and Rx to Tx (evident, but always good to check)
- Ensure the servo has the correct ~12V power supply and common ground as well
- Double check your code and that the correct commands are being sent, with a carriage return etc.
If none of these work out, can you provide a few clear photos of the setup / connections?
Thanks for the response. I’ve double checked all those things. To clarify, it worked on the Arduino Nano and the Arduino Nano Every which are both AVR based boards. It just doesn’t work on the MKR which might be because of the Microcontroller?
Nothing immediately comes to mind - if it’s standard serial being received normally by the servo it should work. Would need to investigate that chip further to see if there’s anything different. If anyone else here on the community has experience, ideas or suggestions they are welcome.