PIC control board PCB

Wowzers.
That’s quite a kick in the pants.

Still, if one’s actually puting the high speed to use (i.e. CMUcam2 post-processing), it’s worth it.
And, on a larger bot (which a dual-micro board is suited for) 130 mA is nothing.
A single servo under the usual strain of walking will draw about that much.
And, on rovers, many people are cranking out an excess of 5A with the gearhead motors.

Is the heat dissipated by the micro actually noticeable at that high a frequency?

I should point out that the “cost of speed” is pretty much universal, with current technology. Note the big heat sinks and dedicated fans on most PC processors…

Yes, the chip gets warm to the touch at the higher speeds. At 130 mA, it’s dissipating 0.65 watts.

But one of the nice features of the dsPIC30 series is that it allows you to change the oscillator source on-the-fly. So, it will be easy to have it ‘idle’ at a lower speed using the built-in RC oscillator, then switch over to 120 Mhz when there’s important work to be done.

Pete

I think (maybe) the schematics for the “dualPIC” board are ready.
geocities.com/saipan59/robots/dualpic.zip
geocities.com/saipan59/robots/dualpic1.jpg
geocities.com/saipan59/robots/dualpic2.jpg
geocities.com/saipan59/robots/dualpic3.jpg
The zip file contains an ExpressPCB sch file.

Let me know what you think.
And it’s fine to ask “what does that do?” questions, because while giving the answer I may think of something that isn’t right…

I’ll start working on the PCB layout this week.

Pete

Pete,

I looked at all the schematics and was admiring how nicely laid out everything is. It looked so clean and professional. I like the built in batt. charger but I don’t really understand what the pics will do. Is it to replace the ABB? or is it to help offload some of the work from the ABB? I’m just trying to understand some of the applications that it might be for.

One of these days, I am going to get several books on this stuff and learn some basics.

Thanks!

I didn’t have in mind for it to replace anything in particular, although for me, it will become the ‘brain’ (main processor) on my wheeled quad bot.
For me it will also be a general-purpose ‘demo board’ type of thing, and a basis for projects that I haven’t thought of yet.
It’s also an excuse for me to get experience with the dsPIC series of MPUs.

For other folks, it will be a good platform for those wanting to learn about PICs. I will share whatever code I come up with for it, and it will be done using Microchip’s free SW tools, so a guy like you could get a board, populate it with the essential parts (which is minimal), and have a ready-to-run setup (you would need to come up with a PIC programmer). Including a programmer, you could be up and running for less than $100.

For folks that already have PIC experience, it might be just a good robot brain platform. A lot of places sell all sorts of PIC boards and such, but generally they are not very robot-oriented. The ones that are robot-oriented tend to be either 1) very expensive because they are full-blown computer ‘systems’ that run Linux or whatever, or 2) based on STAMP-style processors that are easy to use but lacking in capability, plus the STAMPs alone cost more than twice what my board would cost to build.

Of course, the downside of my approach is that you must either be willing to work in C, or come up with some other software tools.

When I’m ready to order the boards, I’ll be asking folks who wants to get a bare PCB also. Folks can pay me (at my cost - no profit), and I’ll mail the board(s) to those that want them. Hopefully it will be just a few days from now.

Pete

This all sounds fantastic. I like the flexibility of this design based on what you said. So this board will be “universal” and have several possible uses.

It’s good to have people like you in the robotics community that can offer this kind of thing that will allow all of us to advance our current knowledge and have fun doing so.

Are you going to make the ExpressPCB design available for download? Reason I ask is I am not ready to get a board but may want to get one in the future.

Also, will you provide a miniSD card slot or some other form of data storage?

Yes, I’ll post all files as I make them - I figure there won’t be any secrets in it. :wink:
I don’t plan to put a card slot or anything similar on it - that would be sort of a whole project in itself.
Of course, the PICs store their own code in Flash, and they have some EEPROM which can be used for local non-volatile data storage. The 18F4620 and dsPIC30F4011 each have 1KB of EEPROM.
It would also be easy to add additional EEPROM in a separate chip, such as a 24LC256 or whatever. These chips talk I2C, so it would be trivial to hook one up. BTW, I plan to include some prototyping area on the PCB, which would be a good place to add things like EE chips.

What kind of data were you thinking of storing?

Pete

As far as the type of data, I had ideas of an event storage, which could be just be a one-byte character that has a specific meaning, or, nav coordinates. These are only ideas that I had thought about.

I was thinking of giving my bot the ability to have very basic learning. Come to think about it, there would probably not be a need for any large storage system for this kind of data. Perhaps if you were storing pictures from a cmos camera there would be a need for a lager storage capacity.

*** If you think you might want one (or more) of these PCBs, please contact me. ***

I will be ordering some boards from ExpressPCB within a few days. I don’t have a cost estimate yet, but I’m guessing that it will be in the $10-15 range. I will probably get 5 or 6 for myself.

I will post images of the layout as soon as it is done.

This is a “non-profit” activity - your cost will be my cost, plus another buck or so to ship it from me to you. I do not plan to distribute anything other than the bare PCB. Other parts can be bought from Digi-Key, Jameco, Mouser, etc. Many of the parts are optional (depending on what you want to do), and nearly all parts can accept reasonable substitutions (one exception might be the FET-driver chip - using something else might require a bit of hacking).

