Shop OBEX P1 Docs P2 Docs Learn Events
Propeller Reference Design — Parallax Forums

Propeller Reference Design

Nick McClickNick McClick Posts: 1,003
edited 2008-12-22 21:18 in Propeller 1
A few days ago, someone emailed me asking, "I'd love to put up a project, but I'm not really a hardware guy. Can I just buy a development kit?" I've been offering bare PCB's and boxes of components, but no easy way for a software person to get started.

So, I've put together a Propeller 'Development Kit', which includes a reference design & optional components (RCA, different crystals, battery pack, etc). This way, the software person can quickly make a development platform and focus on the code.

I've already put the kit up (here), but I'm looking for feedback on the reference design. I've put it together and everything seems to work fine, but I'm no EE.

Specifically, I was thinking of a power conditioning capacitor. Most voltage regulator datasheets call for a cap between V source & ground. I've never used it and it seems fine to me. Should I add that? Also, I see the 1N4001 on a lot of Power supply designs, but I'm not sure what it's for. Is it in case someone plugs in a DC power supply with the wrong polarity?

If you have a chance to look at the design & let me know if you see any other issues, it would be very helpful. Here's the howto (pdf). Thanks in advance!

Nick

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Gadget Gangster - Share your Electronic Projects - Sign up as a Designer and get a free 4-pack of Project Boards!

