How to design a arduino compatible custom PCB using ATmega808 or ATmega1608?

Thread Starter

redgear

Joined Oct 17, 2019
136
Hey all,

I need to design a custom pcb with Arduino compatibility. Since I will be designing this PCB from scratch, I thought of going with lesser priced AVR's ATmega808 or ATmega1608 which perfectly suit for my application. The MCU will be interfaced with a 7 seg LCD, a buzzer, few leds and a IC that uses i2C.

How should I start designing the schematic?
Right now, I am just thinking to look at the Arduino schematic and just replace the MCU(along with the pin changes,etc), will that work?

Is there tutorial or something that I can follow to make this all a bit easier?

Thanks
 

jpanhalt

Joined Jan 18, 2008
11,087
I agree with your proposed approach.

Just to expand a little:
I would start with the schematic and PCB of something that is compatible with an Arduino. I don't know exactly what that entails. I presume it has to do with pinouts for communication or other peripherals (e.g., SPI, I2C, UART).

Then on the schematic, I would map the pins of the chip I wanted to use to those pinouts. If you plan to use hardware peripherals, the datasheet for your chip will show which pins to use.

I am not aware of any tutorial on how to change chips like that. It is just a matter of relying on the datasheet and knowing how to use whatever program you use for schematics.
 

trebla

Joined Jun 29, 2019
542
To keep your board Arduino compatible you should connect MCU pins according Arduino software libraries (Wire, LCD and others) you want to use. Best starting poin is to study existing boards and available Arduino software ports, for example MegaCoreX
 

Thread Starter

redgear

Joined Oct 17, 2019
136
I agree with your proposed approach.

Just to expand a little:
I would start with the schematic and PCB of something that is compatible with an Arduino. I don't know exactly what that entails. I presume it has to do with pinouts for communication or other peripherals (e.g., SPI, I2C, UART).

Then on the schematic, I would map the pins of the chip I wanted to use to those pinouts. If you plan to use hardware peripherals, the datasheet for your chip will show which pins to use.

I am not aware of any tutorial on how to change chips like that. It is just a matter of relying on the datasheet and knowing how to use whatever program you use for schematics.
Thank you
I am looking at the datasheet but its kinda over my head rn.

To keep your board Arduino compatible you should connect MCU pins according Arduino software libraries (Wire, LCD and others) you want to use. Best starting poin is to study existing boards and available Arduino software ports, for example MegaCoreX
Yeah, I checked out the MegaCoreX. It does not give any info on the schematics.
Thank you.
 

trebla

Joined Jun 29, 2019
542
If you look to the pictures in MegaCoreX readme.md file then you should see color coded Arduino pin markings for each supported MCU. Then you can take for example Arduino UNO board scematics and replace original MCU with new one, keeping pin connections with same functions/names.
 

DickCappels

Joined Aug 21, 2008
10,153
I know very little about Arduino but I know it is complied and strongly suspect that the compiler needs to understand the peripherals and how they work so my question is: Will the Arduino compiler support the controller of choice?
 

trebla

Joined Jun 29, 2019
542
Under Arduino IDE you can install so called board packages for different MCU-s. Of course those packages are depended of their developers.
 

Thread Starter

redgear

Joined Oct 17, 2019
136
If you look to the pictures in MegaCoreX readme.md file then you should see color coded Arduino pin markings for each supported MCU. Then you can take for example Arduino UNO board scematics and replace original MCU with new one, keeping pin connections with same functions/names.
Thanks, I will do it and post an update.

I know very little about Arduino but I know it is complied and strongly suspect that the compiler needs to understand the peripherals and how they work so my question is: Will the Arduino compiler support the controller of choice?
There are packages to extend support to different MCUs. Even few STM32's are supported.
 
Top