Friday, 16 May 2025

Synthesizer Extra's No.6: HOW TO MAKE PCB's USING KICAD 9.0

A short introduction to KiCad 9.0 and step by step guide to making PCB's in KiCad. I go through the steps with you and tell you my learning experience.

For some time now I've been watching how many of my website followers have been producing awesome PCB's from the schematics I posted instead of doing them on stripboard. Last week I decided the time had finally come for me to really get to grips with KiCad because I really wanted to be able to do that too. I had tried KiCad before and I also tried EasyEDA but found both sort of overwhelming. There's so much coming at you that it can seem impossible to get through but that's not true. You just have to know where to start. In this article I will try to explain how I learned KiCad in less than a week. I was advised to go with KiCad over EasyEDA and I'm glad I listened ^___^
Sadly, now I know how to make PCB's this will probably mean the end for the stripboard projects. Naturally, what's on this website will stay here and it will remain free for everyone to use but new projects will now be made with PCB's. More on this later.

First step: what is KiCad?
It's a free software that you can download from here.  (The name KiCad actually comes from the first letters of a company of Jean-Pierre Charras' friend "Ki", being combined with Cad which stands for Computer Aided Design. It was created in 1992 by Jean-Pierre Charras.)
The software consists of two destinct steps. In the first one you're going to draw a schematic and in the second step you're going to turn that schematic into a PCB design.
Once you downloaded KiCad and successfully installed it on your Mac or Windows 10 or 11 PC or your LINUX PC you can open it.
You'll be presented with a small start screen that shows all the options.


Go to the top left FILE section and click on 'New Project'. Choose a name for your project and confirm.
In the screen shown above there will now appear a project file with a schematic symbol and a PCB symbol. Click on the one with the schematic symbol in front of it. You can see my last project in this screen was the TB303 filter.

DRAWING A SCHEMATIC
Now you need to draw a schematic. 
In the Schematic editor, go to 'FILE' and choose page settings. Here you can fill in all the data that will appear in that little text box at the bottom right of the schematic drawing.


One more step before you can start drawing. We're going to import all the different components that we're going to need in our schematic like the transistors, the chips, the resistors etc.
To do that you click on the little opamp symbol on the right, 3rd from the top. Now the component library opens up. Actually, it's called the 'Symbol Library' and components are called symbols.


You can search in this library for anything you need. If the specific part you need isn't available, just choose a part that looks the same and has the same pinout. For instance, for the TB303 filter I needed 2SC945 transistors but they're not listed. So I chose the 2SC1815 which has the same pinout and was available. This is not simulation software so that doesn't matter as long as the pinout is the same!
Drag your components somewhere into the drawing. 
You can make your own symbols in the symbol editor if there are for instance rare vintage components that you can't find, you can draw it yourself and assign it electrical characteristics. But I'm not going into that here. In this tutorial I will keep calling them components.

CHOOSING A FOOTPRINT.
Each component needs a footprint assigned to it so the PCB editor knows how big it is and where the solder-pads need to go.
To do this click on your component until it lights up blue. Now it's selected, type 'E' on your keyboard or 'right-click' and go to 'PROPERTIES'. Now a pop-up appears where you can change the value of the component, the designator and there's also a field called 'Footprint'.  It's probably empty. Click on it and you'll see three little books appear at the right of the footprints field, with one book leaning against two others. That's the symbol for the footprint library.


Click on the little books. Now the Footprint library opens. 
Look for your component name and find the footprint with the dimensions you want. This is going to be a bit of a task in the beginning because there's a lot to choose from. Most footprints have PDF datasheets attached to them that you can click and see for which components they were made. You don't have to choose the exact same component name to get a usable footprint. You can assign any footprint to any component, as long as they have the same number of pins. Once you found a footprint you like, save it in your own library so you can quickly find it again. You can edit any footprint in the 'Footprint Editor' which is the symbol that looks like a DIP6 chip with blue blocks on the legs in the top middle of the page.
You can give it bigger pads for instance. There you can also make your own footprints from scratch.
You can create your own footprint library by right clicking in the Footprint Editor, on the footprint name. A pop-up will appear where you can give it a new name and save it, and at the bottom left is a button called 'New Library'. Click that to make your own library that will appear in the list in alphabetical order, depending on the name you gave it. You can not save an alterred footprint back into its original folder because they are 'read only'.



Above is the footprint I use for resistors. 
You need to assign a footprint to one component first and then, when drawing the schematic, when you need more of them you just duplicate the first one by selecting it and clicking CTRL + D. That way all the changes you made and the footprint you chose will be duplicated with the component and you don't have to set one for every little component in your schematic. This saves a lot of work.


START DRAWING
When you imported all your components and gave them all footprints you can start drawing. Place the components where you want them and connect them together with the wire tool which is the thin line symbol on the right, 4th from the top. Use CTRL+D to duplicate any component if you need more of them. Like I mentioned before, this will save you having to enter a footprint for every component you use, because it will be duplicated with the component.
Press 'R' to rotate a component.

