Analogue Synth Project – TouchTone 555

Inspired by the Vintage Stylophone

About

There’s a certain intrigue in the unpredictability and complexity of analogue electronics — something digital circuits can’t quite replicate. After building several digital projects with microcontrollers and logic gates, I wanted to dive into the raw, hands-on world of analogue circuit design. Inspired by the charm of the retro Stylophone, I set out to build a monophonic analogue synthesizer from scratch — a project that would challenge my understanding of audio, oscillators, and signal shaping.

Featured on Hackaday! Stylus Synth Should Have Used A 555– And Did!

Demo

“Littleroot Town”, composed by Gō Ichinose, Junichi Masuda, & Morikazu Aoki, from Pokémon Ruby, Sapphire, & Emerald (© Nintendo / Game Freak), is used under fair use as part of an educational demonstration.

Disclaimer:

This synthesizer was developed as a purely educational project to explore analogue electronics and sound synthesis. It is an independent work inspired by the vintage Stylophone, with no affiliation to Dubreq Ltd. or the original Stylophone product. All trademarks remain the property of their respective owners, and no copyright or trademark infringement is intended.

Goals

For this vintage Stylophone inspired synth, I set out to create a feature-packed, self-contained instrument that highlights the beauty of analogue electronics. My primary goals included:

  1. A square wave oscillator for the core sound generation
  2. A vibrato effect
  3. Switchable octaves
  4. Individually tunable keys for accurate pitch adjustment
  5. An onboard amplifier with both a speaker and headphone output
  6. A single, compact PCB powered by a 9V battery (or 9V DC input jack)

The idea was to design an exposed PCB synth with no external enclosure, where each analogue section is clearly separated and highlighted with a detailed silkscreen. This makes it not only a functional instrument, but also an educational tool that visually explains how each part contributes to create the overall sound.

Creating Sound with Electronics

Figure 1. Animation of a sound wave propagating through air (simulated with Python)

First things first, I needed to figure out how we can create sounds with electronic components. A continuous sound is purely an oscillating wave, and speakers produce sound by creating an oscillation in particles in the air. The actual signal that a speaker receives is an electrical oscillation so I just needed to research some way that I could create an oscillator using analogue components.

I quickly came to realise that creating nice, smooth and rounded sine waves is much more difficult than creating a square wave. This is where I found out about the NE555 IC – a cheap, yet wide spread and easy to use timer IC.

NE555 Oscillator

After researching the different configurations of the NE555, I settled upon an “astable multivibrator” configuration as it seemed like a simpler option for creating a square wave oscillator [1]. It only requires the IC, a couple capacitors, and a resistor to begin oscillating!

This is the initial circuit I created:

Figure 2. Circuit Diagram based on the astable 555 circuit described here.
Figure 3. Testing the circuit on a breadboard. So small!

Circuit Analysis

It was exciting to actually be able to create a stable, square wave oscillator, but to be honest, I had no idea what was actually happening, and that’s no fun! This led me down to journey of exploring the importance of capacitors and resistors in influencing the timing of the oscillation, and what the different triggers on the NE555 did.

Plotting a voltage over time graph, we plot the voltage of the capacitor, and the output together to see how the capacitor voltage influences the output voltage.

Figure 4. NE555 Oscillator: Circuit Diagram & Capacitor/Output Timing Diagram

When the circuit is powered on, the trigger pin is LOW by default, which triggers the output pin to go HIGH. The output pin is connected to the timing capacitor through a current limiting resistor. The resistor value is important, as through Ohm’s Law, we know that the higher the resistance, the lower the current. A lower current means that the timing capacitor takes longer to charge up, meaning that the 555 output stays high or at a peak for longer. This means that the period of the wave is longer, thus resulting in a lower frequency. This is why not only the timing capacitor, but also the resistance has an effect of the frequency.

As the capacitor charges up through the resistors, the threshold pin of the 555 is waiting for the capacitors voltage to reach a potential of 6V (or more generally, ⅔ the supply voltage). When it detects this, it switches the output pin to LOW. This means that the output is now at a trough, the second half of a square waves period. This event also now allows the timing capacitor to discharge through the resistor until the trigger pin reaches 3V (or more generally ⅓ the supply voltage). This causes the output to go HIGH again, starting the cycle all over again. This cycle keeps repeating resulting in a continuous square wave oscillation at the output.

