Author Topic: My first try at a micro-controller, based on the Arduino Uno firmware  (Read 11654 times)

0 Members and 1 Guest are viewing this topic.

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Hello guys, I am rather new to the EEVBlog forum, but not to the Youtube series.
I have been trying my go on some PCB designs before, yet now I tried to create a little micro-controller based on the Aruino Uno firmware for the Atmel ATMEGA328-PU.
I would love to hear your thoughts about it.
It will be mainly used for a small project, yet I will also make it open-source-hardware.
I am sorry for the curlyness of the traces, I simply love the looks of it, I try to make mine look a bit like the old-school hand-made boards.
I know there is a lot to be implemented, like a proper power-plug, input protection and a little on-board power regulation, but it's V0.0.1, and my first one that I actually wish to publish, I had one before, a 7.5-35V step-down to 5v circuit, but I couldn't get the right parts to get 5V exact... Oh well.
Give me your thoughts. :)



 

Offline JohnnyBerg

  • Frequent Contributor
  • **
  • Posts: 474
  • Country: de
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #1 on: March 22, 2015, 06:27:28 pm »
Where is the header for programming the bootloader or upload software?

Why do I want this relative large board, and not have a Arduino mini pro for $2,- ?
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #2 on: March 22, 2015, 07:45:22 pm »
Where is the header for programming the bootloader or upload software?

Why do I want this relative large board, and not have a Arduino mini pro for $2,- ?

Good question, and to answer it, every pin is connected, so were one to grab the datasheet that will be included, one could find out which pins are for flashing the firmware.
On the other hand, the RX and TX pins are on the board, these are used by the USB module to handle the code exchange, meaning you could use the Arduino IDE to write and "upload" your codes.
Also, the board is nowhere to being completed, there are a load of optimizations needed still, I am working on it.
And why one would prefer this chip, well, let's say that some people prefer the sturdy big IC over the tiny ones, also the ATMEGA328-PU has a bit more in it's package then the basic stuff of the mini.
And the $2,- mini is actually not the best one, probably cheap parts, as the average lays around 9,95.
I also tried to keep all the equal pins at the same spot, so that the creation of a shield can be standardized(Without the annoying pin-gap.)
Also, it's not the most advanced one as of right now, I am thinking about integrating the USB circuit instead of using the $1,25 external module.
And maybe a nice button for the reset?
Will see about it. :)
Anyways, thanks for the input, it's always welcome.
I just prefer the big IC's, they just give me a more reliable feeling.
« Last Edit: March 22, 2015, 07:53:46 pm by thibmo »
 

Offline Christopher

  • Frequent Contributor
  • **
  • Posts: 429
  • Country: gb
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #3 on: March 22, 2015, 07:57:45 pm »
Where are your local bypass caps and big filter caps? An el-cheapo 7805 would be good on here unless you fancy powering external circuitry. A switching regulator for less than a few hundred mW is a bit of a pointless effort in my mind unless you really need the efficiency.

How are you going to program the bootloader? Having to program the bootloader in an Arduino first is too inconvenient. Stick an ISP header somewhere.

How are you gonna upload firmware? Having a header for an FTDI breakout board is very useful. (I see the header in the bottom left looks strangely like an ftdi pinout now... I will leave this note here anyway)

Does the reset pin need to be pulled up to the power rail to work correctly?

As for layout:

Fatter traces for power pins & a ground plane on the bottom so all gnd pins have a low impedance (easy for current to flow) return path

I'd keep Q1 where it is and move C1 and C2 closer to the chip
 

Offline JohnnyBerg

  • Frequent Contributor
  • **
  • Posts: 474
  • Country: de
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #4 on: March 22, 2015, 08:05:46 pm »
Programmers for Atmel are "standardized" with a 3x2 pin header or 7x2 pin header.
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #5 on: March 22, 2015, 08:46:37 pm »
Thanks for the input guys, I will give it a look-over and add a proper ftdi header block, maybe a dual-row 3 pin?
For the SPI header... I could put one in as well, for the ones who wish for it.
Though I will maybe pull the default Eagle board and schematics of a regular Arduino uno and edit it to my own likings.

Maybe that'd be a better idea, instead of developing one of my own right now?
Also, my idea was to put a socket in the place of the IC, to then flash if with an external flashing module.
Hence I prefer these form-factors, they are interchangeable in the case of a broken chip and easy to re-program by using a proper asic.
 

