I was not sure of what design you had in mind, but what I have (I think includes)
a) Pass through connectors for all of the Mega board… I think I am pretty close on the layout, but had to measure and guess… These are the outside pins as there is not enough room on the outside of these pins for the normal servo connectors…
b) Bottom Row area. I brought out servo type connectors for the lower 8 Analog pins. To the Left of these I added another set of 4 digital pins (26-29)
c) Top row. 16 Digital pins 2-13, 22-25. Both top and bottom are in the standard configuration with gnd toward outside and signal toward inside.
D) Toward center of board, have PS2 connectors with pull-up resistors.
E) Toward upper right have three servo type connectors for the 3 UARTS not connected to USB. They should be in the order you can take a standard servo extender and simply plug one directly into SSC-32…
F) Have speaker hard coded to high digital pin number
G) 3 buttons and 3 LEDS. This time they are independent of each other. buttons have pull-down resistors and leds have resistors and light when signal is high…
H) I have a power connector for VServo. I assume VL is on the main board. I do have a VS=VL jumper which connects power to VIN pin…
I have not taken the time to update things properly for labeling or the like as not sure, how far off I am from the direction we may want to go.
Hi Kurt! I met with Andy last Saturday at the CIRC robot competition. He told me the found the problem with the original processor board and he has the shield completed and he’s emailing it to me. So he has regained momentum on the Botboarduino Mega. However I think there is a real need for a less powerful cheaper fewer I/O version. If we could get the processor and I/O on the board with the shield plugs it would be able to do simple rovers, sumos, 12 DOF walkers with SSC-32, etc. and be able to use any existing shield. Is this something you would like to try?
Let me get what Andy emailed me on here a little later today. Then we can regroup.
I will be ordering parts today to send the Propeller board to be assembled.
Maybe… Will be interesting to see what Andy came up with!
For me, you can never have too many IO’s.
Couple of options: Simplify shield… Not sure how much you could save here… Could keep same design and only populate some of the connectors… Not sure if you pay more here for the added holes…
But if you want all of this on one board, that keeps the same form factor, still has connections for shields, plus has servo type connectors, that could get a little fun to fit. It might not be hard if to modify Andy’s design if the cost is OK to keep the Atmega1280. You could maybe drop all of the connectors on the right hand side that were added for the mega. Could instead add 16 servo type connectors there. Many options here. Maybe all 16 go to the IOS that were added by Mega (like 22-37). Could maybe add new power bus where the I2C connector is now (lower right). If you want buttons and LEDS, could maybe fit them on bottom below the shield connections. Again maybe use higher Mega IO pins for these. Also maybe could fit PS2 type connections inside where the servo connections are…
This is totally what I had originally planned on designing! Haha.
Honestly, a “Roboduino” in BotBoard formfactor/size would probably sell quite well. We always sold a lot of the Roboduinos (before they D/C’d them), the only complaint being the price.
My assumption would be to support USB? FTDI or probably more work like the UNO that is another Atmega8 to do the USB work. Support with a socket or with it soldered in, like a 32 TQFP? Speaker? Buttons/Leds? Probably need to be jumper-able( conditional) as all IO pins are used from 328.
FTDI USB seems to me would be more problem free?.. Not sure about the cost compared to adding a mega 8 to do the work.
A socket for the processor seems to add more flexibility.
Yes a speaker, buttons/leds would be welcome as jumperable options.
To be clear this would be like the BS2 of the arduinos, meaning the low end. Simple beginner bots don’t need mega horse power, mega I/O, mega program room, etc.
I know the shield format is standardized. Because I don’t really understand this well, is there a standard arduino base concerning processor, I/O, format, etc. Or can you make something between the original and the mega versions? I just know we need to make it as the lower end compared to our mega. Should we start a new topic for it?
I am not a complete Arduino Expert, but have played around and read some. Yes there are hardware standards for the Arduino and shields. They have standardized pin numbers and the like.
I have been playing around some with a design. I still needs lots of cleanup and double checking of schematic type stuff… But how does this look:
It is setup for an Atmega328/Atmega168 type chip. It should have the standard connectors for shields.
I added servo type connections for:
6 Analog pins: This is on the bottom right area.
12 Digital pins: On right hand side. I skipped 0,1 as these are connected to USB. May add a different 3 pin connector for TXD/RXD/GND that may work to SSC-32. Not sure how well double use of these pins are… I have seen some who have been able to do so…
I have Jumpers for:
Speaker on: 5
Pull-up Resistor: 6 (PS2 maybe on 6-9)
3 switch/LED connects like BB2: 7-9
I have 4 wire hookup for VS/VL with VS=VL jumper
Use same Voltage Regulator as SSC-32/BB2 for 5 V
USB on FTDI - using small connector.
Note: I tried to get these larger things to far left as for example regulator may not fit under shield. May still need to move further…
I have made some updates since then. I am trying to make it closer to the Freduino USB: freeduino.org/buy.html
I found some connections I was missing. I also added another 3 pin jumper that allows it to run from USB power. with this I also added a fuse (SOD), to keep it from frying your USB port… Getting a little tight now. Probably need to print it out on larger paper, plus clean up the labels and the like and then see if someone like Andrew or Mike would like to take a look…
I think I have a reasonably good board here! Not sure, I may want to add another capacitor or the like. Probably need to look over schematic again with fine tooth comb to see if I missed anything. I think I have all of the correct FTDI stuff as I mentioned in the previous one. Fixed several errors, have 3 pin connectors for most everything. I have run it through Viewmate to remove the most obvious gerber errors…
I have also uploaded a zip file, with the design documents, plus a PDF of the schematic and the board. Also all of the generated gerber/drill files.
What do you think? If we are interested in this type of approach it would be great if someone else also looks over the design to make sure I did not do something stupid!
I will ask Mike and Andy to take a look. They are both very busy but I will ask. I think the LED/pushbutton jumpers need to be aligned. Will shields be able to install on top with servos plugged in? If not do we need to use right angle headers on the three pin connectors? Very nice work!
Yep, the 4 jumpers there may need to be aligned some. Not sure if I can put them directly under the buttons or the like. I tried to put all of the servo connectors to the outside of the board and not under where the shield connectors are. It will be interesting to see how different shields align there. I think some of the Analog pins will be mostly at risk here. Not sure about 3 pin connectors. That is is the height of a 3 pin servo connector on the side less than the height of the tall connectors…
I see I have some more labels to add as well. (Mark VS and VL) Also need to probably add some Board name/Trademark type stuff. Not sure where on Front, but could easily get some on back…
I thought I would take a look at the couple of shields I have to see if it would suggest any changes…
Here is a picture with a Seeeduino Mega with the XBee Shield from NKC electronics:
I also am holding a 3 wire servo connector (actually a Y cable). It does look like right angle headers may work here.
From this picture, my guess is that it may be difficult to get to Analog 0 and maybe 1 with this shield. Note the Megas have 2 more Analog pins on the bottom row, which is why you don’t see pins coming down from the shield. In my current design, the first 3 pin analog would start where the last pin on the right of the analog pin connector on the Mega board. Could maybe move it a little to the right and not have a gap between the first 4 and the last 2. Suggestions?
Also may need different voltage regulator than used on SSC-32/BB2, or really surface mount it. Suggestions, would prefer low drop off, as 6V battery would work, probably surface mount.
Update: I replaced some of the items and made room for a LM29150DT50R with a DPAK configuration. I will wait to see if there are any comments and then I will upload newer design files. I purchased a lite version of Diptrace (allows 2 layers up to 500 pins), and am now playing with a newer beta version. So my next uploads may have both newer format and Ascii format…
Also it may interfere some with Button A. Couple of options, move the buttons to the right or use the right angle button like what is used on the seeeduino mega for the reset button.
I did some more playing around with the layout of the board. As I mentioned I updated to use a voltage regulator that is in the DPAK shape. I also updated the size of the capacitors to match the typical as described in the regulator documentation.
I also played around some with the ground connections as the main route for everything was around the bottom and then right edge of the board, so I tried to create a few more paths. I have not done anything yet with the button configuration, but I did move the first group of Analog pins down, such that I think all of them should be accessible when the XBee shield is on top.
It’s looking very nice! I will try again to get Mike to take a look before we make any boards.
With the processor options that will fit into this board. do you think it could be powerful enough to run even a simple version of the phoenix code? Does Arduino have a standard crystal or clock frequency? What is the most powerful processor that will fit this board?
I think Mike downloaded the earlier zip file with the design on Thursday (may have been Friday). So far the best chip that I know of is the Atmega328, which has the same speed (16mhz) as the Atmega168 but about twice the memory, which would be necessary: adafruit.com/index.php?main_ … cts_id=123. Note these chips appear to be capable of running at 20mhz, but I have not seen designs that do so. Not sure if this would go against the Arduino standard or not? Will investigate.
Some phoenix code may be able to run on this as it runs on the Atmega640 which also runs at 16mhz and the same instruction set (maybe a few differences…) Does not have the extra UARTS. I ordered an Arduino UNO from Amazon.com which should arrive tomorrow to try it out… What I am interested in, is even though the UART is used by the USB, can you still use it to connect to the SSC-32. Normally I would not think so, but I read up on some other forum where some one was able to do so…
Quick check on 20mhz. There appears to be several places on the net that hav built 20mhz versions, which requires an updated bootloader. I have also seen places that sell chips with updated loaders, such as: jkdevices.com/atmega328
Update: The one above is 16mhz, I know I saw them. There is the sparkfun board: sparkfun.com/products/8789
But, In the Arduino IDE I do not see any standard board selections that go at 20mhz. There are timing functions that need to be updated and the like to handle this, but much of this may be already handled when the define for: F_CPU is updated. Things like hardware serial ports would also need to be checked out.
I don’t know what percentage of potential Arduino buyer would be scared off by this. Would be nice to maybe have the Crystal be socketed as well, such that you can give them the option. Personally I like the 25% speed increase!
Quick update: I found that I was missing the ground connection to the ICSP. (In the last picture that is the lower right pin of the 6 pin header…)
Also My Arduino UNO did arrive and I am playing with it some. I have built a version of the phoenix code that does fit on it. So far it looks like either PS2 or XBee may fit code wise. I converted the SSC serial that on Mega is using a USART to use the NewSoftSerial class, which appears to support up to 115200 and unlike BAP it uses interrupts to receive and buffer data… However my code was faulting pretty early on in the code so I am debugging…
I have fixed a few issues already, but my guess is the difference in size of the SRAM (2K on Atmega328 versus 8K on Atmega1280/640). I need to clean up a few places where before I could be sloppy and for example define an 80 byte buffer to generate a debug string in and then output it… Should work as I think the BAP28 only has 2K as well…
As for 20mhz? There does not appear to be any real reason why it can not be done, but, for example Sparkfun discontinued their board that was 20mhz. Technically there is no reason to not do it. You need a bootloader that runs at 20mhz. There are ones out there in fact there is one that comes in the Arduino package that you install. You need to edit the boards.txt file to add a new entry that defines the CPU speed as 20mhz and I think most of the code is setup to handle it. There may be a few issues like not a good divisor or the like to setup the timer that is used for micros()… But a simple conversion in those functions should easily be able to compensate…
Sounds good. I dunno either about the 20mhz vs 16mhz. No easy way to socket a crystal. Could be very bad, as they are not generally available with gold plated pins, which would be required on a socketed item operating at that high a frequency. I continue to be optimistic that this little fella can replace the Atom Pro. And it would be so much cheaper!
I have been considering changing the board size to 3" x 3" to accommodate the mega a little more appropriately. Was thinking of retaining the standard mounting hole, plus adding one in each corner. No it wouldn’t be able to be used on the T-Hex, but An adapter could be made to fit the board in the T-hex horizontally. Thanks for the update. Still thinking…