Motors shield for the Panda

Hello,

even without any board yet, I can’t stay apart from FEZ :-[

With the Panda and all its IO’s, I thought it could be useful (at least it will be for me :wink: ) to have a “complete” motors shield.

My goal was to have 2 DC motors and 2 steppers on a single board, with minimum pins taken from the Arduino set of pins. But I also wanted that at least the DC motors to be controlled by a Domino.
So, the steppers are controlled via the Panda specific pins while the DC are controlled by the Arduino standard set of pins.

I’m using the well-known L293D for the DC motors and a DRV8821 from Texas Instruments for the steppers. This chip can drive two bi-polar steppers with individual sets of parameters (step size, decay mode, enabled, and so on…)

On the board presented here, I still have some work to do :

  • maybe change the Power jack package
  • maybe add some leds to show various activities
  • move the DC motors connectors
  • add labels for components
  • add a jumper that will enable serial debug output and/or LCD output
  • if I have room, add one or two temperature sensors chips (maybe I will have to change the layout, though :’( )

About the work done, I’ve hard really hard time to figure out how to create a thermal pad on the TI chip in Eagle :wall:

Now, the hardest part is to come : soldering this DRV8821. It’s so small :o 48-pin HTSSOP package ! I don’t have any hot air station…

If it can be of any interest for you, I will answer any question about this board.

Best regards,


Christophe

Freakin sweet. You are becoming an EAGLE expert :slight_smile:

Note that I have not seen anyone who made a shield for FEZ so far so once you get the board soldered and you take some pictures/video then you will get a good chunk of bonus points.

I will first start with a much simpler shield, if you don’t mind :wink:

The first one I’ve designed :

or the debug/RS232 version :

I’ve already received the components from Sparkfun and the PCB were shipped yesterday :

I also still miss the Panda’s, which have been sent a few days ago. I don’t expect to receive the complete list of parts before 10-15 days, though ???

Can’t wait to see it plugged in Panda and working.

My understanding is that you just learned EAGLE last week and now you are making all kind of boards :o

I spend a lot of time for this :hand:

When one loves, one does not count :-[

Nice work Christophe, you’re a quick learner. I look forward to read more about the results of your board.

Last night, I’ve added a small i2c EEprom chip (24LC256) that will store positions for the steppers and some 2 pins male headers to expose the I2C bus more “friendly”.

The board conception is not finished, yet. I have no deadline about this one so I will take some time to make it as good as possible. If you have any idea for enhancement or anything else, feel free to say or ask what you have in mind :wink:

This is amazing Bec a Fuel! Did you start with schematics / rats nest / routing, or did you go straight to the board layout? Have you done any breadboard tests on the setup?
The reason I ask this is that its a drag waiting for a board to arrive just to find it not working due to design flaws.

For this particular board, I’ve started with schematics and reading datasheets of the components I’ve chosen.
For the other boards, those with the Moxa on them, I’ve started with breadboard tests. Mainly because there are not much wires and they are pretty simple devices.

Breadboard tests with the DRV8821 are not easy (if even possible) to do. So I’m very anxious about it ??? That’s why I say in my previous post that I will take my time for it. I want to be sure it will be working. Non working board costs as much money as a working one but it’s useless :frowning:

So, if you see anything wrong or possibly wrong (or even have questions), I would appreciate any comments about this.

What is disturbing is the difference in scale between screen layout and actual real sizes :o Connecting the 48 pins HTSSOP chip in Eagle is really “easy” on screen… But when I printed the board at 1:1 scale, I thought I’ve made a mistake somewhere :think: It can’t be that small ? :o

I doubt that I can help you with my limited experience with Eagle and electronics in general, but if you would like people to help you, one way might be to post a project on this and release the schematics and Eagle files?

What I don’t like about creating a project page on the wiki is that the page is quite “static”, while the project is not. I mean there can be a lot of changes in a relatively small time and I don’t want to spend time to update the Wiki at each modification (even minor ones). But, if I don’t update it then people could think (for example) that there’s an error on the schematics even though it has been corrected the day before. You see what I mean ?

I think that Wiki pages are more suitable when the project is done or almost done, when there are only cosmetic changes. I would rather use something like a repository for such rapidly evolving project :think:

Anyway, I can share my Eagle files with anyone requesting them, of course.

Here’s the latest version.

What has changed :
[ulist]

  • Power jack package
  • Added a (external) power led
  • Added a “Debug jumper” that will tell the driver to send debug messages to LCD or COM1 (I still don’t know which one, yet :think: )
  • Added an EEprom to store steppers positions. And other things if needed, of course.
  • Added a 4x2 header to expose I2C connectors. Needed by Devantech LCD or other sensors, for example.
  • Changed the layout because of all this.
    [/ulist]

There’s some (little) room left… If someone has an idea for a last component ? :wink:

Now I think that the board is complete, so I will focus on the laout and routing all this.

Next step will consist in various checks so that I can be sure it will be working, unless I miss something because I’m still a newbie in this area. I’ve followed the datasheets so I don’t think I can be wrong with the chips, but one never knows :hand:

If you have room for some servo headers, that would be nice.
Looks like a great board.
When you get the boards made you might consider making a ‘driver’ for the board. It would be nice to control the whole board from one object :slight_smile:

Only servo headers, no electronics, right ?
Where would you connect them ? On which pins ? I ask this because I don’t use servos and so this was not yet a concern for me :wink:

Of course it needs a driver and the coding will start very soon. I was just thinking about the future implementation of this driver :

  • 3 separate drivers : DC, steppers & EEprom
  • 1 global driver

My thinking is that the first option should be better if we think at memory usage :think: You only include the driver you really need. Because if you use this board with a Domino, only the DC motors will be available, so all the steppers’ code will be useless :hand:

After some research, I’ve seen a chip that may help if available : FT639. It can control 5 servos with a serial communication and no other parts ! This would also save some pins on the Domino/Panda :wink:

The only problem I can see now with servos is their voltage : the powerjack is meant to drive the motors (steppers/DC) up to 12V, which is a “little bit” too much for servos :whistle:

Do you think I should add another power input for them ?

Welcome to the hardware challenges. This is the biggest problem GHI face, how to maker a hardware that fits everyone needs? It is impossible as everyone wants to use it differently but we try our best to get it as close as possible :slight_smile:

why not do it like ghi does?
Use a voltage regulator. You can input up to 12v on the barrel input and still get 3,3v and 5v out of the domino :slight_smile:

It’s never a good practice to run motors of the same power supply as the digital circuits. Most motor drivers I know of has separate power for the motors (and servos).
There are some good advice here [url]http://letsmakerobots.com/node/18469[/url]

You’re right. I could use something like a L7806CV to obtain the requested 6V from the power input.

Btw, on this board, the power supply is only for the motors. I’m using Panda/Domino pins for 3.3V and 5V.

I have a question : do you think the Vin pin could handle the needed current to drive the 4 motors ? If yes, then I don’t need a separate barrel ?
Or, is 12V a high limit on Domino/Panda and I should stay below ? And then use an external power source for my board ?

Edit : just read Geir’s answer… I then have my answer :wink: I keep my separate power supply :smiley:

I would keep it, yes. ;D