0

open source robot speed controller
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

open source robot speed controller

by keen101 on Fri Dec 25, 2009 5:22 am

Hey everyone, its been awhile since I've done anything arduino related. But, I thought i'd take the opportunity to share/open source a design I had been working on. I really hope this interests someone enough to pick this project up. I had really wanted to finish it, but as time goes on I find I dont have enough drive in me to work on it now for various reasons.

Anyway, the idea was to create an open source/open hardware mosfet speed controller for high-end competition robots, or maybe open source moon rovers. I'd love to see this project take off. It's based off of trying to recreate two speed controllers used commonly in FIRST competitions. And also on an already open-source speed controller osmc.

1.http://www.ifirobotics.com/victor-884-s ... bots.shtml
2.http://www.luminarymicro.com/jaguar
3.http://www.robotpower.com/products/sidewinder_info.html

I haven't worked on this for several months, so I dont even know where I left off at. I do know a few ideas I had been thinking of implementing were:

1.schottky diodes for shoot through protection
2.Reverse voltage protection using a FET (with ESD protection for the FET)
3.current sensing (this would give it a “mars rover” feature for sensing when a motor is failing.
4.Feedback wire to tell main computer about current sensing/temp/encoders/etc...
5.built in hall effects sensor for encoding?
6.I2C bus
7.temperature sensor w/ external fan
8.status led for forward (green), backwards (red), and yellow (to-be-determined), perhaps even flashing yellow (something else)
9.AVR/Arduino compatible
10.software Brake mode w/ 2 pin jumper w/ led (this is very useful for stopping faster in competitions)
11.had wanted to use all through hole parts like freeduino, but it seems like it may be a lofty goal.
12.Safety cutoff limit switch inputs?

Here are links to the documents I found helpful or interesting:

1.http://www.robotpower.com/downloads/OSM ... _V4_25.pdf
2.http://www.robotpower.com/downloads/osm ... -clean.pdf
3.Jaguar Reference Design Kit (attached)
4.http://www.intersil.com/data/fn/fn3659.pdf
5.http://www.talkingelectronics.com.au/pr ... atic-1.pdf
6.http://www.bobblick.com/techref/project ... ridge.html
7.http://www.dharmanitech.com/2008/11/sma ... ethod.html
8.http://www.zeva.com.au/speedy/
9.http://www.mikrokopter.de/files/Flight- ... _0_doc.pdf
10.http://www.math.niu.edu/~behr/RC/speed-ctl.html

anyway, i hope other people would like to have a low cost and open source speed controller too. :-)
Attachments
speed_controller_r2.zip
(110.83 KiB) Downloaded 278 times
BDC_RDK_UM.pdf.zip
(963.65 KiB) Downloaded 242 times
Last edited by keen101 on Wed Mar 03, 2010 9:05 pm, edited 2 times in total.
keen101
 
Posts: 34
Joined: Wed Apr 23, 2008 8:51 pm
Location: Colorado

Re: open source robot speed controller

by keen101 on Sun Feb 14, 2010 3:35 am

couldn't sleep tonight, so i worked on improving the design for PCB. I removed the safety diodes and the arduino chip and actually most of the stuff. (then i added them back on after i figured out a good layout) This is what i am calling a prototype version. I hope to order one from batchpcb and hook it up to an external arduino for testing. If it works, i might continue on improving the design.
Attachments
speed_controller_test_r7.zip
(64.55 KiB) Downloaded 202 times
speed_controller_test_0.3.zip
(prototype revision 0.3) This one has schottky diodes back on. It also has 12v inputs, and several schematic fixes.
(63.57 KiB) Downloaded 190 times
speed_controller_test_0.zip
(81.62 KiB) Downloaded 224 times
Last edited by keen101 on Wed Mar 03, 2010 9:08 pm, edited 1 time in total.
keen101
 
Posts: 34
Joined: Wed Apr 23, 2008 8:51 pm
Location: Colorado

Re: open source robot speed controller

by keen101 on Mon Feb 22, 2010 7:13 pm

Okay So, i've continued to work on this a little more. I havent gotten my pcb for testing yet, so things might stagnate for awhile after this. But, anyway i've come up with a smaller design with stackable headers. It fit's within 3"x3" which i think is a pretty small footprint for a mosfet h-bridge with all hole-through parts. This thing is still not finished, and could seriously be improved upon. It could even be smaller with surface mount parts, but i've never done surface mount. Anyway, i added a fan on this design for cooling. I think it would be cool as a safety feature to cut power to the motor if the fan gets clogged, since these fans have built-in hall effects sensors for RPM. Perhaps a 12v regulator would help too. I still havent added reverse voltage protection yet, either. The bottom board is waiting for me (or someone) to figure out what should connect where on the arduino chip. And i havent added an FTDI connector yet.
Attachments
speed_controller_test_small_r8.zip
(45.76 KiB) Downloaded 210 times
speed_controller_test_small_r8_part2.zip
(41.12 KiB) Downloaded 206 times
keen101
 