Comments

  • JetfireJetfire Posts: 34
    edited 2008-12-12 04:05
    You probably should add decoupling caps. For example, the proto board has three, one between for the input, one for 5v, and one for 3.3v.

    You also say "You'll also need a 2.1mm tip 9-12V power supply or 2xAA batteries." and only have a 3.3v regulator. Check the max voltage that can accept, because the regulator will get very hot and may burnout.

    2 AAs will start at 3 volts, so it can't go through the drop out. When their voltage gets to around 2.7v it will either trigger the brownout or cause problems with the Prop. I can't tell from what you have what the brownout pin is connected to.

    At $40, what is the advantage over the Proto Board USB?
  • Nick McClickNick McClick Posts: 1,003
    edited 2008-12-12 19:12
    I'll drop in some caps. I think the heat generated by the VR is dependent on current draw. How much heat does the TO-220 packaging dissipate? The VR I'm using also has thermal protection, so I don't think it's likely to burn out. I've let it run @ 80MHz overnight w/o problems, but I want to be as confident as possible that it will be problem-free.

    I figured that, if a designer wanted to use batteries, they'd know not to use the VR. I took a picture of that setup, I'll have to drop it into the howto.

    It's fair to compare this to the the serial protoboard, as you need a prop plug. So, for $10, you get a 2nd PCB with all the sockets, power, and connectors. You get a battery pack, 5MHz & 6MHz crystals & all the stuff for video and audio out capability on both boards.

    I put it together to help people share their projects on Gadget Gangster, but I think it stands a good value on it's own.

    Anyway - thanks for the feedback! Anything else?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Gadget Gangster - Share your Electronic Projects - Sign up as a Designer and get a free 4-pack of Project Boards!
  • Nick McClickNick McClick Posts: 1,003
    edited 2008-12-15 06:34
    I did the research - a TO-220 package will dissapte about 1W. The current draw doesn't really change based on the input voltage - it's really from the load. A full-bore propeller draws about 100mA, meaning there's around 250mA of headroom (.350A * 3.3V = 1W). Just in case the designer wants more amps out of the regulator, I added a heatsink to the kit. I also added in caps. Good to go!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Gadget Gangster - Share your Electronic Projects - Sign up as a Designer and get a free 4-pack of Project Boards!
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2008-12-15 07:11
    Nick,

    Power dissipation for regulators is computed using (Vin - Vreg) * Iload, not Vreg * Iload. So the power dissipation is heavily dependent on the input voltage. In your example, if the input voltage comes directly from a 9V battery, say, the regulator's power dissipation at 200mA would be (9 - 3.3) * 0.2, or 1.14W.

    -Phil

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    'Just a few PropSTICK Kit bare PCBs left!
  • AleAle Posts: 2,363
    edited 2008-12-15 09:51
    Adding a circuit to the (quite good) how-to is a good idea!. For the bare bones Prop-EEPROM-PRogrammer and for the video output and some other possibilities: leds, speaker (with low pass filter and amplifier AO or simpler with a transistor... etc). Add 4 plastic feet, they save headaches!
  • Nick McClickNick McClick Posts: 1,003
    edited 2008-12-15 19:57
    Thanks Phil! I've updated the howto to encourage attaching the heatsink and I specified a lower voltage power supply. I've ordered a few additional power supplies to test projects with, too.

    @Ale - Thanks for the suggestions! The dev kit doesn't come with a ping sensor / buzzer / etc, so I don't want to include that as part of the howto. I did include a video circuit, though.

    The idea is; how can I help a software person share their project? I think the howto will get them to a point where they're comfortable. They can copy my guide, add a photo of how to add the GPS module (or PS/2, or accelerometer, or whatever) and put it up. When I get a chance, I'll add a few 1-2 page 'Connecting X' guides in the project forum, too.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Gadget Gangster - Share your Electronic Projects - Sign up as a Designer and get a free 4-pack of Project Boards!
  • PhilldapillPhilldapill Posts: 1,283
    edited 2008-12-15 23:20
    Nick, I've noticed you are emphasizing the "software person" as a target for this? If that's the case, wiring up the bare boards might be a little bit of a pain. I've developed a PCB that I use. It's pretty compact, and easy to solder together. All the traces are there with the I/O pins and power pins all out front. I've added a DC power jack, and the way the power pins are configured, you can just plug the battery pack in on the breadboard. The whole board is a single unit that plugs into a breadboard with all pins in front. If you're interested in using this in your kit, PM and I'll send some pictures.
  • Nick McClickNick McClick Posts: 1,003
    edited 2008-12-16 00:30
    yeah, the idea is to help someone who'd like to share their project on Gadget Gangster, but is more of a software expert. The kit is more for building & sharing than for experimenting. I built my music visualizer on a breadboard, made sure it worked, and then moved it on to a project board.

    For now, all of our project boards are generic, because some projects use different microcontrollers (Bean's Cylon Lights Kit), and some projects don't use a microcontroller at all (My christmas tree water monitor).

    Building a propeller project on a custom PCB requires 60 solder points. Building a prop project on our board requires 74. We'll have ucontroller specific PCB's mid-next year, but we're still trying to figure out which ucontrollers to support first. We'll continue to stock these generic boards, too.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Gadget Gangster - Share your Electronic Projects - Sign up as a Designer and get a free 4-pack of Project Boards!
  • Dennis FerronDennis Ferron Posts: 480
    edited 2008-12-21 06:15
    Hey Nick I built your Propeller Reference Design on one of the boards I got for registering as a designer on gadget gangster. (Just the board, not the Propeller pack; I already had most of the other components.)

    You've used component placement to reduce the number of wires and solder joints that have to be used. You've done a good job with that but I do have some issues with the component placement - more on that later. First I want to say I've built projects both on PCB kits and on perf board, and this design doesn't feel like much more work than it would be to do it on a PCB. You're quite right that 74 joints is not a big burden compared to 60 for a PCB version. It would not be worth it IMO to make a dedicated PCB; I prefer the flexibility of the generic board you supply.

    Unfortunately the drawback of doing it this way is the holes do not uniquely determine component placement as you work. There is of course a number/letter grid and this is nice; however it can be hard to keep track of where you are on the grid, and there are also some grid coordinate mistakes in the documentation (which I'll list next). Before I do that though, I want to share my method for making sure I get parts placed correctly. The idea is that besides making sure wires are placed in the absolute coordinate location, you also check relative to things nearby. So for instance when you say "put pin 1 of the 40 pin socket on U9" you could follow it up with "(this should leave one empty row - row A - on the other side of the board)". Another example: if you have "solder a red wire from L13 to L11" you could add "double check that if you move up two rows from the red wire, there is a jumper on N14-N13, and if you move down two rows, there is a jump on J13-J14". Instead of cluttering up the instructions with extra sentences, you could draw these relationships with arrows like this "|<--- 2 rows --->|".

    Another thing that might be helpful would be if you could silkscreen the boards with hints; this might get confusing if the silkscreen combined markings for many different projects, but might be better than nothing.

    There are some actual errors in the instructions; in fact the board I built didn't work. I think I've tracked down all the problems, but my wife's gone to bed so I can't turn on a light and do any more soldering at the moment. (Tiny one bedroom apartment; when one of us tries to sleep, the other one can't do anything without waking that person up, and we work opposite shifts so we're always at odds with each other's schedules.)

    Errata:
    1. The text says solder the 10K resistor from A18 to R21. However, it should be from A18 to R17, as is correctly shown in the picture.
    2. The instructions and the picture both show connecting the Res signal from the PropPlug using a jumper from O12 to O11. They're both wrong - this would put the connection at Propeller pin P6. The correct location would be to move this jumper to row K so it will connect to Res on the Propeller.

    While we're on the subject, I don't like the idea of hijacking the entire bus trace on column 12, running the length of the board, to carry the reset signal from the PropPlug header. (The jumper from V14-12 carries the reset signal from the PropPlug header to a bus trace; the other jumper on O12 to O11, which should be K12 to K11, carries it in turn to the Propeller.) I would be worried that I would forget I had used the bus trace for that, and end up connecting it to +5V or +3.3V later on to power other things, and then I wouldn't be able to program the Propeller anymore. Also, what if you tried to adapt another kit to use the Propeller? You could have a situation where the other design uses this bus for power, but the Propeller uses it for reset. It seems like like a lot of trouble to go through just to avoid using a longer piece of wire, and using a wire to jump straight from V14 to K11 is two less solder joints!

    The parts placement issue I mentioned earlier has to do with the way the 8 pin EEPROM socket is butted up against the Propeller. I get that this is done so that SDA and SDL match up, and it places A0, A1, and A2 on the ground trace so they don't have to be grounded separately. Clever. But it means Vcc and WP of the EEPROM are forced to occupy P26 and P27 of the Propeller, even though they have no relation. Having Vcc there effectively eliminates the usefulness of P26, and in fact you could fry the Prop by accidently writing a 0 to P26. Having WP connected to P27 looks bad but I guess is OK because the datasheet says the WP will default to unprotected if left floating. (When the Propeller is programmed, the pins become inputs, which is Hi-Z, which leaves WP floating during EEPROM programming.) I'm not sure what the consequences would be if you tried to use P27 for something like servo control or something - not sure if the EEPROM would lock up after having its write protect toggled on and off with lots of pulses. It shouldn't hurt, but it's clearly not what the designers of the EEPROM were thinking about when they desgined the write protect feature.

    Thing is though, why do something screwy like this when there is an almost equally elegant solution: why not rotate the EEPROM 180 degrees and shift it 3 colums away from the Propeller? Place it with pin 1 on S19 and pin 5 on P22. This way, you still have A0, A1, and A2 grounded to the same ground trace as they were before (only flipped), and Vcc, WP, SCL, and SDA will be on some of the 1x2 pads you put towards the edge of the board. Granted, you now have to run grey wires from SDA and SCL to Propeller P28 and P29, and you have to cross them in an X (because the EEPROM isn't upside down anymore) but isn't 2 wires worth getting back those Propeller pins? It would make for a much cleaner design, I think.

    A few miscellaneous issues:

    Reusing the trimmed leads from the resistors and wires is +1 for recycling, but some of those trimmed leads can get really short! The resistor leads are so much of a problem, and they are easy to bend anyway, but the ones from the wires are too short and thick to be practical unless your wires are a lot longer than mine. Why not just recommend using 1-U (one unit) bare jumper wires? Those come pre-formed in most breadboard wire kits.

    Rather than placing the wires in the board and flipping it over to solder them, I find it easier to press the tip of the iron to the elbow of exposed wire between the insulation and the pad, and heat from there & solder from the wire side of the board. You're having us wire the backside so that's "solder side" anyway! The reason I do it this way is that you flip the board over to solder the other side, all your wires fall out!

    I notice you connected only one of the two Vss lines on the Propeller. Although this probably works, it's very bad form. FYI when an integrated circuit has multiple ground or power pins you can't pick and choose which you hook up; you need to hook them all up. This is because you don't know how the wires are connected inside the chip. Just because they all say "Vss" or "Vdd" doesn't necessarily mean they all connect to the same location on the silicon. Possibly the design has multiple power pins because they had a problem and couldn't route a trace across one half of the chip to the other, and are relying on you to make that connection externally. Or maybe the traces inside the circuit board are so tiny they can only handle 30 mA, but the output pins together can source 60 mA total, so they ran two power inputs to provide a fat enough pipe. You could be burning up a trace inside the chip by not supplying enough copper for the power input. More likely though multiple grounds are related to signal quality; it might actually require both Vss because the two sides of the chip need a local sink for noise. In that case, even if the chip has an internal connection from on Vss pin to the other, when only one Vss pin is grounded the noise near the Vss pin that was left floating cannot ground out there, and must travel through the whole chip to get to the other side and ground out at that Vss pin. It wouldn't show up at low clock rates, but might affect operation at full clock speed.

    I'm sure the Propeller is designed robustly enough that you can get away with only grounding one Vss pin, but it isn't a good habit. Also, it might affect overclocking. I notice you include a 6 MHz crystal in your Propeller pack; you may need both Vss pins grounded in order to be stable at 96 MHz.

    Finally, it would be really nice if you could provide a schematic besides just the build instructions. It would have made it easier to spot errors and to understand the purpose behind the connections the guide asks you to make.

    Overall I found building the kit to be an enjoyable experience, and that's what counts. I wrote this not to criticize, but to hopefully help improve the reference design.
  • Nick McClickNick McClick Posts: 1,003
    edited 2008-12-21 19:42
    I like the idea of silkscreening. Hold tight on this, I'm working on something to make it a lot easier for a builder to put together a project.

    Also like the idea of rotating the EEPROM 180 deg - you can see that it's nice to have one col on a neg rail. Part of the design goal was maximizing the usable space, but, even with a rotation, there should still be plenty of extra space. It also makes more space to work around the EEPROM. I'm less concerned about solder point count than making it as easy as possible to build. Although the current EEPROM placement blocks 2 i/o's, I don't think most projects will need every IO, anyway (but freeing them up isn't a bad thing).

    I actually soldered the bare wires the same way as you did (all on the trace side of the board). But I was thinking that a beginning solderer might have some difficulty using too much solder and closing neigbhoring holes, so I suggest soldering on the other side (at least where possible). Because this is a developers kit, I was kind of assuming that the average developer would have extra wire - but I do stock those 1u bare jumpers to use when you submit a project. I should also make it clearer to 'spread apart the leads before flipping over.

    Running the reset down a rail is pretty weird, but remember that builders won't need to do that - they'll get their kit EEPROM pre-programmed. So, adding the ISP is something that only developers need to do.

    I should add a schematic - especially for a development kit. Everyone else's submitted projects have them, already.

    Agreed on adding the second Vss & on errata.

    Just a thought - the whole idea of Gadget Gangster is that you can submit a project & I'll worry about inventory / marketing / shipping - would you like to post an improved Development kit? As we get rolling, I'm sure a number of folks will have a project idea & will want a kit to help them build the howto & submit their project. And I'm clearly more of a marketing / operations person than an EE. What do you think? Here's the source doc (odt).

    I think you can see the design goals from the doc - (1) Provide designers with plug-n-play howto, where they only have to add one or two steps particular to their design, (2) Show designers how to add ISP headers so they can do development on-board, (3) Show them how to add an optional interface (audio or video). It would also be nice to have a reference design on a halfboard - fitting a 40 pin dip is a tight fit, but definitely doable.

    You've provided a ton of useful feedback - I don't think I've hit everything - but thank you!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Gadget Gangster - Share your Electronic Projects - Sign up as a Designer and get a free 4-pack of Project Boards!
  • soshimososhimo Posts: 215
    edited 2008-12-21 20:11
    @Nick -
    I didn't see a schematic but you might also want to make a +5vdc line available. All it takes is an extra decoupling cap and a 7805 - probably raise the cost of the kit by about $1.00 max. If you want to just go pure wall power (and remove the ability to use batteries) you can even run that line off for some unregulated dc at whatever the input is (+9 to +12vdc). The same type of PS is used on an older SumoBot I bought about 6 years ago. Here is the PS that I'm using currently (and I received some valuable feedback from phil on another thread for this so I can't take credit - thanks again phil):
    newps.png

    D1 prevents reverse connection. D2 prevents flyback from the servo and D3 prevents negative voltage spikes from the 5v regulator that causes the 3.3v regulator to fall below the brownout voltage level. C1-C4 are decoupling caps at 1000uf each. I had 4 high torque servos running off this setup without a single problem (before I had the valuable feedback from phil for the two diodes I had brownouts constanty).
    683 x 341 - 4K
  • Nick McClickNick McClick Posts: 1,003
    edited 2008-12-21 21:54
    This is what I was thinking to make building a project easier;

    img1.jpg

    When someone buys your kit, they'll get a pre-printed overlay, which they can apply to the top of the board to make it easier to add the components.

    The designer submits the overlay graphic. I built the one in the photo using ExpressPCB and my board design as the base. I printed the top copper layer and the silkscreen layer on the sticker, and stuck it on. You can also add text to the overlay on the silkscreen layer.

    I think this will make the howto guide significantly easier: The overlay + text commentary might be all you need. Here's a photo with the chips on the board - after trimming the excess overlay;

    img2.jpg


    If you submit your project with an ExpressPCB file, I'll print out the overlay and add it to your kit when ordered (I'll print the top copper layer and the silkscreen layer).

    Here's the fullboard expresspcb file - use this as the base - delete the holes you don't want to show up on the overlay & add the wires / parts / text to the top copper layer or the silkscreen layer.

    ExpressPCB is free software, too. You can download it here. It also has a module for building schematics.

    The caveats: You'll need to tell the builder to poke holes in the overlay before placing parts. The overlay would stay on the board once the project is done. The builder would have to be reasonably accurate when placing the overlay (although it can be repositioned easily). What do you think?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Gadget Gangster - Share your Electronic Projects - Sign up as a Designer and get a free 4-pack of Project Boards!
  • Dennis FerronDennis Ferron Posts: 480
    edited 2008-12-22 17:09
    What's the overlay made of? Doesn't it melt when you try to solder the board?
  • Nick McClickNick McClick Posts: 1,003
    edited 2008-12-22 19:19
    I'm experimenting with a few different materials - this is polyester. It goes thru a laser printer that's 500deg F. I wouldn't suggest you do any soldering on the side the overlay is applied, but it seems just fine when you solder on the back of the board.

    Here's (jpg) an overlay I just did for a project that was submitted. You can see that one could pretty much write the entire instructions on the overlay & a builder wouldn't need much additional commentary.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Gadget Gangster - Share your Electronic Projects - Sign up as a Designer and get a free 4-pack of Project Boards!
  • SRLMSRLM Posts: 5,045
    edited 2008-12-22 21:18
    I like the overlay idea. However, a second copy on regular paper would be good to include too. I wouldn't like to use the overlay that's stuck on there permanently because eventually, with use, it'll start to peel and then I'd have to cut it, but it would leave ragged edges, and I'd get flustered... So, a paper one that I can compare my board with would be nice to include. The idea is a good one, and I think it will help immensely with part placement. No need for extensive directions for simple soldering of a resistor.
Sign In or Register to comment.