Hooking up some oscilloscope probes to the capacitor (Channel 1: Yellow) and output (Channel 2: Green), we can see the following changes in voltage over time, which match the prediction:

Figure 5. Power On
Figure 6. Continuous Output

The duty cycle of the square wave is determined by how long it takes the timing capacitor to charge and discharge, and it seems that the capacitor takes slightly longer to charge than it does to discharge, resulting in a duty cycle just above 50% (Figure 6., lower right-hand corner).

Modifying the frequency

To actually have a useful synthesizer, ideally, I need to be able to play more than one note! As I now knew that the capacitor and resistor values both influenced the frequency of the oscillator, we can use these to tune the frequency. The easiest way to get a whole variety of pitches is to just change the resistance. Resistors are far cheaper than capacitors, and variable resistors will allow us to tune each tone individually.

To test this theory, I used a potentiometer as a variable resistor, and set the timing capacitor to 100 nF. As expected, the frequency changes as the resistance is changed!

Figure 7. Changing the oscillation frequency with a potentiometer

Resistance Values

Luckily, I didn’t need to experiment with a whole heap of resister and capacitor values as I found this formula to relate frequency to resistance and capacitance [1]:

I’d like to have 20 keys in total inspired by the vintage Stylophone, and each key’s resistor will be connected in series to the next. I drew this out to get an idea of the key wiring:

Figure 8. Simplification of the keyboards series resistor network.

By connecting the stylus to somewhere in this series resistor network, we change the resistance between the timing capacitor and the output pin on the 555, changing the output frequency.

I found that trimmer pots can be bought for a reasonable price in bulk from AliExpress, so this will allow me to have individual note tuning, without breaking the bank!

Electrical Oscillations to Sound

It’s great being able to visualise the oscillation on an oscilloscope, but for the purpose of a synth, it’s not really a synth yet!

It turns out, you can’t just connect a speaker to the output of the NE555; it’s a bit more complicated than that. I found out that connecting the speaker directly to the 555 could actually cause damage. For example, the 555 output has a DC offset, meaning the average voltage of the wave is >0V. This means a constant current would flow through the speaker coil, potentially leading to damage. This constant current flow would have to be provided through the 555, so it could potentially damage it too.

This led to the biggest difficulty for me in this project – working with Op-Amps! On paper (or rather, on YouTube videos and electronics websites), they sound a lot less temperamental than they actually turn out to be on a breadboard!

I’ll be using an op-amp to minimize the current draw through the output of the NE555 as the op-amp will now power the speaker, and it will also allow for some amplification of the output signal. The op-amp basically compares the voltage at it’s two inputs – the non-inverting & inverting inputs – and amplifies the different between them which is known as the differential input voltage. The gain of this amplification is dependent on the particular op-amp used, as well as the ratio between the feedback resistors added to the circuit.

After a bit of research I came across the LM386 Op-Amp (which I later swapped out for an LM358 during testing). Upon inspection of it’s datasheet [2], it looks as though it should be fine for this application as it’s quiescent (idle) power draw is quite low (which is good as the aim is for the synth to be battery powered), the supply voltage of 9 V is well within it’s input voltage range, and it’s compatible with my speaker’s impedance of 8 Ohms which is important to note.

Additionally, this datasheet has an array of typical application diagrams, and I decided to try out this simple schematic:

Figure 9. Example application schematic for the LM386. Source: National Semiconductor LM386 Datasheet, Page 6
Figure 10. LM386 DIP-8 IC

After a bit of investigating and research, I was able to get a rough understanding of what this circuit was doing. The op-amp compares the 555 output signal (Vin) to its inverting pin (-), which is connected to GND. The op-amp adjusts its output voltage to maintain a near-zero voltage difference between the inverting and non-inverting pins.

The gain of this configuration is around 20 as stated on the schematic, but our output voltage from the op-amp won’t actually be higher than the peak-to-peak voltage of the 555 output. This is because the peak-to-peak voltage of the 555 is 9V, and so is the supply voltage of the op-amp. The op-amp can’t output a signal with a peak-to-peak voltage higher than its supply voltage.

