The third week of secret knowledge we decided to move in the microcontroller-hat direction. This means that we needed an easy to learn platform like an arduino, but we also needed a cheap to buy platform like a raw AVR chip. Kevin came up with a solution: a “five dollar” arduino (git here). The five dollar arduino is a bootloaded AtMega328P. This means that it is first programmed with the bootloader by a normal programmer (a AVR dragon, STK500, or usbtiny). Then, it is put into the circuit below, and connected to a computer. When the button is pressed it runs the bootloader code for 28 seconds, which allows the user enough time to press the upload button on the arduino IDE to upload code to the device. After 28 seconds, the chip boots into the user code.
We expected a lot more to get done at this secret knowledge time. We even wrote up some arduino tutorials to go with the hardware. Unfortunately, we hit a few snags in actually getting all the devices built and programmable. This may be due to our (lack) of structure; we mostly just give out a handout and parts and expect people to do things on their own while we stand by to help. Unfortunately, there was a lot of confusion about what that was exactly. We wanted to avoid sitting them all down and showing them how to do it piece by piece, because that tends to bore and frustrate people. A good middle ground might be a video tutorial, but that takes a lot of effort to create.
The amount that people got done this session was varied. There was one group who got most of, but not all of their arduinos working by the end of the session. There was another group that successfully made and tested several cool tri-color LED display programs based on novel analog input devices, like potentiometers or CdS cells.
Without a doubt, this session was a huge success. 30 (+/-2) students showed up, and as many Arduinos as we could give out were given out and built. Hopefully over the next few weeks we can develop some sort of path to teach people how to and when to use a microcontroller.