I understand that most folks won’t be interested in this board for various reasons, so don’t feel any pressure… :slight_smile: But I know Nick really needs one… :smiley:

Pete

For that price, I will grab 2. I really want to learn more about PICs and this looks like a real nice way to do so. :stuck_out_tongue:

Also implementing SPI on an SD card (assuming no underlying filesystem) is almost the same as I2C. It has 4 pins, Data In, Data Out, Clock, and CS. Of course it doesn’t go at SD speeds, it goes as roughly 400 KB/s on average. Newer SD cards actually support faster than spec. SPI writing. Not sure if these chips can process data that fast. For comparison, my WRT only gets 200-300 KB/s with its 200 Mhz processor, granted I’m using an old 1 GB card, so it may be card limited, but considering nobody really gets much better, it is probably is processor limited. The real hard part for the SD project is either trying to use SD speeds, which either requires an NDA or much reverse engineering since they don’t publish the specs, or implementing a filesystem (like FAT16) in firmware. Neither of these are impossible, but certainly a decent project.

Just a quick question, but I can’t even fathom a way to get a bot to use more than the few MB you can get with I2C EEPROMs, considering the smallest SD cards you can get nowadays are in the 16MB range, with 1-4GB being common, what to you need that space for? I mean, I added 1 GB to my WRT since I wanted to run MySQL, PHP, and Appace, and yes 64MB would have been more than enough.

EDIT: Grammar.

Thanks Pete, but I am going to have to miss the bus this time. I have more domestic isses at home that are robbing me of extra change.

Thanks for the offer, just bad timing on my part. :smiley:

OK. I will ‘tentatively’ put you down for 2 boards. I will check back with folks after I know the exact cost. For now, it’s helpful to know who (like yourself) might want one.

Check the PIC datasheets for details on what SPI speeds are supported. The 2 representative devices to look at are PIC18F4620 and dsPIC30F4011.

That’s a question for SN96/Mike, who suggested the idea. Personally, I’m not planning to put any ‘mass storage’ on it.

Pete

Okay, I thought things were more finalized. Just let let me know when, where, and how to send the money. :smiley: Assuming the price doesn’t jump exponentially, you can count on me ordering two.

As far as SPI speeds, I’m a but surprised. I looked up the specs and the PIC18F4620 sheets says a max transfer rate of 10 MBits/sec (1.25 MB/sec) when running at 40 Mhz. The dsPIC spec. sheet doesn’t seem to mention speed, but I would assume equal or faster since speed depends directly on clock speed. On microchip’s forum I have seem one person get around 600 KB/s forum.microchip.com/tm.aspx?m=58980&mpage=14 so considering the guy is running at 20Mhz, this might be legit. I might try this as a learning exercise (as there is a lot of code posted there) with the board since its caught my attention, and I have a bunch of older SD cards I can play with.

I’m a bit curious as to why my WRT can’t go that fast, but many other issues besides the hardware exist in that case.

Anyway… the question was directected at SN96, I was just interested in what he planned to do with all that space.

I believe the max is also 10 mbit/sec for the dsPIC30F4011.
In the dsPIC30F4011 datasheet, see Table 24-32. It says that the minimum SCK1 period is 100 ns (or 10 Mhz).
Also see Section 20.4 in the “dsPIC30F Family Reference Manual”, where it shows how to set the prescalers to the desired SCK speed. The table shows values up to 30 mbits/sec, but it also says that you have to abide by the timing spec in the device’s datasheet, which in this case says 10 mbits/sec.

You may want to peek at the datasheets for the other devices in the family, to see if any of them go faster than 10 mbits/sec. There will be 2 or 3 other devices that have the same basic pinout, and therefore should work in my board. But most likely, the parts that go faster are only found in another family, such as the dsPIC33F, which runs at 3.3V.

Pete

The PCB layout might be done (!). I need to do some more error-checking before I order the boards.

The board measures 4.0" X 3.3".
Here is a ‘picture’ of the layout:
geocities.com/saipan59/robots/dualpic.jpg
The latest schematics are there as dualpic1.jpg, dualpic2.jpg, and dualpic3.jpg.

Now the ‘bad’ news (it’s not real bad): The cost of the boards will be about $25 each, according to the ExpressPCB folks. Add about $20 in parts, and you have a board that does quite a bit of stuff…

Anyone who wants to share in the initial order needs to make contact soon. So far, only Tillin9 has expressed an interest. Is there anyone else?

Pete

Pete,

Great job on the layout.

do you have a pic showing the traces?

Also P1 seems to be partially covering a mounting hole. (Top Left)

Sign me up, Pete.

Pete, any chance that you’ll put together a list of the necessary SMCs?
I’ve got most of the parts, but they’re all through-hole.
I’ve just ordered a nice pencil soldering iron from Sparkfun, so I shouldn’t have any problems putting it all together.
But, I’m unfamiliar with SMCs, and I’d probably get the wrong sizes.
:slight_smile:

SMC? Did you mean SMT? :unamused:

I was under the impression that SMC = Surface Mount Component…

If that wasn’t the correct acronym for it, then it is now.
:wink:

Aside from the mounting hole Mike mentioned…

It looks like the potentiometer (R3 in the schematic) has been replaced by resistor pads (R3 in the PCB layout).
Are you intending to pot out the value on the prototype and then replace it with a fixed-value resistor, or am I just looking at this wrong?