New CPU Project
Moderators: Altitude, adafruit_support_bill, adafruit, mome rath, phono

New CPU Project

by Helyx525 on Sun May 16, 2010 9:59 am

While looking into what it will take to write a new firmware and reading the other firmware threads, I believe we have a pressing concern when it comes to firmware space. Others have mentioned it as well.

This 16kb firmware limit is a big problem. I have spoken to Willzyx and he and I agree. We need a bigger AVR chip in there.

What I am proposing to do is to design a daughterboard containing an ATMega2560 or 2561. This will give us 16x larger firmware space and a much more sophisticated OS. The board will have a ribbon cable which fits into the old ATMega162P socket. There should also be lots of extra IO pads on the daughterboard for modders to wire in their own mods like an LCD, digital pots or CV outs.

Like the x0xb0x, this design should be open source as will be my new firmware. I would like to get some consensus on the requirements of this thing so we dont end up with 7 different AVR chips and 7xN incompatible firmwares down the road.

I dont know what the final cost of this will be, but I would like it to be less than $50 if possible. It should be a lot less once it becomes integrated into the mainboard design.

Any feedback would be appreciated.
Helyx525
 
Posts: 61
Joined: Fri Apr 23, 2010 10:58 am

Re: New CPU Project

by phono on Sun May 16, 2010 11:01 am

i think bcbox already made one or a least an eagle layout for one, try searching
Image
x0x #733 Image SH-101 MC-202 TB-303 TR-606 TR-808 TR-909 MKS-50 Juno-106 A-100 Virus-B E-6400 SX-150 Monotron
User avatar
phono
 
Posts: 1502
Joined: Wed May 02, 2007 3:01 pm
Location: forum whore aka 2Cv

Re: New CPU Project

by Luap on Sun May 16, 2010 12:03 pm

phono wrote:i think bcbox already made one or a least an eagle layout for one, try searching


That was this thread I believe:
viewtopic.php?f=13&t=8015
That project looked to have stalled though..
Luap
 
Posts: 354
Joined: Wed Jul 08, 2009 6:10 pm
Location: London'ish. UK

Re: New CPU Project

by darffader on Sun May 16, 2010 1:47 pm

i checked that topic, seems like the main reason for stalling is pcb manufacturing cost


couldnt these help: http://www.futurlec.com/SMD_Adapters.shtml ?

cheap as hell and can convert about any smd type chip to something else when carefully wired.
User avatar
darffader
 
Posts: 295
Joined: Tue Jul 14, 2009 3:50 pm

Re: New CPU Project

by Helyx525 on Sun May 16, 2010 6:57 pm

phono wrote:i think bcbox already made one or a least an eagle layout for one, try searching

Hi Phono. Nice to see that I am re-inventing the wheel yet again. :)

The bcbox board design is a nice start, thanks for the info. I still think 64k flash will get crowded. I want to see a 2560 version and an onboard 16mhz crystal might be a safer design. Also, is anyone actually producing these bcbox boards or do we have to go to a prototyper to make them ourselves? I am hoping Willyzyx will agree to get a run of 2560 daughterboards made up once we have settled on a design.
Last edited by Helyx525 on Mon May 17, 2010 8:26 pm, edited 1 time in total.
Helyx525
 
Posts: 61
Joined: Fri Apr 23, 2010 10:58 am

Re: New CPU Project

by Helyx525 on Sun May 16, 2010 7:54 pm

darffader wrote:i checked that topic, seems like the main reason for stalling is pcb manufacturing cost
couldnt these help: http://www.futurlec.com/SMD_Adapters.shtml ?
cheap as hell and can convert about any smd type chip to something else when carefully wired.

Wow. Thats not a bad idea.

I think one of these two would be a great way to prototype the new CPU board:
http://www.futurlec.com/ET-AVR_Stamp.shtml
(ATMega128, 128k flash, $20)
http://www.siphec.com/item/ATm2561-TB1.2.html
(ATMega2561, 256k flash, $40USD)

One of the problems when people have attempted a new CPU in the past was that the 16MHz clock on the mainboard became unstable when it runs across the ribbon cable. Both of these protoboards have their own 16MHz clock onboard, so we can just ignore the mainboard clock. It wouldnt be too difficult to fit either of these to a ribbon cable with a DIP40 connector like this:
http://search.digikey.com/scripts/DkSea ... =HDP40S-ND

Which happens to be made by a company called Assmann Electronics. So there is that. :lol:

-Dan G.
Helyx525
 
Posts: 61
Joined: Fri Apr 23, 2010 10:58 am

Re: New CPU Project

by antto on Mon May 17, 2010 9:41 pm

go for the bigger one, that's for sure
btw, what's the difference between the 2560 and 2561?

you know, i'm helpless by myself, not sure how can i help at all, i ain't into electronics at all
i don't understand the problem fully..
the larger CPU has more pins, okay, it has all the pins like on the atmega162 + more
and there isn't too much space inside the b0x

is this doable at all?
what do we do now? i want one you know.. :roll:
We are here too: irc.freenode.net >>> #x0xb0x
..:: c0nb0x v1.00 ::.. http://forums.adafruit.com/viewtopic.php?f=7&t=29282 (new control app - win/osx)
VCO Tuning: http://forums.adafruit.com/viewtopic.php?f=12&t=24759 (do it the EASY way)
User avatar
antto
 
Posts: 1355
Joined: Thu Apr 15, 2010 2:21 pm
Location: 127.0.0.1

Re: New CPU Project

by darffader on Mon May 17, 2010 10:35 pm

antto wrote:and there isn't too much space inside the b0x


room enough in that enclosure.

I was planning on buying a programmer for atmel chips (for other project) so I could at least flash the bootloader for myself and those working on/testing the firmware.

I'm not familiar enough with these things to make a decision on the cpu.. Lets just hope people in the know tune in to this topic so a consensus can be reached.
User avatar
darffader
 
Posts: 295
Joined: Tue Jul 14, 2009 3:50 pm

Re: New CPU Project

by textile on Mon May 17, 2010 11:34 pm

You thought Assmann is suspect check this http://www.waynekerrtest.com/ , yes its a fella called Wane Kerr !
I know its childish but still.. what a name.
____________________________________________

My main request is 1:1 Clock pulse in and out. I found out a way with extra circuitry to divide the 24pulse DIN, but to have this direct would be ace.

I have re-drawn a lay-out for the x0x for a different project . Which I will release soon. (just waiting for $$$)
I am also doing a different lay-out of the x0xb0x for a different enclosure.

If a different uC is required perhaps a different main board. I am more than willing to help re-do the main board.
Perhaps separate the sequencer from the synth. This might annoy some with a jumper cable , but hey its just the Gate , Accent and the CV. It will allow a better future for just this. The synth will be the same but the sequencer will change.

I am offering my help with lay-out/electronics / re-design of the main board/ daughter board.

I am not that good at code though, just hardware.
User avatar
textile
 
Posts: 221
Joined: Mon Nov 23, 2009 8:34 pm
Location: Australia

Re: New CPU Project

by 3phase on Tue May 18, 2010 4:18 am

textile wrote:If a different uC is required perhaps a different main board. I am more than willing to help re-do the main board.
Perhaps separate the sequencer from the synth. This might annoy some with a jumper cable , but hey its just the Gate , Accent and the CV. It will allow a better future for just this. The synth will be the same but the sequencer will change.

I am offering my help with lay-out/electronics / re-design of the main board/ daughter board.

I am not that good at code though, just hardware.



In case you really do a new mainboard it might be good to get this more like in a real 303..

there are subtile sond differences between xox and real 303..especially the oscilator dont sounds very much alike..

ther is the theorie around that stray capacitys between the close by traces of the real 303 are part of this...

so doing it all as samall as possible as in the rel 303 might be even better for the sound...
3phase
 
Posts: 187
Joined: Wed Apr 22, 2009 1:06 pm

Re: New CPU Project

by darffader on Tue May 18, 2010 7:08 am

textile wrote:If a different uC is required perhaps a different main board. I am more than willing to help re-do the main board.
Perhaps separate the sequencer from the synth. This might annoy some with a jumper cable , but hey its just the Gate , Accent and the CV. It will allow a better future for just this. The synth will be the same but the sequencer will change.


true

I do agree that for future-proofing the x0xb0x project, a new pcb with new cpu should be made., and while you're at it, you could fix other issues along the road. But.. it would take a lot of time and effort and 95% of the x0xb0x user base is perfectly happy with the standard seq or x0xb0x (they don't know what they're missing though )

I think at first it's best to focus on a quick and cheap hack that allows us to place a new cpu in existing x0x'es and offering compatibility with different builds (like the x0xI0).
Keep in mind though, those SMD cpu's are tiny and cannot be soldered by most DIY builders.
Also, parts like SMD chip adapters and special cables can be very hard to source in small quantities or certain regions.
User avatar
darffader
 
Posts: 295
Joined: Tue Jul 14, 2009 3:50 pm

Re: New CPU Project

by Helyx525 on Tue May 18, 2010 8:26 am

antto wrote:go for the bigger one, that's for sure
btw, what's the difference between the 2560 and 2561?

Code: Select all | TOGGLE FULL SIZE
ATMega162:
    16k flash, .5k eeprom, 1k ram, 2 16bit timers
    35 I/O pins, 0 ADC inputs, 3 interrupt pins,
    6 PWMs, 1 SPI, 2 serial ports, 40 pin chip
ATMega2560:
    256k flash, 4k eeprom, 8k ram, 4 16bit timers
    86 I/O pins, 16 10bit-ADC inputs, 32 interrupt pins,
    16 PWMs, 2SPI, 4 serial ports, 100 pin chip
ATMega2561:
    256k flash, 4k eeprom, 8k ram, 4 16bit timers
    54 I/O pins, 8 10bit-ADC inputs, 17 interrupt pins,
    9 PWMs, 2SPI, 2 serial ports, 64 pin chip

I think the 2561 is the best fit for us. It has a smaller package, but still has 21 more I/O pins than the 162. The ADC, iterrupt and PWM differences are probably not relevant.

