Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

Demo 2.2: Before You Wire Anything

Every other demonstration here is about what a circuit means. This one is about the first twenty minutes of a laboratory session, in which a perfectly correct design sits on the bench doing nothing at all.

The reasons are almost never interesting. The chip is upside down. Two component legs are in the same five-hole row. The button has nothing holding its input anywhere when it is not pressed. The display is the wrong sort. None of these is a failure of understanding, and all of them are expensive, because a fault you cannot see is a fault you cannot reason about.

So this page is about the physical layer: which holes are already joined to which, which way round the package goes, and the handful of assembly mistakes that account for most of the lost time.

A breadboard is a grid of holes with metal clips underneath joining some of them together. Which ones, exactly:

  • Above and below the central channel, each column of five holes is one connection. Two legs in the same five are joined whether you meant it or not.
  • The long strips down the edges are the supply rails, and each runs the whole length of the board.
  • Nothing else is joined to anything. Two holes in different columns are as unrelated as two holes in different rooms, and nothing runs along a row.

The channel is not decoration either. A dual-in-line package is three tenths of an inch across its two rows of pins, and the channel is three tenths of an inch wide. A chip that straddles it puts every pin in a column of its own, with four spare holes beside each one. A chip that does not straddle it has every pin shorted to the one opposite, including the supply pins.

The board lets you click any hole and see the whole connection light up. That is the entire lesson, and you can put a chip on it the right way and the wrong way to see the difference.

The chip draws a 74LS00, a 74LS04 or a 74LS76 with its real pinout, and lets you turn it round to see where the supply lands when you do.

LEDs, resistors and buttons introduces the three faults one at a time and says what each actually does.

A button, a gate and an LED is the first three tabs turned into a circuit that works, on the board rather than on a schematic. Choose whether the button asserts high or low, choose the pull resistor, choose which way round the LED goes, and press it.

A clock from a 555 is the oscillator the counter laboratory asks you to build in advance, with the arithmetic on the page.

Seven-segment displays is the difference between the common anode part one laboratory needs and the common cathode part the next one needs.

Before You Wire Anything: the Breadboard and the Chip

Which holes are joined to which, which way round the chip goes, and the handful of assembly mistakes that account for most of a laboratory session.

Only one thing about a breadboard is difficult, and you cannot see it.

  • Some of the holes are already joined to each other by metal clips underneath, and which ones is the entire subject.
  • Above and below the channel, each column of five holes is one connection. Push two component legs into the same five, and you have joined them whether you meant to or not.
  • The long strips down the edges are the supply rails, and each one runs the whole length of the board.
  • Nothing else is connected to anything. Two holes in different columns are as unrelated as two holes in different rooms.
  • Click any hole below and the connection it belongs to lights up. That is all there is to know, and almost every wiring fault in the laboratory comes from getting it wrong.
