How do I hook up the Makerverse motor driver to my Arduino Nano 33 BLE IoT so that it supplies 3.3v logic? Apparently it can do this but it is unclear how to do it. I can see how to power the motors but the VM/5Vout function is unclear. The last thing I want to do is blow the Arduino pins.
I have seen a question/answer on this already but the answer makes no sense to me.
Note my setup is as follows:
Motor battery: 12v 3S lipo
4x 12v DC motors
1x Arduino Nano 33 BLE IoT
2x Makerverse Motor Drivers to drive the 4 motors
The VM/5Vout pin is directly connected to the VM terminal (green screw terminal) which is “Motor Supply”. If you are using a motor supply of 12V as you imply this pin will be 12V (3S limo is nominal 11.1V) so DO not connect this to Arduino unless it will accommodate 12V. I don’t know about your particular Arduino. It MIGHT take 12V via the “Vin” pin, you will have to check. If it won’t you will probably need a separate supply.
Connect PWM A and PWM B to 2 PWM capable pins on the Arduino and DIR A and DIR B to 2 other output pins. The names are self explanatory. PWM - speed control and DIR - direction control. This motor controller apparently is tolerant to 3.3V and 5V logic.
Repeat for second motor controller.
So total I/O pins requires is 4 PWM and $ direction. Total 8.
Important, Arduino ground has to be connected to BOTH motor driver boards which will ultimately (via board) connect to motor supply ground. In other words all grounds are connected together.
Make sure your 3S Lipo supply has enough grunt to drive all the motors and Arduino if you connect it in this manner.
Recently we made a design revision where we added a 5V regulator for powering your microcontroller without worrying about whether your motor supply voltage is too high for the power input on your micro:
So if you have older Makerverse Motor drivers, you’ll have a VM terminal on both sides that is a direct connection as Robert says, but if you have a newer one you’ll have a “5Vo” terminal that can be used to power your Arduino if you like. Your Nano 33 BLE has an input range of 5-18V, so you could go through the regulator, or not. I’d suggest using the regulator as this is less likely to blow up an adjacent pin if you mess up:
The link to the schematic on your product page does not show this 5V regulator.
The pics on the product page show a 5Vo pin which you refer to.
I cannot find the the small paragraph you copied (in very small print ) on your product page but I did see
“This new, upgraded version features a 5V regulator output, pre-populated current limit potentiometer, and now includes screw terminals and headers”.
but no mention of the label “5Vo” although this should be self explanatory. If you were searching to clarify this a check of the schematic would only provide more confusion as I can’t see any reference to an “old” or “new” version.
I do see “Rev 10 14/09/2021” which I think would be a drawing revision. On the pic of the rear it has “Makerverse Motor Driver, 2 Channel - Application Guide - Tutorial Australia” whatever that means.
The system has changed what I actually printed which is (I will leave out the quote marks) Makerverse Motor Driver, 2 Channel - Application Guide - Tutorial Australia
It has done it against will try to fool it.
trymkrvrs.io/03again. I hav prefixed “try” and suffixed “again” so just disregard these characters.
Thanks for raising this @Robert93820 We’ve updated the schematic + hardware repo
To answer @Pete35523
The motor drivers
5Vo pin can be connected to the Nano’s
The motor driver is supplied by your 12V supply (VM screw terminal). This power is delivered to your motors. A small portion is regulated down to 5V and is passed to the Nano.
Thanks to all who have replied!
So to just reiterate, I can power my Arduino via the 5Vo regulated 5v supply. That is great.
What I am concerned about is the fact the the Nano BLE 33 takes 3v logic. The driver states that it is compatible with such an Arduino. Is this correct?
I can’t see anywhere, how 3.3v logic is supplied from the input logic pins on the board. 5v would damage the Arduino.
All of your logic signals are going FROM the Arduino. Declare these pins as OUTPUT in your sketch. They will operate both ways but to drive the motor driver they will be OUTPUT. There will be nothing going from the driver board back to Arduino.
Yes of course. But will my 3.3v logic from the arduino be sufficient as an input to the motor driver pins?
I just don’t see how the board has been designed to be 3.3v compliant
I am not from an electronics background so often explanations from people who are just go straight over my head
You will have to be able to dive into the innards of the controller IC to find out. The input circuitry must be designed to handle voltages from 3V to 5V happily.
I think this is a case of just believing the people who should know and go from there. In other words don’t worry too much about it.
Thanks for all your help!
It happens in the chip they selected to use for that board. The logic low level is specified to be no higher than 0.7V. The logic hysteresis is specified as typically 60mV. So the logic high transition for an increasing voltage will be about 0.7V+60mV, but not less than 1.5V. The logic outputs of the 3.3V Nano easily meet that spec.
Great feedback! Given the confusion we’ll update the product page to be more explicit about logic levels
Thanks again. I’ve ordered 2 of the drivers. Hopefully will come today. Really looking forward to using them
Hi Michael et al,
Been a while since I’ve had time to try the motor driver, but I’ve got it working using basic C code with a Nano 33 IoT. So my initial goal was accomplished.
Is there a particular motor library that would be suited to the Makerverse motor driver for an Arduino?
My concern at the moment is issues I might get with reversing the motor direction quickly such as back EMF
I’ll continue evolving my own code. I might end up with my own library for this.
You get “back EMF” anyway, that is what the flywheel diodes get rid of. These should be on the driver board.
Not a good idea to apply reverse voltage to a motor while it is still moving. The driver board should go into “braking” mode when stopped. That is both sides of the motor at the same potential, Power or ground, no difference. If you are doing this with code the safest is to have a delay between motor stopped and the application of reversing voltage. I think some of the upper market controller/driver devices would have some sort of sensing built in to the logic to prevent this happening.
Yes that all makes sense. Braking is pretty easy to factor into the code so I’ll do that
I have used one of these connected to Pi Pico 3.3V pins.
Datasheet for the motor driver states:
Logic pins absolute max rating.
PS the datasheet is your friend.
Yep thanks for that. The datasheet may be my friend but honestly - I don’t find them friendly even though I know I must try and make them my pal !