Pages: 1 [2] 3 4 ... 16   Go Down
Author Topic: Dual Core 168 Arduino  (Read 18382 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
God Member
*****
Karma: 0
Posts: 731
skcor oniudrA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Cool, but you know there's already an i2c library available... the "wire" library.

If you've got Arduino10, take a look at:-

Sketchbook -> Examples - > Library-Wire

We'd probably like to keep both IC's "independently programmable" using the DIP selectors SW1 & SW2 which connects either of the IC's to the single FTDI TTL-232 header.

We've also added a master power on/off pcb switch to capitalize on Adaboot's ability to run programs immediately from power up.

So we'll run the boards as is, because it matches our requirements. But it would be good to see variations of it for different applications.



Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 205
Don't Panic
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
...but you know there's already an i2c library available... the "wire" library...
The wire library is an excellent base implementing the I2C link, but the client needs more code to interpret what's being sent/received on the I2C link. Application layer code, if this were OSI speak.

I look forward to seeing your completed boards when they're done and when they're available for sale.
Logged

iDuino - MaxSerial - [url=http://spi

Norway
Offline Offline
Sr. Member
****
Karma: 0
Posts: 370
R-Doo-Inoo in the making :3
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

SiaDuino isn't  a mouthful :3 would that be a good name?

and i wouldnt mind one smiley-grin

i am currently programming my boarduino from my semi borked freeduino (it no longer runs with any chip in, but the power, reset, and rx tx works fine, so i wire them into the boardiuno and upload sketches fine smiley )

Logged

B-dui in creation.

0
Offline Offline
God Member
*****
Karma: 0
Posts: 731
skcor oniudrA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

spiffed:

That's "over my head" I'm afraid, but it sounds something like a full duplex software work-around?

The_Bongmaster:

We settled on dCoreduino168, we might see if four IC's can run off the same resonator one day, just for the sake of seeing if it's doo'able, so the d might change to q   smiley
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 12
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Quote
That is awesome!

Now all we need is a couple of water colling systems and overclock the chips. smiley

Seriously though, a great idea.

They've been running non stop for the past 4 days to see if anything "flaky" happens, the chips are cold to touch and both are in perfect synchronization.

I'm interested to know - why would a water cooling system be needed?

This hasn't been done before, so all input is welcome smiley-wink

Water cooling is for when you overclock it to 200mHz smiley

Glad to see some good feedback and ideas in this thread. And that PCB looks awesome!
Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 507
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

make the pcb for shizzle, and i'll probably buy it for more complex things, it looks like a very good intermediate arduino board for more advanced applications, the trick now is to make it as small as possible!

if you really build this, i'm sure it will be as popular as the original arduino with only costing a bit more...
and the website will probably support you too!
please tell me how much this could possibly cost at the most if it was made as much as the original, becuase even if it's like 40 bucks, then it's still worth it because some people need more pwm and such...

Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 731
skcor oniudrA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

We could have used those "tiny" components and tighter grouping, but for this application we didn't have any size objectives and opened it up so it's easy to assemble.

We're also using 1.8k resistors for the i2c bus, because that works for our application. I have read of others using 10k, so you can use bench components to experiment with different values.

The optimal design would be two RBBB's top-to-tail, minus one resonator, a 5v regulator, and taking out the three i2c bus headers. We have an application in mind for a slim form design like that as well, so once we've tested the first board we'll put one into production.

We've also designed a companion input/output multiplex board using two 74HC595's and two CD4021's which adds another 16 ins/outs. The 595's have a 5 pin in/out header so boards can be daisy chained. We picked those chips because there's very good tutorials on how to use them, and we happened to have a use for more digital outs so that board goes into production next week.

That board can be used with any of the arduino's, and once they've been tested we'll put some out if others want to buy them.

The original breadboard version has been running non-stop since I first posted, the chips and resonator are still cold to touch, and nothing "flaky" has happened.

Once we've taken delivery I'll need to decide if we're going to sell them direct, or use a distributor. We haven't ventured into burning our own chips yet, so it might be better if someone who's already doing that can add the boards to their product range.

The cost will definitely be under 40 bucks, and the exact price I'll be able to confirm once the method of selling has been determined smiley
Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 731
skcor oniudrA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Here's the final composite which includes the on/off pcb switch. We also moved the 5v out to the right hand side so it's nearer the i2c bus.

It just occurred to me that it's possible to link two or more boards together using the spare serial ports, or the i2c bus. So two boards could be joined via serial, and there would still be two spare serial ports leftover.

So you could create an endless chain of dCoreDuino's for those "extra" heavy applications.

« Last Edit: March 22, 2008, 05:47:51 am by John_Ryan » Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 507
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sounds yummy...

still sounds your taking the water cooling thing to heart lol jk, i'm sure that theylle never over heat.

but heres an idea:
find small surface mount digital pot's and shift registers, and have them on the bottem lets say, or a diffrent place where theres room, that way, they still cost the same, but take up much less space on the board, you won't have to sacrifice room.

also, program the 2 arduinos to understand that there are 2, that will most likely make it esier to communicate between them, or even make them act as 1!

and maybe pre program all the extra pwm pins from the digital pot's, and the shift registers as arduino pins, so instead of having to type extra code in the prgram, you can just say "arduino pin 38" becuase it will name pins from the shift registers accordingly!

god damnit, if i only had this b4 i started working on my button pad, i could have been having full color dimming with no need for refreshing each button...

can't wait for the prototypes! please keep the updates comming!
Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 731
skcor oniudrA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
sounds yummy...

still sounds your taking the water cooling thing to heart lol jk, i'm sure that theylle never over heat.

but heres an idea:
find small surface mount digital pot's and shift registers, and have them on the bottem lets say, or a diffrent place where theres room, that way, they still cost the same, but take up much less space on the board, you won't have to sacrifice room.

also, program the 2 arduinos to understand that there are 2, that will most likely make it esier to communicate between them, or even make them act as 1!

and maybe pre program all the extra pwm pins from the digital pot's, and the shift registers as arduino pins, so instead of having to type extra code in the prgram, you can just say "arduino pin 38" becuase it will name pins from the shift registers accordingly!

god damnit, if i only had this b4 i started working on my button pad, i could have been having full color dimming with no need for refreshing each button...

can't wait for the prototypes! please keep the updates comming!

 ;D neither water cooler or fan would be a very good prospect so it absolutely "had" to be time tested in order to establish a benchmark.  

And I'm quite excited as well to be honest. The Arduino's so easy to work with it'll be nice to have the extra serial buffer, pins, and program space.

I believe film has been made so I'll post back once I've got another update smiley
Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 507
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, but just to get an idea, how much bigger will the dual core arduino be comapred to the current decimielia one?
Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 731
skcor oniudrA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've only got an NG here and it's 72mm x 53mm - the dCoreDuino168 is 76mm x 63mm, so it's 4mm longer and 10mm wider.
Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 507
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thats nothin! Good job keeping it small, sounds like its hardly noticably bigger.

So tell me... How would this thing act? Would it think it's an arduino with more pins?
Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 731
skcor oniudrA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No, it's still just two ATMEGA168's - which happen to both be joined to an inline i2c bus, and share a resonator and a few other components.

They can function as two completely individual 168's - or they can "co-operate" using i2c.

For example, one IC might be running a sequence of LED's, and at the end of the sequence, send a message to the other IC telling it the sequence has finished. Or, they both can run completely autonomously, using their own pins for "whatever".

The application we built this for, requires two serial buffers. One communicates with a host computer, and the other communicates with another serial device.

So, for example, when there's a serial event on IC1 - it sends the serial data to IC2 via i2c. The wire library has "wire.available", so IC2 can still run it's own loop/s while waiting for data from IC1. Since IC1 is also using the serial buffer, "it to" can run it's own loop/s.

And that's handy if you've ever needed to use an Arduino to communicate with two serial devices, because you'll discover two major drawbacks. 1. Arduino's only have one serial buffer. 2. The software serial library "hangs" loops while it's waiting for data from a serial device, although, I think there was a hack done recently which provided a work-around for the Diecimila?

Aside from what we're using it for, we've really got no idea what else it might be capable of. Both IC's are perfectly synchronized, so there could be applications which that suits. Between the two, there's double the pins and program space - I think there'll be applications where that might come in handy.

Two or more boards can be added to the i2c bus, so it's possible to create a chain of dCoreDuino's - each IC could be performing a specific task, like, one for running a sequence of LED's, another for reading a gps device, another for driving servo's - and all would be able to do so while having conversations with each other via i2c.  

So for what I expect the cost to be, it's an inexpensive solution to a number of problems, while presenting a board which has twice the capabilities of a single IC Arduino. If developers can find a use for that, then it makes the concept that much more worthwhile smiley


Logged

0
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2526
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
We're also using 1.8k resistors for the i2c bus, because that works for our application. I have read of others using 10k, so you can use bench components to experiment with different values.
I have used the Atmega's internal pullups with no external resistors and it worked fine.  IIRC, the wire library even enables them for you.

-j

Logged

Pages: 1 [2] 3 4 ... 16   Go Up
Jump to: