Since I know some of you have used the Sabertooth and Kangaroo I figured I would ask opinions.
I have decided on the Parralax Arlo base for my next robot chassis. I will use the caster's from parralax.
I will most likely be using the Sabertooth and kangaroo combination for motor controller/PID but I am not decided on this and open to suggestions.
I also find myself in a heated mental debate between the wheel/motor combination from parralax or the Zagros Rex motors and wheels combined with the Sabertooth/Kangaroo.
One of the key items for me is how well the encoders between the two different motor/wheel sets works with the Sabertooth and kangaroo.
The other item floating in my mind is the ground clearance between the two motor/wheel sets. It seems at least to me that the Zagros wheels would provide more ground clearing but since the base plate of the chassis provides stability to the base platform I am not really sure if using the Zagros motors are feasible.
Since I am going to build a body, arms and head on top of the base the torque and weight carrying ability is important.
I need to be able to control both the position and speed of the motors at the same time. For example example I should be able to have to robot move lets say 1 feet at a certain speed.
I know this is kind of an open ended questions but if anyone have used any of these wheel/motor combinations please provide your 2 cents as it relates to the items listed above.
I appreciate any comments or insights you guys can provide.
Upgrade to ARC Pro
Unleash your creativity with the power of easy robot programming using Synthiam ARC Pro
If you do buy the base get the aluminum wheels, I wish I had of. The plastic ones are a bit fragile....
Probably not your cup of tea, but the iRobot Create has all that implement in one neat little robot chassis... Encoders, bump sensors, wheel drop sensors, wall detector, edge sensors.... I have several and they are a really great self contained robot chassis....
I like that the encoders on the Rex motors are attached to the motor versus the disc based encoder that separately attaches on the parralax motors.
The other aspect that makes me lean towards the Rex motors and wheels is the wheels on the Rex does not need to be inflated.
I saw a number of posts on the parralax forums about the wheels losing air and needs to be inflated with a hand pump every so often.
If I do end up going with the parralax set it will be the aluminum ones.
The other aspect of the Rex motors I like is adjusting the height of them could easily be done using a shim between the mount plate and the chassis base.
Assuming my math is good it seems the parralax motors have more torque though.
How did you find the parralax swivel casters. Do they move freely?
I have to agree with you that it seems an somewhat iffy design especially with the shaft rotating and potentially vibrating.
If the ring is plastic and depending on the teeth size and plastic type the grip on the shaft may not last.
I am not sure what the distances are between the ring and encoder module sides but it cannot be much.
It seems there is an element of luck involved on how tight that encoder ring assembly would be.
Have you used the Rex motors with the EZB and a motor driver to control the motors.
If so what issues did you run into?
EDIT: Also the rex motor comes in two speeds. The slower one has more torque but I got the faster one and it has plenty of power for my needs.
Hope this helps.
The problem I have had with the Kangaroo is that it cannot use the high resolution encoders (of the type I use) in mixed mode (dual motor locomotion), I am having to design a circuit that divides the encoders outputs to get it all to work. With a single motor with high res encoder (independent mode) you should be ok, its just when the Kangaroo has to deal with 2 motors simultaneously it cannot keep up with the counts.
The Kangaroo max pulse input is 80000 for one motor, meaning that its 40000 for two motors and in mixed mode it has to read two encoders simultaneously. So the fix is a divide by two (say 4013 D type flip flop) circuit, this reduces the 63500 pulses (per motor per revolution) down to 31750, the loss in accuracy is negligible. Dave's faster (less torque) motors have lower pulse counts so may well be ok without this mod, but I am driving a 4 foot robot around on these motors so I need the extra torque.
Let me know if you need any more help.
Sounds interesting and exciting too
Do you have any idea what would be a good substitute encoder that should work the best with the Kangaroo?
I ask because I know nothing about them and I, as I'm sure many others here value your opinion.
Do you have a circuit diagram/parts list for your devider circuit?
I need to use mixed mode.
I am a bit confused.
In doing some research here it appears that the same encoders are used on both the MR200 & MR300.
Is that correct?
If that is the case then how does the MR300 encoders have 64000 pules and the MR200 only 32000?
Does it have something to do with the rpm of the motor?
The main reason I ask is because I don't plan on using the motors just adapting the encoders to my own motors.
Here is how it works.
@Herr Ball, The encoders are the same for both motors the difference in pulses is because of the gearing which makes the MR200 go twice as fast as the MR300 for this you get reduced torque but higher speed. The motors are identical its just the gearbox that is different between the two motors.
Did you ever get the circuit done for the D type flip flop as discussed above and did it work as expected?
I was wondering if you ever built the D type flip flop and if it worked for you.
I want to make sure it worked before going down this route.
Here is the pin out and circuit that Tony is talking about. Hope this helps. I am sure Tony will chime in soon.
Let us know how it goes if you try the mod before this.
1. Tell where I or Index is tripped - hook up I to pin 3 on the arduino I would suspect would accomplish this.
2. Tell the counts on an encoder/motor combo when you don't have the information
3. Tell if the encoder is working.
4. Tell if the flip flop circuit is working (should be 1/2 of what is reported without the flip flop circuit in line)
The output is sent to the serial port output of the arduino so it can be used with a computer to monitor. I figured I would need something pretty quick and easy to use for testing and it allows me to do the testing of the circuit on the test bed instead of in the robot.
starting code for arduino from things found on the internet. Because this is just something used for testing, I don't see the point in using much more than this at this point.
I did have to change encoder0Pos to be long instead of int because the encoder/motor combo exceeds ~32K counts per revolution.
I also found encoders that are the same as the ones that come on these motors, only with 200 counters per rev instead of 500. The part number is HEDS-5505#E04. The E in this indicates the number of counters per rev. C D E or F will work. The shaft coming out of the back of the motor is 5/32in which is what the 04 fits. 06 is pretty common also, which is 1/4 but I don't know if this would work. The issue that I am finding is that 25 of these would need to be ordered in order for them to be purchased by the distributer.
if the HEDS-5505#F06 will fit, it looks like the best option for the higher torque motors because this would give you 256 counters per rev. The gearing in the higher torque motor is 1:127 so this would give you 32512 clicks per rev of the wheel, which would fall inside the 40K per wheel for the kangaroo. I just don't know if there would be any issue with this larger shaft size.
Fitting the 5/32 rear shaft through the encoder ring was very tight, so it might not be an issue. I figure if the 4013 circuit attempt doesn't work out, I will look at trying to use a HEDS-5505#F06 and see how it fits for the prototype I am working on.
I agree with you, the best idea would be to change the encoders themselves (to 32512 clicks) if it all fits well with the motors then this additional 4013 circuitry would not be needed at all.
Thanks for giving us your feedback on this, as this is very useful information to folks making bigger robots that use the REX motors/encoders with the Kangaroo.
I haven't gotten the 4013's yet, so I don't have any specific version info yet on the version of the 4013 that I purchased. They are only around $0.30 each, so if I got slower ones, it's no big deal to replace.
In looking at the data sheets for these though, at 5v these run at about 5 mhz. At 15v these push the 16mhz range. I have also found some that say they need between 4v and 20v. In any event, I am still going to try this and try to come up with a solution outside of replacing the encoder. The reason for this is that finding the motors without the encoders attached seems to be a difficult thing. They are a specific version of Globe IM-15 motors. I can find them for about $200 each right now without the encoders. The encoders are a little over $40 each. Zagnos sells the motor with encoders for $130.00 each.
From an ease of install situation, it would be far easier to just put a module on the encoder that uses a flip flop.
If I were doing this one time, I think the solution would be to buy the other encoders and replace the ones on the back of the motors. For a larger scale solution, I think the flip flop is better and far easier if these flip flop modules were able to be mass produced. It's much easier to just plug a completed flip flop module into the encoder than to replace the encoders.
You got me too looking at changing the encoders themselves, but it seems a minefield (here in the UK) trying to find ones that are available with the right shaft size also they are expensive at over £30 each making it over 60 quid for the two required. You are right, in a one-off robot build that is not a problem, but in volume manufacture the humble 4013 looks like it will save valuable prime-cost. When I get back to working on the ALTAIR locomotion unit I will build the 4013 divider circuits into the actual lead that connects the encoder to the Roo and then heatshrink it all. I am pretty sure that the 4013 should work in this application, and there are also other (high speed) logic families that have D-type flip-flops all pin compatible. Best of luck with this and lets us know how you get on.
BTW Rafiki looks amazing, great job!
From a usability perspective (once I build this in a circuit board config), I will try to make the working prototype connect to the roo directly I think.
Would you see any reason to include a diode?
I wouldn't feel right about taking a design basically given to me by Tony to make money off of. He has helped me plenty. I would probably just sell to cover the cost to make and ship. The thought has also come to mind to sell this as a printed pcb and a kit of parts, but I have no clue at this point.
I am really surprised that there isnt a divide by two module for arduino's. Maybe I just haven't found it yet.
I could take this to silly levels but first I have to get the breadboard working.
I dont know what happened but now I get nothing out of it. I verified that the chip gets 5v and that 5v is carried through the circuit. I also replaced the chip with a new one with the same results. I verified that the encoders are still working when attached to the Arduino. For some reason now when I put this Circuit inline, I get nothing out the other end.
I will mess with it tomorrow some more. The good news is that I saw the divide by 2 circuit performing great.
Have you taken all unused inputs to ground (pins 4,6,8,10), this is important on the 4013.
Also you could try 74LS74 (or 74HC74 high speed logic) but check the pin out with these chips as its probably different from the 4013.
The IC has a notch on one side, a dot on the other and a line on the side with the notch.
In my past experience, the notch indicates the side with pin 1. The dot indicates where pin 1 is. On this chip, these are on opposite ends of the IC. I haven't messed with any that had a line on them like this but I assume that it indicates which end is ground?
So, which takes priority? The dot, or notch to indicate pin 1? If it is the dot, I have this IC plugged in backwards.
Hard to see in the photo but there is the half moon notch on the side with the line.
Edit, if you instead it backwards then you most likely blew it out and need a new one.
I have some extras, so I will probably just end up having to flip the chip to see what happens.
I have to get this done so that I can continue working on the SLAM module. A non moving robot isn't a very good dev platform for SLAM...
I see that the dot is also on the right side and that is not the case that I have seen in the past.
On most chips that I have played with (not all that many though), pin 1 is on the left side.
Just my take on this.
If the notch is correct, the top right pin is pin 1. If the dot is correct and the chip were flipped, the top right pin is pin 1. Both ways match the datasheet as far as where pin 1 would be. Its a bit confusing but I can stand to blow up a few of these if I need to. I think they were about 40 cents a piece.
This is who I purchased them from. Unfortunately it could be from any one of 5 different manufacturers, all of which have slightly different variants of the chip.
I may have just found the answer and the issue with my wiring... dang datasheets...
but this does answer for me which pin is pin 1.
Anyway, back to work.
The notch and line indicate pin 1 and the dot is where ground goes on this chip. Interesting. will keep working on it.
How many CPRs per encoder ? you mention 65K Pulses are the CPRs 65 / 4 or 65K / 2 ?
This takes you to about ~65K per rev of the wheel.
Both wheels working in diff mode take you to 131K clicks total. The Kangaroo can handle about 80K total per wheel rev. (40K per wheel)
flip flop takes you to about 64.5K total or 32,250 per encoder.
I am using 2 wheel config. If you had a 4 wheel config, you would be using 2 Kangaroos so I dont think it would matter.
PIN 1 :
If you have at least 3 methods to identify the pin 1:
1) Notch/Half moon on the chip to the left (Pin 1 Bottom Corner)
2) White Bar to the Left (Pin 1 Bottom Corner)
3) IF no points 1/2 Horizontal Text Orientation (Pin 1 Bottom Corner)
So the other question what's the blue point over Pin 7 ?
some RCA chips arrive with a Test dot can be blue, yellow or other color (I've only seen those two...)
There are lots of manufacturers producing the 4013 and some specs not pin-outs are slightly different. Hope you can get it working, do these chips fail completely after they stop working (after a short time) are they destroyed, or do they work again?
Sometimes is not clear when you have pins in all the sides, if there is only one engraved or white dot that is the pin 1.
When you have two engraved dots in opposite corners, the thumb rule is the text orientation or the datasheet.
Regarding the Kangaroo limits i think is related to the Kangaroo micro controller max frequency, the same issue like Arduino.
So if the limit is a frequency, to calculate the max frequency of one Quadrature Encoder (Hz) is:
Speed (Revs Per second) x Encoder PPR x 2 channels x 2 (rising / failing)
regarding your calculations, where is the speed ?
Thanks for all of the help along the way to all.
I suspect that it is an issue with the type of variable that they are using, because even a 2Mhz controller should be able to keep up. I am nowhere near 2 million clock cycles.
If yes, is not good enough, there are two issues:
digitalRead (arduino default libraries) are 50% more slow than atmel native implementation
arduino loop function is another dead horse
Let me know your arduino model, and i'll adapt some of my code, and you can hook the arduino directly to the encoders and try to measure the ticks at different speeds.
ATMega328 16Mhz 5V. Posting it here to help others who want to do this would be wonderful!
To measure the encoders, is important to control the PWM, to verify if can keep up with different speeds.
Not the 3.3 v ? Is not your idea to interface the arduino with the EZB UART ?
I do have many of them (FTDI module)
I've attached the Arduino Project which includes the DigitalWriteFast library.
with an arduino uno/mini you have 2 interrupts:
Interrupt 0 is attached to Pin 2 (used for the Left Encoder)
Interrupt 1 is attached to Pin 3 (used for the Right Encoder)
Phase A = Pin 2
Phase B = Pin 5
Phase A = Pin 3
Phase B = Pin 4
Thank you for putting this together. I have been doing some research on the topic of using the Fast Digital IO code project. Mainly just reading at this point, but am understanding why you would want to use it.
Is straight forward the connection to EZB ?
Why no plugin ? Or there's nothing to control/monitor via EZB ?
There is a control for it under H-Bridges, but I think most send serial as needed.
but I found a tutorial:
but it seems script complicated ....
Imagine the following example:
cmd => drive 1m straight
Check obstacle => obstacle found => stop the motors
Read the distance from last command keep in a var x$
cmd => turn 45 deg to the left
Drive 10 cms
cmd => turn 45 deg to the right
drive 10 cms
cmd turn 45 deg to the left
drive 1m - x$ straight
to do this or to know the encoders position only via scripting (something similar to the Tony's tutorial ?)
Here are the advantages to using the sabertooth/kangaroo combo that I see.
It is a self contained device that you can use to handle ramping and positioning. You can give it a command to turn right or left a certain distance (based on encoder clicks)
You can tell it to go forward or backwards a certain number of clicks.
The roo makes sure that the motors are working with each other at the same speed.
Start and stop ramping is calculated based on the load of the device and how the motors act under that load through an autotune function.
All of this can be done with an arduino, like I said, and I have created a sketch to do most of it. It just requires a lot more programming on the controller side. Not a lot of people want to do this and would rather use the autotune option on the roo.
The sabertooth by itself is a great motor controller if you are either going to use an arduino to replace the roo functions, or dont need position control. I use these for arm and neck movement and use an arduino to handle position control through a pot.
The arduino gives you the ability to code specific things like a command to "Move forward 1 meter" which you would then use the encoder to handle. This could be a serial command to the arduino which would then handle moving the motors a certain number of encoder clicks. The Roo/Sabortooth combo would allow someone who doesnt want to program an arduino to say "F.1000" to move the motors forward 1000 clicks, while letting the roo handle all of the fun stuff. A script would have to be used to calculate what 1 meter is equal to in clicks to move forward 1 meter.
i was trying to understand where the kangaroo fits and what you can do without entering the script world.
i understand outside of close loop control there is no solution unless you script like a guru. Also is out of the equation driving around the obstacles without scripting ?
it seems limited when you start combining devices and event based decisions...
I never used the saber neither the kangaroo, i use an arduino, high amps H-Bridge, a custom made circuits to decode the 2 x quadrature encoders and arduino software PID control. I need a granular control to provide information and receive commands from the PC where i run ROS.
but the previous questions it was curiosity how EZB world deals with navigation, and it seems is not an easy task.
Its one of those things where it could be best to roll your own solution. I wasn't trying to insult by any means, just telling you what I see are the benefits to the sabortooth vs L-bridge or roo vs another type of controller. Either works for sure. It is just about how much control you want, your skill set and what you like more.
Plugins can now be written in ARC as you know. I am sure that there will be some pretty cool ones developed in time. ROS definitely has an advantage in that this is what ROS is. Essentially it is plugins developed by many people that to an extent work with other things developed by many people. If you don't like how it works, the code is available to change it. Plugins are the same thing. I share my code with my plugins and others do also. My hope is that people will take them and run with them to make something really cool. ROS is more mature in this regard for sure.
I like the way you explain the things, i don't feel bad if we are overlapping the same subjects, sometimes even if the subject is well known there is always space to learn.
Go to the Office X
Ask for mail
when you got the mail
Drive back to me
I cant imagine the frustration if to do that i need to read encoder positions make calculations deal with unexpected obstacles etc.
I think we can agree there is a big gap regarding navigation, localization and other important tasks in EZ world no ?
before assuming that i got curious with kangaroo with control loop.
How other (members) EZ robots deal with navigation, are the robots confined to a controlled area ?
Here is why I think that is. The EZ-B controller uses wifi as its communication path back to the controlling computer. This path can get flooded and you know how much data is involved with SLAM. I suspect that it would flood the communications channel and make everything else real slow if not disconnect the V4. DJ is working on something that changes how much data can go through this path. To overcome this, I use USB from an on-board computer to control subsytems that help with SLAM and many other things. Really, I don't use the V4 much at all other than to allow other sensors to be added to my platform by end users. These other sensors can be accessed through scripts or through controls and gives the end user the ability to modify the bot without making any real changes to the core functions of the bot. I have taught 4th grade students to use ARC, so adding things should be simple enough for most people to handle.
The second reason that I see that this hasn't happened yet is because plugins just recently became available to be added by non-DJ-Personnel. This isn't a slam against DJ at all. I think that everything had to be controlled for a while, and DJ had a ton on his plate trying to do everything. Now that this is opened up to develop plugins for, I hope that people will do this for a few different reasons, but mainly to free DJ up to work on other things.
There are some who have done some things with SLAM type functions. Tony (Toymaker) has built a mapping and navigation module outside of ARC. DJ had done one inside ARC, but I have no clue where this project is. Basically, both build a map in an array, and then use that map for navigation.
The thing to remember is that scripts are not the only way to use ARC. The EZ-B isnt the only thing that you can control from inside ARC. There is a huge benefit to ARC outside of controlling the EZ-B, but most haven't realized it yet.
ARC could be a subscriber or a publisher to ROS if a plugin were developed.
I read somewhere in the forums, DJ will release some kind of visual slam ... i don't know if is vaporware or a different thing.
Sometime ago i commented a post of yours, asking for an EZ roadmap.
I remember you started the raft bot, but in the last weeks, i think you changed the roadmap/direction no ?
Releasing small EZ Plugins, but the question is with free open source plugins how can that help build a raft bot/$$$ (probably this post should be moved to the raft bot thread... )
Over time, I am sure they would become free to use except EZ-AI. I have costs associated with that that I wont be able to eat on my own.
The EZ-Roadmap should be to come up with better hardware, and let others develop new features as requested. If someone wants to sell it, they can. If they want to give it away they can. The roadmap for Rafiki has changed a bit in that instead of having a custom app outside of ARC that communicates to ARC, it will now all reside inside of ARC. I think this is the better approach from a development standpoint and from a support standpoint. It also lets people work in one environment instead of two or more.
BTW, just tested your code with one motor. ~38K per second reported. I am going to see if the flip flop works and then I will go to two motors.
Okay, two motors.
powerful combination gears encoders
Without the flip flop it looks like it was working fine. I will look at it more tomorrow. I suspect that the flip flop is a slower one that can't keep up and gives up. I will hook it back up and check it out tomorrow again. I may have to get some different IC's that run at higher speeds. Tony mentioned some earlier that ran at about 14 Mhz at 5v. I think these are running at about 5 Mhz.
I have decided to order some of these to eliminate the concern about the speed of the chip. I suppose that they will be able to run at 30 Mhz at 5v. This will quit being a concern at that point and I can focus on the circuit. I will do more testing this evening on the current chip to see if running at a slower speed allows the flip flop to work. I will let you know how it turns out.
I also will be interested in seeing if my theory is correct on the 4013 by running the motor much slower. I find it interesting that it picked up values for 2 seconds and then stopped working. I think I flooded it and it stopped taking data. This would make sense to me but I could be totally off. Will know more about the 4013 chip this evening and will update.
Thanks for all of your help.
I am confused about the 4013 partially working, I would have expected it to work, I am sure you will sort it though and find out what is going on!
can you make a simple draw how you hook the encoders, 4013 and the connection to the arduino, every tiny detail (from pin to pin)
Do it by hand to be quick.
This is what I built to wire off of. The student will come up with a sound design :).
Above the 4013 is a 104 disk cap.
The connection to the arduino is going through the Roo pins right now.
A - 5
B - 2
+ - vcc on opposite side of board
- - to ground where pin 1 would be
Do you have this PCB already, or are staging the circuit in a breadboard ?
Without flip flop reporting 38109 to 38250/s range.
It seems that one of my ground leads wasnt there which was tripping the reset pin on one side of the 4013.
Okay, happy and can proceed. I wasted all of about $7.43 buying the other chips but, I may use those anyway. I like overkill and the difference in the cost of the chips is very negligible. Also, these will function from 2v to 6v instead of 5v to 14v. This will make them more arduino compatible.
So, a 4013 works, with the wiring shown in the post on the previous page, with the capacitor and with the resisters as shown on the previous page. I will slap another one of these together and then have the boards made.
Thank you all for all of your help. I will post after these are back in the robot and I auto tune the Kangaroo.
Also, the issue with the roo is based on clicks per revolution and not clicks per second so I am now convinced it is a software issue and not an issue with the speed of the controller.
one quick question where are you sourcing the components, i really miss a brick & mortar store for the emergencies. Every time i go to digikey, i need to make "business plan" to include all the components for stock, and next ideas... is not only money (shipping) you waste but also the opportunity (time) waiting...
I will do some research and let you know. Synergy is local here so I might go through them. Will just have to see.
This is where I bought the parts for this from
4013's from Jameco along with the dip sockets.
resistors I used some that I had but ordered some from Mouser
Caps I used some that I had but ordered some multi layer ones from Mouser
The 74HS chip I ordered through DigiKey
I will find one place to get all of these from if I am going to have to hand solder them.
Okay, more research
Do you see an issue with me not supplying headers?
The first order will be 9600 of these. The sad thing is that this is the smallest quantity that I could make. 4 60"x 60" boards with these at 1x1.5" in size makes 2400 per board, with a 4 board minimum order... This is from a board manufacturer who has the highest ratings so they should be very high quality.
 I misunderstood what they said. 60 Square inches not 60x60. This changes things up a lot.
The first order will be for 160 of these. That changes the pricing model a lot.
Mouser looks like the place to go to get the quantity I would need for all of the components. That would sure leave a huge stock of these for Rafiki.
Those dang anti-static bags sure are not cheap...
For those in Europe, I chose all RoHS components.
The encoder/sabertooth/roo issue is really just one of the issues that can be resolved with this. I think it could be used for clocks or many other projects that I have seen while researching flip flop circuits.
This all excludes shipping of course. So, you end up saving about $96.00 with this option if you wanted this motor with a smaller count encoder. 65K per rev is crazy ridiculous.
If you are looking at producing quite a few robots using these motors, a cost savings of $192.00 per robot is huge. This along with the time to put these encoders on the motors as opposed to putting these on the encoders really helps.
Also, the pull up resistors for the encoder are in the circuit so, this is an added benefit for manufacturing.
Trying to keep it to where if I sell 50 of these, I break even.
 I will use sockets on the first 10 that I make. From there I will go to soldering the chips on the board.
The first 160 of these I am going to assemble myself. If they sell good, I will start having the board manufacturer handle the build and test process.
I will get a sheet that will need to be cut (40 or so per sheet). I plan on trying a scroll saw to cut these apart. If that doesn't work well or if I am breathing too much fiberglass, I will go to a wet saw.
Doing it this way should allow the cost to be more at the $6.00 range for the first run.
When it goes beyond this 160, I will receive completed boards ready to be sold.
if you "re-brand" the pcb as a dual frequency divider, one can use one pcb to 1/2 to frequencies (quad encoder) , or can a single PCB to 1/4 divide a single phase or frequency clock.
It's a very specific item/requirement, and is only needed in your build due to the Kangaroo + encoder solution.
If you endup building a few you can try to sell it as a Kit (PCB + components) or assembled ready to use. To check if there's market/need one place you can try:
I would order only 10 piece or something to test the idea, and only then when you have the full idea working (Bot + Slam + Software) and your are happy with the components i would evaluate if moving with a single PCB or multiple components.
off course you can try to sell a small batch online before embracing quantities.
Save you some time and work too.
Nothing like the smell of solder in the morning ... lol.
I do like the thought of putting 50 up for sale. If that happens, great. If not, they will end up being used in Rafiki's or other things later anyway.
I also like the kit idea and have from the beginning. The only problem is a lot of people will burn up the chips by not knowing how to solder them. If I add a socket (which still can be burnt up) then it doubles the price of the components. The good news is that these chips are pretty cheap so if someone needed to replace theirs, it is cheap for them to do so. I would probably solder the socket on though if I went that route.
IDK, right now finalizing the PCB design. Hopefully it will be complete tomorrow.
I do have a question on that though...
Is it important to you that the pin outs all come out in a single header location or do you mind if they come out from different pads on the board. For example, A,+,B and Gnd would be labeled but would not be in a row. It would be expected that someone would either put pins in these locations or would wire a wiring harness into these points that fits their needs. What are your thoughts?
I'll use different words to avoid hurting the existent products.
I would never choose SB or K for to build a robot product from zero, the reason is the price.
SB, K are very popular products when you go to the RC world, and when you build solutions using build blocks like E Z R. The way E Z B works forces you to have different operational blocks, and you have an overhead/management/communication layer over each component.
For example Arduino builders, why you need a K when you can build the logic using code or even a open source library (PID control).
Why i would need a SB, when i need only a H-bridge with some heavy amps.... etc.
Regarding the motor (if i got the right one) M R 3 0 0 = $130
only the encoder H E D S 55 40 = $49
It seems very good motor, but if i have one for $40 with encoders justifies the difference ?
If i go with the $40 i don't need a frequency divider.
The value will depend on your choices, but i can't justify if spending more in hardware it will make the difference until the software is ready.
If the software specs requires that particular combination, there is nothing to argue.
Building a product for end users, the price is very important...
I know the headers/sockets and other simple materials raise the price, if can provide 3 options, kit, assembled, assembled + headers.
Browse the Tindie community to have an idea of the offers, there a lot makers but there are also a few non makers (listing the 3party products from china).
I would pay attention to the makers.
Tje MR300 comes with an encoder. It is a 5505. (from Zagros)
The MR300 is a Globe IM-15 spur motor geared 127.78:1 with an encoder added. To buy this motor by itself without the encoder runs about $200 on-line. An encoder could be added which would cost about $40. This brings this total to $240 per motor.
Buying from Zagros, you save about $100 but end up with a really high count encoder, that a lot of systems are going to have trouble keeping up with. For say $6 bucks you can fix this issue, or you are going to have to replace the encoder if you want this motor. Replacing the encoder costs $40, so now you have saved $60 over buying the motor without encoder, and the encoder separately. To do this, you have to be comfortable removing the encoder and replacing it with a new encoder, but the only encoder that is readily available is a 100 count encoder. You have taken your resolution down by 5 times. The 6 dollar fix lets you save an additional $34 and allows you to have only 1/2 the resolution decrease.
Now if you take this into a mass production situation...
time = money and money = money. Reducing the cost of the robot build by this much is considerable. Even if you didn't use a roo or sabertooth, and drove this from an arduino and an LBridge, you have extreme resolution still, which might be far more than needed and require you to use larger variables/memory and cycles. Maybe cutting it by 5 is a great solution. Maybe cutting it by 4 or 2 is a great solution. Having options is a good thing, and definitely is a good thing when it comes to large production quantities.
I'm not familiar with those motors, did you pick them for a specific reason ?
Rated Voltage(volt DC): 12
Rated Torque(in.oz.): 300
Reduction Ratio: (127.78:1)
Motor Length (in): 3.855
Motor Diameter (in.): 2.00
Motor Weight(oz.): 16.00
Max. Continuous Torque (in.oz.): 300.00
Max Intermitant Torque (in.oz.): 300.00
No Load Speed(rpm): 40.73
No Load Current(amps): 0.22
No Load Torque(in.oz.): 0.65
Stall Current(amps): 6.00
Stall Torque(in.oz.): 1462.61
Friction Torque: 125.8959
Needed a 12 volt motor to keep electronics simple
size was small enough to fit in area it needed to fit
motor diameter was small enough
max CONTINUOUS torque in.oz 300. This is perfect for my needs
40 rpm with 4 inch diameter wheels is about walking speed.
Probably when i finish my build, if i start another one i'll try those motors.
I'll try to take a video of the motors running. I'm really impressed with how quiet they are.
Also, I made a mistake earlier. These are industrial grade, not military grade motors.
with 4 inch diameter wheels...
without the divide by 2 circuit, the smallest measurement is .5 nanometers
with the divide by 2 circuit, the smallest measurement is a nanometer
With 2 divide by 2 circuits, the smallest measurement is 2 nanometers
without any divide by 2 circuits, and replacement of the encoder with the 100 count available encoder, the smallest measurement is about 3.something nanometers.
It is a good advertisement to be able to say that your robot is accurate within a nanometer. This is all theoretical, and really impossible to verify... I mean, how would you measure to see if the robot moved accurately within a nanometer?
Anyway, some interesting numbers. I seriously doubt if the controller would be that accurate. I don't doubt the motors as much as I do the controller.
Tony, thank you for the video. I was going to try to replicate it, but have not had time yet. Thank you for posting it.
I see the advantage to using the Roo/Sabertooth combo as being a time savings investment. It could be done cheaper for sure, and I have a arduino solution already, but I do feel that dropping in already built components, that can be tuned for each robot specifically is the way to go. I would hate to have to make slight adjustments to code to account for slight variations in motors, wheels, controllers, circuits, weights, or any other variable. Being able to have the robot built, press a button a couple of times to let the autotune take place for the robot and then test seems like a much better solution even at higher costs.
Well, i did but didnt.
The 4013 reports around 19300 pulses per second
The 74hc74 reports around 19500 pulses per second
I find this interesting because I would have thought that they would have been the same.
Without the flip flop inline I get 38860/s. This could be pushing the digital read limit of the arduino I suppose. The motor is rated to run at 42291/s but my battery may not be fully charged and the simple serial mode that I am running in may not be going truly 100% on the motor.
I tested the battery with a volt meter and got 13.36v, so that should be good. I tested the output from the sabertooth that I am using for testing and got 10.94v to the motor so it should be running a bit slower than 40 RPM (about .911% which this tick count amount is close to at .918% of max speed). I will have to look into the sabertooth that I have to see if something is weird or if this is expected...
so, which is more accurate? hmm
4013 - 19300*2 = 38600 or 260 less than what the counts reports without the flip flop in place.
74hc74 - 19500*2 = 39000 or 140 more than the count reports without the flip flop in place.
It is impossible to test accurately to say because the ticks per second does not stay consistent, but I think the 74hc74 wins. I wonder if we are pushing the limit of the 4013 that I have with this encoder. The 74hc74 has 10 times the processing speed of the 4013.
I was also doing some searching online for Quad encoder android issues and it seems that there were some articles about people getting too high of counts and needing to use a circuit like this to handle the issues they saw. Who knows, I am sure that I will sell a few here if anyone needs them. If not, no problem, they will be used by the few people that I know who need them (including me). These are going to be sold by me and not CochranRobotics. I will sell CochranRobotics what it needs for Rafiki.
Now that this is complete and I have 4 working prototypes, I will start coding again and wont be on as much. Thanks again to everyone for their help!
I would like a couple myself.
I just want to set expectations up front if anyone is considering purchasing.
These will be "made in someone's garage", so please expect a working product but if you order 2 of them, I can't promise that these two will be in the exact same form factor. One might be a bit more narrow than another for example. These are being put on an additional order which is the primary focus of the order. I spaced these in a way that I should have no issue scoring the board and breaking each one off, but I didn't pay extra for the boards to be scored. I will probably cut these out with a wet saw. These are prototype boards. They will be about 1 inch by about 1.75 inches in size.
I will solder the 7474 chip, resistors and cap to the board and then alcohol wash the flux off the board before shipping. I will leave the header rows blank so that you can put whatever you want for headers. There is an input and output header row (5 pins each) labeled Roo (output) and Enc for the encoder side (input). All of the pins are labeled (G I A VCC B). I (index) is now connected through the circuit if you need it. You will have to solder in a 2k7 resistor to use Index and enable it to go through the circuit. There is no divide by to happening on Index. There is no branding information on these to keep them as small as possible. Right now I think the cost of an assembled board would be about $10. If you just want the parts and want to build it yourself, I think I will charge about $6.00. I will make a run to the post office weekly to ship out orders.
I decided to make some of the parts instead of buying them. The main part that I will be making besides the main sub-controller board for Rafiki is a USB type A breakout board. This board costs about $4.00 shipped online and I will need quite a few of them and can make them for about $1.40. Because of this I am making 15 of these, 3 USB signal splitters, 3 74hc74 based logic divide by 2 circuits and 1 2x 74hc74 based logic divide by 2 circuit per board that is manufactured. This will give me 12 74HC74 flip flop circuits and 4 2x flip flop circuits that I will be able to sell. It also gives me 50 usb breakouts and 4 usb signal splitters that I will be able to sell per circuit board order. I will put these up for sale and see what happens. The USB type A breakouts can be ordered online from other companies for what I would sell them for, but if you are buying any of the other two parts, this would be beneficial to include to save on shipping I guess. If you were to buy the USB Type A divider circuit then you might need 3 of these USB Type A Break out boards to go with it for example. I would sell the other 3 Rafiki boards but they are not general enough of a product to sell.
Anyway, waiting for the parts and then I will build some and open a store on my website.
Unless you are in this same situation, no need to purchase the divide by 2 circuits. If you are, they can help a lot. The other 2 parts could be helpful though.
My wheels are7" and I really can't go below 6" for clearance. Thanks
Here is what I mean...
If you had a motor that was geared 200:1 and you had an encoder on the back shaft of the motor that was a 500 count encoder, you would get 100,000 counts or ticks per revolution of the wheel.
If the encoder were a 100 count encoder and it were on the wheel end of the motor, you would get 100 counts or ticks per revolution.
The gear box and the placement of the encoder in relation to the gearbox has a lot to do with the level of detail by the number of ticks per revolution.
The issue comes in if the gearbox is say 127:1 and your encoder is before the gearbox, causing the encoder to spin 127 times per revolution of the wheel. This also gives you very accurate movement though.
I will start taking orders for these. Just send me an email. My email address in on my profile. They will be $8.00 each. If I already have an email from you then I already have you down for the number that you ordered. It will be about 2 weeks before I can have these made and shipped out.
This is a first come, first served deal. There will only be 20 available in the first order, of which 10 are still available.
Payment will be available through Paypal and the details will be handled through email for any orders.
The order for the boards will go in tomorrow. It will take about a week for me to receive these boards, and then about a week to make and test them before shipping.
I will update this thread with the current status as I know more.
Shipping inside the US will be done through USPS. Outside of US, I will have to see who has the best rate available. I know some have different shipping methods that they prefer. We can discuss the rates and all through email when the orders are ready to ship.
Payment will be due when these are complete and I have tested them and know that each one is working correctly.
I will provide post headers but wont solder them so that you have the option of using something else in this location. If you want me to go ahead and solder the post headers onto the board, just let me know.
There are 10 of these logic divide by 2 circuits available still. The cost that is being charged will cover the cost of having the boards made. The cost of the other parts of this process except shipping are being absorbed due to the fact that this order is also helping me with the cost of having the (hopefully) final Rafiki prototype boards made. If it is found that these are wanted by more people after this initial order is fulfilled, I will make a run of just these boards.
Anyway, two weeks from today, I hope to have the orders fulfilled and shipped out.
These are going into my next project, so whenever.
Thanks for doing this for us.
Sorry for no punctuation's I am talking to cell phone
Thanks for your patience. BTW, there are 22 available for sale if anyone needs these in the future.
Total cost for domestic with 2 day shipping is $22.80 for 2 of them. I have 4 more built, tested and ready to ship if anyone would like them. The others after this will be built and tested as ordered, but all of the components are here so it wont take much time at all to fulfill an order.
Thanks for doing this for us David.
They are trying to come up with a basic robot platform that would be expandable and allow a novice to learn about robotics and compete in a competition that they have coming up. This is when I mentioned EZ-Robot to them and described the EZ-B and ARC to them. I don't think that they believed me about ARC and how easy it would be to build what they were designing. Anyway... next time I am down there, I will demonstrate it to them and also bring some built flip flop circuits down to them to use/buy. It always amazes me when I talk to expert robot builders about how simple things can be and they seem to discount it because it is easy. I thought that was the entire point of what they wanted to do, but I was new among them so there is no level of trust built yet for them to believe what I am saying, and I get that.
Anyone needing these in the future can order from CochranRobotics.com.
I am now finished posting on this thread
I am in discussions with GLOBE to be a distributor for these motors now. I should have a quote in a couple of days for a purchase that will allow you to get these motors/encoders from me. I have asked for 2 different products to be quoted. One will use the Avago 500 count encoder and the other will use the Avago 256 count encoder. The 256 count encoder on these motors is not an existing part number at GLOBE meaning that they would probably cost me more, but we will see. The 500 count encoder on these motors is an existing part number and is what is sold by Zagros when in stock. It is also the one that requires the use of the logic divide by 2 boards for sale on my website to allow it to work with a DE Kangaroo controller. I should have news in the next couple of days and will update here if I will be able to carry these motors or not.