user18905: I've prototyped a little light/sunrise alarm clock w/ an Arduino Uno and a breadboard. How do I go about figuring out what components I'd need to reduce this down in to a more semi-permanent prototype?
Obviously I don't need everything the Uno has to offer and I'd like to slim this down into a custom box I build.
But what sort of microcontroller(s) would I need to size this down? How else can I simplify it?
To be clear, I'm not trying to turn this in to any sort of finished/super-polished product. Just wanting to get out of the breadboard and in to some soldering of something a bit more set in stone.



user8033: I did an awful try at making a nice breadboard for it.
BUT.
I think you're better off using some perfboard, small solderable wires and an Arduino Nano.

This because the Arduino Nano has an FTDI chip, crystal and power regulator and is barely bigger than an 328 DIP package.
You could easily mount the pieces of perfboard inside/on your enclosure.
Aim to add the snooze button on top with the settings buttons on the sides.
The buzzer could be in the back or other side. The display (if any) should be in the front. Your "Neopixels" are no different than WS2812B "led's".

user19504: Several steps are required:

Define what you want to achieve in a clear and explicit manner, eg start documenting your project by writing down your decisions and design goals, for example on a project wiki somewhere. This could be the time where you explore the internet to gather several inspirational sources & modules you want to reuse.
Check that your schematic is correct, eg that first prototype works reliably. Obviously, going from prototype to a "more permanent prototype" should include checking everything works as expected (getting validation from here would be an option).
Prepare a hardware design, eg routing on your prefered CAD software. Many options exist: Fritzing, Eagle, Kicad, ... You may need help/tutorials to do this properly
Manufacture the pcb, or get your board manufactured. Several options are available (see below)
Assemble & test; depending on results, go back to step 1, 2, 3 ;)

To check that your schematic is correct, well, you can post it somewhere. As a starter: your initial post has some errors.

resistors required for LED
red (+) seems to be on GND, not +5v (!!)
using a pulldown for the button where an internal pullup is sufficient is a waste of ressource

Answer above has errors, too (as stated). So make sure your schematic & prototype work before trying to get it more permanent.
To manufacture the PCB, several options:

Veroboard & through hole components. Not small, but cheap, easy & reliable.
DIY: toner transfer method (numerous examples & howto online) :
requires a bit more time/skills, but if you plan to do several
boards/experiments, can be worth it. Can be rather cheap. Cannot
yield high precision pcb.
Note: other DIY PCB manufacturing techniques exist.
boardhouse contract manufacturing: yields perfect results (if your
design files are OK...), can't be quick & cheap (but can be either,
relatively)


