Project

Building a One-Shot Multivibrator with an ESP32 Terminal Display:  A Radio Shack Classics Circuit Remix

September 17, 2023 by Don Wilcher

In this hands-on project, we will update a 1980s version of a one-shot (monostable multivibrator) circuit by giving it a modern, colorful output while also examining the circuit's operation.

In 1981, Radio Shack introduced the Science Fair 200-in-1 Electronic Project Kit (Figure 1). This kit included a lab manual packed with 200 electronic project circuits for exploring and experimenting. The classic circuit that will be explored and remixed in this hands-on project is the One-Shot Multivibrator circuit. You can also check out my previous remix project on transistor controlled switching of an LED display.

 

he Science Fair 200-in-1 Electronic Project Kit

Figure 1. The Science Fair 200-in-1 Electronic Project Kit. Image used courtesy of Science Maison

 

What is a One-Shot Multivibrator?

Industrial controls and computer systems require specific timing sequences to process input signals or binary data. Timed delays often provide correct timing sequences for data manipulation and signal processing. The one-shot, monostable multivibrator circuit provides the specific timed pause required in industrial controls and computer systems.

This one-shot multivibrator circuit uses resistor-capacitor (RC) timing components to give the appropriate timed delay in the system application. The RC timing can range from microseconds to hours based on the component combination values. You can also build a one-shot circuit using a 555 timer IC.

Figure 2 illustrates the operation of a one-shot multivibrator circuit. The one-shot multivibrator circuit timed delayed output signal is initiated by a quick input pulse. The generated output signal from the one-shot multivibrator circuit is one single-timed-based pulse.

 

One-shot multivibrator timing diagram

Figure 2. One-shot multivibrator timing diagram. Image used courtesy of Don Wilcher

 

As illustrated in Figure 2, the timed-delay circuit generates an output signal with pulse width pw. An input trigger event initiates another timed-delay pulse. One essential item to note is that an input signal created during a timed-delay event will not extend the timing. Therefore, the RC components of the one-shot circuit will complete the timed output + state before responding to another input trigger event. Such an electrical behavior is vital for an industrial or computer systems application to ensure the manufacturing or arithmetic timed process is completed without interruption.

 

The Science Fair Original One-Shot Multivibrator Circuit

The One-Shot Multivibrator circuit schematic diagram can be found on page 42 of the Science Fair 200-in-1 Electronic Project kit lab manual. The project number is 69. Figure 3 shows the lab manual’s original project page.

 

A one-shot multivibrator lab manual project page

Figure 3. A one-shot multivibrator lab manual project page [click image to enlarge]. Image used courtesy of Science Maison

 

There are 11 electronic components used for the one-shot multivibrator circuit shown in Figure 3. When triggered by the key switch, the analog current meter (microammeter) provides visual indication of the changing, timed-delay operation of the one-shot circuit. The microammeter has an internal resistance of 650 Ω and full-scale output at 250 μA current.

The project's timing diagram in the upper right corner of Figure 3 illustrates that multiple key switch presses will not produce corresponding output signals. The timed delay is established by the circuit component combination of the 100 μF electrolytic capacitor and 33 kΩ resistor.

For more background information, check out this explanation of monostable or one-shot multivibrator circuits.

 

The Wiring Approach to the Science Fair Electronic Project Kits

The concept behind building the Science Fair Electronic Project kits was using spring terminals and various cut-wires. By bending the spring terminal to one side, the opening provided a mechanical and electrical connection to attaching wires to the cardboard-mounted electronic components. The insulation was removed from each of the pre-cut wires, ensuring proper electrical connection was made with the mechanical spring-clamping force of the terminals. The spring clamping force provided electrical integrity through the solid conductivity of the attached wires.

The electronic project kit succeeded by providing a wiring sequence at the bottom of the lab page. The project worked by reading the wiring sequence and making the proper electrical connections to the correct cardboard-mounted electronic components. Figure 4 illustrates an example of electrical wiring of a Science Fair electronic project.

 

Science Fair electronic project kit wiring example

