so commercially available products need to withstand a greater range of variables than a home product.
for example if you were designing your own motor driver board you would know what your supply voltage, motor characteristics and communication specifications were in advance. you could just combine the components that work for your variables.
you can engineer by trial and error. if a certain set of components works in your test board you are done.
the chances are you would not need to guarantee the device would operate the same way in a cool dry climate as a tropical, hot and damp one...
if you had do design the same thing for a commercially available product you would have to cater to a far wider range of variables.
the designer would also have to be far more confident that it was going to work for at least as long as the warranty period...
the design has to work with components of slightly different tolerances as vendors change over the life of the production run.
there is also what i like to call the "muppet factor". some muppet is going to buy your product and try and break it/their other equipment/themselves with it. you have to factor muppets with lawyers into your equation.
so, in short, commercial products have to do things by the book. no short cuts.
this will lead to far more circuitry. capacitors on signal lines that will work ok without. resistors between I/O pins, etc.
you can find my motor driver circuit diagram half way down this page: http://mrdunk.googlepages.com/electronics
(click on the circuit diagrams to enlarge.)
an example of the sort of change i could make half way through the design process is the jumper "JP1" in my circuit diagram. (http://mrdunk.googlepages.com/motor_controller_sch.png/motor_controller_sch-full;init:.png
i could program the ATtiny45 with the circuit built without problems until i connected the motor to the circuit. for some reason the ATtiny45 cannot be programmed with the motor connected.
now it may be weird that it works one way and not the other but i don't really care. i just want it to work so putting in JP1 allows me to connect either the programmer or the motor driver to the ATtiny.
my point is a professional circuit designer would have anticipated that problem and probably a whole bunch of other potential problems and made a far more complicated but technically better circuit.
the professional circuit designer's board would work in 100% of applications.
my design works on my robot so i am happy. (it may or may not work in 100% of applications. i don't care as i don't need it to. hence the shortcuts...)
anyway, i'm off on a rant again aren't i?
One more thing, what is the difference between h-bridge, motor driver, and motor controller or are they all just the same thing?
yea. i'd say a motor driver and motor controller are the same thing.
an h-bridge is a kind of motor driver. (there are other kinds but h-bridge is the most common.)
so, in short,
buy yourself a motor driver chip and play with it.
chances are it will work first time.
if it doesn't debug and change your design.