Dual Core 168 Arduino

We built it to add a second serial buffer, the additional I/O's was a "side-effect". Originally we hadn't planned on having more than 3 DI/O's per IC, because that's all we needed for our application. But we then decided others might be interested in solving different problems with it, so we added the rest in plus a header for 3 i2c devices.

If we only wanted a I/O expander, we would have used 595's and 4021's - we've got another board in design which is based on two 595's and two 4021's, and like the dCoreduino, they too can be daisy chained. That suits a need we have, others also might have a use for them so we'll put them out there as well once we've taken delivery.

I didn't mean to say there was no point to this project, I was replying to the poster who was talking abut using it as an I/O extender.

I've used 595's and the non-blanking version, I can't remember the chip number right now, many times, though I haven't used the I2C extenders much. The reason I specifically mentioned the extenders is they give a functionality similar to this project's extra I/O.

The "extra I/O" in this project is a UART, not simple digital I/O lines.

I have investigated adding an SPI UART, and what I found is this: the device costs nearly twice as much as an ATmega8/168; it requires one of two odd crystals that you're not likely to have in your junk box; and it has an 8 byte buffer.

Using an ATmega, however, cuts the cost in half, uses a crystal I may already have, and gives me a huge I/O buffer. Plus, I can put code on the ATmega to preprocess the data if I so desire - for example, I can interface to a GPS, let the slave ATmega read the NMEA sentences, verify the checksum, parse the strings into integers, and have that data ready to provide to the master processor. If the master has very much work to do, this preprocessing may be quite useful.

If anyone knows of an SPI or I2C UART besides the 31xx devices from Maxim, please let me know.

-j

While an Arduino128 or the SiameseDuino is an excellent option for new purchases, I think an IO expanding shield with a second I2C slaved Atmega128 on it and a second set of IO pins might be a good option for existing Arduino owners.

There are I2C data-expander IC chips already. They connect via I2C and give you as many virtual digitial I/O pins as you care to buy chips for.

While a 2 mcu arduino may have its uses, extra I/O is a silly reason.

The beauty of a spare MCU isn't just it's digital I/O pins but everything you get. Even if we stick to AtMega168 like chips, the Atmega48 (as an I2C slave) adds 14 digital I/O pins, 4 A/D pins, a serial port, and 6 PWM pins with identical characteristics to the existing Arduino pins about $1.60 and it's programmable. There are cheaper micros, but this one is cheap, easy, and compatible.

Comparable hardware build on I/O expanders isn't really any cheaper unless all you want is digital I/O (16 bit digital I/O $1.20, 4-channel 10-bit I2C ADC $3.10, I2C capable UART ???, I2C capable PWM ???.

The operative word is inexpensive. It shouldn't be too far off $20 and childsplay to assemble, and probably quite a bit of fun to tinker with as well.

Here's our I/O expander board, it's a "biggie"!

We're changing the layout to one VCC + GND "IN" and one VCC + GND "OUT" - and moving the CLD's IN and OUT top and bottom respectively, grouped and labeled "595in/out" + "4021in/out".

The board is based on these two excellent references:-

We know there are other ways of doing this, but we happen to already have tried and tested software which utilizes these low power inexpensive IC's. Turning it into a PCB, for us is a simple case of tidying up the otherwise messy wiring and prototype boards we've been using.

The boards will work with any of the Arduino's and we'll have a small surplus available for anyone else wanting them.

i'm lacking in techonlogical expiereince...
where is the usb connector?
and the dip switches to decide which arduino is being controllled?
also the barrel plug power connector?

if those are already taken care of, then i think there should be some more room for more gnd and 5v pins, becuase it doesent look like enough... there looks to be a small bit of room around the board, and i believe those small spaces would be perfect for 4 gnd on one corner, with 5v on the same side, and opposite on the other side so:


gnd 5v
arduino pins and atmega and such

5v gnd

