Shop OBEX P1 Docs P2 Docs Learn Events
Gadget Gangster musings — Parallax Forums

Gadget Gangster musings

Dr_AculaDr_Acula Posts: 5,484
edited 2011-12-31 18:36 in Propeller 1
I have been playing around with Kyedos, CP/M emulations, large C programs and graphics for a while and have been working on porting things over to Gadget Gangster boards.

I soldered up 4 boards yesterday and stacked them one on top of each other and it certainly is a nice format. They stack very rigidly too - so much so that in many cases the mounting posts/standoffs are not needed between boards.

I found out a few things in the process. One is that there is a fairly low height limit on components, such that a number of larger capacitors either need to be short fat ones, or need to be mounted on their sides. I also found that a few plugs are a bit tall - eg VGA and RCA. These might need to be on longer boards.

And I discovered that micro SD sockets are much cheaper and take up a lot less board space, but they are tricky to solder!

But one thing I have found is that you can't mix and match boards randomly without working out what pins go to where because some combinations are sharing pins. So I thought I would draw out a number of combinations on a spreadsheet, then move the pins around so there is a minimum number of clashes.

The base design is the propeller demoboard and that means that the top 8 pins are devoted to keyboard, mouse, eeprom and the combination download/RS232 port.

Then there are pins 16 to 23. Obviously not every combination is possible, but one idea is combo 1, which is to use these pins for VGA, and combo 2, which is to use these pins for TV and external memory decode and a second serial port for inter-prop comms.

I have put audio on P8 to P11 the same as the demo board.

Three SPI ports - one is for the SD card and there are two general SPI ports.

Chip select on the SPI/SD are via a 138.

And the last bit is the most complicated which is the external memory. I am trying to design a board that can run Kyedos (no external memory needed), can run large C programs (external memory needed) and can run the 256x224 full color graphics. Everything with memory is a compromise between speed and pins and there have been numerous discussions about the tradeoffs in the past. I can almost draw the graph of speed vs pins in my head! Anyway, this design has two latches and blocks are 256 bytes in size. It is fractionally slower than the 4096 byte block driver for the current video, but ought to still be fast enough. It will be a lot faster than the original dracblade as the dracblade latched in all the address pins whereas this design has direct access to A0-A7. It will not be as fast as a number of Cluso's designs but it will give you TV, two serial ports, keyboard and a mouse. It ought to be faster than any serial ram solutions.

I am hoping to breadboard this over the next week or so. Thoughts and ideas would be most appreciated.
«1