ABOUT THE POWER SECTION
Now you need to add a little drawing of the power input to your circuit, separate from the main schematic. You need to select a connector with 2 pins (for + and GND) or 3 pins (for + GND and -) or a Eurorack connector or something else and choose a footprint for it. Click on the 'GROUND' symbol (the one with one vertical and 3 horizontal lines under it, you know) on the right and choose for instance the +12V and attach it to the plus line. Choose the GND symbol for ground and for instance the -12V for the negative voltage rail. 
Now go to the ground symbol again and choose the PWR_FLAG symbol and connect a power flag to each of your power lines. +, gnd and -. They must be connected right to the wire that comes out of the power input connector. They may not be connected to wires after components that are connected to the power input connector. They must be directly connected to the input. That way the software knows were the power comes from. You don't have to connect this part to the rest of the schematic. When you use, for instance, +12V symbols anywhere in the schematic, the software will know it connects to the power input section when you used the same symbol.
If you use a voltage regulator on the board, for instance for an extra +5V powerrails, you don't have to connect a power flag to that +5V line. It's only for power that comes into the board from outside.

When you completed your drawing you need to check it for mistakes. You do that by clicking on the Electrical Rules Checker. That's the 6th symbol from the right on the top menu bar. The one that looks like a list with a red circle with a check mark in it.

ANNOTATING YOUR SCHEMATIC
Every schematic needs to be annotated to make sure every component has a name the PCB editor understands. It puts a 1 after the name of potmeters and in- and outputs. If there are sub circuits that work independently of eachother they will be assigned different numbers to tell them apart.
To annotate a schematic, go to the TOOLS menu and click on 'Annotate Schematic'. You must also do this after you changed the footprint of a component for an other one, to update the schematic.
After the schematic is finished and has zero errors you can go over to the PCB editor to turn it into a PCB design. Don't forget to save it of course.

MAKE SURE YOUR SCHEMATIC HAS NO ERRORS IN IT BECAUSE THOSE ERRORS WILL BE CARRIED OVER TO THE PCB LATER.
Pay special attention to the power connections of any opamps in your schematic! I went wrong there many times and had components connected to the wrong polarization.

THE PCB EDITOR
Click on the symbol for the PCB editor and let's get designing.
First we're going to go the FILE > 'Page Settings' and again fill in the data for under in the text box of the drawing. It's good practise to do this although not really necessary. 
Now, in the FILE menu, click on Board Settings. Here you can input a ton of things that you want your PCB to comply with. Forget all that for now. I just want you to click on 'Design Rule Constraints'.


Here you can set the minimum track width and other parameters that influence the copper on the board. I only really change the minimum track width to 0.4 or 0.5mm and leave the rest as it is.
Sometimes when checking a PCB for mistakes you will get a warning that there is a problem with the thermal connection of a ground pad. If you set 'Minimum Thermal Relief Spoke Count' to 1 those warnings will go away.
Now, the moment of truth. 

IMPORTING THE COMPONENTS TO THE PCB
Click on 'Update PCB from Schematic' (the middle symbol of the three shown above) or click F8 to import all your components into the PCB Editor.
You now see all your component outlines in a small space. This is called the rats nest.
Now you need to pull all this out with your mouse and start placing the components on the field in somewhat the same position as they have on the schematic. This way you get the shortest tracks between them. Pull it all out and use as many space as you want. When you have everything ordered you can start placing the components closer together and build up a nice compact PCB layout with the shortest tracks possible. You will see what is connected to what when you drag the components around.
You'll see a thin line that connects the component to other components. Sometimes, when you drag a component around, those connections will jump between different points. Those are usually the power and ground pads and the software chooses the shortest connection.
The Ratsnest:

Once you got all this done you can start drawing the traces between the components by hand. There is a plugin that you can install, that will do it automatically, but I want you to do it by hand. This works much better. You must choose the F.Cu layer to draw on the front of the board and you must click on the B.Cu layer to draw on the back side. It is good practise to draw as many of the horizontal tracks on one layer while drawing the vertical tracks on the other layer. This prevents cross-talk and noise.
If you can't lay a track because the way is blocked by other tracks, attach a 'via' to move to the other side of the board and continue the track there. To place a Via, right click on the active track as you're laying it and choose 'place through via'. Make sure there is no track sticking out in front of the via. That can become an unconnected track later and you'll have to find it and delete it. Before planting the Via in its place I always shake the mouse a little to get rid of bits of track sticking out where I don't want them.
TIP: Leave all the connections marked 'GROUND' unconnected. We're going to use a groundplane to connect all those together at once, later.

AFTER THE TRACKS ARE DONE.
Okay, so you have your first PCB set up. Now you need to define the edge of the board. Select the 'Edge Cuts' layer for that. Now choose the 'Draw Rectangles' tool and draw a square around your board. Leave a few millimeters between the outline and the outer components.
Once you have this done you can choose to round off the corners. For that, right click on the outline of the board and choose 'Shape Modification' from the menu. You can enter the radius of the curves in millimeters. You can also add mounting holes in the corners with the circle tool.
In between all these steps, regularly check your progress with the 'Design Rules Checker'. It will tell you what's wrong with the board. If you don't understand a certain mistake that is listed, just Google it. Many have gone before you and there are solutions to be found for all the possible mistakes you can make.
Checking for mistakes is called running the DRC but I always call it 'Run DMC' after the rappers :)
Oh, very droll sir!