The op-amp can’t do this all on its own though, and as you can see there are a few other components. At the output, there is a capacitor in series with a small resistor. This resistor capacitor pair is used to stop the amplifier from oscillating (I’m not sure what causes this). There’s also a capacitor in series with the output pin and the speaker which is used for AC coupling. This removes the DC offset of the output signal from the op-amp, normalising the signal to mean of zero volts. This is important as mentioned earlier, as a DC offset can result in a constant current through a speakers windings, potentially leading to damage.

Building the amplifier

I prototyped this circuit on a breadboard and incorporated a trimmer potentiometer for the volume adjustment, just for testing, but I will swap it out for a regular potentiometer shortly. This really should be a logarithmic potentiometer due to the way we perceive loudness, but I couldn’t find any inexpensive ones readily available.

Figure 11. The op-amp circuit prototyped on a breadboard

After connecting the output of the NE555 oscillator up to the circuit, it was ready to test! It was able to power the speaker, but there were some weird, unexpected issues…

Op-Amp Issues

Upon connecting the power supply to the circuit, it was outputting a square wave to the speakers, but it was incredibly noisy and not a clean signal whatsoever. Luckily, this was very easy to fix, and only required a 100 nF decoupling capacitor between the supply rails. This removes high frequency interference by allowing high frequency AC to pass through the capacitor to ground, effectively shunting it away from the sensitive parts of the circuit.

The reason this works is because a capacitor has very high impedance at DC (so it doesn’t short the power rails), but very low impedance at high frequencies, allowing it to filter out noise. The noise was likely switching noise from my bench power supply.

Figure 12. Decoupling capacitor diagram comparing it’s effect on AC noise and the DC supply

Secondly, was that the pitch of the oscillation would change as the volume potentiometer was adjusted. I spent a lot of time debugging my circuit and trying different resistances, capacitor configurations, etc, but really couldn’t figure out what I was doing wrong or how to fix it properly. I managed to mitigate it to some extent by connecting a capacitor from the 555 output to a trimmer pot, and then to the actual volume potentiometer, but I don’t really like ‘duct-tape’ solutions that I can’t explain!

This took a lot of debugging and annoyance, so I decided to spend my time working on some other features that I was looking to implement now that I had got a mostly functioning oscillator amplifier circuit.

Octave Control – Capacitor Banks

It’s great to have one set of notes, but I think it would be a nice feature to add an octave selector. This isn’t found on the original Stylophone, but I think it would be a handy addition.

As discovered earlier, we can modify the frequency of the 555 oscillator by changing not only the resistance, but also the timing capacitor [1]. To implement octaves, we’re not going to touch the resistance as it would require us to change the resistance of each and every key, which isn’t easy! Instead, we will change the timing capacitors as this is much simpler.

If we look at the formula from before, we can see that doubling the timing capacitance halves the frequency. So the highest octave would have 1 capacitor, the next 2, then 4, resulting in the lowest octave having 8 capacitors. I learnt that unlike resistors that are put in series to sum values, we put capacitors in parallel to sum their values, specifically, their capacitance. Each octave will have it’s own “bank” of capacitors which can be connected and disconnected from the 555 through the use of a four-position switch.

After some prototyping, I also discovered that basic and monolithic ceramic capacitors both suffered from fluctuations in capacitance leading to extreme fluctuations in pitch, so I found some larger polyester capacitors that weren’t too expensive, but did a significantly better job.

Figure 13. One of these 4 position switches will be used to select the octave.
Figure 14. These green Polyester Capacitors have a much more stable capacitance.

After wiring up the capacitor banks, I decided to also wire up a short scale of notes to test different pitches with. I use trimmer potentiometers rather than resistors here so that the notes were tunable. It looks like a mess of wires, but it was a proof of concept, and worked!

Figure 15. The full circuit on breadboards so far.

I’ll show this all working in a minute, just after wiring up the vibrato!

Vibrato – RC Oscillator

Another feature I was really interested in adding was a vibrato switch similar to what the vintage Stylophones had. In order to do this, we are going to create another oscillator, but this time a sinewave oscillator which a constant frequency.

After some experimenting, I found that I could modulate the output frequency by swapping the connection to ground from the 100 nF capacitor connected to the CV pin on the 555 to a sinewave (from my oscilloscopes function generator). This modulates the frequency by changing the voltage reference that sets the upper 2/3 threshold trigger, effectively changing how quickly (or slowly) the 555 capacitor reaches it, changing the frequency subtly.

However, obviously, I cannot just rely on an external function generator for vibrato! After a bit of research online, I came across the RC Oscillator, which stands for Resistor-Capacitor Oscillator. This grabbed my attention as it didn’t require a large number of components, and didn’t require any inductors like in a LC Oscillator. It also is capable at producing the low frequencies I need.

The RC oscillator has a few components: a BC548 NPN transistor and a set of three RC pairs. The RC oscillator forms a feedback loop between the RC pairs and the transistor leading to a self sustaining oscillation. My explanation may not be entirely correct, but I will try my best – it’s a lot more complicated than the 555 square wave oscillator!

Figure 16. The final Vibrato RC Oscillator circuit design. Note, some of the capacitors are doubled up in series to fine tune the oscillation frequency.

The signal from the collector (pin 2) of the transistor travels through the RC network (three RC pairs) which both attenuate the signal and introduce a total phase shift of 180°. This attenuated and phase-shifted signal is then fed back into the base of the same transistor (pin 1). The transistor itself provides an additional 180° phase shift while it amplifies the signal (due to its gain), resulting in a total phase shift of 360° (or effectively 0°) – which is necessary for sustained oscillation. The gain of the transistor ensures that the attenuated feedback signal is boosted enough to compensate for the losses in the RC network.

A 10 MΩ resistor is connected across the RC network called a biasing or feedback resistor, which provides a DC return path for the base of the transistor. Without it, the base of the transistor might float, since the capacitors in the RC network block DC. This resistor helps maintain a small bias voltage at the base keeping the transistor in its active region where it can amplify signals.

There is also a 20 KΩ resistor which acts as a pull-up resistor for the vibrato signal. It is connected to the wiper of a potentiometer that adjusts the depth of the vibrato by controlling how much of the vibrato signal reaches the CV pin of the NE555. The resistor sets a default high voltage level when the signal is weak or not present allowing the potentiometer to blend between no modulation and a full vibrato effect.

Wow, that was a long explanation! Luckily, choosing our resistor and capacitor values isn’t too difficult as I found this formula on a very helpful YouTube video by “The Offset Volt” [3].

Aiming for around 6-12 Hz, some 100 nF capacitors and 68 KΩ resistors should do the trick. I built up the circuit on a breadboard and connected it to my oscilloscope to fine tune the frequency by doubling up a couple of the capacitors.

Figure 17. The vibrato circuit prototype on a breadboard.
Figure 18. Adjusting the vibrato depth with the potentiometer.

With that working, I connected the vibrato output after the depth potentiometer to the CV (control-voltage) pin of the NE555, through the existing 100 nF capacitor (replacing it’s connection to ground). Here’s it working with some test keys, and the octave control.

Schematic Design

With all the sections of the synthesizer prototyped now and working decently, I really wanted to shrink this down into a single, nice looking all-in-one board.

To do this, I’m going to draw up what we made on the breadboard in a KiCad schematic, which will be used to create the PCB layout. This was actually my first time using KiCad. I chose to swap from AutoDesk EAGLE as I decided that it would be easier to create custom symbols, footprints, the fully exposed key-pad surface in something other than EAGLE.

The schematic wasn’t too difficult to draw, it was just retracing my steps from prototyping. I did have to create a few custom symbols and footprints for the switches though as I couldn’t find any online. It was significantly cleaner to separate each section of the synth and connect them with net names, rather than having a mess of intersecting wires leading all around the place!

Figure 19. The schematic design in KiCad.

Power Supply

One thing you may have noticed in the schematic which I haven’t talked about is the power supply. I want the synth to be able to be battery powered, and the easiest route was to make it work with a 9V battery. The power supply is very simple, and isn’t really a power supply as much as it is just a power indicator and reverse polarity protection circuit.

There is a 2-pin JST connector for the 9V battery to plug into, as well as a DC jack for the option to use a 9V wall adapter. I added a diode to each positive supply coming from the power inputs to ensure they can’t back feed each other, and to offer some basic protection against reverse polarity. The power is switched on and off with a simple two position switch, and I added an LED (with a current limiting resistor) as a power indicator.

Figure 20. The power supply schematic.

PCB Design

Now for the hard part on KiCad – designing the PCB. This was the biggest challenge for me on KiCad as I wasn’t sure how to create the nicely shaped piano key contacts. After several different attempts, I ended up creating the shape in a Fusion 360 sketch (so I could get spacing and relative dimensions accurate), and then output this sketch to a DXF file. I then imported this to KiCad and traced around it with the top copper layer, and the mask layer to expose it. This took a while, but I think it was worth it for the nice geometry.

Figure 21. The top layer of copper of the PCB, highlighting the key-pad design.

I spent quite a bit of time organising the different circuits into their own areas to show the different circuits at play to create an analogue synthesizer. I then created some graphics and text for the silkscreen to highlight this on the board. I think it turned out quite nicely, and I’m really happy with how the “separate modules design” turned out.

Figure 22. 3D render of the PCB with components populated.

With the PCB designed, I ordered a few boards from China. This was my first time using KiCad so this whole process took a while, but I’m glad I ended up learning the software as I do prefer it to EAGLE.

Functional Prototypes

Prototype 1

After a few weeks, the first board prototype of the synthesizer arrived!

It took a while to solder all the components, making me realize that I maybe went a bit overboard with the potentiometers and octave bank capacitors, but hey, it adds functionality so its fine :). After creating a battery connector, plugging it in, and flipping on the power switch, the power LED lit up and the synth was alive! The only thing was – it sounded awful! So the first thing to do was to tune the notes. Starting at the highest note, and making my way down a semitone at a time, I finally had the keyboard tuned (need to start at the highest note = lowest total resistance).

With it tuned, I could finally give it a proper test; and it actually worked alright for the first functional prototype. The notes kept in tune and didn’t fluctuate much with playing, the filtering was working well as there was very little audible noise, and the op-amp setup was managing to power the speaker… just. The vibrato was working flawlessly, although the frequency was a little higher than ideal. The octave switch worked well too – although the switching wasn’t a perfect octave still, which is just down to component tolerances. I think to fully rectify that, I’d have to either think up an entirely different method of octave control, or just pick higher quality capacitors which a much higher tolerance.

Figure 23. Prototype v1.0, with some components removed for debugging.

The main issue with this prototype was that the volume control circuit was still interfering with the NE555 oscillation, enough to throw off the tuning making it unplayable when the volume was adjusted. This is obviously not good, as we need volume control, but it can’t be at the expense of crippling the usability!

This is what lead me to do some more experimentation by removing the op-amp circuit from the board, and branching off the 555 output to a breadboard, where I prototyped with the LM358 as an alternative to the LM386. The thinking was that maybe I could isolate the op-amp circuitry from the NE555 to try and keep it from interfering with the 555’s oscillation. I read up on op-amp buffers which prevents one stage’s input impedance from loading the prior stage’s output impedance [4]. After some tedious experimentation, I did manage to improve the output stability, but it was at the cost of some output volume, and it still wasn’t entirely fixed.

At this point, I wasn’t really sure what else I could do to try and fix this, as this was still the first time I had been introduced to op-amps. I decided to update the board design and order a new set of boards hoping that having it all on the board cleanly and more securely (than the breadboard) would help further.

Prototype 2

Figure 24. Prototype v1.1 – the routing for the key-pads had disconnected!

The new boards arrived and I got back to soldering again! Once finished, upon plugging in the battery and turning it on, it lit up and all looked good, until I tried to play a note… nothing happened. Upon closer inspection, I hadn’t actually hooked up the vias that connect the potentiometers to the keypads to the actual keypads. I don’t know how this happened as I never had to touch the keypad routing between the prototypes (well, I guess I must have done by accident!). Oh well, I wasn’t going to waste these boards, so I soldered the vias manually, bridging them to the keypads. This was quite difficult, and it didn’t end up working properly for the last two keypads, but it gave me enough to test with. This version was basically how it was on the breadboard with the previous prototype, just with a bit less noise. It wasn’t actually a massive improvement despite all the time I put into trying to fix the last prototypes issues.

I ended up putting this project on hold for a bit while I got stuck into more university work, but I came back to it a few months later and had a few more ideas after consulting ChatGPT!

Firstly, I decided not to use an op-amp (like the LM358 or LM386) as the main audio amplifier. While they can be really useful for voltage gain, I read that they can’t typically provide enough current to drive a speaker directly.

Instead, I chose to use a very simple amplifier called a “Class B push-pull amplifier” [5]. It utilises only a single NPN and PNP transistor to amplify an input signal. This configuration allows the circuit to handle significantly more current than an op-amp, making it better suited to driving a speaker directly.

I decided against connecting this directly to the NE555 oscillator as it could interfere with its oscillation, so I added an op-amp configured as a voltage follower (buffer) [4]. This stage doesn’t amplify the signal, but it isolates the NE555 from the load of the amplifier and prevents the push-pull stage from affecting its operation. This helps maintain the frequency stability of the oscillator, especially under varying output conditions.

Additionally, I included a low-pass RC filter on the power line going to the NE555. This consists of a resistor in series with the power supply and a large electrolytic capacitor connected to ground near the 555. Its purpose is to decouple the 555’s supply from sudden voltage drops caused by the amplifier drawing current (i.e., when the volume is increased). I suspect that in my earlier design, this current draw caused momentary drops in the supply voltage, which in turn affected the timing of the 555 resulting in variations in pitch.

Let’s take a look at the circuit design and see what’s going on:

Figure 25. A circuit diagram outlining the changes to the amplification circuit.

After removing the op-amp from the board, I grabbed a breadboard to prototype these changes. I removed the 555 from its socket on the board, and routed each pin from the board socket to the 555 on the breadboard. This way I could use all the inputs and oscillation circuitry already on the board, but I could add the RC low pass filter before the power supply for the 555.

I then used an LM358 (which I’ll swap to a LM386 later as it’s cheaper and we only need a single channel op-amp, not a dual channel) and configured it as a voltage follower (buffer), with its output being directly throw a potentiometer set up as a voltage divider. The potentiometer wiper was then routed to the input of the Class B amplifier. I used an S8050 NPN and S8550 PNP transistor for this amplifier as it was all I had on hand (later swapped to a 2n3904 and 2n3906).

The output of the Class B amplifier has a DC offset of roughly 4.5 V (½ VCC) so I used a 10 μF electrolytic capacitor to AC couple the output signal, removing the DC offset as to not damage the speaker. With the speaker connected it was ready to test!

In this video I first test it with no RC low pass capacitor, and then swap in a 100 μF electrolytic capacitor. This is a 100 V capacitor and is way overkill, but I didn’t have any smaller ones (I salvaged this one from a dead board sometime ago).

As you can hear, the new design has already significantly increased the frequency stability even without the RC low pass capacitor, but still improves further with it added.

I’m really happy with this design now, and there are just a few more changes I wanted to make before ordering the new board.

The headphone output will now be super loud as the amplifier design is a lot better, so I’ll add a 4.7 KΩ resistor in series with the output going to the headphone jack to limit the volume a bit. I also increased the power LED resistor value as it was a little bright.

I also finally found some affordable logarithmic pots but the closest I could get to 10 KΩ was 5 KΩ. This should work fine, but to be sure, I tested it quickly with a linear 5 K pot just to be sure. Just a note, you can tell if a potentiometer is linear or logarithmic as a linear pot with start with a “B”, and a log pot will start with an “A” – e.g., “B5K” (linear) vs “A5K” (logarithmic). Note, I swapped back again to a B10K potentiometer, as I think the AliExpress seller was just selling linear potentiometers with the logarithmic A mark on them…!

Figure 25. The final schematic (v1.2).
Figure 26. A 3D render of the final PCB design (v1.2).

Prototype 3

