The summer is used to add two or more voltages together through an input resistor ladder (image 1). The resistors can all be of the same nominal (labeled, not actual) value, or they can be different. If they are different, we get a weighted summer. The equation for Vout is shown in the schematic image. The value of each input is given a percentage, or weight, of the whole. Adding up all of the weights gives you your output, inverted of course because we are using the inverting input. Note that we can still implement gain here, determined by Rf/R.

Build: Connect your (+) and (-) power supplies to pins 7 and 4, respectively. Place all of your input resistors in parallel, connecting one end of all of them together, either in the same row of a breadboard or with jumpers. Leave the other ends of the resistors disconnected from each other, connecting the inputs to one resistor each. Connect the feedback resistor (Rf) across pins 2 and 6. Pin 6 is your output. (Image 2)

From the scope image, we can see that if we input 100mV on both inputs (200mV total), we get 2V out (200mV * 10 gain). (Image 3)

How do we scale our inputs to have more or less weight? Change the values of the input resistors. The math gets a little bit more fun, but not hard at all. -Vout = Rf * (V1/R1 + V2/R2 +...+ Vn/Rn) Images 4 and 5 shows the result of changing the input resistor for V2, first to 500Ω and then to 2kΩ, respectively.

With the input resistors all the same, each input has the same weight, so the total is a simple sum. When the resistance of one input goes down, the gain is now higher, and it therefore has more input into the system, giving more weight to the input relative to the output, which increases linearly. As one input resistance goes up, the gain for that input decreases, while the gain for the other(s) stays the same, so the weight of that one input now goes down. With 500Ω, the gain is 10kΩ/500Ω = 20X. So the 100mV input becomes 2V output, while the other 100mV input outputs 1V. Add them and you get the 3V seen in image 4. If the input is changed to 2kΩ, gain is now 10kΩ/2kΩ = 5X for that input. 100mV becomes 500mV, the other input stays at 10X for 1V output, and we get a total of 1.5V as seen in image 5.

This all comes together very nicely when you want to convert digital signals to analog signals. If you're not familiar with binary numbers and counting, read this. If we assume a 4-bit digital input, with each bit tied to one of four inputs of the summer, then if all bits are 0, we get the lowest value out, 0V. If all bits are high, we get our max voltage as determined by the (+) voltage supply and the gain. As we count up from 0 to 15 in binary on the 4 inputs, we get one of 16 possible analog voltage values coming out of the circuit. For easy math, let's assume a max output of 4V, so for each binary number we count up, we add 4V/16 = 250mV. For this to work properly, we need different values for the input resistors. A quick look at how binary converts to decimal and we see that not all binary digits have the same weight, and they are related by powers of 2. So we adjust our input resistors to match the same relation, with the values of 1kΩ (2^0), 2kΩ (2^1), 4kΩ (2^2) and 8kΩ (2^3) tied to input bits 0-3, respectively. Image 6 shows the output with the scaled resistors with the transition between digital values set at 4ms. The resolution is really rough because of the small number of bits on the input. As mentioned, 4 bits only allow for 16 possible values (2^4). With 8 bits, that grows to 256 values (2^8), with 16 bits we get 65536 (2^16), and 32 bits gives 4.3 billion (2^32). With more values to choose from, we get much higher resolution because each step is smaller and we can manipulate the waveform to provide any shape we want at nearly any frequency just by programming the digital input. This is how the Analog Discovery and EE board generate waveforms.

Image 7 shows what happens to the output when all input resistors are equal and therefore all inputs have equal weight. Definitely not a good waveform.