Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

View this project on


Text-to-Speech for Arduino

  • requires an amplifier on the PWM output pin (see below)
  • see blog articles

Supported Hardware

  • ATmega328-based Arduinos (e.g., Uno, Pro, Pro Mini, etc.): pins 3, 9, 10
  • ArduTouch: pin 9
  • ATmega1280-based Arduinos (e.g., Mega): pins 44, 45, 46
  • Arduino Leonardo: pin 5
  • Arduino Due: pins DAC0 or DAC1
  • Teensy 3.2: pin A14
  • Teensy 3.5, 3.6: pins A21, A22
  • Teensy LC: pin A12
  • ESP8266: pins 0 to 16 (with analogWrite())
  • ESP32: DAC1 or DAC2 (pins 25 or 26)


alt tag

Component choices in this circuit aren't very critical:

  • 22k (vs 27k) and 47n (vs 10n) parts in the input low-pass filter
  • 100n (vs 10u) bypass capacitor between pin 7 and gnd
  • Used the inverting input instead of the non-inverting one (although in this circuit I noticed no difference)
  • 47n (vs 100n) output snubber capacitor


  • original implementation by Clive Webster in Webbotlib
  • ported to Arduino by Gabriel Petrut
  • Stephen Crane modified it to use pins other than pin 10 with the help of this tutorial
  • manitou48 added support for Leonardo and ARM processors with DAC (Teensy, Due)

See Also

You can’t perform that action at this time.