Show me
A chip on the board
+V+1: net rail-top-posV+2: net rail-top-posV+3: net rail-top-posV+4: net rail-top-posV+5: net rail-top-posV+6: net rail-top-posV+7: net rail-top-posV+8: net rail-top-posV+9: net rail-top-posV+10: net rail-top-posV+11: net rail-top-posV+12: net rail-top-posV+13: net rail-top-posV+14: net rail-top-posV+15: net rail-top-posV+16: net rail-top-posV+17: net rail-top-posV+18: net rail-top-posV+19: net rail-top-posV+20: net rail-top-posV+21: net rail-top-posV+22: net rail-top-posV+23: net rail-top-posV+24: net rail-top-posV+25: net rail-top-posV+26: net rail-top-posV+27: net rail-top-posV+28: net rail-top-posV+29: net rail-top-posV+30: net rail-top-posV-1: net rail-top-negV-2: net rail-top-negV-3: net rail-top-negV-4: net rail-top-negV-5: net rail-top-negV-6: net rail-top-negV-7: net rail-top-negV-8: net rail-top-negV-9: net rail-top-negV-10: net rail-top-negV-11: net rail-top-negV-12: net rail-top-negV-13: net rail-top-negV-14: net rail-top-negV-15: net rail-top-negV-16: net rail-top-negV-17: net rail-top-negV-18: net rail-top-negV-19: net rail-top-negV-20: net rail-top-negV-21: net rail-top-negV-22: net rail-top-negV-23: net rail-top-negV-24: net rail-top-negV-25: net rail-top-negV-26: net rail-top-negV-27: net rail-top-negV-28: net rail-top-negV-29: net rail-top-negV-30: net rail-top-neg+W+1: net rail-bot-posW+2: net rail-bot-posW+3: net rail-bot-posW+4: net rail-bot-posW+5: net rail-bot-posW+6: net rail-bot-posW+7: net rail-bot-posW+8: net rail-bot-posW+9: net rail-bot-posW+10: net rail-bot-posW+11: net rail-bot-posW+12: net rail-bot-posW+13: net rail-bot-posW+14: net rail-bot-posW+15: net rail-bot-posW+16: net rail-bot-posW+17: net rail-bot-posW+18: net rail-bot-posW+19: net rail-bot-posW+20: net rail-bot-posW+21: net rail-bot-posW+22: net rail-bot-posW+23: net rail-bot-posW+24: net rail-bot-posW+25: net rail-bot-posW+26: net rail-bot-posW+27: net rail-bot-posW+28: net rail-bot-posW+29: net rail-bot-posW+30: net rail-bot-posW-1: net rail-bot-negW-2: net rail-bot-negW-3: net rail-bot-negW-4: net rail-bot-negW-5: net rail-bot-negW-6: net rail-bot-negW-7: net rail-bot-negW-8: net rail-bot-negW-9: net rail-bot-negW-10: net rail-bot-negW-11: net rail-bot-negW-12: net rail-bot-negW-13: net rail-bot-negW-14: net rail-bot-negW-15: net rail-bot-negW-16: net rail-bot-negW-17: net rail-bot-negW-18: net rail-bot-negW-19: net rail-bot-negW-20: net rail-bot-negW-21: net rail-bot-negW-22: net rail-bot-negW-23: net rail-bot-negW-24: net rail-bot-negW-25: net rail-bot-negW-26: net rail-bot-negW-27: net rail-bot-negW-28: net rail-bot-negW-29: net rail-bot-negW-30: net rail-bot-negAA1: net T0A2: net T1A3: net T2A4: net T3A5: net T4A6: net T5A7: net T6A8: net T7A9: net T8A10: net T9A11: net T10A12: net T11A13: net T12A14: net T13A15: net T14A16: net T15A17: net T16A18: net T17A19: net T18A20: net T19A21: net T20A22: net T21A23: net T22A24: net T23A25: net T24A26: net T25A27: net T26A28: net T27A29: net T28A30: net T29BB1: net T0B2: net T1B3: net T2B4: net T3B5: net T4B6: net T5B7: net T6B8: net T7B9: net T8B10: net T9B11: net T10B12: net T11B13: net T12B14: net T13B15: net T14B16: net T15B17: net T16B18: net T17B19: net T18B20: net T19B21: net T20B22: net T21B23: net T22B24: net T23B25: net T24B26: net T25B27: net T26B28: net T27B29: net T28B30: net T29CC1: net T0C2: net T1C3: net T2C4: net T3C5: net T4C6: net T5C7: net T6C8: net T7C9: net T8C10: net T9C11: net T10C12: net T11C13: net T12C14: net T13C15: net T14C16: net T15C17: net T16C18: net T17C19: net T18C20: net T19C21: net T20C22: net T21C23: net T22C24: net T23C25: net T24C26: net T25C27: net T26C28: net T27C29: net T28C30: net T29DD1: net T0D2: net T1D3: net T2D4: net T3D5: net T4D6: net T5D7: net T6D8: net T7D9: net T8D10: net T9D11: net T10D12: net T11D13: net T12D14: net T13D15: net T14D16: net T15D17: net T16D18: net T17D19: net T18D20: net T19D21: net T20D22: net T21D23: net T22D24: net T23D25: net T24D26: net T25D27: net T26D28: net T27D29: net T28D30: net T29EE1: net T0E2: net T1E3: net T2E4: net T3E5: net T4E6: net T5E7: net T6E8: net T7E9: net T8E10: net T9E11: net T10E12: net T11E13: net T12E14: net T13E15: net T14E16: net T15E17: net T16E18: net T17E19: net T18E20: net T19E21: net T20E22: net T21E23: net T22E24: net T23E25: net T24E26: net T25E27: net T26E28: net T27E29: net T28E30: net T29FF1: net B0F2: net B1F3: net B2F4: net B3F5: net B4F6: net B5F7: net B6F8: net B7F9: net B8F10: net B9F11: net B10F12: net B11F13: net B12F14: net B13F15: net B14F16: net B15F17: net B16F18: net B17F19: net B18F20: net B19F21: net B20F22: net B21F23: net B22F24: net B23F25: net B24F26: net B25F27: net B26F28: net B27F29: net B28F30: net B29GG1: net B0G2: net B1G3: net B2G4: net B3G5: net B4G6: net B5G7: net B6G8: net B7G9: net B8G10: net B9G11: net B10G12: net B11G13: net B12G14: net B13G15: net B14G16: net B15G17: net B16G18: net B17G19: net B18G20: net B19G21: net B20G22: net B21G23: net B22G24: net B23G25: net B24G26: net B25G27: net B26G28: net B27G29: net B28G30: net B29HH1: net B0H2: net B1H3: net B2H4: net B3H5: net B4H6: net B5H7: net B6H8: net B7H9: net B8H10: net B9H11: net B10H12: net B11H13: net B12H14: net B13H15: net B14H16: net B15H17: net B16H18: net B17H19: net B18H20: net B19H21: net B20H22: net B21H23: net B22H24: net B23H25: net B24H26: net B25H27: net B26H28: net B27H29: net B28H30: net B29II1: net B0I2: net B1I3: net B2I4: net B3I5: net B4I6: net B5I7: net B6I8: net B7I9: net B8I10: net B9I11: net B10I12: net B11I13: net B12I14: net B13I15: net B14I16: net B15I17: net B16I18: net B17I19: net B18I20: net B19I21: net B20I22: net B21I23: net B22I24: net B23I25: net B24I26: net B25I27: net B26I28: net B27I29: net B28I30: net B29JJ1: net B0J2: net B1J3: net B2J4: net B3J5: net B4J6: net B5J7: net B6J8: net B7J9: net B8J10: net B9J11: net B10J12: net B11J13: net B12J14: net B13J15: net B14J16: net B15J17: net B16J18: net B17J19: net B18J20: net B19J21: net B20J22: net B21J23: net B22J24: net B23J25: net B24J26: net B25J27: net B26J28: net B27J29: net B28J30: net B29the channel: 0.3 inch, which is the width of a DIP package51015202530

