Hello, I’m Dan, I spent a weekend at the ‘original’ Chip Hack and have now had two weeks of work experience to convert it into a teen friendly format.
Before coming to Embecosm I had an interest in computers but no real prior experience, beyond playing around on the Internet all day.
The Original Chip Hack
The ChipHack event that was held in Cambridge highlighted just how little I knew, but also inspired me to design a course for teens like myself. One to not just to learn basic computing, but how to run a Linux kernel on an FPGA board!
FPGAs
Field Programmable Gate Arrays allow you to turn code into hardware and you can create almost anything with them, from blinking an LED, to running a full computer. But more importantly I see them as a huge stepping stone that can show you not only how hardware works, but also teach you about software; you can learn what binary is, how to create memory in hardware and how a state machine works. You can also learn Verilog, which being similar to C, allows you to then more easily then learn software development. So, although FPGAs are usually first covered as a module in a university course, they can also be taught in a way which introduces someone to computing.
The Challenge
My challenge was to convert this complex course into something a teen could read and replicate with his/her own DE0 Nano FPGA development board.
I started by going through the pre-existing course. From my experience of this I knew that you needed a lot of setup to get the tools working, and once you got the tools working it also took a long time writing code to get going.
So instead I started my course with a simple bit of code, which straight away after installing Quartus you would be able to use to get an LED to light up on the board. This not only provides relief after spending up to hours installing the tools software, but it also teaches you the very basics of how to use outputs on the DE0 Nano.
I used the Chiphack wiki and went along changing and explaining different projects. The aim was to give teens sufficiently diverse experience to be able to then be able to make their own FPGA projects and explore other areas of electronics.
I have created a new Application Note which details several projects, shows how to get them running, covers some core computer theory and finally gets a complete OpenRISC system running on the FPGA — including a Linux distribution! Unfortunately, I was unable to find any games to play on it, so this is more a bragging right than anything else.
Conclusion
I believe that FPGAs could and should become a first step in teaching teens and younger children how computers work, and in showing them how they can make their own projects with electronics. This allows the theory, physical hardware and programming perspectives to be taught from all from different levels and difficulties.
Developing this course and application note has shown me that basic computer science is actually relatively easy and not something mystical that has to be learnt at a university. Too often it is this latter view which is portrayed by the lack of computer science in secondary schools. I wish that schools would instead teach at least the basics of programming, to a level similar as shown in the application note. It is easy to get started you can do it cheaply, with low cost boards like the DE0 Nano.
To sum up, I found the work both intense and rewarding. It has definitely confirmed that I still wish to explore electronics and computer science as a career, and has persuaded me to do more of my own projects at home.