ADDING GROUNDPLANES.
One more step is to add groundplanes to fill up the board with copper and connect all the ground points together. Click on the B.Cu layer and now click the 'Draw Fill Zones' symbol or click CTRL+SHIFT+Z.
Take that tool and draw an outline around the board just like the edge cuts outline. Use the mouse wheel to zoom right in on the corners. When the outline is completed, go to EDIT > Fil All Zones or click 'B' to fill in the backside. Now select the F.Cu layer and repeat the proces for the front layer.
Again do the Run DMC, I mean run the DRC to check for errors. The warnings are not vital but the errors need to be fixed before a PCB can be made. But you'll learn soon enough how to fix the warnings too. Google is a great help for this.
You need to be aware that there will be places where the groundplane can't reach because it is blocked by tracks from all sides. In that case you'll have to connect those grounds together with a track and make sure the track reaches a ground pad that is covered by the groundplane. An indicator that such a problem occured is when you get an error without explanation. 

ADDING TEXT.
You will see that the Silkscreen text next to the components (the one in yellow) only shows the designators. It's handy to put the values in too. You could double click on the designators and change them to values but then you'll get a lot of double designator warnings and should you make any changes to the board after that, all your text will flip back to designators and you can start all over again. No, it's better to click on the F.Silkscreen layer and use the TEXT tool to put the values next to the components. Make sure your text doesn't touch any of the solderpads or the yellow lines around the components. That will give problems in production with the soldermask overlapping the silkscreen or text overlapping silkscreen.


You can see what your finished board will look like by clicking on the 3D viewer or clicking 'ALT + 3'. This will even work if you haven't drawn the outline of the board yet.


ADDING LOGOs OR IMAGES TO YOUR PCB.
To add an image to your PCB first measure the space on the PCB where the image will sit in mm. 
Now click in the main start menu on the Image Converter.
Click on 'Load Source Image' at the top right.
Load your image and set the output size to the size you measured.
Choose Footprint Layer F.Silkscreen
Click 'export to clipboard'
Now go back to the PCB editor and click <CTRL + V>. The image appears and you can drag it in place.
You'll see a G*** watermark over your image. Just click on it and delete it.
To place an image on the backside of the PCB just press 'F' on your keyboard.

And that's how that works. 

MAKING THE GERBER FILES.
Now all you need to do is make the files necessary for production of the PCB's.
First do a final check and make sure your design is faultless. A few warnings will probably remain in the beginning but they are not crucial but 'errors' must be seen to and repaired.
A common problem will be that you need to move a component a little. To do that you must first go to Edit and choose 'Unfill All Zones'. Then you need to click on all the tracks connected to that component and delete them. Then move the component to its new place and reconnect the tracks. Then refill the zones by clicking 'Refil Zones' and then checking the Run DMC eurrh run the DRC.

Okay, now we want them files, hand them over!
Click on 'FILE > Fabrication Outputs' and choose Gerbers.


You can leave all the settings at their defaults, at least if you order your PCB's at JLCPCB which I recommend. Make sure 'Subtrackt soldermask from silkscreen' is checked on. 


Now at the top, fill in the destination folder for your files. Click on the folder symbol and go into your project folder and make a folder with the name of the project followed by 'gerbers', or something like that. You can give it any name you want.
Now click on 'Plot' at the bottom and your folder will be filled up with Gerber files. But we also need to make the drill files so click in that same field on 'Generate Drill Files...'. A new pop-up will appear:


Leave everything as it is in the picture above and click on 'Generate'. Then click 'close'.

You will know when you checked something on that you shouldn't have, because JLCPCB won't accept it. You'll get an 'Parameter Exception' error message when uploading the Gerbers to their website.

Your production folder will now contain 14 files.


Select all these files with CTRL + A and the right-click and put them all in a ZIP file.

ORDERING YOUR PCB's
After you finished your first projects you will be tempted to order the PCB's rightaway. Don't do that just yet. Sleep over it until the next day and then before you order, check your schematic for errors. Believe me I speak from experience. I thought I had been so thorough in checking but when I started out I spent more than €200 on PCB's that could go straight in the bin because they contained hidden errors.
You need a clear head for this and the mistakes will jump out at you. This saves you money and disappointment. If you have discovered errors you need to fix them in the schematic first. Then save the schematic and go to the PCB editor and import the changes from the schematic. Now you must also make the changes in the PCB design en run the DCR checker.
Naturally, if you corrected errors you must make new Gerber files before ordering your PCB's. Delete all the faulty Gerbers before you make new ones to prevent mistakes,

When everything is fine you can go to the JLCPCB website and drag that Gerber ZIP file into the box 'Add Gerber File' and you will instantly see you design appear on their website with how much it'll cost you (usually € 2,- for 5 PCB's). 5 PCB's is the minimum you must order. You can choose between a few colours like purple, yellow, red, blue and green. An other colour does cost a little extra though and it takes 2 more days to produce,
If you choose green boards and use the most cost effective shipping (€1,50) your boards will cost about €0,85 a piece for a minimum of 5 provided they are smaller than 10 x 10 CM. The cheapest shipping option is 'Global Standard Direct Line' which takes 12 to 16 businessdays.


An there you have it. Now you can make PCB's. I found the proces quite addictive and for the last week I've been doing nothing but sit behind my two PC's making PCB's :)  (The schematic on one PC screen and KiCad on the other.) Dispite it being beautiful spring weather outside. I love it! I've already ordered two filter designs and the last one, the TB303 had zero errors and zero warnings and I've only been doing this for a week!!