Figure 4. Science Fair electronic project kit wiring example. Image used courtesy of Board Game Geek

 

The One-Shot Multivibrator Remix

Using today’s technology, we can remix many portions of the one-shot multivibrator electronic circuit schematic of Figure 3. The visual indicator is an immediate remix opportunity. The original circuit design used a microammeter to provide an output-timed delay indicator. The microammeter is an analog measuring device that allows the experimenter to see the charging effect of the 100 μF capacitor through a 33 kΩ resistor. The 100 μF capacitor discharges through the base of Q2, a 2N3904 NPN transistor.

Although the original intent of the lab circuit is to illustrate the one-shot multivibrator's primary circuit function, Figure 5 demonstrates the remix concept.

 

A modernized pulse-detector block diagram

Figure 5. A modernized pulse-detector block diagram. Image used courtesy of Don Wilcher

 

The pulse detector is triggered based on the edge of an incoming control signal. The pulse's edge can be a rising or falling input control signal. Upon detection of the pulse's edge, the one-shot multivibrator's output will immediately turn on.

The ESP32 terminal will be an alarm beacon whereby a programmed color will flash. The alarm beacon will stop flashing once the one-shot multivibrator's output turns off. The flashing alarm beacon's duration depends on the one-shot multivibrator's integrated RC circuit. One appealing approach to using the ESP32 terminal is the thin film transistor (TFT) LCD, which can be programmed to provide various visuals for the alarm beacon.

Figure 6 shows the one-shot multivibrator KiCAD electronic circuit schematic diagram.

 

One-shot multivibrator electronic circuit schematic diagram

Figure 6. One-shot multivibrator electronic circuit schematic diagram [click to enlarge]. Image used courtesy of Don Wilcher

 

As shown in Figure 6, the one-shot multivibrator is like Figure 3 except for the output circuit. The 10 kΩ potentiometer and the 10 kΩ fixed resistor allow a one-shot multivibrator circuit to enable the ESP32 terminal to run the C++ code to flash the alarm beacon color. The ESP32 terminal's alarm beacon programmed is green.

Wiring the Pulse Detector Circuit

The pulse detector can easily be wired using a few off-the-shelf electronic components. There are 11 off-the-shelf electronic components needed for the circuit build. Some or all the electronic components may be available in your electronics workshop or lab. A Bill Of Materials (BOM) listing the required electronic components is shown in Table 1.

 

Table 1. The pulse detector circuit bill of materials. 
Item Quantity References Value Library Part
1 1 C1 1000 μF Device:C_Polarized_US
2 2 Q1, Q2 2N3904 Transistor_BJT:2N3904
3 2 R1, R5 1.5 kΩ Device:R_Small_US
4 1 R2 4.7 kΩ Device:R_Small_US
5 1 R3 33 kΩ Device:R_Small_US
6 2 R4, R7 10 kΩ Device:R_Small_US
7 1 R6 10 kΩ Device:R_Potentiometer_US
8 1 SW1 Push_To_Test Switch_SW_SPST

 

A solderless breadboard allows the wiring of the pulse detector circuit prototype with ease (Figure 7). The solderless breadboard allows easy arranging of electronic components for testing and experimentation.

 

The pulse detector solderless breadboard design

Figure 7. The pulse detector solderless breadboard design. Image used courtesy of Don Wilcher

 

Figure 8 shows the physical implementation of the pulse detector prototype wired on a solderless breadboard.

 

The physical pulse detector prototype

Figure 8. The physical pulse detector prototype. Image used courtesy of Don Wilcher

 

Wiring the ESP32 Terminal Alarm Beacon to the Pulse Detector Circuit

Wiring the ESP32 Terminal to the output circuit of the Pulse Detector is relatively easy to do.

  1. One end of a mini-4-wire jumper harness is inserted into the D1 port connector of the ESP32 terminal.
  2. The mini-4-wire jumper harness free connector end will be wired to the ESP32 terminal to the pulse detector output circuit.
  3. Two 24 AWG solid wires will be inserted into the mini-4-wire jumper harness-free connector end.
  4. One 24 AWG solid wire will be inserted into the free connector end cavity with an attached black wire.
  5. The other 24 AWG solid wire will be inserted into the free connector end cavity with an attached yellow wire.