Offline JackP

  • Regular Contributor
  • *
  • Posts: 185
  • Country: gb
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #6 on: March 22, 2015, 09:07:20 pm »
I'd stick with this. Make the board about a 1/3 of the size (easy) and then just add in what these guys have said. All you have to add is some local caps, a little power reg circuitry and a few headers to the board, and you'll have a generic board. Even better, tailor it to your needs: if you often use servos, add a couple of headers with the standard servo pinout, for example. Do make it as small as possible though, as it will be cheaper to produce (get 10 5cmx5cm double sided for £10 at SeeedStudio (yes I know they aren't the best)) and more convenient for your projects. Hey, give a one sided board a go (it can be a challenge for boards such as these).
Good luck, and stick with it.
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4199
  • Country: us
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #7 on: March 22, 2015, 09:53:33 pm »
You will normally want AVCC and VCC connected to each other, and AGND and GND connected to each other. (You always want them connected; if you're being really paranoid about the analog design, a low-pass filter and separate gnd planes might be involved.
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #8 on: March 22, 2015, 10:11:43 pm »
Many thanks again, I will report back with a new layout, in attachment form this time, to not ruin the space too much. :)
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #9 on: March 22, 2015, 11:28:41 pm »
Oke, I have a little bit of the schematic done, basically it holds the reset button, the coupled GND&AGND, the coupled VCC&AVCC and the clock assembly.
Not much, I know.
But I need to do some research as well on the USB-serial part.
Q: FTDI FTS31XS-U or other chip?
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4199
  • Country: us
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #10 on: March 23, 2015, 12:15:12 am »
Aref should have a cap to ground
 

Offline sleemanj

  • Super Contributor
  • ***
  • Posts: 3024
  • Country: nz
  • Professional tightwad.
    • The electronics hobby components I sell.
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #11 on: March 23, 2015, 01:02:38 am »
You should give AVcc and Vcc each a separate decoupling cap, particularly because they are on opposite sides of the chip physically.

Also, what's R2 for? Have never see that done before.
« Last Edit: March 23, 2015, 01:05:50 am by sleemanj »
~~~
EEVBlog Members - get yourself 10% discount off all my electronic components for sale just use the Buy Direct links and use Coupon Code "eevblog" during checkout.  Shipping from New Zealand, international orders welcome :-)
 

Offline sleemanj

  • Super Contributor
  • ***
  • Posts: 3024
  • Country: nz
  • Professional tightwad.
    • The electronics hobby components I sell.
~~~
EEVBlog Members - get yourself 10% discount off all my electronic components for sale just use the Buy Direct links and use Coupon Code "eevblog" during checkout.  Shipping from New Zealand, international orders welcome :-)
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #13 on: March 23, 2015, 03:32:15 am »
Will add another cap tomorrow.
For now, hope this is enough.
Please notify me of any mistakes in the design. :)
And sleep tight for now. :P
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #14 on: March 24, 2015, 02:41:52 am »
Hello guys,

here a big update on the board.

I changed the ferrite bead for a proper inductor.
Also made the board layout, I was a bit greedy on the ground plane, I know, but I hope this will do.
Please do share the thoughts.

Yet do keep in mind that size is not something that bothers me, a slightly bigger board can be a benefit in some cases, plus it'd be easier to stuff addons on it. :)

Here are two screenshots.

//EDIT: Board_v0.1.2 has a little documentation fix, nothing huge, just the label for cap 13 missed and the USB label was misplaced.
« Last Edit: March 24, 2015, 02:49:05 am by thibmo »
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4199
  • Country: us
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #15 on: March 24, 2015, 06:02:47 am »
C10 and C11 look inappropriately tiny, physical size wise.

The arduino schematic uses parallel resistors (R8, R10) for one of the LEDs because it is using resistor networks, and this lets it use a single network (same value resistors) when they would rather have a couple values.  There's no need to use two resistors if you are using separate resistors.

You have quite a mix of component sizes.  Looks like 0805 for most components, 0603 for LEDs and some other components, and "really tiny" for c2, c3 (by the crystal.)  Does that reflect the real components that you have?  When there aren't reasons otherwise, I usually try to keep all the components in the same size family.  Ditto for the op-amp, mosfet, and etc - you have tiny packages and need to make sure that they match what you have or are planning to buy.

IC4 could use more copper on the tab connection, for heatsinking.  Personally, I'm a big fan of TO220 regulators and enough room to add a finned heatsink if needed.

C4 and C5 should be closer to the FTDI chip.  Isn't there suppused to be another cap, as well?  I remember a 4.7uF and 0.1uF on 5V, and 0.1uF on 3.3V out...

There should be a cap and a clamping diode on the RESET signal coming from the FTDI to the AVR.  See the Uno R3 schematic, and http://arduino.cc/forum/index.php/topic,64256.0.html  (or, consider leaving out "auto-reset."  It interferes with using real debugging.)

Try to avoid acute angles where tracks meet (as shown in the attached picture.)  I've heard these called "acid traps" and the implication is that they're not good for the etching process.  Although with relatively big tracks, I'm not sure how important this is.