Make at least 4 test projects before you start thinking of ordering PCB's. I've invested a full week in learning. I spent at least 10 hours a day on this because when I set my teeth into a new project I simply can't stop until I understand it. You'll need to be determined to learn this and then you will see quite soon that it is really not that difficult.

If you have any questions about this proces I'd prefer you this time to post them in the Facebook group first. You'll get answers sooner because a lot of the group use KiCad.

SOME COMMON WARNINGS AND THEIR SOLUTIONS:
Here I will list warnings, and errors and their solutions. I'll add to the list as I come across more.
I've had many different problems to solve already but I forgot to write them all down but here's one I came across last time I used KiCad.

FIRST TRY THIS.
With most errors, it's just a matter of updating from the schematic, so in the PCB editor click 'update changes from schematic' even if you haven't made any changes. Now open the DRC checker and click detele all markers and run the checker again. Errors and warnings that show up now will have a valid reason for why they are there.

INPUT POWER PIN NOT DRIVEN BY ANY OUTPUT POWER PINS:
The input of a component that needs a connection to the powerrails seems not to be connected to any power rails. 
If you are sure your schematic is solid and faultless, you can simply ignore this warning.

"TRACK HAS UNCONNECTED END" warning. This is a warning not an error meaning that if you order your PCB with this issue unresolved, you'll probably still be okay.
This warning comes up when there are little bits of track underneath an other track, maybe from moving a component and reattaching the tracks. Anyway, to solve this, go to TOOLS > 'Clean up tracks and vias'. If that doesn't work, pull the component out of the board and check underneath for bits of track. Delete them and the track that attached to the component so everything is clean and then put the component back in and reattach the tracks.
Now check the Run DMC thing again and your problems will probably be gone. If not, go to that track, delete it and draw it in again.

NO ERROR WARNING BUT THERE'S STILL A RED CIRCLE when I do the DRC.
If, like me, you connect all the grounds together by using groundplanes (fill zones) for the front and back layers then you can get this error. There's no error message but after the test the error circle stays red with a number or errors listed. This usually means that there are connections to ground that can't be made because the fill zone can't reach that component. The component is shielded by tracks. In this case you have to unfill the board and connect those grounds together with tracks. 
It can also be an other track. When you see the red circle with a number inside and no warning text this means there a track you've forgotten to connect. Go over the board and look for unconnected components.

MISSING FOOTPRINT and EXTRA FOOTPRINT for the same component(s).
I'm not sure what causes this but it happened to me and I went back into the schematic, right clicked on the component the warning applied to and, opened 'Properties' and just clicked on the same footprint I had already chosen for it. Then I updated the PCB from Schematic and the problem was gone.

TIP: If you want to delete all tracks and start again you can do so by going to  EDIT > Global Deletions. There you can check what you want to delete and then it will be deleted for the whole PCB.

HAVE YOU EVER WONDERED HOW THOSE PCBs ARE MADE IN CHINA??
Watch this:



And that's it for this tutorial. I hope it was helpful for you.




Sunday, 20 April 2025

Synthesizer Build part-68: VC DELAY by BMC.

This is BMC 83 the voltage controlled delay using the Princeton Technology (PT) 2399 chip. This is a eurorack friendly project.

Dispite the fact I built over 68 projects I never build a digital delay or reverb, except for project 11 but that was a ready made effects unit. This project takes care of that. It can deliver good fidelity delays of up to 1 second. It can actually do delays of upto 4 seconds but then the fidelity drops fast. The PT2399 wasn't made for such long delay times but shorter times, upto a second, sound really good and with the long times you get some cool distortion, sort of a bitcrush effect.
This was quite an easy project to build. You can find the original article on the Barton Musical Circuits website. There are audio demonstrations on that website so you can hear what the delay sounds like. I also made a demo video myself which you can find at the bottom of this article.
This circuit will work fine on both a dual 12V or a dual 15V powersupply.


The finished delay module

Here's the schematic I used to make my layout from. I changed the opamp numbering to match that of the layout.


I didn't use the 10 Ω resistors in the powerrails as shown on the schematic. But if you have problems with hum you can include them. On the layout below, you could put a 10 Ω resistor from K-3 to I-3 and then lead the red wirebridges from there and the purple wirebridge could be replaced with a 10 Ω resistor for the negative voltage rails.
The diode and 1M resistor in combination with the 100nF cap and the top transistor with collector to pin 6 of the PT2399 make up an anti latch-up circuit that presents a high impedance to pin 6 in the first 400mSec after you switch on which gives the internal oscillator time to warm up and prevents the chip from latching up and crashing which can happen if the resistance between pin 6 and ground is less than 2K at start-up. After start-up this resistance can be much lower but not a straight short to ground. In this module the resistance is then controlled by the second transistor which is opened up by the time control potmeter or external CV input. This resistance controls the delay time.
So there are voltage controls with level potmeters for the delay time and the return amount and the module has an audio output that outputs just the delayed signal and a mixed audio output which mixes the original signal in with the delayed signal controlled by the 'Mix' potmeter. There's also a tone control potmeter which also influences the return time I noticed (see demo video below)
The delay time range goes from 60 milliseconds to 4 seconds but like I mentioned earlier the audio fidelity drops quite a bit with longer delay times, mostly at times longer than 2 seconds but that doesn't have to be a bad thing. It has quite a cool distortion effect. With the longest delay times you do get some clicks and artifacts mixed in the audio but it's not much. The delay times are controlled by the two transistors forming a voltage controlled current sink. The 47 Î© resistor at the emitter of the bottom transistor determins the shortest delay time while the 330K in parallel from the collector to ground determins the maximum delay time.
In my own build I did notice quite some dead space at the beginning (ccw side) of the 'Time' potmeter but lowering the value of the 47 Î© resistor didn't do anything. 
I urge you to download the PDF accompanying the original project. It has a comprehensive description of how the circuit works and what all the components do. 
Here's a block diagram of how the delay works. This is also from the PDF that comes with the build instructions on the BMC website


