Dagu - Wild Thumper 4WD, 6WD and Arduino DC Motor Controller

Traditional mobile robotics is all about wheeled robots.
20 postsPage 1 of 21, 2
20 postsPage 1 of 21, 2

Dagu - Wild Thumper 4WD, 6WD and Arduino DC Motor Controller

Post by limor » Mon Oct 04, 2010 10:40 pm

Post by limor
Mon Oct 04, 2010 10:40 pm

ImageImageThe first draft of Wild Thumper Arduino DC Motor Controller is available to download here
ImageImageThe first draft of Wild Thumper Arduino DC Motor Controller is available to download here
limor offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by nunogato » Fri Nov 12, 2010 10:33 am

Post by nunogato
Fri Nov 12, 2010 10:33 am

I will update this FAQ with questions that some costumers send us.
If you have any question or problem with this controller please post it here and the answer will be available for all the users.

Q: I would like to enquire if "running a continuity test/check with a multimeter" on the 8 transistors (with metal screws) are supposed to BEEP?
Because I replaced all the 8 metal screws with longer screws, and I worry if I made a mistake (shorted any circuit).
I tested for continuity by attaching the multimeter probes directly onto 2 different metal screws (and the result is that they are all connected to each other; i.e. BEEP).May I ask what should be the correct result?

A: All the screws go through the aluminium heatsink and are therefore connected.
This is why the regulator and power transistor near the USB socket use nylon screws and insulating washers.
The power FETs used for motor control are fully insulated and thus not affected by the screws.
If you replace the nylon screws with metal then the heatsink will be connected to +5V (Vcc) and the processor would be damaged when using the battery charging circuit.
I will update this FAQ with questions that some costumers send us.
If you have any question or problem with this controller please post it here and the answer will be available for all the users.

Q: I would like to enquire if "running a continuity test/check with a multimeter" on the 8 transistors (with metal screws) are supposed to BEEP?
Because I replaced all the 8 metal screws with longer screws, and I worry if I made a mistake (shorted any circuit).
I tested for continuity by attaching the multimeter probes directly onto 2 different metal screws (and the result is that they are all connected to each other; i.e. BEEP).May I ask what should be the correct result?

A: All the screws go through the aluminium heatsink and are therefore connected.
This is why the regulator and power transistor near the USB socket use nylon screws and insulating washers.
The power FETs used for motor control are fully insulated and thus not affected by the screws.
If you replace the nylon screws with metal then the heatsink will be connected to +5V (Vcc) and the processor would be damaged when using the battery charging circuit.
nunogato offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 86
Joined: Mon Mar 15, 2010 3:48 pm

Post by vsming » Sun Nov 14, 2010 9:07 pm

Post by vsming
Sun Nov 14, 2010 9:07 pm

Dear RoboSavvy,
I have a few question :)

I would like to enquire what do the 4 LEDs near the 5V regulated output signal to the user?

Example:
When I download a sketch into the controller via USB,
(LD2=Yellow, LD3=Blinking Orange , LD4=Blinking Blue, LD5=OFF)

When I finish download,
(LD2=Yellow, LD3=OFF, LD4=OFF, LD5=Yellow)

When I open a serial monitor to the controller via USB,
(LD2=Yellow, LD3=Orange, LD4=OFF, LD5=Yellow)

Also, what does LmotorA & LmotorB (defined in IOpins.h) control?
Example:
To move the left motor forward:
analogWrite(LmotorA,255-LeftPWM);
analogWrite(LmotorB,255);

But to brake the left motor:
analogWrite(LmotorA,LeftPWM);
analogWrite(LmotorB,LeftPWM);

I'm confused as to what LmotorA & LmotorB actually control.
Also, what does a higher LeftPWM mean for "braking" the left motor?

Lastly, in Wild_Thumper_Controller.pde,
when I set LeftPWM to 255, the H-Bridge does not make any "noise"
but when I set LeftPWM to some other value (e.g. 254),
the H-Bridge starts to make "noise".
Is this normal?