you know, i'm helpless by myself, not sure how can i help at all, i ain't into electronics at all
i don't understand the problem fully..
the larger CPU has more pins, okay, it has all the pins like on the atmega162 + more
and there isn't too much space inside the b0x


The new chip has more pins and is surface mount. It wont fit in the old socket. But the good news is we can make a mini board with the new chip and use a ribbon cable to plug that into the old socket. I want to go this way initially because it give existing x0x owners a simple upgrade path instead of replacing their mainboard.

is this doable at all?
what do we do now? i want one you know.. :roll:


Its very doable. The ET-AVR Stamp linked above is only $20 and is almost exactly what we want (only 128k flash tho). All we need to make this one work is a custom ribbon cable to connect it to the old AVR162 socket.

I can make a few of those cables for prototyping purposes, but after that it will be much easier to design a new board than to make complicated twisty ribbon cables for all the x0x users that want one.
Helyx525
 
Posts: 61
Joined: Fri Apr 23, 2010 10:58 am

Re: New CPU Project

by Helyx525 on Tue May 18, 2010 8:40 am

darffader wrote:I was planning on buying a programmer for atmel chips (for other project) so I could at least flash the bootloader for myself and those working on/testing the firmware.

Dont spring for a big complicated multi-chip programmer. A Serial or USB to JTAG cable might not be a bad idea though.

The new board will have a JTAG connector and you can use that to flash the firmware as well as do in-circuit debugging. And it doesnt require very much in the way of extra hardware on the daughterboard to do that. The free AVR studio IDE lets you set breakboints and single step the chip like this:
http://www.scienceprog.com/avrjtag-clone-in-action/

I'm not familiar enough with these things to make a decision on the cpu.. Lets just hope people in the know tune in to this topic so a consensus can be reached.


I think its pretty much down to the 2560 and 2561. See the comparison above. They are the biggest we can get and they arent all that expensive. My vote is for the 2561 because its a little simpler to lay out and still has lots of extra I/Os.
Helyx525
 
Posts: 61
Joined: Fri Apr 23, 2010 10:58 am

Re: New CPU Project

by Helyx525 on Tue May 18, 2010 9:27 am

textile wrote:My main request is 1:1 Clock pulse in and out.

By this I assume you mean a Dinsync clock with a 50% duty cycle?
I once wrote a midi to dinsync converter using an AVR chip. I used a software PLL multiply the 24ppq midi clock up to something like a 192PPQ internal timer event. It have 8 levels of shuffle and under most conditions held a 50% duty cycle. Some of the last shuffle settings had some pulses at 1/3, 2/5 and 3/7 duty cycle.I lost the code several computers ago, but I still have the concepts rattling around in my head. I could probably re-code it in the x0x.

I have re-drawn a lay-out for the x0x for a different project . Which I will release soon. (just waiting for $$$)
I am also doing a different lay-out of the x0xb0x for a different enclosure.

If a different uC is required perhaps a different main board. I am more than willing to help re-do the main board.
Perhaps separate the sequencer from the synth. This might annoy some with a jumper cable , but hey its just the Gate , Accent and the CV. It will allow a better future for just this. The synth will be the same but the sequencer will change.

Incorporating the new CPU into newer designs is a good idea once we have it working and have a new firmware for it, but I want us to all be on the same page with this upgrade to avoid forking into difference CPUs and I definitely dont want to exclude existing x0x owners from this upgrade path. I think we need to concentrate on the daughterboard and developing a strong foundation in the new firmware first.

I am offering my help with lay-out/electronics / re-design of the main board/ daughter board.
I am not that good at code though, just hardware.

Well thats a perfect fit then. We have lots of people on the firmware side of this, but we need some more eyes on the hardware design. I think we are getting closer to consensus on the AVR2561 chip. I will PM you when I have more info on the hardware. Maybe we can lay out the daughterboard and get some initial prototypes made through expresspcb or pcbexpress or whatever.
Helyx525
 
Posts: 61
Joined: Fri Apr 23, 2010 10:58 am

Re: New CPU Project

by Helyx525 on Tue May 18, 2010 9:46 am

darffader wrote:I think at first it's best to focus on a quick and cheap hack that allows us to place a new cpu in existing x0x'es and offering compatibility with different builds (like the x0xI0).

Agreed!

Keep in mind though, those SMD cpu's are tiny and cannot be soldered by most DIY builders.
Also, parts like SMD chip adapters and special cables can be very hard to source in small quantities or certain regions.


This is why I dont want this part to be DIY. DIY is fine when we are making 4-5 prototypes of this thing for our own testing purposes, but for this to work community wide, it has to be a plug and play upgrade. I want this to be a finished module sold by x0x kit vendors. The design should be open source just like the rest of the x0xb0x, that way anyone can produce it if they want to. Willyzyx has expressed some interest in this idea and I am hoping he might have connections to get them made cheaply. Until we nail down the details we wont know how much it will cost.
Last edited by Helyx525 on Tue May 18, 2010 11:49 am, edited 1 time in total.
Helyx525
 
Posts: 61
Joined: Fri Apr 23, 2010 10:58 am