With the updated PCB routed, I ordered the final set of PCBs from JLCPCB, and after a week, they had arrived, ready to be assembled. The assembly went smoothly, and after all components were soldering on, it was time to tune it.

With it tuned, I powered it on and happily, it worked amazingly! The tuning was pretty decent between octaves (other than the highest, which I’ll touch on later), the tuning between notes was perfect, and the amplifier circuit was working significantly better than in previous prototypes.

Here’s an uninterrupted demo of Littleroot Town: the headphone jack came in handy for recording!

“Littleroot Town”, composed by Gō Ichinose, Junichi Masuda, & Morikazu Aoki, from Pokémon Ruby, Sapphire, & Emerald (© Nintendo / Game Freak), is used under fair use as part of an educational demonstration.

Conclusion

What I learnt

This has been a very valuable project, and a really fun one too. I have learnt so much about analogue electronics and have really enjoyed learning about the oscillation cycles for the NE555 in an astable configuration, and RC oscillators. I’ve learnt a lot about what is required for sustained oscillation, and the effect of capacitors and resistors on the timing of oscillators.

Throughout this project, I developed my debugging skills by systematically isolating issues across the different circuit stages – especially with the Op-Amp/amplifier section. This iterative process has taught me the value of hypothesis testing and patient troubleshooting in circuit design. This iterative process also taught me a lot about how Op-Amps function and their applications in analogue circuit design.

I also became more comfortable with reading datasheets to select appropriate components, such as choosing the right op-amp for a single-supply operation, with low-noise performance and a low quiescent power draw.

Working through multiple iterations helped me improve my organisational and documentation skills – keeping notes on test results, changes, and design decisions for future reference revision.

I also learnt how to use KiCad for designing schematics, symbols, footprints, PCBs, and descriptive silkscreens.

This has been a very rewarding project, and I plan to continue learning about analogue electronics.

TL;DR:

  • Deepened understanding of analogue circuit design through hands-on experimentation
  • Gained experience with NE555 timers and RC oscillators for tone and vibrato effects
  • Learned to debug op-amp stages and identify stability and noise issues
  • Learnt about transistor based amplifiers, specifically Class B Amplifiers
  • Discovered the importance of signal filtering in audio electronics
  • Designed schematics, symbols, footprints, and PCBs using KiCad
  • Improved my understanding of the importance of appropriate component selection
  • Furthered my practical PCB assembly and soldering skills
  • Developed project documentation habits and learnt how to iterate effectively

Future Improvements

It the future, I’d like to improve this synthesizer project even more. I have a few ideas of some features I’d like to implement, and changes that could be made:

  • Square wave filtering with a network of RC (Resistor Capacitor) Filters to allow for different tone generation (i.e., square wave -> triangle wave -> approximate sine wave);
  • Improve octave pitch accuracy (use parallel capacitors of other value for the highest octave to decrease tolerance inaccuracies);
  • Disable the speaker output when headphones are plugged in (maybe using a transistor as a switch?). The output socket I used doesn’t have an incorporated switch so I’d probably have to use some sort of sensing circuit if I don’t change it out.

File Downloads

I have made the final KiCad project files Open-Source for anyone interested:

© 2025 Darcy Johnson. All rights reserved for all other site content unless otherwise stated.

References

[1] “555 Circuits Part 1,” Electronics Tutorials. https://www.electronics-tutorials.ws/waveforms/555-circuits-part-1.html

[2] “LM386 Low Voltage Audio Power Amplifier,” National Semiconductor, August 2000. https://www.jameco.com/Jameco/Products/ProdDS/839826.pdf

[3] “70. Phase Shift Oscillators,” The Offset Volt. https://www.youtube.com/watch?v=PN8iwDNj658

[4] “Op-Amp Voltage Buffer,” Ultimate Electronics. https://ultimateelectronicsbook.com/op-amp-voltage-buffer/

[5] “Class B Amplifier,” Electronics Tutorials. https://www.electronics-tutorials.ws/amplifier/amp_6.html

ChatGPT (OpenAI, GPT-4, GPT-3.5, 2025) – Used as a consulting aid to assist in understanding new circuit design concepts and amplifier topologies.

Thanks for reading 🙂