Thanks in advance :)
Dear RoboSavvy,
I have a few question :)

I would like to enquire what do the 4 LEDs near the 5V regulated output signal to the user?

Example:
When I download a sketch into the controller via USB,
(LD2=Yellow, LD3=Blinking Orange , LD4=Blinking Blue, LD5=OFF)

When I finish download,
(LD2=Yellow, LD3=OFF, LD4=OFF, LD5=Yellow)

When I open a serial monitor to the controller via USB,
(LD2=Yellow, LD3=Orange, LD4=OFF, LD5=Yellow)

Also, what does LmotorA & LmotorB (defined in IOpins.h) control?
Example:
To move the left motor forward:
analogWrite(LmotorA,255-LeftPWM);
analogWrite(LmotorB,255);

But to brake the left motor:
analogWrite(LmotorA,LeftPWM);
analogWrite(LmotorB,LeftPWM);

I'm confused as to what LmotorA & LmotorB actually control.
Also, what does a higher LeftPWM mean for "braking" the left motor?

Lastly, in Wild_Thumper_Controller.pde,
when I set LeftPWM to 255, the H-Bridge does not make any "noise"
but when I set LeftPWM to some other value (e.g. 254),
the H-Bridge starts to make "noise".
Is this normal?

Thanks in advance :)
vsming offline
Newbie
Newbie
Posts: 4
Joined: Sun Nov 14, 2010 8:43 pm

Look at the photo

Post by OddBot » Mon Nov 15, 2010 5:30 am

Post by OddBot
Mon Nov 15, 2010 5:30 am

vsming wrote:Dear RoboSavvy,
I have a few question :)

I would like to enquire what do the 4 LEDs near the 5V regulated output signal to the user?

Example:
When I download a sketch into the controller via USB,
(LD2=Yellow, LD3=Blinking Orange , LD4=Blinking Blue, LD5=OFF)

When I finish download,
(LD2=Yellow, LD3=OFF, LD4=OFF, LD5=Yellow)

When I open a serial monitor to the controller via USB,
(LD2=Yellow, LD3=Orange, LD4=OFF, LD5=Yellow)

Also, what does LmotorA & LmotorB (defined in IOpins.h) control?
Example:
To move the left motor forward:
analogWrite(LmotorA,255-LeftPWM);
analogWrite(LmotorB,255);

But to brake the left motor:
analogWrite(LmotorA,LeftPWM);
analogWrite(LmotorB,LeftPWM);

I'm confused as to what LmotorA & LmotorB actually control.
Also, what does a higher LeftPWM mean for "braking" the left motor?

Lastly, in Wild_Thumper_Controller.pde,
when I set LeftPWM to 255, the H-Bridge does not make any "noise"
but when I set LeftPWM to some other value (e.g. 254),
the H-Bridge starts to make "noise".
Is this normal?

Thanks in advance :)


If you go to this products page and click on the photo then you can read the labels.

LED2 indicates power (+5V)
LED3 is USB TX
LED4 is USB RX
LED5 indicates if the battery is good. This is actually connected to D13 and used by the software to change the charger between fast charge and trickle charge.

You can also download the schematic. This may help you understand the controller better.

A & B are the two inputs to the "H" bridge. When one is high and the other is low then the motor will run in one direction or the other. When both inputs are high then the motor will brake. When both inputs are low then the motor will spin freely.

By applying equal PWM to both A & B you can control the degree of braking.

The brakes are really only needed with the high speed gearbox or if your robot is heavy.

vsming wrote:Dear RoboSavvy,
I have a few question :)

I would like to enquire what do the 4 LEDs near the 5V regulated output signal to the user?

Example:
When I download a sketch into the controller via USB,
(LD2=Yellow, LD3=Blinking Orange , LD4=Blinking Blue, LD5=OFF)