Audio in 2 is the Return input and it has the Direct Output normalled to the socket switch. So if you take the direct output into an external effect module and take the output from that module and connect it to the return input you can have an external effects loop going, creating all sorts of possibilities. You can, for instance, lead the direct output into a lowpass filter and have the VCF out connected back to the return input.

HOW TO PATCH UP THE MODULE:
To get the best out of this module you need to make a synthesizer voice in your modular synthesizer where this delay sits behind the VCA at the end of the signal chain. You can also patch it up so that the delay sits inbetween two VCA's and have the second VCA opened by an ADSR with a slow Release time. That way you get more control over the Delay time, but it's not necessary. The minimum Delay time is 60mSeconds so it won't be able to create flanging or chorus effects. But you can mix in the effect with the clean signal by using the Mix control and the Mix output.

LAYOUTS:
Here are the layouts I made for this project. They are verified as always. I used them to build my module. This was almost another hole in one. I made one little mistake. I had all four non inverting inputs of the TL074 grounded only the last opamp with the direct output must not be grounded. Once I corrected that the circuit sprung to life. Pins 5 and 10 of the TL074 are connected through the strip underneath the chip. The 'Tone' control potmeter has pin 1 not connected. It's important to wire it the way you see in the layout or it won't work properly.
Wiring:


Stripboard only:


Cuts and wirebridges. You know the drill, mark the cuts on the component side using this guide and then stick a pin through the marked holes and mark them again on the copper side. Then cut the marked positions with a hand held 6- or 7mm dril bit.
Don't forget to cut position P-8 underneath the ground wirebridge.


Here is the Bill of Materials. 
It might be a good idea to use a logarithmic 100K potmeter (A100K) for the return potmeter. A lot of changes happen quite early in the throw of that potmeter. However I used a linear 100K myself and that works fine too. But the log type would be more convenient. You could use other value potmeters for all but the Tone Control. That has to be a 10K linear potmeter. The other potmeters are just voltage dividers in this circuit.


PICTURES:
Here are some pictures from the build proces:
I left out the two short wirebridges that connect all 3 ground strips at the eurorack connector together. Instead I soldered them together with some extra solder bridging the gaps.


Stripboard all wired up for testing. I normally only wire things up when I have the panel ready so I can keep the wires as short as possible but with this module I had to be sure first that everything worked. Anyway, it made mounting the board behind the panel easier coz no need for soldering and I was able to stuff all the wiring underneath the stripboard out of harms way.


This is the panel with the waterslide paper applied ready to receive a final thick coat of clear lacquer. The panel is 14hp wide (7CM). the width I normally use because it allows me to mount the stripboard flat behind the panel keeping the depth to a minimum.


Here's the panel design I made in Photoshop just in case you want to use it. It's in A-4 format 300pix/Inch resolution.

Module on the test bench:


The rear of the module. It's 3.8 cm deep so it will fit any Eurorack case.


VIDEO DEMO:
Here's a little demo I recorded showing the module in action.



Here's an interesting look at the inside workings of the PT2399 chip: --- click here ---

Okay, that's it for this one. Hope you like it.

If you have any questions or remarks about this project please put them in the comments below. Remember comments are moderated so they don't appear straightaway. Only after I read them.
You can also post questions on the special FaceBook group for this website.



Sunday, 6 April 2025

Synthesizer Build part-67: KASSUTRONICS PRECISION ADSR.

The best version of the 7555 based ADSR's on this website. This one uses precision rectifiers to eliminate the problems the previous versions have. This project is small enough for Eurorack and runs fine on dual 12V or 15V and is easy to build even for beginners.

This is another version of the two 7555 ADSR's you've already seen on this website. The previous ones by Yusynth and Rene Schmitz had the problem that, because of diode voltage drop, the envelope wouldn't get down to 0 Volt after each cycle. The diode in series with the release potmeter would stop conducting when the voltage dropped to the threshold of 700mV in case of a 1N4148 and around 300mV for Schottky diodes.
This ADSR eliminates that problem.
By using precision rectifiers made up of a diode inside the feedback loop of an opamp, you solve the problem of the 700mVolt remaining after the release cycle and so the ADSR not returning to 0 Volt after each cycle. The opamp now has that voltage drop in the feedback loop and compensates for it, effectively creating a perfect diode.
I tried to address the voltage drop problem in the Rene Schmitz version by using Schottky diodes that have a very low voltage drop of about 0.3 V (300mV) and that already helped a lot. This version lowers that even further although on my oscilloscope I could still measure a tiny bit of voltage left over but the majority of that was due to the capacitor I was using. It was about 90mV. I used a normal electrolytic capacitor for testing. I then tried a Tantalum capacitor and that lowered the offset to around 10 to 20mV. That's almost the noise floor so really no problem what so ever. It's 35 times better than using a 1N4148 in the Yusynth ADSR. The reason for this is transistor resistance. The Gate voltage, if switched by a transistor, never reaches zero because of transistor resistance. But this is such a low voltage that you can totally ignore it. So please don't go fretting about 20 thousandths of a Volt. 20mV is equal to 0V!!
Use a 1µF Tantalum capacitor like the schematic says. The slowest risetime you can create with 1µF is 1.2 seconds. If you want longer risetimes you need to connect two caps to a switch so you switch between low and high speeds. That's up to you. I didn't include that option in this project but it's very easy to implement. 
If you want to read more about this ADSR then here's the link to the Kassutronics webpage.