i'm lacking in techonlogical expiereince...
where is the usb connector?
and the dip switches to decide which arduino is being controllled?
also the barrel plug power connector?

if those are already taken care of, then i think there should be some more room for more gnd and 5v pins, becuase it doesent look like enough... there looks to be a small bit of room around the board, and i believe those small spaces would be perfect for 4 gnd on one corner, with 5v on the same side, and opposite on the other side so:


gnd 5v
arduino pins and atmega and such

5v gnd

There are "two" different and separate boards.

The board above from my last post, is the I/O expander. Below, is the dCoreDuino168. There isn't a USB connector or 9v socket because we didn't need either for the project the board was designed for. There are 7-12v "in" pins on the bottom left-hand side of the dCoreDuino168 pcb, connected to a pcb power switch at the bottom of the board and to the 7805 5v regulator.

We'll have a small surplus available (of both boards, plus, a slim version of the dCoreDuino168) for those that want them. "But", they are what they are, and you'll need a mini-usb adapter or FTDI TTL 232R USB to TTL serial cable to program the dCoreDuino168.

The I/O expander uses 3 digital pins for (output) and 3 digital pins for (input). The vcc + gnd "IN" connects to the vcc + gnd "OUT" on the dCoreDuino168.

More info on the I/O can be found at the two tutorial links posted above.

this will be very popular! you guys should really find a way to get this advertised, becuase i don't want this project to be a small lump on the enormouse surface of the arduino planet.

definitly contact arduino.cc try to get this advertised on the first page!

