NerdKits - electronics education for a digital generation

You are not logged in. [log in]

NEW: Learning electronics? Ask your questions on the new Electronics Questions & Answers site hosted by CircuitLab.

NerdKits Newsletter Archives » NerdKits Newsletter #13 - Autonomous Parking Robots and YouTube Views Milestone

June 08, 2010
by mrobbins
(NerdKits Staff)

mrobbins's Avatar

This newsletter was released on June 8th, 2010.

Hi! This is the thirteenth edition of the NerdKits Newsletter which we publish ~monthly to keep you and the world up to date with everything going on at NerdKits.

In this issue:

  1. Nandan's Perpendicular Parking Autonomous Robot
  2. NerdKits video tutorials viewed 500,000+ times!
  3. Useful Tip of the Month: Microcontroller Power-Saving Modes


NerdKits customer Nandan recently sent us a video of an awesome autonomous parking robot he built. Nandan is a 3rd year college student from Calcutta India who got his first introduction to microcontrollers with NerdKits just a few months ago.

At the heart of the robot is an Atmel microcontroller and a few distance sensors so the car can tell how far away it is from the walls. The car is able to drive up next to its parking spot and back into it like a pro! "It is not very perfect, but yes it does somehow manage to park all by itself. :)" writes Nandan.

Here is a link to a video of the robot in action:

This is another great example of the awesome things that are possible with microcontrollers and a little bit of engineering.

Keep up the great work Nandan!

If you have a project like Nandan's (it doesn't have to be quite as complicated!) that you would like to show off, don't hesitate to post it on the forums and/or send us an email. We always like to see what our customers are doing, and so does the NerdKits community.


We recently took a look at our YouTube channel and noticed that across all of our 20+ educational electronics and programming video tutorials, our videos have been viewed more than half a million times! The current count is available here:

under "Total Upload Views" -- about 529,000 at the time of writing. That's a lot of learning and empowerment through knowledge! (Of course, one "viral video" with a cat can achieve that many views in just days...)

We currently have 21 video tutorials you can watch here:

Take a look -- get inspired for your next project, learn how to approach some new concepts, and share with your friends!


If you are working on a battery-powered project, you probably want to do as much as possible to reduce how much power your circuit consumes. This will let the same battery last longer.

For digital circuits, there are a few major categories of ways to reduce power consumption:

1) Lower clock speed.

The microcontroller's power consumption goes up linearly with clock speed. By lowering the speed, you can lower power consumption.

However, this has a serious drawback: if you have a certain amount of processing work that needs to get done, then you'll just be doing that work more slowly -- using half the power, but working for twice as long! That's why clock speed reduction is usually not an effective way of conserving battery power after some of these other techniques are considered.

2) Lower operating voltage.

The microcontroller, like any FET-based logic, will consume less current at lower operating voltages. That's because each digital MOSFET gate is a tiny capacitor that has to be charged and discharged as the circuit operates. At lower voltages, there's less energy needed to charge those capacitors.

There are three major drawbacks here:

First, interfacing with other components can get tricky. For example, the LCD expects 5V logic levels, so reducing the microcontroller's operating voltage can lead to extra complexity.

Second, the microcontroller will stop working reliably (or entirely) below a certain voltage. This depends on the operating speed in MHz. Additionally, when we ship chips from NerdKits, the microcontroller comes set-up with a "brown out detector" configured to automatically shut the chip down below a certain operating voltage. This is a standard thing to include in a microcontroller circuit because it's generally better to turn off rather than to operate unreliably and possibly cause damage to the microcontroller and attached components!

Third, a good deal of the benefit here is lost when using something like a 7805 linear voltage regulator. The real win can come from using a switching voltage regulator, which can much more efficiently step from the battery voltage to the operating voltage. Unfortunately, this is much more complicated and also much more "noisy" for nearby analog circuits, but is worth investigating if battery life is of the utmost importance to your project.

3) Use fewer cycles to do your work.

If you can get your work done faster, you can burn fewer cycles doing it. That's because the microcontroller has to use much more energy to do "real work" (like math, or reading inputs and outputs) than to do nothing. Especially because as we're about to discuss, we can put the microcontroller to sleep when it isn't busy.

4) Shut down parts of the chip when they are not needed.

If you can optimize your project and code so that you only need to do a certain amount of work each second, then you'll have time when you're just waiting -- perhaps waiting for a new ADC sample, or waiting for an external interrupt from a pushbutton.

The microcontrollers we include with the USB NerdKit have a few different ways of doing this. First, you can turn off entire pieces of the chip if you aren't using them in your project. In the ATmega168 datasheet, look for the "Power Reduction Register" (PRR).

Second, you can make use of "sleep modes", which put the CPU to sleep, with only limited levels of functionality remaining active. In the ATmega168 datasheet, these are described in chapter 9, and Table 9-1 on page 40 summarizes these different modes.

The biggest factor to think about is what event you want to use to cause your chip to wake up again from sleep! This can be an external voltage change, a timer interrupt, a new finished ADC sample, or others. However, these different events will require that different parts of the chip remain active, which limits which sleep modes you might make use of.

If you're interested in using sleep modes to reduce power consumption and increase battery life of your projects, we highly recommend you start with these discussions from the NerdKits forums:

Got a tip to share with your fellow NerdKits members? Let us know and you may see it featured in an upcoming newsletter!


Thank you for taking the time to read this, and for being such great customers. Make sure you tell your friends and neighbors about NerdKits so we can keep the world's DIY spirit alive!

Best wishes,

Humberto & Mike
NerdKits, L.L.C.

Subscribe on YouTube:
Follow us on Twitter:
Be our Fan on Facebook:

Post a Reply

Sorry, this thread is closed. No further replies are permitted.

Did you know that a thermometer can be made "faster" by using a bit of math? Learn more...