Disclaimer: I'm a total noob, and this is my first EAGLE project.
Last week a sudden storm blew through the window and trashed my Arduino, and shields (I don't want to talk about my laptop and data loss...). The result was I decided to start fresh and design a board that would do what I want.
Well, the computer sucked me into it for the last 48 hours or so, and I've emerged with a modified Arduino Mega reference design that includes an SCA3000 and a DS1307 clock with a battery backup. I'm calling it the Madhuino board. In order to do that I needed to make some room, so I dropped the top 16 i/o lines (38-53). The SCA3000 has a jumper for the Interrupt pin, which connects it to TX1 (pin 18) if that feature is desired (I haven't tried it but I think the 3.3v signal should trigger an interrupt). The Communication port was also switched to a double header (2x7) which let the RX/TX pairs go side by side, and made room for 2 I2c connections (Vcc,Gnd,SCL,SDA) nicely arranged. I also made the board just slightly smaller (10.0cm) to conform to Propaganda's board size limit which dropped the outer i/o pin labels. The power supply and USB connections have also been swapped out with the mini versions like the Seeeduino has.
This leaves a board that is still compatible with standard Arduino shields, but offers more functionality!
I don't know what final cost will be, but it should be <$100 (some of you are still saying ouch, but hey, the SCA3000 costs $25 alone).
Are there others out there that would be interested in contributing/purchasing these? I don't have any experience with SMD fabrication, but I'm willing to get a hot plate and try to cook some boards up! (Is there a cheap assembly service available?)
BTW: Thank you to all the members of the Arduino community that have shared their knowledge and experience! Without the fine tutorials, and other contributions I wouldn't have been able to do this.
Well I notice that you are all very intelligent and read the disclaimer so nobody has said anything yet Of course I've noticed dozens of little errors in the design (and corrected them) in last 2 days.
Meanwhile I also took a couple notes from the Amanduino project and created a web site so I could share some more info. Schematic and board files are available at http://sites.google.com/site/madhuino
The top-layer ground plane cuts diagonally across the board. Is that what you meant to do?
Many of the "horizontal" traces in the upper right top layer are not very horizontal.
Running a DRC check turns up many clearance errors and several "overlap" errors that look like they might be real problems (and some that aren't.)
SPI is multi-device capable on MISO, MOSI, and SCK. You might want to run those pins to connectors even though you're using them for the SCA3000.
(these are generic comments; I don't know anything abou the SCA3000 in order to say whether you defined the part right, or have sufficient 3V/5V conversion stuff, etc...)
I applaud your initiative as I'm looking forward to seeing what the clone guys can do with the orginal Mega design as a starting point. A few comments in general:
The inclusion of a Accelerometer is a bit unusual as this is a pretty specialized item and as you said carries a price, so that might limit the market to people needing or at least wanting it and willing to pay for it upfront. I would think it would be better offered as a shield option.
I like the idea of the RTC included on board as that is a very common need and worth the extra costs IMHO.
Ditto on the mini USB and power connectors, I would think board space is too valuable to still use the same old large connectors for any new design.
Dropping some of the I/O pins that the original Mega and devating from the orignal Mega connector footprint could be another hurdle for some.
Most of my comments have to do with making it more 'mainstream' from a marketing standpoint for the general Arduion users. That does not mean that you should not design it exactly as you require and want for your specific application and use. Thanks for sharing.
Thanks for the feedback, I greatly appreciate and respect all of your opinions. This forum wouldn't be the same without all the knowledge you share.
A couple replies in no particular order...
Q: diagnal groundplane on top layer?
A: that was what the reference file came with, and figuring out the ground plane stuff was the last thing I grappled with in Eagle (and most confusing) as I tried to keep it from filling in around the DS1307on the bottom layer. Should I change it?
horizontal lines: I guess I didnt' realize that was important (slap, don't be sloppy), I'll clean that up more (finer Alt setting).
accelerometer could be left unpopulated for those who don't need/want it. I based the circuit on the simple example in SparkFun's tutorials on interfacing a 3.3v device with 5v logic levels (which has worked fine for me on a proto-shield).
I was under the impression (wrong?) that the ISP header also breaks out the necessary lines for external SPI bus connections, so I didn't bother.
Westfw, you reminded me that it probably should have a cap next to the SCA3000 on the power line. The SCA is miniscule amperage, suitable for the 3.3 line. Should it have an electrolytic and a ceramic like the Sparkfun breakout board? I have no idea how well conditioned the 3.3v supply is.
all the little warnings were a little confusing and I couldn't find any actual problems when I checked the circuit board, but that just means I don't know what I'm doing!
I really like the idea of microcontrollers with awareness of time and space. As RetryLefty kindly pointed out it may be seen as less than desirable to deviate and create too many variants of the Arduino standard, but hey, this is what I want in a board, if somebody else wants to use it too then all the better, and of course I'm perfectly happy to accomodate whatever anybody else wants as long as I still get what I want out of the board of course.
Q: diagnal groundplane on top layer?
A: that was what the reference file came with ... Should I change it?
Hmm. The copy I downloaded has a rectangular groundplane on top. You probably accidentally deleted the bottom right corner when adding the battery; it's easy to miss doing this when the groundplane isn't filled in.
horizontal lines: I guess I didnt' realize that was important (slap, don't be sloppy), I'll clean that up more (finer Alt setting).
It's not important on its own, but it probably contributes to some of the clearance errors.
I was under the impression (wrong?) that the ISP header also breaks out the necessary lines for external SPI bus connections, so I didn't bother.
No, you're correct. I forgot about those, and didn't see it. I never liked connecting shields via signals on the ICSP connector, but it's probably sufficient.
Westfw, you reminded me that it probably should have a cap next to the SCA3000 on the power line. The SCA is miniscule amperage, suitable for the 3.3 line. Should it have an electrolytic and a ceramic like the Sparkfun breakout board? I have no idea how well conditioned the 3.3v supply is.
Good question. I don't know. Sensitive analog component; I'd put as many caps near it as will easily fit on the board, and maybe an inductor or resistor connecting them to the main supply as well.
Can you fit it out for possible population with cheaper accelerometers (ie dual footprints)? Everyone with micromachining capabilities is chasing the "shake your iPod" market with cheap three-axis accelerometers (ie MMA7455L from Freescale - under $4 in ones...)
all the little warnings were a little confusing and I couldn't find any actual problems when I checked the circuit board, but that just means I don't know what I'm doing!
Yes, you need to look at them more carefully. The design rules are already set to "typical" limits of PCB manufacturers, so anything that's closer than the 8mil clearance really ought to be cleaned up. "dimension" is less important. And I saw at least two real errors where traces carrying different signals actually collide (near (73,17) and (78,40)) I'm a big fan of making things "easy" for the PCB manufacturer...
I've posted revised files (alpha02) and addressed numerous issues including:
traces and routes have been cleaned up
overlaps (ouch) and clearance errors have been fixed
the diagonal ground plane on the top layer has been fixed
decoupling caps have been placed on the 3.3v power supply next to the SCA3000, and one has also been put on the DS1307 5v supply.
ERC and DRC errors have been checked and I think everything is OK except for a few drill size issues. There are a lot of Stop Mask errors, but they don't seem particularly relevant since many are from parts I haven't touched (I think). I am still a little concerned about the mini-USB connector since I "borrowed" that from the Seeeduino board file and it has lots of warnings.
Westfw, your suggestion about using something like the MMA7455L has a lot of merit, though my application needs a higher resolution device. I'll try creating an Eagle library entry for the Freescale chip and see if I can fit it on the same place without having to rip up too many things.
I did a little searching and didn't find any Arduino examples for the MMA7455L.
Is there anyone out there who would be willing to develop/contribute a library for that chip that would make using the board easier?
This may be a bit off topic but I was wondering if you (or anyone) have experienced any difficulty with the SCA3000 SPI interface with the Arduino Mega.
More specifically, I have been running the SCA3000 from an Arduino Duemilanove without issue for some time now. A new project came about and I am now trying to run the same accelerometer (and code) from the Mega. I alterned the Spi.h file as described in other forums to the following:
MOSI = Pin 51
MISO = Pin 50
SCK = Pin 52
SS = Pin 53
The result being that the code will run but the acceleration output is essentially random. I am wondering if something might be off with the SCK of the Mega...
I would much appreciate any thoughts anyone may have on this.