Posts: 34
Joined: Wed Apr 23, 2008 8:51 pm
Location: Colorado

Re: open source robot speed controller

by keen101 on Wed Mar 03, 2010 9:22 pm

EDIT: ...I found a major design flaw today. Eagle Cad lied when i chose an N-channel mosfet. I've fixed it in revision #9. http://keen101.wordpress.com/2010/03/06 ... law-grrrr/

It's still in the prototype stage technically, since i haven't tested it out yet, but it's come along way since i started it.

Here is the small stackable design again with the top layer with correct values and Schottky diodes on it for shoot through protection. (although it would probably work without them) I also finished the bottom board layout, and am pretty satisfied with it. I've tried to fix all the schematic errors. I put the correct values on the capacitors, and stuff. I actually reached most of my mini goals with this project. I was able to add an I2c bus, temp sensor, status led, arduino compatible, used all through hole parts, and added an external FTDI connector.

Hopefully i did a pretty good job. Most of the time i didn't know what i was doing, so there could be problems with this design. I'd love some feedback. oh, haha... i nicknamed it the xyzzy motor controller for those of you out there geeky enough to get the reference. Hey.. it needed a catchy name. :)

Possible improvements include adding a current sensing circuit (via I2C?), changing the screw terminals to 6-32 screw terminals?, ISCP programming port?, 12v regulator, reverse voltage protection, surface mount coversion?.....etc...

EDIT: ...I found a major design flaw today. Eagle Cad lied when i chose an N-channel mosfet. I've fixed it in revision #9. http://keen101.wordpress.com/2010/03/06 ... law-grrrr/
Attachments
xyzzy_bottom.png
xyzzy motor controller bottom
xyzzy_bottom.png (26.94 KiB) Viewed 4364 times
xyzzy_top.png
xyzzy motor controller top
xyzzy_top.png (21.01 KiB) Viewed 4364 times
keen101
 
Posts: 34
Joined: Wed Apr 23, 2008 8:51 pm
Location: Colorado

Re: open source robot speed controller

by keen101 on Thu Apr 08, 2010 11:14 am

Okay here are the R9 files. This is the only working prototype version. This version has fixed the p-channel mosfet mixup. It's still a prototype version though...

I've tested the HIP4081A part of the circuit, so i know the h-bridge works. It seems like it's backwards though. To get it to turn one direction you have to ground pin 5 or 6, and make sure the disable pin is grounded. I should be able to control it once the arduino is programmed. Hopefully i can get a youtube video made sometime in the future.
Attachments
2010-04-05-222845.jpg
2010-04-05-222845.jpg (54.33 KiB) Viewed 4173 times
2010-04-05-222702.jpg
2010-04-05-222702.jpg (49.87 KiB) Viewed 4173 times
xyzzy_r9_working_april_5_2010.zip
(124.88 KiB) Downloaded 241 times
keen101
 
Posts: 34
Joined: Wed Apr 23, 2008 8:51 pm
Location: Colorado

Re: open source robot speed controller

by keen101 on Fri Apr 30, 2010 12:56 am

Hello to anyone who's been following this for awhile.

Sorry, but i'm going to abandon this for awhile again. I lost interest again.

Now, while i did say "R9" is a version that works... I'm pretty sure that it need a "reversing op-amp to fix the weird "backwards input issue". Basically, in the HIP4081A suggested use diagram it had an op-amp that reversed the signal going to the chip, which i think allows it to function properly with a microcontroller. I'm not exactly sure, but i left it out of my design, because i originally thought it could be programmed in the arduino correctly. I no longer think that.

So, if you want to use this design, take a look at the HIP4081A datasheet. I'm not an electrical engineer.

EDIT: Here are some higher resolution pictures for those who are still interested. http://keen101.wordpress.com/2011/01/07 ... -pictures/
keen101
 
Posts: 34
Joined: Wed Apr 23, 2008 8:51 pm
Location: Colorado

Re: open source robot speed controller

by luismi911 on Mon Nov 19, 2012 9:26 pm

Thank you very much for all this information! it really helped me to improve my current "design" (actually is a mashup of other designs, including yours, but anyway... :D )
luismi911
 
Posts: 3
Joined: Mon Nov 19, 2012 9:22 pm

Please be positive and constructive with your questions and comments.