The Esp32 Signal Generator
Esp32 Based Analog/Digital Signal Generator

This is a small yet highly versatile signal generator and measurement device.
Powered by a standard Micro USB power source. Mostly digital but some limited analog out.

The idea of this unit is to supply extremely common digital signals and since there is a DAC on the board a few modest speed analog type signals are also supplied at fixed output levels.

The Esp-32 board by Mark-Toys is the brain and is behind the display in this picture.

There is a 1.3" OLED display for easy user feedback and a set of controls to allow setting of the main mode for the signal and then parameters that apply for that mode such as frequency or period/duty cycle.

The signal generator can operate in 3 analog waveform modes as well as quite a few common digital signal modes that I have found valuable to generate in the past, some of which are not at all common on signal generators.  

   - Analog Sine, Triangle, Sawtooth and Square of 1hz to 3khz centered on 1.5 volts.
   - Digital 50% duty cycle Square Wave of variable frequency from about 75hz to 3khz
   - Digital variable duty cycle pulse train of variable freq and duty cycle
   -  A PWM signal for Servo motor checkout or positioning.  Typ 65hz  3-45% duty
   - A One-Shot mode triggered by button for 5us to 6msec pulses. Will auto-repeat
   - A Quadrature A,B set of square wave signals with variable frequency
   - A Three phase quadrature signal used to simulate 3-phase wheel encoder signal

   - Digital Pulse Counter that is reset using pushbutton switch
   - Digital Frequency Counter measures pulses per second
Controls (These Vary By Mode In use)
   - Wave Type:     A potentiometer used to select which type of waveform to be generated.
   - Frequency or sometimes duty cycle of the output waveform in use.
      Frequency is the playback rate for Analog signals.
      This doubles as Pulse Width Or duty cycle for One-Shot or PWM servo mode.
   - Duty: Some modes like Pulse Train need freq as well as duty cycle so this is extra control
   - Trigger:       A button to trigger one shot
   - Wave Phase:    This inverts phase for many digital signals and reverses wave for analog
   - Hold:  This holds the current setup and runs clean signal. (if not small signal disruptions)

The Mark-Toys Esp32 Dev board is used for this device and the code is done using Arduino because this board from Mark-Toys is compatible with the Arduino IDE programming.
Mark-World - Tech Projects To Amuse The Curious
Esp32 Signal Gen