When I finish download,
(LD2=Yellow, LD3=OFF, LD4=OFF, LD5=Yellow)

When I open a serial monitor to the controller via USB,
(LD2=Yellow, LD3=Orange, LD4=OFF, LD5=Yellow)

Also, what does LmotorA & LmotorB (defined in IOpins.h) control?
Example:
To move the left motor forward:
analogWrite(LmotorA,255-LeftPWM);
analogWrite(LmotorB,255);

But to brake the left motor:
analogWrite(LmotorA,LeftPWM);
analogWrite(LmotorB,LeftPWM);

I'm confused as to what LmotorA & LmotorB actually control.
Also, what does a higher LeftPWM mean for "braking" the left motor?

Lastly, in Wild_Thumper_Controller.pde,
when I set LeftPWM to 255, the H-Bridge does not make any "noise"
but when I set LeftPWM to some other value (e.g. 254),
the H-Bridge starts to make "noise".
Is this normal?

Thanks in advance :)


If you go to this products page and click on the photo then you can read the labels.

LED2 indicates power (+5V)
LED3 is USB TX
LED4 is USB RX
LED5 indicates if the battery is good. This is actually connected to D13 and used by the software to change the charger between fast charge and trickle charge.

You can also download the schematic. This may help you understand the controller better.

A & B are the two inputs to the "H" bridge. When one is high and the other is low then the motor will run in one direction or the other. When both inputs are high then the motor will brake. When both inputs are low then the motor will spin freely.

By applying equal PWM to both A & B you can control the degree of braking.

The brakes are really only needed with the high speed gearbox or if your robot is heavy.

OddBot offline
Robot Builder
Robot Builder
Posts: 11
Joined: Fri Nov 12, 2010 2:06 am

Post by vsming » Mon Nov 15, 2010 9:30 pm

Post by vsming
Mon Nov 15, 2010 9:30 pm

Dear OddBot,

Thanks for your quick reply :)
I wonder how I missed out the LED labels in the product page >_<

However, there was one question that remains unanswered,
which is in Wild_Thumper_Controller.pde,
when I set LeftPWM to 255, the H-Bridge does not make any "noise"
but when I set LeftPWM to some other value (e.g. 254),
the H-Bridge starts to make "noise".
Is this normal?

Thanks in advance :)
Dear OddBot,

Thanks for your quick reply :)
I wonder how I missed out the LED labels in the product page >_<

However, there was one question that remains unanswered,
which is in Wild_Thumper_Controller.pde,
when I set LeftPWM to 255, the H-Bridge does not make any "noise"
but when I set LeftPWM to some other value (e.g. 254),
the H-Bridge starts to make "noise".
Is this normal?

Thanks in advance :)
vsming offline
Newbie
Newbie
Posts: 4
Joined: Sun Nov 14, 2010 8:43 pm

Post by OddBot » Tue Nov 16, 2010 2:47 am

Post by OddBot
Tue Nov 16, 2010 2:47 am

vsming wrote:Dear OddBot,

Thanks for your quick reply :)
I wonder how I missed out the LED labels in the product page >_<

However, there was one question that remains unanswered,
which is in Wild_Thumper_Controller.pde,
when I set LeftPWM to 255, the H-Bridge does not make any "noise"
but when I set LeftPWM to some other value (e.g. 254),
the H-Bridge starts to make "noise".
Is this normal?

Thanks in advance :)



First of all, in reading the piece of code you posted I realized that I had accidently sent RoboSavvy old code. If you check now you should be able to download the latest code.

As for the "singing" this is normal. When PWM is 255 or 0 then the outputs don't change. All other values cause the outputs to change state rapidly which generates an AC component. Noise suppresion capacitors on the PCB short out this AC component and "sing" due to vibration caused by the electromagnetic fields generated.

If for example you were to set LmotorA to HIGH and then play a melody using the tone command to LmotorB you can use the motors much like a speaker. Some brushless motor controllers do this intentionally to provide audio feedback when programming them.

Setting LmotorA High causes the electronic braking to come on which helps to stop your robot running away and also causes more current to flow when the back emf is shorted to increase the volume.
vsming wrote:Dear OddBot,

Thanks for your quick reply :)
I wonder how I missed out the LED labels in the product page >_<

However, there was one question that remains unanswered,
which is in Wild_Thumper_Controller.pde,
when I set LeftPWM to 255, the H-Bridge does not make any "noise"
but when I set LeftPWM to some other value (e.g. 254),
the H-Bridge starts to make "noise".
Is this normal?

Thanks in advance :)



First of all, in reading the piece of code you posted I realized that I had accidently sent RoboSavvy old code. If you check now you should be able to download the latest code.

As for the "singing" this is normal. When PWM is 255 or 0 then the outputs don't change. All other values cause the outputs to change state rapidly which generates an AC component. Noise suppresion capacitors on the PCB short out this AC component and "sing" due to vibration caused by the electromagnetic fields generated.

If for example you were to set LmotorA to HIGH and then play a melody using the tone command to LmotorB you can use the motors much like a speaker. Some brushless motor controllers do this intentionally to provide audio feedback when programming them.

Setting LmotorA High causes the electronic braking to come on which helps to stop your robot running away and also causes more current to flow when the back emf is shorted to increase the volume.
OddBot offline
Robot Builder
Robot Builder
Posts: 11
Joined: Fri Nov 12, 2010 2:06 am

Post by vsming » Thu Dec 09, 2010 2:04 am

Post by vsming
Thu Dec 09, 2010 2:04 am

Hello, it is me again :)

I would like to ask if the Wild Thumper Motor Controller's USB Port is connected to D0 and D1 ?

I am wondering if I can use both the USB Port and D0 & D1 (to control extra servos)?

Also, what is the maximum current that can be drawn from D0, D1, D2, ..., D12 ?

Thanks in advance :)
Hello, it is me again :)

I would like to ask if the Wild Thumper Motor Controller's USB Port is connected to D0 and D1 ?

I am wondering if I can use both the USB Port and D0 & D1 (to control extra servos)?

Also, what is the maximum current that can be drawn from D0, D1, D2, ..., D12 ?

Thanks in advance :)
vsming offline
Newbie
Newbie
Posts: 4
Joined: Sun Nov 14, 2010 8:43 pm

Post by OddBot » Thu Dec 09, 2010 3:36 am

Post by OddBot
Thu Dec 09, 2010 3:36 am

vsming wrote:Hello, it is me again :)

I would like to ask if the Wild Thumper Motor Controller's USB Port is connected to D0 and D1 ?

I am wondering if I can use both the USB Port and D0 & D1 (to control extra servos)?

Also, what is the maximum current that can be drawn from D0, D1, D2, ..., D12 ?

Thanks in advance :)


Yes the USB port is connected to D0 and D1 as these pins connect to the ATmega168's serial port. When the USB cable is unplugged then D0 and D1 can be used for other purposes such as interfacing with an Xbee module or accepting inputs from an RC receiver.

I do not think you will be able to use these pins for servos as the Arduino servo library states that only 12 servos can be controlled with this processor. I assume the 12 pins would be D2-D13.

If you want to control more than 7 servos then you may need to use an addition circuit such as a serial or I2C servo controller.

The I/O pins of the processor are rated at a maximum of 40mA but I do not recommend more than 20mA as the peak voltage will drop and there is a limit that each of the processors ports can handle.

The power pins associated with each I/O pin can delliver several amps of current. The 5A regulator will get quite hot if you are pushing it to the limit with a battery voltage of more than 6 or 7V. In that case a 40mm cpu fan can be fitted to the heatsink.

The intention was that the controller can easily power 7 standard servos. Some heavy duty servos are designed to work at 7.2V in which case they should be powered directly from a 7.2V battery for best results.
vsming wrote:Hello, it is me again :)

