Dec 17

Building a Sunrise Alarm Clock, 1

Sunrise Alarm Clock: 1

Have you ever woken up at 5:30 am to the most annoying sound on the planet? Yes, the sound that strikes fear in the most peaceful sleeper. The alarm clock sound. That dream crushing sound that jerks you back into reality. If only there was a smoother transition, one where I didn't wake up feeling angry that I was from my dreamscape so ungraciously taken. Enter the sunrise alarm clock.

Bill of Materials:

1. Arduino compatible (bare bones support for Atmega328p)

2. 12V 5A power supply (adafruit part number 352)

3. RGB LED strip (60 LED, adafruit 346)

4. TIP120 x3 (adafruit 976)

5. DS1307 Real Time Clock breakout board (adafruit 264)

Yes, I got a way beefier power supply than I needed. I could power a laptop off that thing. But then again, if I ever want more LED's, a motor, or a solenoid (hey, maybe I want my alarm clock to shoot socks at me in the morning out of my sock cannon? That'll wake me up.).

So, what is all this stuff and what does it do? Together, they make a sunrise alarm clock.

Adafruit has a lovely tutorial on hooking up the RGB LED strip here.

Adafruit has a wonderful tutorial on using the DS1307 real time clock here.

I'm using three PWM pins, 9, 10 and 11. 9 is connected to the green part of the RGB LED, 10 is red, and 11 is blue (see schematic). A diagram of what pins are what for the Atmega chip is shown on the arduino website: Atmega328 pin mapping.

If you follow the above Adafruit links, you will find everything you'd want to know on the parts. Now I need to wire it, code it, and test it.

Jun 01

Electronics Out There

And we're back. This is a post of things for me to look at/emulate in the coming years as I go forth in the DIY community. is a website for kids to "make themselves into makers." It's a site where kids can earn patches for completing projects to learn skills and share their projects with other kids. I think it's a great way to teach kids things they'd never learn about another way and to give kids a sense that they can learn new things and forge their own path. They have a great video about the website called Fearless Kids.

Two Bit Circus is a steam punk circus designed to teach kids about STEAM (science, technology, engineering, arts and math). They are almost done with their kickstarter campaign. Hooray STEAM education! They also reach out to underprivileged students, which I think is awesome.

Peter Diamandis wrote an article about cutting costs when he made his company DIY drones. He talks about how he got people to help him build drones who he never could have paid because they wanted to solve those problems. I can try to replicate that by solving a problem that I want solved and will make efforts to solve even if nothing comes out of it.

There is an article in Open Electronics about documenting your work. The main point is that by documenting what you make, you can share it with people and potentially get in contact with people who build it too or want to work with you on the project. Networking to build a team and get more done than an individual can help create great projects.

There is an article in the EE Times about a $69 arduino board to plug people into the cloud. Nice.

MIT news posted about Ladyada, and it said some inspiring things about how she started doing what she loved and made a business out of it. If she can do it, then why not other people as well? Adafruit is a great company and a leader in the Maker movement.

Lifehacker had an article about getting started with DIY electronics. It goes over some of the basics, but it mostly made me realize how there isn't a structured path to learning this. Even a guide that is supposed to provide a path leads people to the internet, where hackers have been roaming towards whatever ignites their passion. I hopefully can help add yet another path to the tangle.

Apr 23

A little Rant

I came across an article about an arduino class taught by a 14 year old in Sydney, Australia. I am pleased to see young people teaching others about technology. I mean, I'm pleased whenever anyone promotes science and technology irregardless of age. Although, I am still not satisfied with how things currently work.

For example, this 14-year-old boy was able to learn how to build robots using an arduino, build a web-server, create systems using raspberry pi. He learned for free through the internet. And that's great. I would have loved to have had something like that. But being able to learn a hodgepodge of technical knowledge on the internet doesn't make me happy. Having a multitude of arduino tutorials available to me does not give me a path to learn why an arduino works. I can learn how to build a robot. Someone has already written code to communicate with a radio transceiver and I can blindly put his or her library into my code and use it, but no one is there to tell me how it all works. Why it works. How electrons magically make a servo turn and stop at five degrees. Why it does that. What the control signals are that make that happen. How it uses interrupts to send the signal every 20ms, and what an interrupt is. Where is that tutorial?

Because I couldn't find it. When I was starting off learning about the arduino, there wasn't a path for me to take that could have shown me what I could do with electronics. Sure, there are plenty of websites that have lessons on electronics, arduino, etc. There's a series of books that teach electricity and circuits. There are the tutorials  on the adafruit learning center, a series of about 50 tutorials about lots of stuff you can do with arduino, lots of random tutorials on the arduino website, lists of tutorials on instructables, the list goes on. Google arduino tutorial and there will be lots of hits. They all have instructions to teach you how to use the arduino to solve a particular problem. You want to spin a motor? No problem. There's a tutorial that will tell you how to do it.

Great, right? There's a bunch of information out there about learning the basics of electronics. We're good. Wrong. There are a lot of wonderful tutorials to teach people specific things, but there isn't a formal path to take someone from beginner to someone who understands how an arduino works. There is no one to teach people what is under the hood of an arduino, to spark their interest in the world inside the ATMega328p, no mention of how a microprocessor, compiler or register works. We are still failing to teach the more important answer to the quest to knowledge. Why?

I don't want to just teach people how to blink an LED. I don't want to just teach people how to build a robot or laser tag or a mailbox that tweets when the mail comes in. If that's all you want to know, you can search online, find someone who's already done it and copy what they've done without learning why it works. Which is a great starting point, but that is not where the journey should end. There is so much more. So much left undiscovered by building something just to make it work.

I've never been satisfied with a black box, not knowing why I put one thing into it and it spits out another. I want to look inside the black box of technology, unpack its innards and understand what is really going on. And now that I've been lucky enough to study under professors who taught me, I know what I've been yearning to know since I was in high school. And it makes me angry that there still isn't a resource that I could've used to start me down this path earlier. To formalize my internet education from a random walk through youtube videos into a structured series of lessons that teach why an arduino works. That reveal what is going on in that little black chip.

Teaching someone how to do something is fine. But teaching them why is the key to understanding. There's nothing teaching people why an arduino works that is freely available and in a place where people who are looking for it can find it. There is no place to learn why an arduino works here on the internet that people can start at and learn from. So I'm going to try to change that. Even if I fall flat on my face, I will still be making forward progress. I hope to positively change a single life. If I can do that, then I will have succeeded.