Are you sure you want to be duplicating relatively old Arduino designs?  The FT232RL is dated, the power supply switching circuit has always been a bit over-complex for limited value, and autoreset is questionable for the problems it causes.
 

Offline JohnnyBerg

  • Frequent Contributor
  • **
  • Posts: 474
  • Country: de
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #16 on: March 24, 2015, 07:30:32 am »
It is looking more and more like a Arduino Uno.

So, why not make the layout compatible with the Uno, so shields will fit?

At first glance, the resistor with the crystal is not needed.

But the question remains: why do I want this board, and not a Uno/Uno Clone?

As Dave says: every board needs a "killer feature". What is the killer feature of this board?
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #17 on: March 24, 2015, 10:30:38 am »
It is looking more and more like a Arduino Uno.

So, why not make the layout compatible with the Uno, so shields will fit?

At first glance, the resistor with the crystal is not needed.

But the question remains: why do I want this board, and not a Uno/Uno Clone?

As Dave says: every board needs a "killer feature". What is the killer feature of this board?

About this part, I prefer having a lot of ground points, also the digital pins are now in a 14-pin header, instead of two messy seporate headers.
And what does the AREF have to do with digital pins? Blegh, that should be with a misc header or with the analog pins.
This is the basic set-up, eventually I will think about inserting more features, like a on-board Ethernet connection for either serial communication or real Ethernet connections.
I made the design different on purpose, this because I never intended on making it Arduino shield compatible.
My intention is to create a different board for people who enjoy fiddling with jumper wires(Hence the 6-pin ground header) to create prototypes, or learn to create electronic circuits to use with micro controllers, that is my goal. :)
And while I am at it, just keep it open source(Git page will be made in the near future).
The important thing is to have a solid basic, in my opinion.
Plus, I am just a hobbyist, All studies about electronics I did was 2 years of installation technology (Smart relays, PLC and wire pulling trough PVC tubes) [Een VMBO instal-techniek opleiding]
I see this as a good healthy challenge for myself, and I like to have feedback on my work.
The resistor on the crystal is there for a reason, you can find it back in the past comments.
Also, what's R2 for? Have never see that done before.

Answering my own question
https://www.google.co.nz/search?q=resistor+across+crystal&oq=resistor+across+cr&aqs=chrome.1.69i57j0.8591j0j4&client=ubuntu-browser&sourceid=chrome&espv=2&es_sm=91&ie=UTF-8

Seems more common with Microchip stuff.

@westfw:
Thanks, I will look into this, and perhaps swap some tiny parts for 0805 packages.
And indeed, I did mix some 0805 and 0603, I tried to keep them a bit compact where possible.
I put the auto-reset in due to it being rather default in circuits, yet I am aware of it's issues and it can be excluded if the community wishes for it. :)
Or I could do more research on how to stabilize it to where it functions properly.
After uploading the images I did a small circuit check in eagle and there were some errors, like:
* The trace running to pin 17 on the ATMEGA is shorting pin 18 &19.
* Some traces had a too tight or inappropriate bend.
* The IC4 pin4 copper slab created a collision issue(My bad, used a square instead of a polygon, fixed now and it has more copper to touch now.)

Personally I had a bit of a struggle with TO220's, not sure why.
Also, there seems to be an issue, I can't find an image in your reply.
With the sharp angles you mean where I join the wires in an angle, like a "Y"-split or angled trace-to-straight trace?

And I wonder, what other chip is there that's similar to the FT232RL but more up-to-date?
I chose this one for it's simple layout and ease of use, plus I never liked having to have a ICSP for the USB-to-serial chip itself, pure personal.

Though, how are the thoughts on the 2x3 + 2x5 pin connectors for ICSP? Good idea or more something to leave one of the two out?
Personally it's a feature I enjoy, having a choice whether to use a flat-cable to breakout or a 6 pin header.

And I am always open for examples and ideas, I really am, I just prefer positive-building-critic over the bashing critics, that's why I can take a tone in my writing at times, my apologies about that, it's nothing personal, just my mind making it a mess. :)

I really appreciate the hints and help, without it I can't learn to become better in my designs, thank you guys.

And about the Dave-quote, I know this, and it's true, hence this project won't stop with this main layout, it will grow bigger and better over time, maybe I will swap the 328-PU for a more heavy-duty one in the future, we will see. :)
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #18 on: March 24, 2015, 04:43:09 pm »
My bad, I mainly used 1206 packages.

A few quick changes:
* I changed the power LED resistor to a single 500 Ohm in a fitting 0603 package.
* All LED's are a 0603 package.
* R3 & R4 are closer to U1 and are now 0603 packages.
* R7 & R8 are now also 0603 packages, they are also re-routed.
* C8 & C10 & C11 are now fat-caps(Panasonic D types).
* C2 & C3 are now 22 pF instead of 20, due to recommendations from an external source.
* Added the 100nF cap as sugested.
* Did some re-routing all over the board.
* Added more ground via's.
* Changed the tDocum to tName to actually have the info on the solder mask.