SCHEMATIC
I made some changes to the design of this ADSR. For one, I don't like the high value resistors on the gate input. I always get problems with the gate pulse not getting through. So because the Rene Schmitz version works so well I copied the Gate/Trigger section from that ADSR and put it in this one too. It's practically the same circuit but with different resistor values.
I also changed the inverted output to an attenuverted output. I find that much more useful because you can play with the attenuverter while you're feeding the ADSR signal into the CV input of a filter and get all sorts of cool sounds from it. You can turn it into a normal output if you need an extra output. Much more versatile I think. The schematic below has all the changes I made included.


Eventhough I used BAT43 Schottky diodes for D1 and D2 in the layouts below, you can just put in 1N4148 diodes. The voltagedrop isn't important here and both diodes have the same switching speed of 5nSec. They are just used here as reverse voltage protection.

Here's the KiCad version of the schematic. I'm teaching myself to work with KiCad and it's going very well. I taught myself in 3 days.


LAYOUTS:
Below are the layouts I made for this project. As always they are verified. I used them to build my ADSR and it worked rightaway. An other hole in one. 
I alterred the layouts a little one day after posting this article in so far that I added a transistor to drive the LED to avoid pulling down the envelope voltage. 

Wiring: (All potmeters viewed from the backside!) As you can see the potmeter wiring is a bit complicated looking so be accurate when wiring up the pots! 


Stripboard only:
If with testing you notice that the envelope doesn't come up when the Attack potmeter is fully closed then use a 330 Ω resistor in series with the Attack potmeter (R8) instead of the 100 Ω in the schematic. This is something I had to do with my build. 


Cuts and wirebridges seen from the component side.
You know the drill, mark the cuts on the component side, stick a pin through the marked holes and mark them again on the copper side and then cut on the marks.


Here's the Bill of Materials.
Not every component is numbered exactly as in the schematic but most of the resistors are. Order a Tantalum capacitor for C3 1µF/35V. You can use any type of 7555 timer chip. I used the ICM7555. Don't use a normal NE555 though. It might work but they're not ideal. It needs to be a CMOS type.
As usual I didn't put any decoupling caps in but if you want to include it, there's room enough on the stripboard. You can put two 100nF caps; one from plus to ground and one from ground to minus. If you feel you need extra stabilization put some 10µF caps over the power rails too. That's up to you, the ADSR works fine without them.



PICTURES and test results:
This ADSR has a very fast risetime. I measured risetimes of 550µSeconds! The output amplitude of the envelope has a maximum voltage of 8.4 Volt when you run this on a +/-12 Volt power supply. Maximum Sustain level is 8 Volts. This is determined by pin 6 of the 7555 (Threshold) which stops charging the capacitor at 2/3rds of VDD. (+8V). The timer stops and the capacitor is discharged through the Decay potmeter and U2-D and D4 to the Sustain level. The output will stay at the Sustain level until the Gate input stops. Then the capacitor will discharge through the Release potmeter, U2-A and D3 to 0V. As I mentioned before, the maximum risetime of the Attack phase is 1.2 seconds with a 1µF cap. If you need longer times you can put a 1µF and a 10µF on a switch and connect that to the stripboard, so you have a choise. The fast times sound amazing though when used on filters (especially the 303 filter).
Here are some pictures of the finished product. They were taken in the test phase so some components that are on the layout are not in these pictures (like the LED driver transistor for instance).



I used the same faceplate as I used for my previous 7555 ADSR's. I just exchanged the stripboard for this one and wired everything up again.


Here are some screenshots from the oscilloscope. The first one shows the extremely fast risetime of this ADSR/ With Attack set to zero you can get risetimes of 550µSeconds. This with a Tantalum cap and a 330 Ω resistor in series with the Attack potmeter, instead of 100 Ω in the schematic.


Below is a screenshot of the quickest pulse I could get with all potmeters closed. You can see the risetime is the same as above, about 550µSec and the releasetime is faster because it only has 100 Ω in series. It's about 400µSec.Total time is 992µSec. So you could create a waveform with a top frequency of 1kHz with this ADSR.


Below here is the normal and inverted output. The voltages indicated by the scope are a bit lower because I had the LED connected straight to the output. I now have the LED driven by a transistor which means no voltage pull-down so the real maximum voltage is about 8.4 Volt. Max sustain voltage is 8 Volt as is the case with all ADSR's that use a 7555 and are run on +12V because that voltage is 2/3rds the voltage of the positive powerrails. If you run it on +/-15V it would be +10V.
The sustain is actually very stable because of the use of precision rectifiers. There is no leakage of voltage from the sustain stage.