Click any hole. Every hole joined to it lights up.

5 holes in this connection
Reading the board
  • A five-hole column above the channel and the five directly below it are two separate connections, not one.
  • That is the single most common misreading, and it is what the channel is there to make obvious.
  • The rails are usually marked with a red line and a blue line, and they carry the supply to wherever it is needed.
  • On many full-size boards each rail is broken in the middle, so a wire is needed to join the two halves. Check yours with a multimeter on continuity before assuming.
  • Nothing is joined along a row. Hole A1 and hole A2 have nothing to do with each other.
How to lay a circuit out so it can be debugged
  • Put the supply rails in first, and put them in the same way every time: positive at the top, ground at the bottom.
  • Run a wire from the rails to the chip's supply pins before wiring anything else, and check them with a meter.
  • Keep wires flat to the board and cut them to length. A nest of long loops is impossible to trace and easy to pull out.
  • Use colour deliberately: red for the supply, black for ground, and something else for signals. It costs nothing and saves the whole session.
  • Leave a clear column between separate parts of the circuit. Crowding is what causes two legs to end up in the same five holes.
What to check before applying power
  • That every chip straddles the channel and none is upside down.
  • That the supply rails are the right way round, with a meter rather than by eye.
  • That no component leg shares a five-hole column with something it should not touch.
  • That there is no wire bridging the positive rail directly to the ground rail, which is the one fault that can damage the supply.
  • Then apply power and feel the chips. Anything warm is wrong, and should be disconnected before you look for why.