I would like to ask if the Wild Thumper Motor Controller's USB Port is connected to D0 and D1 ?

I am wondering if I can use both the USB Port and D0 & D1 (to control extra servos)?

Also, what is the maximum current that can be drawn from D0, D1, D2, ..., D12 ?

Thanks in advance :)


Yes the USB port is connected to D0 and D1 as these pins connect to the ATmega168's serial port. When the USB cable is unplugged then D0 and D1 can be used for other purposes such as interfacing with an Xbee module or accepting inputs from an RC receiver.

I do not think you will be able to use these pins for servos as the Arduino servo library states that only 12 servos can be controlled with this processor. I assume the 12 pins would be D2-D13.

If you want to control more than 7 servos then you may need to use an addition circuit such as a serial or I2C servo controller.

The I/O pins of the processor are rated at a maximum of 40mA but I do not recommend more than 20mA as the peak voltage will drop and there is a limit that each of the processors ports can handle.

The power pins associated with each I/O pin can delliver several amps of current. The 5A regulator will get quite hot if you are pushing it to the limit with a battery voltage of more than 6 or 7V. In that case a 40mm cpu fan can be fitted to the heatsink.

The intention was that the controller can easily power 7 standard servos. Some heavy duty servos are designed to work at 7.2V in which case they should be powered directly from a 7.2V battery for best results.
OddBot offline
Robot Builder
Robot Builder
Posts: 11
Joined: Fri Nov 12, 2010 2:06 am

Post by vsming » Fri Jan 07, 2011 12:04 am

Post by vsming
Fri Jan 07, 2011 12:04 am

Hello OddBot, it is me again :D

I just read your schematics, but I'm not sure where is "Charge On/Off".
Is "Charge On/Off" the same as D13?

Also, is there a reason why the VCC for J4 to J13 has (I assume) bypass capacitors, but J14 to J17 doesn't have?
Does it mean that the VCC for J14 to J17 is more "unstable"?
Because when I tried connecting a servo to J17, it sometimes "jerks"
whenever an Interrupt Service Routine (for I2C) kicks in,
but my servo connected to J10 doesn't "jerk".

Btw, I managed to use both D0 & D1 to control servos :D

Thanks in advance :)
Hello OddBot, it is me again :D

I just read your schematics, but I'm not sure where is "Charge On/Off".
Is "Charge On/Off" the same as D13?

Also, is there a reason why the VCC for J4 to J13 has (I assume) bypass capacitors, but J14 to J17 doesn't have?
Does it mean that the VCC for J14 to J17 is more "unstable"?
Because when I tried connecting a servo to J17, it sometimes "jerks"
whenever an Interrupt Service Routine (for I2C) kicks in,
but my servo connected to J10 doesn't "jerk".

Btw, I managed to use both D0 & D1 to control servos :D

Thanks in advance :)
vsming offline
Newbie
Newbie
Posts: 4
Joined: Sun Nov 14, 2010 8:43 pm

Post by OddBot » Fri Jan 07, 2011 3:51 am

Post by OddBot
Fri Jan 07, 2011 3:51 am

vsming wrote:Hello OddBot, it is me again :D

I just read your schematics, but I'm not sure where is "Charge On/Off".
Is "Charge On/Off" the same as D13?

Also, is there a reason why the VCC for J4 to J13 has (I assume) bypass capacitors, but J14 to J17 doesn't have?
Does it mean that the VCC for J14 to J17 is more "unstable"?
Because when I tried connecting a servo to J17, it sometimes "jerks"
whenever an Interrupt Service Routine (for I2C) kicks in,
but my servo connected to J10 doesn't "jerk".

Btw, I managed to use both D0 & D1 to control servos :D

Thanks in advance :)


Yes D13 controls the charger. If you look int the IOpins.h tab of the code you will see which pin is used for what purpose.