Well, that is pretty much all I have to say about this. It was a pretty fast build, done on a sunday afternoon and because I re-used the faceplate and potmeters etc it wasn't that much work. I hope you enjoy building it. This is without doubt the best one of the three 7555 ADSR's on my website.

TIP: using your ADSR as a VCO. Send the squarewave output of a VCO to the Gate input of the ADSR. Now your ADSR acts as a VCO and with the Attack and Decay you can shape your own wave. It's a trick used in the Psy-Trance. This ADSR is fast enough to do this. I tried it and it sounds pretty cool when you then input it into a filter.

There is one more ADSR design that tries to really come down to zero volts after each cycle and that is the ADSR PRO by Davor Slamnig. You can visit his website by clicking here.

If you have any questions or remarks about this project then please put them in the comments below. Comments are moderated and don't appear straightaway!
You can also post your questions on the special facebook group for this website.


Friday, 28 March 2025

Synthesizer Build part-66: ROLAND TB-303 VCF.

The famous acid house filter from the Roland TB-303. A Eurorack friendly project and a ladder-filter that sounds amazing. 

This is the 14th filter on this website and this is one with a very specific sound so I thought let's make a project out of this because I think that this filter in particular will be of great interest to many people because of it's unique sound. I based my layout on a layout that Jake Jakaan made from a schematic he found online in combination with the original service manual schematic of the TB-303 (TB 303 stands for Transistor Base 303). 
I have to warn you, the filter sounds great in itself but to get that Acid-House sound out of it requires more than just this filter. That specific sound is a delicate balance between filter settings and envelope input and maybe some LFO or offset voltage added. When I first tried this filter I didn't get anything near that classic sound. However, I found some tips and instructions online which helped a lot. I posted a very helpful short video at the bottom of this article below the video demo's that tels you how to get that sound.
I got close in the end though as you can see in the demo video below. My mate Jake Jakaan built a few of these filters and he can really make them sound like a 303 should sound but then he's a professional musician. 
This is really the first filter I ever built that you have to learn how to use. I'm getting there tho ;)

A LITTLE HISTORY:
The TB303 was a bass synthesizer made by Roland and released in 1981. It was supposed to simulate bass guitars but it sounded nothing like a bass guitar and it became a commercial flop. It was taken out of production in 1984 after a run of 10.000 units. These were sold off cheaply by Roland. (If only we knew then what we know now @___@)  However, cheap second hand 303's were picked up by electronic musicians and the twirping, squelching sound became a main stay of electronic dance music genres like Acid House, Chicago house and Techno. There are now numerous clones on the market and original units fetch prices of over $3000,- on the second hand market. Originals were also modified in the 80's, adding distortion and external inputs (Nova mod).
The TB-303 was designed by Tadao Kikumoto who also designed the TR-909 drum machine. It has a single oscillator which produces a sawtooth wave or a squarewave. This goes into a 24dB/Oct lowpass ladderfilter which is manipulated by an envelope generator. 
I have read that it's actually an 18dB/Oct lowpass filter instead of 24dB but I don't know if that's true.

SCHEMATIC:
Here is the schematic. It's a bit low resolution because this was originally a file with a black background and bright green lines. I took it into Photoshop and inverted the image and brightened it up and made it more legible. I also included the transistor pinouts. All transistors on the schematic are NPN 2SC945's except for the two at the bottom marked 733. Those are two 2SA733 PNP transistors.


The capacitors in the schematic are not marked as polarized but the 10µF electrolytic caps are obviously polarized and for the 1µF you can use either type. Polarized or non-polarized. I used polarized caps in the layouts below so that you can see where the minus pole goes if you choose to use polarized caps.

Here's the filter part of the service manual schematic for reference. It has two 2K2 resistors from +12V to T1 and T2 but I think that's a misprint. It needs to be 22K:


The filter does not use any negative voltage. It is powered by +12V and it also needs a +5V powerrails which is provided by the onboard voltage regulator. The +12V goes through a 100 Ohm resistor. I wondered whether or not to include that but I wanted to see how much voltage that resistor takes off from the original 12V and it's only 0.2V so I left it in.
Staying true to the original includes using 2SC945 transistors for the NPN trannies and 2SA733 for the PNP transistors. You can however use other transistors like the BC547 and BC557 but beware when you do because you'll have to redo the layouts. The 2SC945 and 2SA733 have an unusual pinout. It's emitter to the left, collector in the middle and base to the right. I had to constantly keep this in mind when designing the layouts and it wasn't easy but I managed it in a day.
The transistor pairs at the top and bottom of the ladder and the transistors next to it with the common emitter connection need to be matched pairs!! Very important with this filter.
I came to the conclusion that my usual method of matching on Hfe didn't meet the case here so I did it with setting up a differential amplifier on a small breadboard. The method is shown below.
I ordered a hundred of the 2SC945's and made 10 matched pairs and I used those transistors in this project even with the middle trannies in the ladder. I thought I might aswell use all matched transistors but you don't have to do that. You can use other transistor types like the BC547 and BC557 which are used in the Doepfer A-103 VCF6 filter but you'll have to redesign the layout because their pinout is different from the 2SC and 2SA transistors I used.
Two resistors in the circuit have been replaced by trimmer potmeters so we can tune them in to our liking. These are in the Cutoff and Resonance control so they are important to the sound and they do make quite a difference. The way I set them was almost fully open for both (max. resistance).
To make things extra clear I just completed the KiCad version of this schematic:



MATCHING TRANSISTORS.
For this filter I didn't want to rely on just measuring Hfe and matching the transistors on that value. I used the Ian Fritz methode. I took a small piece of stripboard and set up a simple differential amplifier with two transistors. If the transistors are matched then the voltage measured between the two emitters should be zero. Make sure you let the transistors cool down after handling them with your fingers.
For D1 any silicon diode will do. The voltage drop over this diode ensures both transistors get exactly the same Collector Base voltage. Beware this setup requires a dual voltage source of +/-12V. You also need to make sure the two 100K resistors have exactly the same value.


You then need to switch the transistor positions and measure again. I didn't bother with that though. An other method is to leave one transistor in place and change the second one. If you find two transistors that display the same voltage difference from the fixed transistor, those two will be matched.

This method worked very well. I used matched pairs throughout the ladder filter and also for the differential amplifier made up of T1 and T2.

Please read the full article on transistor matching by downloading the article by Ian Fritz. 

Below is a picture of my transistor matching stripboard. I can get them matched to within 1/10,000th of a Volt or 0.1 milliVolt. I cut a DIP8 IC socket in half and connected the top and bottom pin together. I use that as socket for the transistors under test and with this setup I can measure NPN transistors with different pinouts because I have an emitter contact at the top and the bottom. I placed the sockets away from eachother to make it easier to change transistors without influencing the other transistor. I usually accept transistors that measure a difference within 0.3 milliVolt or lower. If you go to extremes with accuracy you'll be measuring until doomsday before you find a match.


LAYOUTS:
Below are the layouts for this project which are verified as ever. I used them to build my filter.

Wiring:
I numbered the transistors that are not part of the ladder, using the same order as in the schematic so you can easily understand which transistor is which when you compare it with the schematic. The light grey transistors are the 2SA733's. I included an extra CV input with the same level control as the Envelope input. 
The transistors in the ladder have the base and collector connected together so they actually function as diodes.
As you can see the envelope and CV input level potmeters have pin 3 connected to a 10K resistor and not straight to ground as is usual with input level potmeters. This is done so that the Envelope input is never fully closed. This is also the case in the original Roland TB-303 because the envelope input is very important for the characteristic sound of this filter. In my own build I did connect pin 3 of the CV potmeter straight to ground instead of the 10K resistor because I wanted to be able to fully close that input. So I leave it up to you how you want to wire that up.
If you look closely at the audio input you can see a 220K resistor on the stripboard that isn't used. I have the audio going straight into the filter through the 1µF cap. Originally that 220K should be in series with that cap but I think the value is too high. I later experimented with a lower value but you can also leave the resistor out.


Stripboard only view:


Cuts and wirebridges seen from the component side. As always, mark the cuts on the component side with a Sharpie or Edding marker and then stick a pin through the marked holes and mark them again on the copper side. Then cut the strips at the marked positions with a sharp hand held 6- or 7mm drill bit.


Bill of materials:


PICTURES:
Here are some pictures of the build proces:
Cuts and wirebridges done:


Everything is soldered in.



Here's the design I made for the panel. Feel free to us it if you want.


And here's how the panel came out:


You can see the colours don't come out as strong with clear waterslide paper as opposed to using white waterslide paper. But I like this effect. The design shouldn't be too overpowering I think.

Here's a look at the finished module:


Side/rear view. I had built a version before this one but it didn't work but I re-used the panel I made so the mounting holes are not positioned where they need to be so that's why the M3 bolt is bent sideways.


VIDEO DEMO:
This filter has that typical ladder filter quirck where if you turn the resonance up the volume goes down and you get less bass. Most ladder filters have this characteristic. The Moog ladderfilter does it and even the Doepfer A-103 VCF-6 does it. 
Here's demo, trying to get that Acid sound using some of the tips from the YouTube short video below. I came close but it's not quite there. I had a slowly rising sinewave on the CV input and a short pulsing envelope, with just some decay and all the other parameters of the ADSR closed. Instead of an LFO I think an offset voltage alone would be better. You can hear it reaches that "eeeuuurrrghhh" sound as the LFO rises in voltage but then it gets too high and it starts to whistle more. I'm going to do more experiments, using the voltage processor and see where that gets me.


Here's an other short test. Beside the envelope input I also had an offset voltage going into the CV input. That offset voltage came from the dual voltage processor to which I also had a sawtooth LFO connected. I set the processor in such a way that I always fed an offset voltage to the filter but the voltage would swing between about +2V to +4V. You can do this by raising the offset and then using the attenuverter to limit the maximum voltage. A very useful module to have in combination with this filter.


Here's a YouTube short explaining how to get the characteristic 303 sound:



Documentation:
Here's the webpage of Tim Stinchcombe about the TB303 ladder filter.

Here's Ian Fritz's original article on transistor matching in PDF form

PCB Service:
A PCB for this filter is available. It's 6.6 by 9 CM
It costs €10 incl. free shipping inside European union. Use the paypal link below to order. 2 in stock.
(PCB only, no components.) 


That's all for this one.
If you have any questions or remarks about this project then please put them in the comments below or post them in the special facebook group for this website.