Step 1: Find out what is already connected

Section titled “Step 1: Find out what is already connected”

Open The board and click a hole in the middle of the upper half.

Five holes light up: the column you clicked, and nothing else. Now click the hole immediately below it, on the other side of the channel. A different five light up. Those two groups are not connected, and misreading that is the single most common wiring fault there is.

Now click one of the rail holes along the edge. Thirty light up, the whole length of the board.

Press Hide the clips underneath and click around again. Without the shading it is much harder to predict what will light, which is exactly the situation you are in with a real board in front of you.

Step 2: See why the channel is the width it is

Section titled “Step 2: See why the channel is the width it is”

Press Across the channel and look at where the pins land: each one in a column of its own, with spare holes beside it for wires.

Now press All on one side.

Both rows of pins are now in the same five-hole columns. Pin 1 is joined to pin 14, pin 2 to pin 13, and so on all the way along. That includes the supply pins, so Vcc is connected straight to ground through the chip. It gets hot, the supply complains or the fuse goes, and nothing works.

It is a surprisingly easy mistake on a crowded board, and it is worth a glance along the row of chips before power goes on.

Open The chip.

There is a notch at one end and often a dot beside pin 1. That is the whole of the labelling, and nothing physically stops you inserting it backwards.

Pin 1 is immediately anticlockwise of the notch, so with the notch at the top it is the top left. The numbers then run down the left side and back up the right. They do not run left to right, and assuming they do is the second commonest fault after inserting the chip backwards.

Click through the pins on the 74LS00 and note that Vcc is pin 14 and GND is pin 7: the top right and the middle left. Then switch to the 74LS76, the dual JK flip-flop the counter laboratory is built on, and look again:

Vcc is pin 5 and GND is pin 12. Not the corners at all.

That is not a misprint, it is what the part actually does, and it is exactly why the rule is to read the data sheet rather than to assume. A 74LS76 wired as though it were a 74LS00 gets its supply across two signal pins.

Now press Put in backwards and read what happens to the supply.

Step 4: Introduce the three faults deliberately

Section titled “Step 4: Introduce the three faults deliberately”

Open LEDs, resistors and buttons and step through the four settings.

No resistor. Nothing limits the current except the supply and the LED’s own few ohms of bulk resistance. That is hundreds of milliamps through a part rated for twenty; it lights brilliantly once. On a logic output it can take the driving chip with it, turning a two-pence mistake into a dead 74LS part.

LED backwards. Nothing is damaged and nothing happens, which is precisely why it wastes so much time: it looks like the rest of the circuit is broken. The longer leg is the anode and goes towards the positive side; the flat spot on the rim is the cathode. If you cannot tell, most meters have a diode test that will light it faintly the right way round.

Button with no pull resistor. With the button open the input is connected to nothing at all: not to 0 V, to nothing. A TTL input floating like that reads as a 1, so the circuit behaves as though the button were permanently pressed. A CMOS input reads whatever the room decides and changes when a hand moves near the board. The circuit works on the bench and fails during the demonstration, and the button gets replaced for no reason.

That last one is not a new idea: it is the whole subject of the previous demonstration, and your counter laboratory sheet asks for exactly this resistor by name.

Step 5: Wire the whole thing up, and choose a sense

Section titled “Step 5: Wire the whole thing up, and choose a sense”

Open A button, a gate and an LED.

Everything so far has been a piece of a circuit. This is the circuit: a 74LS00 straddling the channel, one gate with both its inputs tied together so that it behaves as an inverter, a button on the input, and an LED on the output. Press the button on the board and watch the pin voltages.

Notice first what column 8 is doing. The chip’s pin 1, the wire from the button, the link across to pin 2 and the pull resistor are four separate things pushed into four holes of one five-hole column, and they are all the same connection. No jumper joins them. That is Step 1 in use.

Leave the sense on Active high and the resistor on 470 Ω, then press and release.

Released, the two tied inputs push 0.8 mA out of the pins and into the pull-down, which sits at 0.38 V, comfortably below the 0.8 V a 74LS part is guaranteed to read as a 0. Pressed, the switch takes the pin to 5 V. The gate inverts, the LED changes. It works.

Now change the resistor to 10 kΩ and press again. Nothing happens at all.

This is the number worth carrying out of the whole page. A 74LS input held low pushes current out of itself, about 0.4 mA per input, and both tied inputs do it. So the pull-down has to carry 0.8 mA and still sit below 0.8 V:

Rmax = 0.8 V ÷ 0.8 mA = 1 kΩ

Ten kilohms cannot do it. The node stalls around 1.5 V, the gate reads a 1, and the circuit behaves as though the button were permanently pressed however hard you press it.

Now set the resistor to none at all.

The reading is the same 1.5 V, and this is the case to look at hardest. The pin is connected to nothing. It is not at 0 V, it is at no defined voltage, and 1.5 V is neither a valid 0 (0.8 V or less) nor a valid 1 (2.0 V or more). It is inside the band the data sheet refuses to define, and the part reads it as a 1 because a TTL input pulls itself up when nothing else is driving it.

Active low, and why 74XX parts are full of it

Section titled “Active low, and why 74XX parts are full of it”

Switch the sense to Active low and put the resistor back to 10 kΩ.

Now the button is wired to 0 V and the resistor holds the pin at 5 V. Pressing gives a 0. The same 10 kΩ that was useless as a pull-down works perfectly as a pull-up, and the reason is on the readout: an input held high takes only 20 µA, twenty times less than the 0.4 mA it pushes out when held low.

That asymmetry is not a convention, it is the transistors. It is why 74XX circuits are full of pull-ups and short of pull-downs, and it is half of why so many 74XX inputs are active low.

Try 470 Ω as a pull-up too. It works just as well and wastes 10.6 mA every time the button is held, against 0.5 mA for the 10 kΩ version. Both work; one is thoughtless.

Finally, set the sense to Active low with no resistor at all.

Released gives a 1, pressed gives a 0. The circuit appears to work. It works because a floating TTL input happens to read as a 1, not because anything is holding it there, and the pin sits at 1.5 V with very little distance to travel before it is a 0. Anything that couples charge onto that node moves it: a hand, a long lead, another wire switching alongside.

That is the worst fault on this page. It passes on the bench, it fails during the demonstration, and there is nothing to see.

Leave the input working and switch the LED between LED to +5 V (sinking) and LED to 0 V (sourcing).

Sourcing is what almost everyone draws first: the LED hangs off the output down to 0 V, so it lights when the output is high. Look at what the readout says about it. A 74LS output guarantees only 0.4 mA while staying at a valid high, and even at the minimum valid 2.7 V the 330 Ω resistor is asking for 2.1 mA, five times more. The output cannot hold a valid high while driving it, so the LED is dim and the pin is no longer at a level anything else could trust.

Sinking turns the LED over and hangs it from the +5 V rail, so it lights when the output is low. Now the arithmetic works: (5 − 2.0 − 0.4)/330 = 7.9 mA, against the 8 mA a 74LS output is specified to sink.

SinkingSourcing
LED connects to+5 V0 V
Lights when the output isLOWHIGH
The part will give you8 mA0.4 mA
Result at 330 Ω7.9 mA, brightdim, and the level is invalid

Two things follow. The first is that 220 Ω is the wrong resistor here: it would ask for 11.8 mA, outside what the output can sink. Use 330 Ω on a 74LS output and keep 220 Ω for the microcontroller laboratory, where the pin can supply it.

The second is the general point:

Open A clock from a 555.

A counter needs something to count, and a push button will not do it. A mechanical switch bounces: its contacts make and break for a few milliseconds, giving a burst of edges. A flip-flop is fast enough to see every one of them, so a single press can clock a counter several times and the count jumps. That is exactly what your laboratory sheet is warning about when it says the toggle case behaves erratically with a button input.

A 555 wired as an astable gives one clean edge per period, for ever. It charges a capacitor through both resistors and discharges it through R₂ alone, flipping at two thirds and one third of the supply. Watch the capacitor trace climb between those two dashed lines.

That asymmetry is the one thing to remember:

  • thigh = ln2 × (R₁ + R₂) × C
  • tlow = ln2 × R₂ × C

The high time contains R₁ and the low time does not, so the duty cycle is always above a half. It is (R₁+R₂)/(R₁+2R₂), which approaches 50% as R₁ becomes small beside R₂ and never quite arrives. Push R₁ up and watch the output become a narrow dip rather than a square wave.

Press About 1 Hz, for the counter: R₁ = 10 kΩ, R₂ = 68 kΩ, C = 10 µF gives 0.99 Hz, which is what you want for watching a count advance.

Open Seven-segment displays.

A seven-segment display is seven LEDs arranged in a figure eight. Wiring fourteen legs out of a small package is impractical, so one leg of every LED is joined inside and brought out as a common pin, and there are two ways to do that:

Common pin goes toA segment lights when its pin isThe driver must
Common anode+5 VLOWsink the current
Common cathode0 VHIGHsource the current

They look identical from outside. Fitting the wrong one gives a display that stays dark, and no amount of checking your logic will help.

This is not hypothetical: your counter laboratory needs a common anode part and your Arduino laboratory needs a common cathode one. That is not an arbitrary difference. A 74LS47 BCD-to-seven-segment decoder has active-low outputs, which is what a common anode display wants; a microcontroller pin driving a segment high suits a common cathode display.

To tell which you have without powering anything: set a multimeter to its diode test range, put the red probe on a common pin and the black on any segment pin. If a segment glows, the common is the anode. Swap the probes; if it glows that way instead, the common is the cathode.

Note also that each segment needs its own series resistor. One resistor on the common pin will not do, because the current through it depends on how many segments are lit, so the brightness would change with the digit.

Quiz
Select 0/1

You push two component legs into holes A5 and E5 on a breadboard. What have you done?

Quiz
Select 0/1

You are wiring a 74LS76 dual JK flip-flop and you connect the positive supply to pin 14 and ground to pin 7, as you did for the 74LS00. What happens?

Quiz
Select 0/1

A push button connects a 74LS00 input to +5 V when pressed, and a 10 kΩ resistor is fitted from that input to 0 V. The circuit behaves as though the button is permanently pressed. Why?

Quiz
Select 0/1

In a 555 astable, why can the duty cycle never quite reach 50%?

Concept Match

Match each item to what it is

Quiz
Select 0/1

Your counter circuit does nothing at all when you switch on, and one chip is warm to the touch. What should you check, in what order?

Seven things to take away.

  1. A column of five holes is one connection, above and below the channel separately. Nothing runs along a row, and the rails are separate strips that may be broken in the middle.
  2. The channel is 0.3 inch because a DIP package is. A chip that does not straddle it has every pin shorted to the one opposite, supply pins included.
  3. Pin 1 is anticlockwise of the notch, and the numbers run down one side and back up the other. Check the supply pins on the data sheet every time: the 74LS76 puts Vcc on pin 5 and GND on pin 12.
  4. Fit a 100 nF capacitor across the supply pins of every chip. It prevents a class of intermittent fault that is otherwise very hard to find.
  5. Three assembly faults cost most of the session: an LED with no resistor, an LED the wrong way round, and a button with no pull resistor. All three are visible on the board.
  6. An input has to be told what to do. A 74LS input pushes 0.4 mA out of itself when held low and takes 20 µA when held high, so a pull-up can be 10 kΩ and a pull-down cannot exceed about 1 kΩ. Left unconnected it is not a 0, it is undefined, and TTL guesses high.
  7. Read the display before you wire it. Common anode and common cathode look identical and are not interchangeable, and your two laboratories need different ones.

Point 5 is where active low comes from, and it is worth stating once more because it explains a notation you will meet on every data sheet from here on. A 74LS output sinks twenty times better than it sources, and a 74LS input costs twenty times less to hold high than low. Both point the same way, so the interesting event goes at the low end: buttons to ground, indicators lit by a low, and clear inputs held high to do nothing. The bar over a name is reporting that decision, not making it.

Two of the rest connect forward. The 555 gives the counter laboratory the clean clock its flip-flops need, and the seven-segment display is the same device driven two completely different ways: by a hardware decoder designed from a truth table in one laboratory, and by seven output pins and a table in software in the next. Building both is the clearest illustration of the hardware-versus-software trade you will get.