Images will follow.
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #19 on: March 24, 2015, 08:00:58 pm »
As promised, here are three images for you guys.
One with logo's in-place, one with the logo's moved to the side and the updated schematic.
(If it's a double post, sorry. Images were too large in data-size on the first attempt.)

Also, I am thinking about inserting a 28-pin ZIF socket on the board instead of a dip socket.
Would be more user friendly in the case of the wish to change chips.
« Last Edit: March 24, 2015, 08:44:08 pm by thibmo »
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #20 on: March 26, 2015, 08:39:54 pm »
And I am back with an update.
I decided to re-do the whole thing and came back with this design.
It's 106.68 x 78.74 mm in size.
With a bit of luck it might fit twice per euro-board, though I doubt it.
One will surely fit. :)

Decided to use one resistor array and then have all resistors and caps(Except for the polarized caps).
Smacked the default FT232RL in there, instead of the basic.

Re-worked the whole schematic to make it easier to read.(Plus black background. :) )

If there are no real issues I might get some ordered for testing purposes. :)
Also, this shape saves me tons in tooling costs.

Now I also included the Eagle files(.brd and .sch)
 

Offline thibmoTopic starter

  • Contributor
  • Posts: 24
  • Country: nl
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #21 on: April 18, 2015, 11:04:20 pm »
Well,
this wins the record of the shortest lasting project in my life. >.>
After people keeping the bash up about the Arduino form-factor I decided to simply give up on it.
I didn't want to use it for obvious reasons.

Anyways, I am going back to what I am trained to do, which is programming.
I think it's bad to treat newcomers to pcb-design and microcontrollers the way I have been by some, but hey, it's just the way it is.

Good luck to you guys and perhaps one day you will use some software I have made, which I doubt, unless you enjoy playing games written in Delphi, like KaMRemake.
why Delphi? Just read the article that Krom and Lewin made on their website.

Cheerio.
 

Offline zapta

  • Super Contributor
  • ***
  • Posts: 6190
  • Country: us
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #22 on: April 19, 2015, 03:14:55 am »
I decided to simply give up on it.

Don't.
 

Offline picandmix

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: gb
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #23 on: April 19, 2015, 09:14:53 am »
Your original post was to make a more simplified but versatile version of the Arduino, but honestly,  as anyone can see,  you have effectively ended up with a Uno clone layout.

Think you are being rather unfair to say  forum members have  treated you badly, when all they have done is given helpful pointers and constructive criticism; surely thats what posting on the forum is all about, airing your ideas and asking for critique.


From the level of your designs from the opening post to your later versions you clearly have an ability in pcb design so why be so defeated if you do not agree with some of the views given.

I find pcb design very relaxing and enjoyable , an integral part of the hobby, so why exclude it from your life ...
 

Offline hamster_nz

  • Super Contributor
  • ***
  • Posts: 2803
  • Country: nz
Re: My first try at a micro-controller, based on the Arduino Uno firmware
« Reply #24 on: April 19, 2015, 10:15:00 am »
Hi! I like Delphi too - much maligned for no good reason...

Try not to take what has been written too much to heart. EEVblog posters are people who feel passionately about their hobby/work, to the point of making this craft their art - sometimes to the point of arguing about how many angels can dance on the head of a pin.  So while all the advice has a bit of truth (or maybe even quite a lot of truth) to it, you will always get a mixed response to any projects you post here. Think of it as walking into the local photography club and said "here is an awesome photo I took on my cell phone" - even if it is a truly awesome photo the turf has to be defended (and the exclusiveness of $$$$ cameras and lenses) .

For example, although the majority of people here would barf at the idea, you can successfully build an Arduino board using a $15 ESD-unsafe unregulated mains soldering iron, using crappy-as-heck multicore solder, without any flux, using though-hole parts that have been sitting in a junk box for years, on a single sided PCB. You can even test it with an "you'll be dead in your boots" $8 made-in-china non-RMS meter - and it can work just fine (and you will still be alive after using the meter too) - but maybe use an IC socket :).  See http://www.arduino.cc/en/Main/ArduinoBoardSerialSingleSided3 if you want to see a design - and it doesn't have a ISP header either :-)

Make some PCBs, build 'em up (after cussing that you didn't add any labels on the silkscreen, and you have a few bad footprints), test em, add a few bodge wires if needed and then go on to make rev 0.2 if you really need to or want. Even if you make a few mistakes you will get far more skills, learning, fun, understanding and satisfaction than worrying about how many angels can dance on the head of a pin.
Gaze not into the abyss, lest you become recognized as an abyss domain expert, and they expect you keep gazing into the damn thing.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf