ATtiny85 workshop in Gothenburg
28 April 2015
Last Friday, I organized a workshop on the ATtiny85 microcontroller. It was a great experience and I believe everyone had a lot of fun and learned a few things.
The workshop was conducted as an event of the Embedded @ Gothenburg Meetup, where I am an organizer and was kindly hosted by Semcon. Unfortunately, due to lack of space, we had to limit the attendants number to 15 and almost everyone who registered, showed up.
Attendance of the workshop did not require previous experience on embedded systems or electronics, however some basic programming knowledge was necessary. Moreover, the participants were advised to bring their own laptops. Everyone who was there, received an ATtiny85 as a gift and a lucky one also got an ATtiny85 programming shield, for the Arduino Uno.
The workshop began with a brief introduction to embedded systems and Arduino just to make sure everyone was acquainted with the subject. Next, the participants were divided in 6 teams. Each team had a breadboard, an ATtiny85 and some components (sensors & LEDs, resistors etc) at their disposal. Additionally, they were given access to a local wireless network and a fileserver web page, hosted on my laptop.
First, we verified everyone had the Arduino IDE working (the installation files were available in the local server) and could upload sketches. The vast majority did not have a problem with that, except of two individuals. The ATtiny85’s were programmed using an open hardware programming shield, for Arduino Uno, that can be found here.
Initially, they were tasked to complete 4 simple examples, the schematics of which were presented to them. After completing assembling each circuit, I was first intending to write the necessary code on the spot while explaining it. However most people preferred just downloading the relevant examples which were already on the fileserver and trying them out right away. This saved some time and allowed them to experiment more. So, in the end I was just going through the example code I had already written and considering the relatively high programming skills of the participants, this worked well.
The demonstrated examples were:
- Blinking a LED
- Dimming a LED
- Turn on/off a LED using interrupts and a switch
- Dimming a LED using an ultra sonic sensor
These examples took around 1.5 hours to be completed. They could have been done faster, but I wanted to make sure every team manages to implement them and that everyone understands the code. Persons with no prior contact with embedded systems, did not seem to struggle understanding concepts such as the interrupt. Teams with more experience, liked to experiment and improve the given code, which was sometimes intentionally buggy (i.e. no debounce at the example involving a switch), while waiting for the rest to finish. Generally, I can say that the interest was maintained throughout this phase.
Next, their attained knowledge, along with their creativity and innovation were challenged, in a mini hackathon! Each team, had to come up with an idea, pitch it, prototype it and finally present their creation. I consider this part as particularly valuable to the participants, since they got the chance to try and make a complete product essentially from scratch. They had in their disposal, a plethora of sensors and components. From these additional gizmos, which were uncharted territory to the majority, most, preferred to experiment with Bluetooth modules and buzzers. It is amazing what was accomplished in approximately 40 minutes. You should check out their creations, in the end of the presentation that can be found below.
To conclude, this was the first workshop I organize that involved so many persons from different backgrounds and I believe it went really well. What could be improved for next time, is to have Internet access available for the participants, however that is not always possible since it heavily depends on the facilities. Furthermore, I received a suggestion to include examples with more sensors in the future, such as a proper introduction to Bluetooth. Unfortunately, demonstrating the use of such sensors would take much longer time, specifically because they might not work out of the box in the various laptops and operating systems. Of course, this could be possible, if the “mini hackathon” would be skipped, however in order to take such decision I will have to get more feedback on the matter.
Many thanks to Jiaxin Li for helping out and Chuan Jin for reserving the facilities for the workshop.
Finally, here are the slides that were presented in the workshop. Do not forget to check out what the participants created in the end!