Traditionally D13 on Arduino boards has a LED attached. The controller maintains this tradition so that sample code such as "blinking a LED" still work for beginners. With the wild thumper controller the D13 LED also indicates that the battery voltage is good and that the charger is in trickle mode.

J14 to J17 are still using Vcc and Gnd the same as all the other pins. The schematic is just drawn in such a way as to be misleading. It is simply showing that there is a noise suppression capacitor in close proximity to those jumpers. As all the jumpers are close together there is no jumper that is more stable than another.

Your servo jerking is probably a result of your code, especially since it happens during an interrupt. Interrupts can interfer with other timing sensitive opperations such as servo control.
vsming wrote:Hello OddBot, it is me again :D

I just read your schematics, but I'm not sure where is "Charge On/Off".
Is "Charge On/Off" the same as D13?

Also, is there a reason why the VCC for J4 to J13 has (I assume) bypass capacitors, but J14 to J17 doesn't have?
Does it mean that the VCC for J14 to J17 is more "unstable"?
Because when I tried connecting a servo to J17, it sometimes "jerks"
whenever an Interrupt Service Routine (for I2C) kicks in,
but my servo connected to J10 doesn't "jerk".

Btw, I managed to use both D0 & D1 to control servos :D

Thanks in advance :)


Yes D13 controls the charger. If you look int the IOpins.h tab of the code you will see which pin is used for what purpose.

Traditionally D13 on Arduino boards has a LED attached. The controller maintains this tradition so that sample code such as "blinking a LED" still work for beginners. With the wild thumper controller the D13 LED also indicates that the battery voltage is good and that the charger is in trickle mode.

J14 to J17 are still using Vcc and Gnd the same as all the other pins. The schematic is just drawn in such a way as to be misleading. It is simply showing that there is a noise suppression capacitor in close proximity to those jumpers. As all the jumpers are close together there is no jumper that is more stable than another.

Your servo jerking is probably a result of your code, especially since it happens during an interrupt. Interrupts can interfer with other timing sensitive opperations such as servo control.
OddBot offline
Robot Builder
Robot Builder
Posts: 11
Joined: Fri Nov 12, 2010 2:06 am

Post by nunogato » Fri Jan 07, 2011 10:59 am

Post by nunogato
Fri Jan 07, 2011 10:59 am

vsming wrote:Hello OddBot, it is me again :D

I just read your schematics, but I'm not sure where is "Charge On/Off".
Is "Charge On/Off" the same as D13?

Also, is there a reason why the VCC for J4 to J13 has (I assume) bypass capacitors, but J14 to J17 doesn't have?
Does it mean that the VCC for J14 to J17 is more "unstable"?
Because when I tried connecting a servo to J17, it sometimes "jerks"
whenever an Interrupt Service Routine (for I2C) kicks in,
but my servo connected to J10 doesn't "jerk".

Btw, I managed to use both D0 & D1 to control servos :D

Thanks in advance :)


Hi vsming, don't forget that the recharge circuit cannot be used with LiPo batteries.
vsming wrote:Hello OddBot, it is me again :D

I just read your schematics, but I'm not sure where is "Charge On/Off".
Is "Charge On/Off" the same as D13?

Also, is there a reason why the VCC for J4 to J13 has (I assume) bypass capacitors, but J14 to J17 doesn't have?
Does it mean that the VCC for J14 to J17 is more "unstable"?
Because when I tried connecting a servo to J17, it sometimes "jerks"
whenever an Interrupt Service Routine (for I2C) kicks in,
but my servo connected to J10 doesn't "jerk".

Btw, I managed to use both D0 & D1 to control servos :D

Thanks in advance :)


Hi vsming, don't forget that the recharge circuit cannot be used with LiPo batteries.
nunogato offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 86
Joined: Mon Mar 15, 2010 3:48 pm

Arduino plug ins

Post by tokyotom » Tue Apr 03, 2012 3:57 pm

