Maker Project


Workshop Outline

  1. Building a one-computer circuit that flashes code on an LED
  2. Adding a second computer that plays sound instead
  3. Adding a third computer that will adjust speed, tempo or both
  4. Adding a fourth computer that will display parameters on TV

Supplies

You will need to bring: a SolderlessBreadboard (like RadioShack 276-175), a battery holder (like RadioShack 270-398), two AA or two AAA batteries as appropriate, #22 hook-up wire preferably red, black, and white, and wire-strippers.

    

We provide a kit of additional parts: four preprogrammed computer chips, an LED, a 100k ohm variable resistor, a 1k ohm and a 470 ohm resistor. The computers are numbered 1 through 4 in the order we will use them.

  

Building a one-computer circuit that flashes code on an LED

Each time we add a computer we show the AsciiArt pin diagram which shows the various names and functions each pin takes. Many are standarized. A few, pb0, pb1 & pb2, are specific to the program the computer runs.

  ;             ATtiny45
  ;              --v--
  ;    rst pb5 -|     |- vcc
  ;     pi pb3 -|     |- pb2 sck
  ;     po pb4 -|     |- pb1 miso          LED
  ;        gnd -|     |- pb0 mosi keyout ---|<--- vcc
  ;              -----  
  ;              8Mhz

Bring power and ground to the breadboard
  • From Battery Holder
  • Step 1 Attach power (red wire) to row X at the top
  • Step 2 Attach ground (black wire) to Y at the bottom
    

Add the first computer which has been preprogrammed with the MorseCompanion software. We are ready to start wiring the computer using color coded jumper wires. See MakingJumperWires. These are the conventions we use:
  • Power is red
  • Ground is black
  • Signal is white

Step 4 Use a black wire to route the ground pin (gnd) of the computer to the ground bus (labeled y)

    

Step 5 Use a red wire to route the VCC pin of the computer to the VCC bus (labeled X)

Step 6 Use a white wire to pull the reset pin up to VCC. (Some designs use 10k resistors which allow the computers to be reprogrammed in place.) See SolderlessBreadboard to understand how the breadboard completes the circuit.

    

Step 7 Plug the LED from "key out" on the computer to VCC
  • The long LED leg goes to VCC
  • The computer turns the LED on by pulling the short leg down to ground. If the LED won't light if inserted backwards, but nothing will be harmed either.

    

Step 8 Turn the circuit off by plugging the red VCC wire into an unused breadboard slot

  

Step 9 Load the battery pack

Step 10 Turn the circuit on by plugging the red VCC wire back into the VCC bus (yay ... blinky lights)

Now play with the speed of the code

  • pi listens to the bynase protocol bus to determine how fast to generate the code
  • Step 11 try connecting pi to ground using a white "signal" wire
  • Step 12 try connecting pi to vcc
  • What speed would you get if you hooked pi up to keyout?

Adding a second computer that plays sound instead

  ;             ATtiny45
  ;              --v--
  ;    rst pb5 -|     |- vcc
  ;     pi pb3 -|     |- pb2 sck keyin
  ;     po pb4 -|     |- pb1 miso tone1
  ;        gnd -|     |- pb0 mosi tone0
  ;              -----        
  ;		 8Mhz

Add the side tone generating computer, preprogrammed with VariablePitchBeeper.
  • Step 13 Insert the computer labeled #2
  • Step 14 Plug the gnd pin into the ground bus
  • Step 15 Plug the vcc pin into the VCC bus
  • Step 16 Pull reset (rst) high by plugging it to the VCC bus

  

Step 17 Now connect keyout from the morse computer (#1) to keyin on the side tone computer (#2)

Step 18 Now connect a speaker to tone0 and tone1. It doesn't matter which lead you plug into which. See CellPhoneSpeaker for tips on scavenging speakers from old cell phones.

  

The pi pin on the morse computer (#1) controls the tempo, the pi pin on side tone computer (#2) controls pitch.
  • Step 19 Try hooking these to vcc or ground and notice the range of values.
  • Step 20 Try feeding the morse keyout signal into one or the other or both of the pi inputs. See if it makes you laugh.

    

Adding a third computer that will adjust speed, tempo or both

  ;             ATtiny45
  ;              --v--                     100k
  ;    rst pb5 -|     |- vcc ------------\/\/\/\/---+
  ;     pi pb3 -|     |- pb2 sck adc1 ------^       |
  ;     po pb4 -|     |- pb1 miso pwr --------------+
  ;        gnd -|     |- pb0 mosi scope
  ;              -----        
  ;		 8Mhz

Add the the third computer which has been preprogrammed with AnalogKnobConverter.
  • Step 21 Insert the computer labeled #3
  • Step 22 Plug the gnd pin into the ground bus
  • Step 23 Plug the vcc pin into the VCC bus
  • Step 24 Pull reset (rst) high by plugging it to the VCC bus

  • Step 25 Plug the potentiometer into vcc, adc1, and pwr

    

Step 26 Try using the po from the knob to control the morse tempo or pitch or both.

Adding a fourth computer that will display parameters on TV

  ;             ATtiny12
  ;              --v--
  ;    rst pb5 -|     |- vcc
  ;     pi pb3 -|     |- pb2 sck
  ;        pb4 -|     |- pb1 miso vh --470--+-- 75 ohm video
  ;        gnd -|     |- pb0 mosi vl --1k---+
  ;              -----        
  ;		 1.2Mhz

Add the fourth computer which is preprogrammed with ValueFilterMeter.
  • Step 27 Insert the computer labeled #4
  • Step 28 Plug the gnd pin into the ground bus
  • Step 29 Plug the vcc pin into the VCC bus
  • Step 30 Pull reset (rst) high by plugging it to the VCC bus

The video output needs to be connected between the 470 and 1k resistors.
  • Step 31 Plug the 470 ohm resistor (yellow violet brown) into vh and the unused breadboard slot
  • Step 32 Plug the 1k ohm resistor (brown black red) into vl and the unused breadboard slot

    

Video out is now the summation as created in the unused breadboard slot
  • Step 33 Connect the video out to the video in of a television (yellow RCA connector). Look for black gradicule on a gray background.
  • Step 34 Connect pi to po of the knob computer (#3). Look for white bars that vary with the knob.

    

This last part will help you debug any circut. Each bar shows the value on pi with progressively more filtering.

Onward

The source code for these parts and many more like them has been released as free software. Download source and read about other projects at the Cybords site:

Consider trying your hand at programming new functions in parts of your own designs. Most programs are simple loops that do only one thing well.

The signaling protocol these computers use has many interesting characteristics (See BynaseProtocol). If you have an oscilloscope, try pulling the signal toward a middle value with a voltage divider so that you can see hi, lo and high-z states. Trigger your scope with the sync signal on the knob computer's (#3) pb0.

Kudos

We thank BrandonSanders who graciously paused at every step of this project and took notes while I fiddled with the camera. That's Brandon smiling when he saw the board start to work.

Thanks also to PatCunningham who will be assisting at the MakerFaire workshop.

Copyright (c) 2006, Ward Cunningham. Released under CreativeCommons attribution, share-alike license.

 

Last edited May 27, 2006
Return to WelcomeVisitors