Comments

  • Nick McClickNick McClick Posts: 1,003
    edited 2011-10-05 19:57
    Hey Drac! I've found the hirose DM3D-SF uSD card slot reasonably easy to hand solder because the leads aren't tucked under the socket. Using 3M 2340-6211TG pin headers gives more space between boards, enough clearance for RCA and other connectors. If you need a template for the long board (I used that with the E-Net module because the jack was too tall), you can grab it here.

    No suggestions on pin assignments, but I try to mimic the demoboard, as well.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-10-05 20:31
    Thanks Nick. So two solutions there - either taller headers, or move to the 'long board' format and put the tall components on the bit that sticks out. That should all work nicely.

    Re soldering sd cards, it is more my eyesight that anything else!

    Do you have a suggestion for mounting posts that enable you to build GG towers?
  • frank freedmanfrank freedman Posts: 1,983
    edited 2011-10-05 22:05
    Dr_Acula wrote: »
    Thanks Nick. So two solutions there - either taller headers, or move to the 'long board' format and put the tall components on the bit that sticks out. That should all work nicely.

    Re soldering sd cards, it is more my eyesight that anything else!

    Do you have a suggestion for mounting posts that enable you to build GG towers?

    Or just stacking arrangement. If you can common the pins all the way through, (i need to look at the spreadsheet again) then place the headers and connections on top board perhaps billed as an interface board. As to caps, I thought I have seen some SMT tantalums that were in the 1-100uF 35V range. Have you tried hot air reflow for mounting the SD card sockets? I actually used a variant of this (http://www.piclist.com/techref/hotairpencil20usd.htm) to do a project using smt.

    Frank
  • Clive WakehamClive Wakeham Posts: 152
    edited 2011-10-06 03:15
    Dr_Acula wrote: »
    I have been playing around with Kyedos, CP/M emulations, large C programs and graphics for a while and have been working on porting things over to Gadget Gangster boards.

    I soldered up 4 boards yesterday and stacked them one on top of each other and it certainly is a nice format. They stack very rigidly too - so much so that in many cases the mounting posts/standoffs are not needed between boards.


    But one thing I have found is that you can't mix and match boards randomly without working out what pins go to where because some combinations are sharing pins. So I thought I would draw out a number of combinations on a spreadsheet, then move the pins around so there is a minimum number of clashes.
    Thoughts and ideas would be most appreciated.

    I made up a spreadsheet too to keep an idea of which Gadget Gangster board used what pins. (I have also a spreadsheet which I keep up to date with I2C chip addresses so its easier than going through the relevant pdf file).
  • Nick McClickNick McClick Posts: 1,003
    edited 2011-10-06 10:31
    @Frank - that's a common solution, too. Although some boards are really meant to be accessories (like the E-Net), so I designed them to keep the top board spot available. Another thing you can do is mount the connectors on the bottom of the board and put it on the bottom of the stack - that way there are two 'unlimited height' positions.

    I don't usually use mounting posts because the pin / socket connection strength is plenty for me. But the Propeller Platform enclosure uses .5" standoffs - that's with the longer headers.
  • frank freedmanfrank freedman Posts: 1,983
    edited 2011-10-06 12:33
    Please don't do away with the corner screw holes. you would be amazed at just how fast vibration in an industrial application can cause things to walk out of sockets. Those holes are an insurance I like. Oh, could you in future kit releases, add into the kit 4) 4-40 * 1/2" nylon screws and nuts? I ended up buying some at ACE hardware to keep my GG/usb plat. off of the desktop. If you saw my R2R DAC in my ADC/DAC thread, my home desktop is fairly over-run with stuff that could get under the board and cause a loss of magic smoke event. Come to think of it my desk at work seems to get that way too.

    Thanks for a great dev kit. I rate it right up there with what I have gotten from the NXP FAE seminars at Avnet and the TI eZdsp kit for workmanship.

    Frank
  • RoadsterRoadster Posts: 209
    edited 2011-10-06 13:32
    Nick,
    do you have a diptrace component for your suggested u sd socket DM3D-SF
  • HShankoHShanko Posts: 402
    edited 2011-10-06 14:58
    Hopefully this isn't too off subject.

    I recently downloaded DipTrace for Mac OS X but note there is no headers for 2x20, 2x8 and 2x7 0.1" through-hole mount. I temporarily downloaded the QuickStart board schematic to Copy/paste a 2x20 header. Does anyone know where such library components be obtained.

    And, while here, does anyone know if there is a Mac OS X Tutorial? My mouse has two buttons on it, but they are in parallel, apparently. Need to know what to do on the Mac when it calls for a Right button click; like maybe some key can make it appear as a right or left button code when needed.

    Thank you, anyone.
  • Nick McClickNick McClick Posts: 1,003
    edited 2011-10-06 17:18
    @Roadster, you can just grab it off the Propeller Platform USB dip file (on this page). Right click on the footprint and select 'save to active library'.
  • max72max72 Posts: 1,155
    edited 2011-10-07 00:42
    I used Nick's footprint and microSD in the past, and it is not so difficult to solder (thanks again nick for the great solution).
    Part number:
    Digi: HR1941CT-ND
    Mouser: 798-DM3D-SF

    Massimo
  • RoadsterRoadster Posts: 209
    edited 2011-10-07 04:36
    @Nick,
    Thanks, I'm sorry I missed you and OBC at the maker faire
  • Nick McClickNick McClick Posts: 1,003
    edited 2011-10-07 10:08
    It's easier to solder because the pads aren't covered by the slot, but they are still pretty small pitch. Not QFP-hard, but more challenging than a DIP...

    @Roadster - no problem, we'll make it back next year.
  • fixmaxfixmax Posts: 91
    edited 2011-10-07 16:58
    @ Dr_Acula:
    Like you, I really like the concept of the pin layout and idea behind the GG modules. Is it possible to get these modules without the dual headers mounted? My suggestion would be to try using instead a right angle dual header on each side, and designing an "elevator board" similar to the Freescale Kinetis Tower system like this: http://www.towergeeks.org/page/the-tower-system.

    I'm not thinking of using the edge connectors, but I'm thinking that using right angle header GG modules for center modules, and the elevator boards on the side with standard dual row headers that you could plug standard dual row GG modules into. I think this could be used in conjunction with your combination of Kyedos, LCD, keyboard, mouse, etc, etc, into a functional little standalone Prop Tower.

    This also could possibly address some of the problems with tall components.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-10-07 18:08
    The great thing about the GG format is that if you want to add some feature, you design a new little board rather than redesigning a large existing board.

    So one idea I have is that if the tower gets too tall, you could split it into two, and join with a 40 way ribbon cable (scavenge one off an old PC's hard drive or get them on ebay for $1). But rather than redesign everything, simply create a new board that takes the GG format and has a 40 way header socket as well.

    I have another idea for a similar board to convert the GG format into Cluso's 1" square PCBs.

    And I also wonder if one could convert to the Arduino board format (I need to think about that a bit).

    So, extending the same concept, I wonder if one could think of an adaptor board that takes the right angle connector and converts to GG format?

    A question for Nick - when soldering the SIL headers you have to cut 4 and then cut 16 and then line them all up. I wonder if it might be quicker to cut a header 21 long instead, and add one NC hole in between the power pins and the data pins?

    I'm pretty sure this will always be backwards and forwards compatible with existing boards.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-10-07 21:33
    Here is a board I have just drawn up. It is one single board at the moment but might be better chopped up into smaller boards for a tower. I'm designing it as one board first as it is easier to work out the optimum uses for pins to minimise clashes (not everything on this board can be running at once, but most things can be).

    * Socket for Gadget Gangster shields
    * Socket for Arduino shields
    * 512k ram
    * TV, VGA, mouse, keyboard, SD card
    * 6 analog inputs
    * Dual RS232 ports

    I'm trying to build something that can do Kyedos, Catalina in external memory, the full color 256x224 video and also bring in the advantages of Gadget Gangster and Arduino shields.
    1022 x 726 - 301K
  • mindrobotsmindrobots Posts: 6,506
    edited 2011-10-07 21:50
    Very nice! "Propeller Glue"
  • RoadsterRoadster Posts: 209
    edited 2011-10-08 06:29
    @Dr Acula,
    I wouldn't use a 21 pin connecter it's too easy for someone to put in the wrong way, using 2 connectors acts like a key and can only go in one way.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2011-10-08 07:24
    I haven't used Gangster Gadget boards as I had several Propeller Proto Boards to work through before I needed to buy more.

    But I must say that the Propeller Proto Board seems to have just about the worst setup for DIP devices. I/O is in a square around the processor and holes are around that.

    It is difficult to get power to individual accessory chips and certain I/O is rather hard to power add on chips, mostly the P24-P31.

    The old SX Protoboard had a much better design, but even that did not seem to have much serious consideration for the builder.

    I suspect that Gangster Gadget has prospered because of all this as good board design is just as much a reason to buy as a great processor.

    Personally I hate 2x?? headers as they are only great for ribbon cables. I feel all i/o should be 1x?? with power and grounds on the ends. A 1x10 seems optimal.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-10-08 17:17
    @Roadster, unfortunately it is possible to put the boards in the wrong way - see attached photo. And it zaps the board too :(

    I suppose one could think about a different pin layout. Or maybe put a big round white circle on the PCB. Hmm - that could work. How about a half white circle on the PCB on the left end in the middle - same as the notch that is on ICs?

    One thing I have been thinking about is an alternative to a mouse, and with an arduino shield you can add a joystick and buttons http://www.sparkfun.com/products/9490

    One could do something similar for the GG - eg a small board with an ADC on it.
    601 x 196 - 27K
  • frank freedmanfrank freedman Posts: 1,983
    edited 2011-10-08 18:04
    Dr_Acula wrote: »
    @Roadster, unfortunately it is possible to put the boards in the wrong way - see attached photo. And it zaps the board too :(

    I suppose one could think about a different pin layout. Or maybe put a big round white circle on the PCB. Hmm - that could work. How about a half white circle on the PCB on the left end in the middle - same as the notch that is on ICs?

    One thing I have been thinking about is an alternative to a mouse, and with an arduino shield you can add a joystick and buttons http://www.sparkfun.com/products/9490

    One could do something similar for the GG - eg a small board with an ADC on it.

    There is a cure for that, and that is to use one continuous strip of connector on each side in place of the current split affair. The place held by the empty space should be filled with a plugged hole. The connectors plugging into the socket would then have a pin cut in the same location thus keying the connector and thwarting all but the most determined attempt to insert the connector improperly. In my own lowly opinion now that I am aware of this, I would be to ask GG to make this a high priority ECO for the GG usb board. Would not take much to do from the looks of it. Also reduce production costs as well having only to place and solder 2 parts vs 4 parts.

    I am not yet stacking up stuff yet, though soon enough. Better someone else found this than me. Magic smoke can get expensive, especially if it came from one of the free samples that otherwise are $$$ (or whatever currency).

    Frank
  • Cluso99Cluso99 Posts: 18,069
    edited 2011-10-08 19:50
    Nice board Drac :)
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-10-08 20:45
    The place held by the empty space should be filled with a plugged hole

    @frank, that is a brilliant suggestion. Reduced number of parts, quicker to solder up, and you have solved the problem of plugging it the wrong way.

    @cluso99 - if this board works out maybe you could shrink it?
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-10-20 21:23
    I've just sent off a couple more GG boards to be made - hopefully will get them perfect and ready to sell soon!

    Anyway, the board with the keyboard/rca/vga plugs has to be on the top as these components are too tall. And so I ended up making the board bigger instead so nothing is on top of these components.

    But I did a search on ebay for 'stackable header' and these are getting easier to get. http://www.ebay.com.au/itm/Stackable-Header-80-pieces-40-8pin-40-6pin-kit-Arduino-/220874302755?pt=LH_DefaultDomain_0&hash=item336d226523

    Several things with these:
    1) You don't need to offset each board as the pins go all the way through. So with headers like this a DIL header PCB pattern is not needed?
    2) The pins are long, which gets around the 'tall components' problem
    3) They come in groups of 6 or 8. The 8 work out fine because two of them make 16 which fits with the 16 prop pins on either side. The power supply is 4 pins so maybe you cut two off?

    I have ordered some and will see how they work out.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-11-05 00:47
    Got some boards working.

    1) This is 4 boards in a stack. But I think if I go for the "long" GG format http://gadgetgangster.com/find-a-project/261 I can do this with two boards, one is the motherboard and one is the Dracblade. And the 'motherboard' is the same as the GG USB board http://gadgetgangster.com/find-a-project/56?projectnum=257 , so really it then comes down to one addon board.

    2) Tall components are an issue and there are two solutions - one is to use tall headers, and the other has been to put the tall components on the long end of the board (the TV and the mouse and keyboard sockets). The VGA fits under the other boards.

    3) I finally worked out how to solder the micro sd card (and other surface mount components). Tin the board first!

    4) I needed to redesign the board anyway, after PhiPi's experiments with the VGA resistors.

    5) I needed to create some new parts in Eagle PCB right from scratch - including the micro SD card and the TV RCA socket. Eagle is great the way you can make new parts. BatchPCB are making these prototypes.

    6) You can see on the top board that the power and data headers have been combined into one header. There is a "no connection" pin between the two. It is backwards compatible with GG boards, and is easier and quicker to solder. I have pondered whether to connect something to that non connected pin - maybe the propeller "reset", though this would not be 100% GG compatible then. The idea would be that you could have the reset button on the highest board so it is easy to get to. Thoughts on this would be appreciated.
    1024 x 768 - 135K
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-11-05 09:41
    Dr A.

    I was thinking this morning.. The GG Quickstart module could easily become a way to neatly seperate stacks by reversing the male pins to the top of the board, then interconnecting them with a ribbon cable.

    You'd have to do one of those classic "IBM" right-angle cable folds, but it should work. A few of those pass-through pin headers and you'd be in business.

    OBC
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-12-14 19:45
    I've just thought of another way to prevent boards being zapped by being plugged in the wrong way.

    If you use the Arduino stackable headers, you don't need to alternate boards using the inner, then outer, then inner rows on the GG board. I've been putting the 4 power supply headers on the inside rows, and putting all the data headers on the outside row.
  • kwinnkwinn Posts: 8,697
    edited 2011-12-14 20:22
    There is a cure for that, and that is to use one continuous strip of connector on each side in place of the current split affair. The place held by the empty space should be filled with a plugged hole. The connectors plugging into the socket would then have a pin cut in the same location thus keying the connector and thwarting all but the most determined attempt to insert the connector improperly. In my own lowly opinion now that I am aware of this, I would be to ask GG to make this a high priority ECO for the GG usb board. Would not take much to do from the looks of it. Also reduce production costs as well having only to place and solder 2 parts vs 4 parts.

    I am not yet stacking up stuff yet, though soon enough. Better someone else found this than me. Magic smoke can get expensive, especially if it came from one of the free samples that otherwise are $$$ (or whatever currency).

    Frank

    This is a good idea and was also done with ribbon cables to avoid problems. For the GG board Dr A's idea of staggering the power and I/O connectors would also work as long as everyone is on the same page vis a vis which go inside and which go outside.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-12-15 08:22
    Dr_Acula wrote: »
    I've just thought of another way to prevent boards being zapped by being plugged in the wrong way.

    If you use the Arduino stackable headers, you don't need to alternate boards using the inner, then outer, then inner rows on the GG board. I've been putting the 4 power supply headers on the inside rows, and putting all the data headers on the outside row.

    I've been pestering Nick about stocking stackable headers.. We'll have them in stock soon.

    OBC
  • softconsoftcon Posts: 217
    edited 2011-12-16 09:44
    On the mac, control click if you want the context menu. Then you can do things like open in new window, open in new tab, download linked file and so on. hth.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-12-16 21:39
    Re stackable headers, I've found that two 8way ones don't fit next to each other - need to file a tiny amount off the end so they fit. I don't know if this applies to all brands?

    Re putting power supply pins on the inside row, there is no particular standard here and anyone can do what they want. In practice, you would solder your stacks the same way, but it wouldn't really matter if they were not compatible with someone elses (unless you were selling soldered up boards or something). The 'motherboard' sits on the bottom, and for the Gadget Gangster USB board I ended up putting two rows of SIL headers with every hole filled with a sil socket so all my boards are compatible with that one.

    I've found another thing when building this stack (motherboard, SD board, key and display, external ram, 320x240 display) and that is (see photo) that some plugs are on one end and some on the other end.

    So I've been redesigning boards so that plugs are on the left and "human interface" things are on the right. So an SD card goes on the right, as do leds and any buttons.

    On the right are keyboard, mouse, vga, tv and audio sockets.

    So at most one can fit maybe 3 plugs on each board, so I have redesigned the various combinations, so keyboard/mouse/sd/audio go together, and vga/tv go together.

    The bottom board on this stack is a dracblade motherboard but it is interchangeable with a Gadget Gangster USB board.

    I love the flexibility of these boards. A new stack wouldn't work, so it was easy to mix and match boards to quickly find the fault (I'd forgotten to solder in a pullup resistor - D'oh!).

    All great fun :)
    800 x 600 - 116K
Sign In or Register to comment.