Post by tokyotom
Tue Apr 03, 2012 3:57 pm

Hello RobotSavvy,

Has anyone using the arudino board for the dagu attempted to use a plugin daughter boards? If so, which ones were you able to use? I am trying to make the dagu bluetooth capable along with some other sensors.
Hello RobotSavvy,

Has anyone using the arudino board for the dagu attempted to use a plugin daughter boards? If so, which ones were you able to use? I am trying to make the dagu bluetooth capable along with some other sensors.
tokyotom offline
Newbie
Newbie
Posts: 1
Joined: Tue Apr 03, 2012 3:55 pm

Post by OddBot » Wed Apr 04, 2012 5:57 am

Post by OddBot
Wed Apr 04, 2012 5:57 am

nunogato wrote:
vsming wrote:Hello OddBot, it is me again :D

I just read your schematics, but I'm not sure where is "Charge On/Off".
Is "Charge On/Off" the same as D13?

Also, is there a reason why the VCC for J4 to J13 has (I assume) bypass capacitors, but J14 to J17 doesn't have?
Does it mean that the VCC for J14 to J17 is more "unstable"?
Because when I tried connecting a servo to J17, it sometimes "jerks"
whenever an Interrupt Service Routine (for I2C) kicks in,
but my servo connected to J10 doesn't "jerk".

Btw, I managed to use both D0 & D1 to control servos :D

Thanks in advance :)


Hi vsming, don't forget that the recharge circuit cannot be used with LiPo batteries.


Yes D13 controls the charging regulator, off is actually a trickle mode, about 50mA will continue to flow keeping the battery fully charged.

You are taking the schematic diagram too literally. Vcc and Gnd go to all connectors and thus C21 and C22 are shared by the entire circuit.

These jumpers are physically in two groups "servo / digital" and "analog / communication" to try and minimize interference on the analog inputs. Each physical group has a bypass capacitor nearby to minimize noise in that part of the board, same as the old TTL circuits had a capacitor on the supply pins of every chip.

The reason your servos may twitch on some pins and not others is nothing to do with the PCB design. The I2C library must be interfering with the timer2 interrupt used by the servo library.

These sorts of problems are common on single core processors as the MCU can only do one thing at a time. When I wrote the library for the Micro Magician I had to use a dual trace oscilloscope to monitor the servo outputs. If my timer2 interrupt routine was too big it would also interfere with the servo pulses despite using a different interrupt.

This is a common problem. You need to temporarily stop your servos while I2C is in use or use a dedicated servo driver board where a separate MCU drives the servos.
nunogato wrote:
vsming wrote:Hello OddBot, it is me again :D

I just read your schematics, but I'm not sure where is "Charge On/Off".
Is "Charge On/Off" the same as D13?

Also, is there a reason why the VCC for J4 to J13 has (I assume) bypass capacitors, but J14 to J17 doesn't have?
Does it mean that the VCC for J14 to J17 is more "unstable"?
Because when I tried connecting a servo to J17, it sometimes "jerks"
whenever an Interrupt Service Routine (for I2C) kicks in,
but my servo connected to J10 doesn't "jerk".

Btw, I managed to use both D0 & D1 to control servos :D

Thanks in advance :)


Hi vsming, don't forget that the recharge circuit cannot be used with LiPo batteries.


Yes D13 controls the charging regulator, off is actually a trickle mode, about 50mA will continue to flow keeping the battery fully charged.

You are taking the schematic diagram too literally. Vcc and Gnd go to all connectors and thus C21 and C22 are shared by the entire circuit.

These jumpers are physically in two groups "servo / digital" and "analog / communication" to try and minimize interference on the analog inputs. Each physical group has a bypass capacitor nearby to minimize noise in that part of the board, same as the old TTL circuits had a capacitor on the supply pins of every chip.

The reason your servos may twitch on some pins and not others is nothing to do with the PCB design. The I2C library must be interfering with the timer2 interrupt used by the servo library.

