Wiring an Arduino to control a Jaguar

Hey everyone,

I’m working on a personal project which will involve using a Jaguar speed controller to drive a motor. The Jaguar will be hooked up to an Elegoo Mega board (Arduino knockoff, but functions the same). I have never had to wire anything like this before, and haven’t been able to find anything online that explains the process of connecting the Jaguar to the Arduino in a way I understand. That being said, does anyone have any advice or experience on how to wire and program a Jaguar off an Arduino? I found a library that should help me on the code side for the most part, but any other help would be great.

Thanks in advance.

These two links will be your starting point:

https://content.vexrobotics.com/docs/217-3367-VEXpro_Jaguar_GettingStartedGuide_20130215.pdf

https://content.vexrobotics.com/docs/217-3367-VEXpro_Jaguar_Datasheet_20130220.pdf

Table 4 in the 2nd link does provide minimum and maximum periods for the PWM to be ~5 - ~30ms periods (divide 1/period to get frequency in Hz).

In terms of control, the two first links I posted say it uses “sevo-style PWM.” The data sheet (Table 4) says that the minimum pulse width is .67ms, the maximum pulse width is 2.33ms, and the neutral pulse width is 1.5ms.

At the minimum pulse width, the motor will spin full speed backward. At the maximum pulse width, the motor will spin full speed forward, and at the neutral pulse width, the motor will not spin (it may coast or brake, depending on how you’ve configured the driver)

These values are essentially normal servo PWM, so you can use the servo libraries built into an Arduino (including Uno) to control the motor. The servo library uses angle (I think between 0 and 180) to control servo angle. For this, you can relate it to 0 = full speed backward, 90 = neutral, and 180 = full speed forward. I’m pretty sure that the normal Servo library runs in the required frequency range of this driver.

Thanks! I’m gonna take a stab at it and see how it goes!

Awesome!

Feel free to reply here if you need more help. I haven’t used the Jaguar before, but I’ve done my fair share of Arduino tinkering, and spec sheets are my friend…

If you’re interested in using the CAN interface and internal closed-loop features of the Jaguar, this document describes the specific CAN APIs: http://carlosgj.org/Lorentz/7870.SW-RDK-BDC24-UG-7243.pdf

(Sorry for linking to my own site, but for some reason, I can no longer find that document hosted anywhere else.)

I got it working thanks to the resources you gave me. Thank you so much!

Sweet!

In the future, if you’re working on personal projects, pololu.com and adafruit.com are a really good source for hobby electronics.

Amazon is pretty good if you know what you’re looking for and can recognize good and bad parts.

Speaking from experience: I can tell you that it’s not a good idea to go to Amazon and buy the cheapest Accelerometer breakout board that they have. It came with zero documentation and it was a nightmare to find any info online (pretty much everything online about the sensor I got was people complaining that they couldn’t find anything online). The same logic could be spread to other components.