The electronic circuit schematic diagram in Figure 6 shows the free connector end cavity for wiring the ESP32 terminal to the pulse detector circuit. The completely wired ESP32 terminal to the pulse detector circuit is shown in Figure 9.

 

The ESP32 terminal wired to the pulse detector circuit

Figure 9. The ESP32 terminal wired to the pulse detector circuit. Image used courtesy of Don Wilcher

 

Programming the ESP32 Terminal

The ESP32 terminal is programmed using the C++ programming language. Software development platforms like Visual Studio or the Arduino IDE can be used to program the ESP32 terminal for this project. The initial setup of the ESP32 terminal, library, and code examples can be found here.

The Alarm Beacon code responds to the Pulse Detector circuit, providing a timed delay output control signal of approximately 8 VDC. Therefore, placing a digital voltmeter across resistor R7 (the 10 kΩ fixed resistor) and adjusting the pulse detector timed delay output with the 10 kΩ potentiometer will provide a compliant input voltage for the ESP32 terminal to respond correctly. The adjusted voltage using the 10 kΩ potentiometer and a digital voltmeter should be 1.338 V. Note: The ESP32 microcontroller's GPIO pins are +3.3 V compliant. A higher applied voltage will damage the microcontroller.

The following is a C++ code snippet for the ESP32 Alarm Beacon. As illustrated, upon the pulse detector timed-delay output signal received by the ESP32 terminal, the beacon will flash green on the TFT LCD. The if condition detects the positive edge of the timed-delay output pulse. The Beacon code can be obtained from the GitHub repository.

 

void loop(){
   // Read the state of the pushbutton value:
   sensorState = digitalRead(sensorPin);
   if (sensorState == HIGH) {
      // Flash display green: 
      lcd.fillScreen(TFT_GREEN); 
      delay(500); 
      lcd.fillScreen(TFT_BLACK);
      delay(500);
   }
   else {
      // Turn display off:
      lcd.fillScreen(TFT_BLACK);
   }
}

 

Figure 11 is a video demonstrating operation of the final project's pulse detection and visual alarm status feature:

 

Figure 11. Video of the one-shot multivibrator with ESP32 terminal in operation.

 

Further Explorations

A printed circuit board (PCB) for the pulse detector will easily attach other visual displays to the classical circuit. Figure 12 illustrates how a Fusion 360 PCB designed and developed can remix the classical one-shot multivibrator into a portable digital or control circuit tester.

 

A PCB implementation of a pulse detector circuit

Figure 12. A PCB implementation of the pulse detector circuit. Image used courtesy of Don Wilcher

 

Extending the timed-delay function of the circuit can be achieved by wiring additional electrolytic capacitors in parallel. Further, a potentiometer wired as a rheostat can replace the 33 kΩ resistor, thereby allowing flexibility in adjusting the delay output timing of the circuit. Enjoy exploring and remixing this classical electronic circuit!

4 Comments
  • E
    ee2023 September 22, 2023

    Dear Mr. Wilcher, thank you so much for the wonderful article and project. This is simply amazing and brings back a lot of memories. Keep up the great work.

    Like. Reply
  • Don Wilcher September 22, 2023

    Thank you, ee2023, for the kind comment.  I am having a blast researching the materials, playing with the circuits, and providing a new twist using current electronics and microcontroller technologies. More classic circuit projects to come!

    Like. Reply
  • K
    kpeal September 24, 2023

    Figure 2 is confusing or wrong. Assuming the monostable is triggered on the falling edge of the input (P1 or P2), then the output (P1-out and P2-out) should be a constant width pulse. In your figure it looks like the width of P1-out is determined by the arrival of P2 (t3). The point is that every output should be the same (set by RC) not by the next pulse input. What you show could happen but only if P2 happens to arrive at the end of output pulse - possible but not very helpful in explaining how a monostable works.

    Like. Reply