Computer Programming the Scary Way

Welcome to the ArdEx website.

ArdEx stands for Arduino Explorer, and this website takes a hands-on approach with ArdEx to illustrate how software, no matter how powerful or complicated, is built up from very simple operations.

We'll start with links to the videos and associated resources. After that comes more general information about ArdEx, why I'm doing this and anything else I want to waffle on about.

The Videos

Videos on the left, associated notes on the right. Each video builds on the ones before it, so it's probably best to work your way through them in order. Each is about ten minutes long.

While it's much better to try the examples in each video on your own Arduino, the early ones can be viewed on their own. With luck they'll convince you that it's worth plugging in an Arduino for the others.

Getting Started

You'll need a computer and an Arduino UNO. There are two pieces of software you might need to install on your computer:

  1. avrdude
    used once to install ArdEx on the Arduino. In a classroom environment you can easily install ArdEx on each of the Arduinos from one computer. If you have installed the Arduino development environment on your computer, avrdude is already in there somewhere.
  2. a terminal emulator
    used to communicate with ArdEx through the USB cable. This is needed on each computer that will be connecting with ArdEx.
Follow the link to installation instructions for your operating system: Windows, Mac or Linux.

Assuming that went well and you now have ArdEx installed on your Arduino, and it can talk to a terminal emulator on your computer, you should be able to follow along with the first video (Note: for blinky to flash the built-in LED on a bare-bones Arduino, you need to have entered MOV #0x20,DDRB at the ArdEx prompt).

To get much out of the other videos you're going to need the ThinkerShield, or to simulate the ThinkerShield with a breadboard.

Suggested Viewing Discipline

I'm packing a fair amount of information into these videos, but doubt you'll get much out of them by just watching and listening. It's important that you enter and run the code for yourself. You might like to start with a complete run through, then watch again and pause at suitable moments to enter the code and experiment with it so you really understand it.

In case you're not a great typist, I am including all the longer code snippets with the video's resources. You can come to the website and grab the code to upload to your Arduino.

Even good typists should come to the website after watching the video, as there will be additional material posted to the Resources section for each video. Errata too — though I hope that won't be a common occurrence.

The Resources section will usually go into more depth than the video, and it may get into technicalities or trivialities. I have marked those parts, as I have this paragraph, with a red border and pink background. You're welcome to read those sections, but it's not vital — certainly not for the first time through.

Full List of Hardware, Software and Documentation

Each video's Resources link includes a list of required hardware, software and recommended documentation. The following is a combined list of that information. The Resources links include further information per video: errata, addenda, suggested exercises, etc. That information is not linked here.


Software and Documentation Downloads


There are two things to explain:

  1. why this is a good way to learn about programming
  2. why I'm doing this

    When I was ten, I was given the book Mathematician's Delight by W.W.Sawyer. It had a few philosophical chapters on why people feared mathematics and such like; the rest explored various topics in mathematics, showing how they applied in the real world and could be understood in real world terms. It opened my eyes to the possibilities of what had, at school, just been a dull slog. Suddenly I wanted to understand mathematics, because I was living in a society that depended, everywhere, on its applications.

    I hope that these videos might do something similar for a few people: to convince them that computers can make sense, and even be fun to program.

    Besides that high ambition, it looked like it might be an interesting challenge putting together animations for YouTube. It is, though I'm less comfortable hearing the sound of my own voice. Be grateful I'm not putting my face in front of the camera. It's a wonder my friends put up with me.


They say you learn by your mistakes. That means I've learnt quite a lot over the years and I'm still learning. If you spot any mistakes in the videos or web pages, or if you just want to get in touch, I'll read e-mails at Will reply too, assuming they don't get out of hand.

YouTube comments may work too. From what I've seen on other channels, they can be great.


You are free to make use of any of the work published here with the proviso that you acknowlege that I, Rob Swan, was the originator of that work.

Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

This includes all material here — the ArdEx image, the videos, and the web content.

Final Words

Have fun.