These sorts of problems are common on single core processors as the MCU can only do one thing at a time. When I wrote the library for the Micro Magician I had to use a dual trace oscilloscope to monitor the servo outputs. If my timer2 interrupt routine was too big it would also interfere with the servo pulses despite using a different interrupt.

This is a common problem. You need to temporarily stop your servos while I2C is in use or use a dedicated servo driver board where a separate MCU drives the servos.
OddBot offline
Robot Builder
Robot Builder
Posts: 11
Joined: Fri Nov 12, 2010 2:06 am

Wild Thumper Arduino Dual 15A DC Motor Controller - NOT WOR

Post by tiberio » Mon Jul 16, 2012 12:43 pm

Post by tiberio
Mon Jul 16, 2012 12:43 pm

Hello everybody,
I bought a "Dagu - Wild Thumper 6WD Pack Arduino Robot" kit, everything looks fine but i cannot control the the wheeled platform with my controller!!!

When i turn on the switcher, the wheels start to spin for 3 seconds in one direction and then in the other in loop.

The LED on the receiver of the transmitter turn on when i switch on the controller, but nothing is working... ;(

i think the problem is that i cannot upload the code (downloaded from the site) on the ARDUINO board (Wild Thumper Arduino Dual 15A DC Motor Controller)... it's quite frustrating, anyone can help me???

thank you so much!!!

P.s.
the transmitter and the controller are working, i tried them linking to a servo motor and both channel work..

HEEEEELP!
Hello everybody,
I bought a "Dagu - Wild Thumper 6WD Pack Arduino Robot" kit, everything looks fine but i cannot control the the wheeled platform with my controller!!!

When i turn on the switcher, the wheels start to spin for 3 seconds in one direction and then in the other in loop.

The LED on the receiver of the transmitter turn on when i switch on the controller, but nothing is working... ;(

i think the problem is that i cannot upload the code (downloaded from the site) on the ARDUINO board (Wild Thumper Arduino Dual 15A DC Motor Controller)... it's quite frustrating, anyone can help me???

thank you so much!!!

P.s.
the transmitter and the controller are working, i tried them linking to a servo motor and both channel work..

HEEEEELP!
tiberio offline
Newbie
Newbie
Posts: 4
Joined: Mon Jul 16, 2012 11:47 am

Update the software

Post by OddBot » Mon Jul 16, 2012 1:01 pm

Post by OddBot
Mon Jul 16, 2012 1:01 pm

It sounds like they forgot to install the sample code after the board had been tested. Now the controller is running a diagnostic program.

You can download the sample code either from Robosavvy or from the DAGU product support site here: https://sites.google.com/site/daguproducts/

Make sure you do not have anything connected to D0 and D1 when you upload the sample code as these pins are also the RX and TX pins for the Arduino compatible controller.

Power your controller from the battery with the motors temporarily disconnected while you are uploading the sample code.

Use version 0018 of the Arduino IDE when you upload the code otherwise you will need to modify the sample code and make sure you select Arduino Nano w/168 as your target board.
It sounds like they forgot to install the sample code after the board had been tested. Now the controller is running a diagnostic program.

You can download the sample code either from Robosavvy or from the DAGU product support site here: https://sites.google.com/site/daguproducts/

Make sure you do not have anything connected to D0 and D1 when you upload the sample code as these pins are also the RX and TX pins for the Arduino compatible controller.

Power your controller from the battery with the motors temporarily disconnected while you are uploading the sample code.

Use version 0018 of the Arduino IDE when you upload the code otherwise you will need to modify the sample code and make sure you select Arduino Nano w/168 as your target board.
OddBot offline
Robot Builder
Robot Builder
Posts: 11
Joined: Fri Nov 12, 2010 2:06 am

Next
Next
20 postsPage 1 of 21, 2
20 postsPage 1 of 21, 2
cron