user6740: At a bare minimum, you need a power supply, and an AtMega or AtTiny chip.
The AtMega and AtTiny's have an internal clock, 1mhz. It's not terribly accurate for timekeeping purposes (1% error, I think, as opposed to 20ppm = 0.02% for the external clock), but I see you have an RTC, so a 1% drift is probably fine (I can't see your code, so I don't know if the internal time is used for anything). Remember that you will need to adjust your code for the different clock rate, anything that uses anything time-related will run at 1/16th speed (delay, serial comms, etc). You will need to set the fuses to use the internal clock.
If your power source isn't 5v, then you need a transformer.
What type of AtTiny or AtMega you use depends on your code, and how many pins you use. I see 5 pins, they are all used as digital I think? You might get away with one of the 14-pin AtTinys. I suspect your code is probably pretty small. You can probably get away with nearly any AtTiny. To select an AtTiny, go to http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx
Nick Gammon (who will probably be providing his own answer as I type) has an excellent site on how to put the parts together, at http://www.gammon.com.au/breadboard
This site mentions programming the bootloader. On a low-memory chip, you do not need a bootloader, you can upload your program using SPI (same way as you upload the bootloader in Nick's example). Alternatively, you can use a programmer like the USBASP, which makes the whole process a lot easier. When you build your final board, I strongly suggest putting a 6-pin ICSP header (same as the 2x3 pins on the end of your Arduino board) on, to make reprogramming easier. You plug the USBASP into the 6-pin header, and click File->Upload using programmer.
ADDITIONAL:
If you want your project "really nice", you can design and etch your own PCB. If "good enough is good enough" (which for me it always is), I suggest you use stripboard (also known by it's brandname, veroboard).
In either case, spend some time thinking about your exact layout. Use a computer layout tool, and spend some time working out the best layout. I generally spend at least 5 times as much time on the layout, as I do on building the board - if a project is twice as big, I will spend twice as much time soldering, but at least 4 times as long laying it out.

18905: <p>I've prototyped a little light/sunrise alarm clock w/ an Arduino Uno and a breadboard. How do I go about figuring out what components I'd need to reduce this down in to a more semi-permanent prototype?</p>

<p>Obviously I don't need everything the Uno has to offer and I'd like to slim this down into a custom box I build.</p>

<p>But what sort of microcontroller(s) would I need to size this down? How else can I simplify it?</p>

<p>To be clear, I'm not trying to turn this in to any sort of finished/super-polished product. Just wanting to get out of the breadboard and in to some soldering of something a bit more set in stone.</p>

<p><a href="https://i.stack.imgur.com/AUmuv.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/AUmuv.jpg" alt="enter image description here"></a></p>

<p><a href="https://i.stack.imgur.com/EuMmv.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/EuMmv.png" alt="enter image description here"></a></p>
 8033: <p>I did an awful try at making a nice breadboard for it.</p>

<p>BUT.</p>

<p>I think you're better off using some perfboard, small solderable wires and an Arduino Nano.</p>

<p><a href="https://i.stack.imgur.com/w6noM.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/w6noM.png" alt="enter image description here"></a></p>

<p>This because the Arduino Nano has an FTDI chip, crystal and power regulator and is barely bigger than an 328 DIP package.</p>

<p>You could easily mount the pieces of perfboard inside/on your enclosure.</p>

<p>Aim to add the snooze button on top with the settings buttons on the sides.
The buzzer could be in the back or other side. The display (if any) should be in the front. Your "Neopixels" are no different than WS2812B "led's".</p>
 19504: <p>Several steps are required:</p>

<ol>
<li><p><strong>Define what you want</strong> to achieve in a clear and explicit manner, eg start documenting your project by writing down your decisions and design goals, for example on a project wiki somewhere. This could be the time where you explore the internet to gather several inspirational sources &amp; modules you want to reuse.</p></li>
<li><p><strong>Check that your schematic is correct</strong>, eg that first prototype works reliably. Obviously, going from prototype to a "more permanent prototype" should include checking everything works as expected (getting validation from here would be an option).</p></li>
<li><p><strong>Prepare a hardware design</strong>, eg routing on your prefered CAD software. Many options exist: Fritzing, Eagle, Kicad, ... You may need help/tutorials to do this properly</p></li>
<li><p><strong>Manufacture the pcb</strong>, or get your board manufactured. Several options are available (see below)</p></li>
<li><p><strong>Assemble &amp; test</strong>; depending on results, go back to step 1, 2, 3 ;)</p></li>
</ol>

<p>To <strong>check that your schematic</strong> is correct, well, you can post it somewhere. As a starter: your initial post has some errors.</p>

<ul>
<li>resistors required for LED</li>
<li>red (+) seems to be on GND, not +5v (!!)</li>
<li>using a pulldown for the button where an internal pullup is sufficient is a waste of ressource</li>
</ul>

<p>Answer above has errors, too (as stated). So make sure your schematic &amp; prototype work before trying to get it more permanent.</p>

<p>To <strong>manufacture the PCB</strong>, several options:</p>

<ul>
<li>Veroboard &amp; through hole components. Not small, but cheap, easy &amp; reliable.</li>
<li>DIY: toner transfer method (numerous examples &amp; howto online) :
requires a bit more time/skills, but if you plan to do several
boards/experiments, can be worth it. Can be rather cheap. Cannot
yield high precision pcb.
Note: other DIY PCB manufacturing techniques exist.</li>
<li>boardhouse contract manufacturing: yields perfect results (if your
design files are OK...), can't be quick &amp; cheap (but can be either,
relatively)</li>
</ul>
 6740: <p>At a bare minimum, you need a power supply, and an AtMega or AtTiny chip.</p>

<p>The AtMega and AtTiny's have an internal clock, 1mhz. It's not terribly accurate for timekeeping purposes (1% error, I think, as opposed to 20ppm = 0.02% for the external clock), but I see you have an RTC, so a 1% drift is probably fine (I can't see your code, so I don't know if the internal time is used for anything). Remember that you will need to adjust your code for the different clock rate, anything that uses anything time-related will run at 1/16th speed (delay, serial comms, etc). You will need to set the fuses to use the internal clock.</p>

<p>If your power source isn't 5v, then you need a transformer.</p>

<p>What type of AtTiny or AtMega you use depends on your code, and how many pins you use. I see 5 pins, they are all used as digital I think? You might get away with one of the 14-pin AtTinys. I suspect your code is probably pretty small. You can probably get away with nearly any AtTiny. To select an AtTiny, go to <a href="http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx" rel="nofollow">http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx</a></p>

<p>Nick Gammon (who will probably be providing his own answer as I type) has an excellent site on how to put the parts together, at <a href="http://www.gammon.com.au/breadboard" rel="nofollow">http://www.gammon.com.au/breadboard</a></p>

<p>This site mentions programming the bootloader. On a low-memory chip, you do not need a bootloader, you can upload your program using SPI (same way as you upload the bootloader in Nick's example). Alternatively, you can use a programmer like the USBASP, which makes the whole process a lot easier. When you build your final board, I strongly suggest putting a 6-pin ICSP header (same as the 2x3 pins on the end of your Arduino board) on, to make reprogramming easier. You plug the USBASP into the 6-pin header, and click File->Upload using programmer.</p>

<p>ADDITIONAL:</p>

<p>If you want your project "really nice", you can design and etch your own PCB. If "good enough is good enough" (which for me it always is), I suggest you use stripboard (also known by it's brandname, veroboard).</p>

<p>In either case, spend some time thinking about your exact layout. Use a computer layout tool, and spend some time working out the best layout. I generally spend at least 5 times as much time on the layout, as I do on building the board - if a project is twice as big, I will spend twice as much time soldering, but at least 4 times as long laying it out.</p>