maybe contact the makezine( that's how i got connected to arduino!! )

ask moderators to advertise this here, like putting it in a place everybody can plainly see.
this will mean more popularity, and more potential profit... as well as more buyers so you can order a larger quantitiy!

i also can't help but think that maybe making some kind of connector on the arduino and the extra i/o board would be good. That way the people who don't use it and won't use it, just have a small connector on thair arduino, but for the people who do use it, it will be VERY easy to connect rather then running wires!

also just a question on the arduino board:
what kind of cable is needed, i think i have in mind what you speak of but i'm not completely sure. Is it the cable you use to hook up a psp to a computer? or do you need a converter?

I appreciate your enthusiasm big93. We're producing in generous quantities so the cost of the pcb's is almost not worth a mention. We're also able to buy 168's in large quantities so they too are reasonably inexpensive.

Our first priority is the completion of the application the boards were designed for, which will provide us with more information about how the two 168's on a single resonator perform. Once we have that info at hand, we'll be able to guarantee functionality to a number of operating conditions. We "think" it's the same as a single but with another 168 attached, but we'll still be wanting to find out if there are any conditions that can cause issues over and above what you'd expect from a single Arduino board.

Once that's done, and a few others have played around with it, then there may well be a demand for more boards, and we'll be happy to produce more.

We'll be using 8 ply cable connector wire to connect the dCoreDuino to the I/O expander board, and the same to daisy chain one I/O board to another. There'll be some cable splitting but it's better than using single wires.

As far as the good people at Arduino go, I'm sure they have their own products to worry about, and distributing to the masses wasn't something we had originally planned to do. But, if the board is able to help solve problems for other people then it would be criminal not to share it with the rest of the world, and we have the means to do that ourselves if it's deemed to be a worthwhile undertaking :slight_smile:

We altered the I/O board which now uses a 10 pin box header (8 ply) that should help keep the wiring nice and tidy.

hmm, looks nice, it'll be easier to plug and play...

The 4021's and 595's are incredibly inexpensive, and the boards in volume were also of a cost hardly worth a mention. The only downside is the time production takes. With delivery, we're looking at about the middle of April before we get our hands on them.

Fortunately, there's plenty of other boards under way to keep us preoccupied in the meantime :slight_smile:

I spotted a similar idea via Flickr last year. Someone figured out they could use a second 168 ATmega8 to do USB-RS232 and put it on one board.

OK, so the main similarity is that it's Arduino, and there's two ATMega168s ATMega8s on the PCB, but it's still pretty cool. ;D

Link to project:

http://translate.google.com/translate?u=http%3A%2F%2Farduino.tw%2F%3Fp%3D60

I spotted a similar idea via Flickr last year. Someone figured out they could use a second 168 ATmega8 to do USB-RS232 and put it on one board.

OK, so the main similarity is that it's Arduino, and there's two ATMega168s ATMega8s on the PCB, but it's still pretty cool. ;D

Link to project:

Coming Soon

My broken English isn't so good, but as far as I can tell it's using two resonators and two completely different bootloaders? is that what he's linking to at recursion.jp? It's not using both IC's as Arduino's, so conceptually it's miles apart.

At circuit level, I can't see any similarities whatsoever, it probably has more in common with an NG, except he's used an extra ATMEGA8 for USB.

Two IC's on one board wouldn't be a world's first, but it does give rise to some very interesting possibilities, particularly the use of an ATMEGA8 for USB functions.

It would be nice to read a proper English translation of the development, the google translator 'undoubtedly' doesn't do it justice.

nice!!

The PCB's are a few days away.

Here's a pic of the board :slight_smile:

nice, it looks really good, solder em up and tell me how it went!

I know what I will use it for!!!
first, I would use it to have one drive and LCD based on controls received from the other, or give the status of a CNC job controlled by another (the machine will be either manual or automatic, so I sorta need the extra I/O pins and inter-chip cooperation B - )
but great job putting this together and keeping the size small... I hope you do get to sell the boards eventually... or is there at least an eagle file?

[first post BTW, just got my arduino a week ago, made it output NTSC video for an art piece I put together the day before it was due, installed a range finder and alarm for another art piece due the same day for a "jail"... and they were both on the same board: I love arduino!]

Hey Arduinocnc,

Yeah it'll be perfect for that, plus any other projects that need two serial ports and a bunch of extra pins.

Our designer uses the ORCAD Pro Software suite, and it doesn't have an Eagle translator - you'd think a 10k commercial application would, but apparently not.

So the plan is to assemble and test, then put the board into the environment it was built for, then decide what to do with the leftovers.

There's also a sister I/O multiplexer board arriving in a couple of weeks. It'll work with any Arduino and has a daisy chain header so you can connect as many boards together as you like using 5 core ribbon cable. Each board adds an extra 16 douts and 16 dins, and has inline resistors so it can plug n play with LEDs and switches "out-of-the-box".

We have a third board in production, which is a refinement of the dCoreDuino including USB, and has the same pin header spacing as an NG, so it will be compatible with Arduino Shields. For general purpose applications, that might be the better of the two to wait for.

We're looking at having 4 ATMEGA168's on that if we can optimize on space without resorting to SMD's - kits aren't as much fun it the parts are too tricky to solder, so we think the added length will be worth it. The width will be the same as an NG, but the board will be slightly longer.

Since we're buying the IC's in bulk, adding another two won't cost much, but the retail price for that model is likely to be the same as an NG, the dual IC would be about half that again.

And on top of all that, we'll produce code and documentation so there will be dual/quad IC examples to refer to. And we've created a "new brand" moving away from the "duino" since objections have been voiced about the number of compatibles out there using "duino", which we think is fair enough since you don't see cars on the road with the name LancerBMW or SigmaBMW, even though they all use petrol, doesn't mean they should carry the name or part-of anothers more established brand.

Each product should stand it's own ground using it's own branding, and since we already have a commercial outlet for them, that shouldn't be a problem. In the world of OpenSource CMS's - it's called forking :slight_smile:

I can probably use the cads for that program too, I soon should have access to a lot of Autodesk software, including AutoCAD and it's related plugins, like electrical... well I cant wait to see the boards fully assembled and tested!

Arrived "finally" - minus the 2 switch/2-pole/4 pin IC selector DIPs, the only component that's impossible to source locally @#$