Show by Label

Showing posts with label T&M. Show all posts
Showing posts with label T&M. Show all posts

Tuesday, March 4, 2025

DIY Build of the Tek SG505 Oscillator

 

The rather famous SG505 oscillator






I'm going out on a limb here. Although I already built a copy of the SG502, described here, the SG505 is a very different beast all together. At the time I did the SG502, I was not ready to attempt the SG505, a masterpiece of analog engineering by wizard designer Bruce Hofer. After a number of years mulling about it, I was recently looking at the instrument again after seeing it used in a YouTube series, and this time decided to give it a try.

As with many, if not most Tektronix designs, they incorporate special parts, or the parts are obsolete by now. The added difficulty is that with these older designs (this one was created in 1980) that pre-date the internet, you can't find any datasheets for these parts. Most manufacturers went defunct or merged and do not show these old parts on their websites.

So when looking at the SG505, I first wanted to try to build the sine wave oscillator. I used the information from the Option 2, that has the balanced outputs, because that has improved schematics and parts.



Here is where you can find a lot of information about the SG505 and it's designer Bruce Hofer.


So what is so special about the SG505

First of all, among specialists, it has the status of a real piece of analog art, designed by one of the great masters himself, Bruce Hofer. While at Tektronix, Bruce was responsible for many products and designs in the 7000 oscilloscopes and the TM500/5000 series. He also designed the AA501, the first automatic audio analyzer that worked in tandem with the SG505. As a matter of fact, I understand they designed the AA501 to verify the SG505 after production. In the manual for the SG505, you can see the rather elaborate method to calculate the total harmonic distortion, and the equipment needed. 

Just the specification of 0.0003% THD from 20Hz to 20KHz will give you an idea of the design quality. 

The SG505 has at least one patent that I know of, describing a "State variable oscillator having improved rejection of leveler-induced distortion". Have a look here : patent.

When Tektronix management was not interested in taking the AA501 and later the AA5001 distortion analyzer concept further, Bruce co-founded Audio Precision and that is the current and undisputed leader of this field.

You may ask why I'm so interested in rebuilding the SG505? First of all, it's a great design made by one of the few analog wizards. It is very well documented and also has been manufactured for several years so the selection of components went through this test. This "fitness for manufacturing" should not be underestimated, because the parts (source, value, tolerance, tempco, etc) in every possible permutation will have to meet the specification of the final product over the years. In other words, the bugs are out. This cannot be said about many other DIY designs.

The other reason for selecting the SG505 is that you can freely select any frequency by just selecting the desired range, and using the dial and vernier adjustment to select the frequency you want. There are several other pure oscillator designs that are more modern, and even have better specifications. In almost all of their applications, they are used in a THD measurement, and in those cases, you "only" need a few fixed frequencies. That makes it easier to get better specifications because you can tune both sine and cosine oscillators with fixed parts. None of them use an analog variable frequency selection.


Some Small print:
As I normally do on my Blogs, I describe the way I get to the final design, with trials and errors, ups and downs, warts and all, but hopefully in a way that you learn something, and avoid my mistakes. With my projects, it's not going to be an IKEA hand-holding type design. Some effort is required. And most importantly, there are no guarantees it will work for you too, I'll do my utmost but that's about it.

I will add information to this Blog and the Github as I go, and with this pretty extensive project, it may take a long time. As a matter of fact, I may not be able to finish it with the sought after quality, so take that into account before you heat-up your soldering iron or start to order parts. I'm not a really experienced engineer, and I'm not hampered in any way with specific know-how or experience, nor do I have the proper equipment to verify and test the design. I'll do my best, and will make you part of the process, but that is as far as I can promise.


Interesting articles and information:

There are many articles about sine wave oscillators, because building a simple one is easy, but a really good one is a real challenge. Over the years I have collected a few interesting ones:

Rod Elliot has a lot of interesting information on his site, but there is one particular posting where he explains the various architectures with their pro's and con's.
https://sound-au.com/articles/sinewave.htm

A few other articles can be found on my Github site here:
https://github.com/paulvee/DIY-Rebuild-of-the-SG505.

Then there are several Forum posts that deal with the modernization and rebuild of the Bob Cordell THD Analyzer that contains a very good oscillator, just like the SG505 (that original article is on my Github). The latest and most impressive rebuild of that instrument that is 30 years old, but now with a processor to drive the measurements is on this Github from Emile666, a very impressive and complete design. Also have a look at the diyAudio site, there are designs that deal with specific 1KHz and 10KHz pure oscillators of outstanding specifications (search for "LT AN67 1KHz or 10KHz oscillator", from Frex) The AN67 application note is listed on my Github. The author of that impressive design is the rather flamboyant Dale Eagar, who worked for my buddy in crime Bud at LT. Small world.


Component Issues & Challenges

For this particular project, let's discuss the road-blocks and challenges for a rebuild, based on the components that are used in the instrument.

First off, there are several special parts and some of them are no longer available on the market.

The potentiometer that sets the frequency is a high quality single turn dual 10K wirewound version without a stop. It was originally made by Spectrol, but is now part of Vishay. The part used is a Model 100 with the following part number: 100B2-103-103-XXXX

According to the datasheet, it has +/- 3% tolerance and the independent linearity between the two sections is only +/- 0.5%. Unfortunately, the datasheet does not specify the THD. This part is still active and manufactured it seems, but nobody has it in stock. 

The next item is a mechanical part that is used in combination with the potentiometer, to create a finer adjustment by reducing the number of rotations 6:1. The Tek part number is 401-0161-00 and the manufacturer is Jackson Bros (London). Their part number is listed as 4511/DAF in the SG505 manual, and believe it or not, you can still buy this part for a reasonable price, here. This reduction unit also gives a very smooth and controlled action on the potmeter. Highly recommended!

I am the lucky owner of having the potmeter and the reduction unit, it is used in my SG502, but for others, I'm going to try to find a replacement part or method for it. It's the most critical part of the design so it would be critical to find an alternative. I have some ideas using other potmeters, even digital ones but I have no experience with them whatsoever so I need to give that a try when I have a functioning oscillator.


The next item in the list is the special drum switch (or cam shaft) that Tek manufactured themselves that select the output attenuation. This in addition to the special pushbuttons that are used to select the frequency multipliers. In my design for other Tek instruments, like my 5CT1 (below) where I added readout capabilities and also for the SG502, I used reed switches or a small relay in combination with a simple rotary switch and diode matrixes to re-create the sometimes rather complex switching arrangements. 



Luckily, the SG505 switching used is quite simple. At first I was contemplating using analog CMOS switches or MOSFET's, but I understand that will add too much resistance or add to the THD distortion budget, so I will most likely use reed switches again.

Next-up is the J-FET used in the AGC circuit. The Tek part number is 151-1021-00 and is used in many Tek products. In the manual, they show the FN815 from Siliconix. I have not been able to find any information about that part at all, and I know I'm in good company because of the frequent use in other products. Many makers are looking for replacements. There is another J-FET 151-1025-00, an SFB8129 made by TI that is also used in many designs. This J-FET is used in the power supply as a current source, but that one is a lot less critical. Lastly, that same J-FET is also used in the output buffer amplifier. 

One of the most critical components, in terms of the distortion budget, is the special hybrid substrate that is used to select the dBm output settings. I happen to know that the construction used in the SG502 is the source of some extra distortion, so Bruce Hofer created an unofficial modification to change that for the SG502, significantly reducing the total harmonics from an original 0.035% THD to well under 0.002%. My assumption is that using discrete components is going to be a challenge, but on the other hand, we now have very good SMT devices Bruce didn't have at the time.

Lastly in this list is the set of matched timing capacitors used in the oscillator phase-shift amplifiers. Luckily, for a DIY project, the absolute values that are matched in the SG505, are less critical. In a manufacturing process, you don't want to tune the product, it has to work right of the production line with as few adjustments as possible. The critical factor for the original design was to create a situation by which the frequency dial is set to say 1, and by selecting the X10, X100, X1K and X10K, you would would get the exact reading of 10Hz, 100Hz, 1KHz, 10KHz and 100KHz +/- a few percent, but we don't really care do we? Besides, we don't have the frequency dial anyway. We will need to work around that.

I already have a little and simple side-project working, using an Arduino Nano and a small OLED display to measure and show the frequency.


Simplifications for the DIY design

From the outset, I will be concentrating on the sine wave oscillator itself. I'm not planning to add the differential output that the Option 2 provides. What I will eventually use as the sync output is still open. All I want is a way to trigger my DSO on the signal, and an edge of a square wave is actually more stable to trigger on than the slope of a sine wave. 

I will also not implement the Intermodulation Module because I don't see the need for it in my projects.

Next up is a more simple instrument setup. The original SG505 has to function in a TM500 or TM5000 mainframe, together with a host of other instruments right next to it. Some of them can be very unruly and noisy neighbors. The SG505 is completely floating from real earth ground inside this environment. My plan is to keep it that way, but build it in an enclosure that has no earth ground connection anyway, so it will be floating from the outset.

The power supply is a critical element in the chain and will deserve a lot of attention, but I will address that later. I will use my lab dual power supply in the beginning.


My Plan

My plan is to build a prototype PCB that will give me a functioning oscillator that will allow me to test and try some different strategies and components, and build a reference platform for my measurements using my mostly home-brew set of inexpensive tools. Some if which I already have, some I may need to build to verify and test the specifications. I envision something similar as the design of the VBA Curve Tracer, where we went a step at a time over the course of about two years.

After going through the documentation many times, and watching YouTube videos and strolling the internet for information, I started by creating a schematic in KiCad. I then spent many long hours pouring over the Replaceable Electrical Parts list selecting and finding the parts for the prototype. I used Google, Mouser, DigiKey and LCSC for days, and eventually decided on a BOM to order from LCSC because of the total price including S&H. It turned out that they did not have one particular resistor value from all the parts I need, so I ordered a combination of two to get the missing part.

I did not save money on the parts but selected the best quality. All resistors are 1% metal film, better than the original THT resistor specifications. I also matched or exceeded the higher precision resistors (like 0.1% at 25ppm). However, I did not use Mica capacitors, but good quality NPO with the same 1 or 2%  tolerance. The electrolytes are all Tantalum except for the two used in the supply rails.

Almost in parallel, and now knowing the parts and footprints, I started to design a PCB and ordered it as well. Both the parts and the PCB's will be on their way soon. Talking about on their way, another "way", PCBWay has agreed again to sponsor me with this project, and I'm grateful to get boards from them for free and with a very high quality. I may need to go through a number of re-designs while progressing so this support is very helpful.


The schematic for the prototype











This is after I fixed the discovered errors.

The component names and values are the same as in the original schematic in the Option 2 manual. Where they do not, or I had to use other parts, I indicated that.

However, I deviated quite a bit from simply redrawing the original schematic in the manual, to show the many intricate and not-so-obvious feed-back and feed-forward connections, as well as the many compensation circuits, especially around the inverting Opamp U1510. This is where most of the magic happens.  I suggest you read the Theory of Operation in the manual and also the patent application for the feed-forward invention, that allowed Bruce to significantly reduce the harmonics. In essence, he applied his wizardry to remove the fundamental frequency AC signal from the AGC circuit DC-level in several places. I know that the picture above is not of great quality, but a Github project is available here and I will upload files as the project progresses.

The three hierarchical boxes in the schematic are "hiding" the frequency and dampening switches and parts but are inconsequential at this moment. I just followed the original design, but used jumpers instead of switches.


The 2-layer PCB prototype


The layout of the PCB largely follows the schematic, so there is a full circle with the circuits following the State Variable design as is in the schematic as well.

I made the decision, right or wrong, to use ground fills on both sides of the PCB. We'll see if that will show up as an issue, in which case I need to go to a "star" grounding method with all ground going to the output BNC connector.

For this prototype, I will be using jumpers to select, add and try components and also activate the capacitors for the frequency selection and the AGC damping. For the frequency selection, I will use a normal dual (stereo) cermet 20K potmeter, just to have a functioning oscillator. 


J-Fet Selection

I added two kind of foot prints for the J-FET so I can use SMD and TFT to experiment. The TFT version has a socket. I actually have the original but now elusive unobtanium J-FET, and I also have a Curve Tracer, described here, so I can verify or measure the specifications if needed. I already ordered or had a small selection of J-FET's to try.


The elusive, unspecified & unobtanium 151-1021-00 J-FET

While waiting for my parts, that were returned to sender because a very bright DHL delivery person could not find the apartment I lived in for 17 years, I started to look for alternatives for the 151-1021-00 JFET. I already had a number of candidates, and more are in the shipment so I could get started. As a spoiler alert, I think I have been successful, but I now need to test the alternative 2N4391 in the real circuit, and compare the results with the original 151-1021-00 part.

Because I did not do a write-up for testing JFET's with our Curve Tracer yet, I added that episode to the following document. Scroll down to the end in that posting to see the JFET result.

Making measurements with the VBA Curve Tracer


Capacitor Selection

For the frequency setting capacitors, I used good quality Polypropylene film capacitors, but now that modern NPO and COG ceramic capacitors are available in good quality and with very precise tolerances, I may want to experiment with them as well. I will most likely trim the Polypropylene values to match by using the ceramic parts, and measure the effects.


What are the chances of success for the rebuild?

I'm very anxious to see what the results of this prototype is going to be. When I built the SG502, I was pleasantly surprised that my rats-nest construction (no PCB) produced a slightly better THD specification than the production version one had. A testament to the conservative specs and the quality of the original design. 

Who knows what I find with this one...


How am I going to verify the results?

As I stated earlier, I do not possess all the proper equipment that is required to really verify the SG505.

I will have to do with less and see how far I can get. If needed and possible, I can build something, like the passive notch filter (067-0938-00) that the Tek engineers designed specifically to test the SG505 performance. 

I already have an active T-notch filter for 1KHz that I may need to duplicate or extend for the other frequency ranges (10Hz, 100Hz, 10KHz and 100KHz), we'll see about that when we get there.

Luckily, I have a kind-off reference oscillator, the Viktor Mickevich 1KHz design that has a very respectable THD. He claims (verified by others), a whopping <0.00001% THD. 

With my simple DIY equipment, (look at this post and this one) I could measure the THD for his oscillator as far down as 0.00096%, so that is a very good start.




For the rest, time will tell.


Possible solutions as an alternative to the dual 10K potmeter

As I mentioned earlier above, this frequency adjustment potmeter is a very critical part that is crucial for the operation and more importantly, the specification of the oscillator. The specification needs to be tight because of the "State variable" design of the oscillator. Each section of the pot sets the frequency for the two 90 degree phase shift circuits (states). If there is a difference in the resistance between the two potmeter sections, it will negatively impact the phase shift. The timing capacitors also have an equally important role, but they can be more easily matched to each other or the value tuned by adding parallel capacitors.

The combination of the original 1-turn 360 degree 10K potmeter together with the 4511/DAF 6:1 reduction allows the sensitivity or rather resolution to be as follows. For the potmeter, 10K / 360 degrees is 27.7Ohm per degree of rotation, further reduced by 6 to 4.6 Ohm per degree of rotation. And then there is the vernier adjustment of +/- 1% of the frequency. 

Looking at it from a frequency perspective, with the frequency multiplier at 1K, the potmeter can adjust the frequency from just below 1KHz to just over 10KHz. That translates to 1,000 Ohm for every 1,000 Hz, or 1 Ohm per Hz. 1 degree of rotation is 4.6 Ohm and therefore 4.6 Hz. The vernier range is 1% of the frequency so that translates to 10Hz at 1KHz and 100Hz at 10KHz. That will be not so easy to duplicate.

So, provided you can't get your hands on the original Model 100 potmeter, what are the possible options or alternatives?

After quite some time looking at alternatives, I came up with a few potentials.

1. Use a dual (stereo) cermet potmeter
With the right 6mm shaft diameter, it can also be used in combination with the 4511/DAF 1:6 mechanical reduction. The challenge is that these potmeters do not have very tight specifications. A good quality one will still cost about 25 Euro's and at best has a 10% specification, but I could not find a specification for the linearity between the two halves, and that is the more critical specification. An overall value miss can be adjusted with resistors at the beginning or end, but not in-between. This type potmeter is what I'm going to use with the prototype. I can use a trimmer to make sure both halves have the same value at a particular setting.

2. Use a dual 10 turn precision potmeter
This will give you a much higher resolution in setting the frequency, and you don't need the 4511/DAF reduction. The vernier circuit can stay as it is. The specifications for tolerance (3%) and linearity are better than for a cermet potmeter, but there is a significant price differential. A suitable one will cost about 46 Euro's. The downside is that you need to turn the knob a lot (10x) to go from the beginning of a range to the end. Even with this quirk it could still be the most viable solution. I searched at Mouser for candidates, and by the time you have made the criteria selection, there are only 4 left, ranging in price from 46 all the way up to 157 Euro's. 

The least expensive one is the Bourns model 3549S-2AA-103/103A


It has a linearity specification of 0.2%, an overall 3% tolerance and 50ppm/C. This is pretty close to the original Model 100 that has 0.5%, 3% and 20ppm/C.


3. Use a digital potmeter.
I have no experience with using them, but I first thought this could be the solution. So after reading a lot about these devices, I found that there are actually a few stumbling blocks for this particular application. With most devices, the voltage range of the potmeter is limited to 0..5V. The regular maximum granularity is 256 steps (there is a special one with 1024 steps). This means that from a 10K value, every step will be 39 Ohm. That's 8.4 times more than the original resolution, so the vernier adjustment has to be modified to cover the difference. That can be done, but digital pots have other issues, like the linearity and tolerance, and then there are the resistance of the wiper and, a bit less important, the end and beginning resistance. When you change from one setting to the next, there could be a jump or glitch in the frequency, although there are ways (zero crossing) to avoid or suppress that. On top of that they are not that good with temperature changes. 

Based on our particular circuit, one of the best solutions could be the TI PGA2310 designed for hi-end audio stereo volume control. It has excellent specifications, even removing some of the issues with other digital pots. The chip is not cheap however, with a price of  about 28 Euro's.

Most importantly, these digital pots will need some form of digital logic to drive them. Normally, you would use a rotary encoder as the input, and use logic or a processor to drive the electronic potmeter settings. I have not discounted this solution, it provides some potential but it's not my favorite to develop at the moment.


4. Use a rotary switch.
When using a rotary switch, you need one with a double deck and one pole per deck with at least 10 positions, so you can create 10 segments of 1KOhm each by using fixed resistors. By using tight specifications for the resistors, you can really get the best linearity and matching between the two sections and probably also get the best Tempco results, surpassing the original design. The downside is that you can't smoothly turn through the whole frequency range, you have to select a section (1/10th of the range) and than use the modified vernier (modified to 10x the adjustment) for a finer resolution within the section. You can select shorting and non-shorting versions for these switches to avoid large frequency jumps when you switch. 

The suitable devices I found will set you back by about 45 Euro's. This is a rather complicated solution for a rather cumbersome user experience, so not my favorite to develop. For almost the same 45 Euro's, you could also buy the dual 10K Bourns.


Summary:

Depending on your particular application for the oscillator, there are a few options you can select from.



Frequency Display

As mentioned above, because we don't have, or will have a dial, I'm planning to use a small OLED display to show the frequency of the SG505.

Here is the prototype with an Arduino Nano and the tiny display I'm planning to use. I like the yellow color. The dimensions are 0.9" with 128x32 pixels.  I tested the FreqCount library from Paul Stoffregen with my function generator, and it easily covers the range of 10Hz to 200KHz.





The boards arrived.

I received the boards from PCBWay within a week of posting the Gerber files. They are really fast.

There is no gold plating, that is the light fixture playing tricks. The quality of the boards is great, as I came to expect from PCBWay. They also sponsor me for this project which is highly appreciated!

Update on the parts ordering saga:

Unfortunately, the parts I ordered at LCSC are still in limbo. They have been returned by DHL to the European distribution center and will then be sent out again. Hopefully this time DHL selects a more intelligent driver that can find the apartment I have lived in for 17 years. In his ultimate wisdom, he determined that I don't live here, and instructed to have the shipment returned to sender. DHL was unable to reverse this mindless decision. Great! The order was placed on March 4 and I'm told it may take another 1-2 weeks before I can get my hands on them. I just received notice (April 2nd) that the parcel has been re-discovered and this time I instructed DHL to deliver it at a pick-up point so I can pick it up tomorrow. Finally.

Well, on April 3rd, I finally have the parts in my hands and can continue with the project.

To create the best possible frequency selection, I selected the best matching capacitors for the timing ones. Because my minimum ordering quantity was 5 for the 1uF and 20 for the 100nF, 10nF and 1nF all with 5% tolerance, I could easily get matching pairs, but not precise values. That can be tweaked later if needed, but I don't think I need that. The matching between the values is much more critical for the distortion budget.

I also should mention that I'm using the Tektronix 151-1021-00 JFET in the AGC circuit. I'll investigate alternatives later.


First power-up and test

I used my new hotplate reflow solder station to solder all the SMD parts, and that went very well. I then added all the THT parts, and after thoroughly soaking and cleaning the board twice and inspection with a microscope, I tested the power rails for shorts. No issues, so I then used my Lab supply to provide +/17V at 50mA each and gave it a go. My DSO was showing a nice sinewave! Great!

While going through the range selection with the jumpers, I noticed that I goofed with the schematic and subsequent layout for the 10K multiplier selection jumper J15. A few trace cuts and jumper leads fixed that. I also noticed that turning the frequency potmeter didn't really change the frequency. That was caused by me flipping the 3-pin connector the other way around for one half of the potmeter on the PCB. Swapping the connector leads also fixed that. I now had a fully functional sine wave oscillator.



Frequency selection

Because I use a "kind of" dual 10K potmeter (see above), but with separate adjustments for either half, my plan was to see the effect of "in-equality" of the two pots, and adjust them to be exactly the same by using an ohm meter. The goal was to see what effect the in-equality (not only the linearity) would be on the distortion. I will get to that later. However, because of my goof with the connector swap, I stumbled on an optical verification of the in-equality or tracking. When you swap the connector, so one half of the pot will drive one phase change circuit with an increasing value, and the other phase change circuit with an "equal" decreasing value, the frequency should stay at the same value. But only if the two pot halves track each other 100%. Mine does not, there are slight changes in the frequency when I turn both pots together. 

Here is what I'm seeing. At fully CW or fully CCW, the frequency is almost the same at say 308Hz. During the rotation of the potmeters together, I see the frequency dipping down to a minimum frequency of 259Hz somewhere at 75% of rotation and then rather rapidly going up to 308Hz again. My calculator shows that to be an error of a whopping 19% in frequency which is quite a lot. 

To put that in perspective, the 10K potvalue creates a frequency range between 83 and 1.100Hz, or 1.017Hz. That means 9.83 Ohm/Hz, so a tracking error of 308-259=49Hz/9.86Ohm=5.96% of 10K. That's more reasonable, but it shows how important the tracking specification is. And we don't even know yet what the distortion contribution of this tracking error is.

I will do that same measurement with my original Model 100 precision potmeter later.


Does it meet spec.?

I use my dual lab supply to supply +/17.00V. The current consumption is 24mA for the positive rail and 26mA for the negative rail.

The sine wave output is 2.04VRMS (6.00Vp-p) into 1MOhm , and that is according to the specification.

The frequency ranges are within specifications.

  • 10x     8Hz to 111Hz
  • 100x   83Hz to 1.1KHz
  • 1Kx    833Hz to 11.7KHz
  • 10Kx  8.8KHz to 107KHz

When I go beyond 107 KHz, the sine wave collapses, so that's really the maximum.

The Vernier adjustment at a frequency of 10KHz goes from 9.92 to 10.12KHz, also good enough.

The AGC circuit works well, visually, but I did not test that any further.

When I set the frequency in the 10x multiplier setting, and adjust the frequency to mid-range and then select the other multiplier settings I see this:

  • 10x     50Hz
  • 100x   515Hz
  • 1Kx    5.26KHz
  • 10Kx  55.2KHz

This to me a fine, but can be further tweaked by using trimmer capacitors.


So what is the distortion?

I had some issues to find and load the drivers for my modified Creative EMU-0202 USB "Sound Card" (look at this post for more information), after I went to a new Laptop a while ago after a major W10 induced debacle. Most of the installed software had to be installed again, but I didn't need the FFT capabilities until now.

After some experimentation, here are the results with the PCB just lying on my desk. This is with the range setting at  x100 (100-1000Hz), and using jumpers instead of the frequency select potmeter, to eliminate the leads and the potmeter tracking differences. That puts the frequency at the top of the range at about 1.1KHz. I'm using a DIY 600 Ohm -10dB attenuator, and the E-MU0202 and the ARTA software is calibrated with it. Note that this is taken straight from the oscillator output, and not from a "real" output amplifier. I do not yet know what impact the 600 Ohm loading is for the circuit.



Not a bad result I think, but not near the specification of <0.0008% in the 20Hz-20KHz range.

After several hours trying, searching, testing and pulling some valuable hair, I now know why these results are too far away from the original specification. First of all the settings in the ARTA software.

Second, the 600 Ohm -10dB pi attenuator I was using to feed the E-MU with a lower input signal is indeed loading the oscillator circuit and is the cause for the higher THD distortion. Rather than showing all the previous results I made, I'm now reverting to the setup with the 100K loading of a potmeter at the output of the oscillator circuit so I can reduce the signal amplitude. 

This is the result:


The specification is <0.0008% THD so we're significantly below that figure now.

As a reference, I also made a measurement using the Victor Mickevich oscillator, and that shows this:



It seems my measurement setup is OK, apart from the larger amount of noise. Earlier measurements from a few years ago using the same modified E-MU0202 and oscillator, but with older versions of the software and drivers and a different laptop, produced seemingly better results so something is a little different.


I also tried my Arduino frequency counter, and although it works fine, just taking the input through a capacitor from the circuit output produces a lot of harmonics, so it needs a separate buffer amplifier. The oscillator prototype itself also needs a buffer amplifier, so I'm going to add that and see how the counter behaves then.

Here is a measurement using the potmeter to adjust the frequency to a precise 1KHz.


Apart from a little bit more noise (six long leads to the potmeter) there is no difference to the THD, so I'll continue with the potmeter installed from now on, and revisit the possible effect on the THD by the tracking tolerance later.


Output amplifier circuit

Because of the loading on the circuit by as little as a scope probe (added noise) and the sensitivity to loading the circuit with an output impedance (adding harmonics), I quickly put together an output amplifier circuit. In hindsight, I should have added that to the prototype, but I didn't...



I am now using the Arduino based counter to show the frequency so I don't need to use my DMM or DSO anymore, reducing the amount of loading and adding noise. With the potmeter at the output, I can now set the voltage level for the E-MU 0202 so it does not show harmonics. The input voltage to the E-MU needs to be around 1Vrms to have the least amount of distortion.



Distortion and the supply rails

Form what I can gather, there is no need to have tracking supply rails with a high accuracy. I could reduce the positive supply by 1V without  a change in the THD. However, the circuit is more critical to the negative supply. If I lower that by 1V, the is a 0.002% change in the THD+N. Lowering both rails to +/- 15V has an even larger effect. I initially thought that the increase of the rails from 15 to 17V was due to the Option2 output amplifier, but I now think that they raised the rails to get a little better THD result.


Power Supply

I've finished a simple textbook separate mains fed power supply for the prototype that has the +/- 17V rails and also the +5V for the counter, and later the relay/reed switch section.

I'm using a toroid transformer that has two separate 24VAC windings.

To get the +/- 17V rails, I'm using the LM317/377 adjustable voltage regulators, and added a trimmer to adjust them. The 5V rail is tapped from the transformer in a way to reduce the loading or digital influence. That voltage is too high for a normal LM7805, so I'm using another LM317 that can have input voltages up to 60V to get the 5V. 

The grounding for this prototype is simple. Later on I will probably split the two windings and create separate supplies for the +17V and -17V, and use a star ground at the output connector for the analog circuits. The digital circuits (the Arduino Nano and the relays/reed switches) will be kept on the 5V rail and that GND will be as separate as possible.




Running an FFT of the +17V rail with a DC blocker shows that there is a bit more work to be done:


The 50Hz mains comes through, and there is coupling back to the rails from the (1KHz) frequency of the generator.

Granted, it's all just lying on my desk without any shielding from my other equipment (10MHz master clock, and 2 x 10MHz GPSDO) or the quite noisy environment (switching power supplies, DSO, DMM, WiFi transmitter).

After some thinking about the power supply, I decided to make a detour and give the SG505 a more worthy supply. This quick-and-dirty-put-together supply was a failure, so I ripped it apart. 

I have been aware for years of the so called "Superreg" design from Walt Jung from a few decades ago. He designed it predominantly for audio projects, but hey, if it's good enough for critical hi-end audio applications, it should also be adequate for the SG505. At least that is my current thinking.

I don't want to add that project to this blog post, so I'll start a new dedicated one. Superreg


Distortion and the potmeter tracking

This effect turned out to be more difficult to measure than I anticipated due to the significantly changing THD numbers that are reported by the ARTA software. Changing the value of one of the potmeter halves is more difficult that I anticipated, due to the minute rotation change and the large change in frequency.  To get a better visual handle on this, I used my DSO in the X-Y mode and use the two input channels to look at the output of the two 90 degree phase shift Opamps. It should produce a circle, which it does, but you can't really see enough of a change relative to the changing distortion numbers. In my opinion, it is safe to say that the closer the specification for the tracking is, the better the distortion numbers will be. The overall tolerance of the 10K potmeter value is less important. If needed you could add small resistor values at the bottom and/or top of the potmeters to create equal minimum and maximum values without disturbing the tracking.


Distortion and the JFET selection

That will be next on my list.


My current test bench



Stay tuned, there will be a lot more to come now that I have a functioning prototype...


A Github repository is available here it will be updated with information during the project.


Thursday, February 20, 2025

Creating a Hotplate Reflow Station









This project describes how I converted a UYUE 946C Preheating Station to a reflow hotplate that uses and follows solder paste profiles.


As I normally do on my Blogs, I describe the way I get to the final design, with trials and errors, ups and downs, warts and all, but hopefully in a way that you learn something, and avoid my mistakes. With my projects, it's not going to be an IKEA type quickly-build-it-design. Some effort is required.

Overview

The UYUE 946C hotplate is a 600W 20x20cm device that can be set for a constant temperature by the user interface. There are many variations and versions available with the same model name and for very reasonable prices.

Initially, I wanted to build my own hotplate from scratch, by using a heater and design a controller for it. I even purchased a few different heaters and a thick aluminum plate.

However, after contemplating on how to put it all together, I was not happy or comfortable about the fact that this contraption would be lying on my desk, without a proper enclosure and also dealing with very hot surfaces, and controlling the mains voltage. So for about two years, I stashed the components away, and kept the project on the back-burner. I stayed on the look-out for a solution, but I discounted all oven-designs because they are too bulky for the precious amount of space I have in my man-cave/office. In the mean-time, I investigated a number of DIY controller designs that I liked.

A few months ago, I revisited a YouTube video of a hotplate design I liked earlier, but this time the Maker (Curious Scientist) upgraded it to a new version.

Here is that video: YouTube

I particularly liked the way he shows the reflow curve, and he also shows the actual temperature over time. I was already planning to make my own electronics, so I contacted him for a copy of the Sketch which he gracefully did.

I also ordered the hotplate, but since I knew it would take some time to arrive, I built a prototype for the controller so I could run the software and see what I wanted to change for my version. 


Above is the prototype with the Nano, the original 1.8' 128x160 TFT display, my own rotary encoder with the debounce components and the MAX6675K module to read the K-Type sensor that you also see in the picture.

It took about 2 months for the hotplate to arrive, and in the mean-time I worked off-and-on on the code. At first learning how it worked, but also quickly changing or expanding it to my liking. That turned out to be a much more involving job than I anticipated. All in all, it's a big program with many lines of code (right now there are 2399 lines, but also many with comments)

Changes to the hardware and the code

Here are some of the changes I implemented that were different from the original design. First, I wanted to use an SSR unit, and not deal with my own circuit to control the heater. It would be much easier to keep all the mains related voltages and current far away from my controller.

I also wanted to use a faster processor, because the Arduino Nano that I initially used was too slow to my liking, even though I added hardware SPI to update the TFT much faster. After some time, I also changed the TFT display to a larger version, a 2.8' 240x320 display, based on the ILI9341 controller, and again used the hardware SPI interface to speed things up.

Next I wanted to improve on the rotary encoder code and make it more reliable. Initially, I used my own encoder, but later changed it to the same module that was used in the original version, because I discovered that it has some issues. Some of which was caused by the significantly faster processor, but I also noticed glitches and other issues. First off, the de-bounce capacitors on that module are too large with 100nS, creating a slope that the much faster ESP32 triggers on while in the "dead-zone" between logical levels. Here is what I mean:



The above was taken with a 10K pull-up, another 10K in series and than a 100nF debounce to GND, like it is on the Youmile? or KY-40? module. You can clearly see that there are multiple pulses around the point on the slope where a digital "0" is changing to a "1".


When you zoom in, you can see the real issue in more detail. Realize that every "glitch" is an interrupt to the processor. This is a little less important with slow processors, like the Nano, but a real issue with faster ones, like the ESP32.

So, the remedy is first to reduce the capacitor value to create a more adequate R/C with 10nF, and also use a Schmitt-trigger gate to bring that "slow" ramping signal back to a fast edge again, and feed that single pulse to the processor. It will be a lot happier. 



Note that the above screen is taken with the 10K/10K/100nF values that is standard on these modules. Be aware!


The UYUA 946C Preheating Station

When the hotplate finally arrived, the first thing I did was to open it up before connecting it to the mains. There are numerous situations reported that whatever comes from China does not meet European safety specifications. 



Unfortunately, my unit had the same issue others reported earlier, inadequate grounding of the metal parts to earth. There is no star-washer used anywhere, and at the contact point, the paint had not been removed. Also, the ground lead is a little on the thin side. I will be getting close to 10A, so this needs to be fixed.

That's easy to do though.


Here is a picture of the original controller that I was going to replace anyway.



The other, even more important question I had was what kind of heaters were installed. This was important for me, because I already figured out that 600W was probably not adequate, so I needed a way to add extra heater elements.



This actually looked very good. I was happy to see what I got. There are two round 8mm diameter rods of 350W each inserted in the aluminum profiles. The K-type sensor is bolted in between them, but on the edge. 


First try

After adding another grounding lead from the thick aluminum plate to the bottom, and scraping paint and adding star washers on all connections from the bottom screws to the upper part, and putting it back together.  I could try to see how it worked, and although a bit slow to heat-up, I was pretty pleased.

There was room for improvements.



Adding an additional heater element

The next step was to add another heater element. I already had one, so I cut the flanges off with a hack saw, so it would fit in-between the already installed elements.




The "extra" nuts you see where just about thick enough to use the original screws, but now also pressed the extra heater to the plate.

It worked, but this particular heater element self regulated the maximum temperature to 200 degrees C. When the temperature reached this level, it would stop contributing. 


Adding insulation

To get some more mileage out of the heaters, I purchased insulation sheets with a self-adhesive back, and covered the insides of the top box of the enclosure.



First actual reflow on PCB's

Pretty pleased with this, I tried it out on two new boards I just received for my LORA-based mailbox notifier. It soldered pretty well, although I later found out that the reflow was not long or hot enough for the larger parts, but as a first trial, I was very happy.

At this moment, I was already convinced that this hotplate would only solder low-temperature solder pastes (138 degrees) well enough. Too bad, because I still have a lot of the 165 degree solder paste left, but I could always see what can be done after the units was operational the way I wanted it to be.


Addressing the ramp-up and maximum temperature

In order to address the rather slow heat ramp-up and maximum temperature challenge, I ordered two different kind of elements that would boost the power.



A failed attempt

These round 8mm heater elements are 250W each. I searched and searched for the right profile like the two already installed, but was unsuccessful. Wanting to try it out anyway, I concocted two strips that would hold the three elements in place, and pressed them to the top plate.



It worked, I had a lot more energy available, but when I opened the enclosure again to try the other new element, I got kind of scared.


Worse, one of the aluminum braces was completely burned through.


Wow, this is definitely not the way to go! I may revisit this when I can find the proper profiles to slide these elements into, but so far, I can't find them.


Next trial

Next up, I wanted to try the other heater element that I ordered.

This is a 220V 250 degree C 600W version.

I hoped that it would fit by drilling some extra holes so I could use the original screw holes, but by using longer screws and I mounted it upside down. I did not have the get the hacksaw out, it fitted perfectly.


The fit was just about perfect.


I also changed the K-type sensor to a new one that was more sturdy. To make that fit I had to add a slit into the new element.
I also had to move the tapped hole a little further to the edge. I used an M4 tap. Be careful not to drill too deep.

This is a result by using the "free" Heating mode set to 200 degrees. Most important is the ramp-up period to reach 200 degrees C. (note that the temperature scale is off, the curve is correct, and that has been fixed)



I used my IRmeter to have a look at the resulting temperature on a real PCB using the reflow profile of the Sn42/Bi57.6/Ag.04:


Note that the temperature colors look pretty dramatic, but are less than 7 degrees apart.

I did many, many more tests, mostly to refine the software and tune the ramp-up and overshoot issues, but I also tried out the hardware features. I was still contemplating to use two SSR's to drive the heaters, one for the boost phase, but so far, I have been able to address all of that in the software. 

I also experimented quite a bit with two 12V 80x80mm fans to cool the hotplate down. Now that I know that it all works, I can finish the circuit and start to build a PCB.


The Controller

The final schematic that I'm going to work from looks like this:



It's actually quite simple, but has a few maybe not-so-obvious elements, so let me explain.
I'm going to use a rotary encoder that can be used from the outside of the enclosure. I did not want to use a module, because that is mechanically not very stable. That means that I created the debounce circuits on the main PCB. As I explained above, I'm using Schmitt trigger gates to clean-up the slower R/C slopes of the two critical signals, the ENC-CLK that triggers the interrupt, and ENC-BUT for the pressing of the button. This cannot be used in an interrupt due to the large amount of TFT activity, so this signal is polled. I could have used a Schmitt-trigger chip with two gates, but I don't have that one in stock.

The main power supply is quite simple. I'm using a 220V to 12V-1A power brick and connected that inside the enclosure. The output of that brick goes to the main PCB. The 12V is needed for the fans and is also regulated down to 5V that supplies the components on the main PCB. 

Make sure that you connect the negative lead of the 12VDC also to earth ground of the enclosure. Not only is this safer, it will also remove possible mains related hum from the (extremely sensitive) K-Type sensor.

To the right of the supply is the transistor that I use to control the SSR-40 DA module. The input can be from 3-32VDC, and I'm supplying a PWM signal to regulate the output for the heaters. At first I contemplated using two heater sections and two SSR's, but I could control the heaters tied together in software to mainly avoid overshooting or regulating a constant temperature.

Below it is the circuit to drive the Waveshare 2.4" 240x320 pixel resolution TFT display. This display fits almost exactly in the square hole of the enclosure after I removed the original controller and face plate. The TFT uses the ILI9341 controller. In the software, I'm using the TFT_eSPI library because it's faster then the Adafruit version and allows some extra functionality. When the TFT display is powered-up, it shows a white display all the way up to initializing it. I don't like that, so I added a power on-off circuit that I can control in the code. Normally you would tie the reset signal of the TFT to the reset signal of the processor, but the ESP32 has no pin for that. I can control the reset by a port if needed after the power-up.

To the right of that circuit is the hardware that allows me to control a 12VDC fan, or two fans, like I use in parallel. I will have a DC jack on the enclosure to provide power to the fans.

In the middle is the circuit for the MAX6675 that reads the K-Type temperature sensor. During the prototyping phase, I used one of these modules that are easy to use for that purpose. I'm going to take the chip of that board and solder is on my main PCB.

To the far right is the circuit for the ESP32 with all the connections. The ESP will be socketed on the main board.

The 6 mounting holes below it are for the fastening of the TFT board to the main PCB, and also the main PCB to the enclosure, using the holes that are already there.

The PCB Layout

The actual layout went pretty fast, although the challenge first was to get the mechanics right with the mounting of the TFT display to it would fit in the enclosure opening, the mounting of the studs to secure it, and the holes to secure the TFT to the PCB.

When I submitted the project to PCBWay for their approval and sponsoring on a Saturday, on Monday I got the go ahead and the funds were in my account. I submitted the final order on Tuesday and I received the boards that same Friday. Even DHL contributed positively this time by passing it through very rapidly without hold-ups at customs. Wow, from order to boards in hand in less than a week, that's impressive!

As usual, the boards have excellent quality. One of the tell-tale signs of quality is the centering of holes in the center of the pad, and they do that very, very well. Always dead center. Another tell tale sign is the crispness of the silkscreen, even with smaller fonts. One more tell tale sign is the plating of the (mounting) holes in the board. The insides are well plated and also connected to the outer ring. The hole positions and sizes are perfect.

In any case, I stuffed the PCB and reflow soldered it on the hotplate with the prototype controller. It went very well, there was only one suspicious soldering joint (too cold) and one solder blob between the pins of the tiniest part on the board. That was easily fixed. I was using the 14-bit MAX31855 instead of the MAX6675, but I found that the reported temperature is a little jittery, causing the reflow curve to be a lot less smooth. Just a bit of warning if you consider using this part. We don't need more than 12-bits, and the MX6675 is actually cheaper.


Bummer!
When I added the THT parts after the reflow soldering, I noticed a goof with the rather special mounting block for the K-Type sensor. I took that from the circuit board module that I had been using so far, together with the MAX6675 chip. I used the standard 5mm spacing for the layout, but this connector is larger. For the time being, I'm using a 5mm version, but I corrected the layout.

The rest of the mounting was pretty uneventful, although I did not mount the TFT screen yet. It will have to be soldered onto the board connector pins at the very last minute, because removing it later on is going to be a pain. There is no room for a socket or header.

After an inspection and a flux clean-up, I tested the various circuits by just using a DMM and my power supply, and verified the rails. I also tested the activation of the voltage regulator for the TFT, and that seems to work as well, but that was without the TFT connected.

Another bummer: a KiCad issue - watch out!

I added headers for the ESP32 DEVKIT1, but when I wanted to mount the board, it did not fit. I used the standard ESP32-C3-DevKitM-1 footprint, in the understanding it was the correct one. You should know that most ESP32 boards are wider than most others, like ESP8266 or Arduino Nano's. It's a real gotcha.
Well, it got me. I used the ESP32DEVKIT1 in another project without issues, so at first I didn't get it. 

After some searching, I found the root cause. I recently upgraded KiCad to version 9, and I now noticed that my own footprints and symbols were not migrated and installed, although I said yes when asked for the migration for the previous version of KiCad during the installation.

Looking at the documentation in more detail (RTFM!), I now noticed that user libraries are not installed, you have to do that by hand. In my own footprint library, I have the correct version for the ESP32DEVKIT1, so the fix was easy, but I'm now left with a board that needs some surgery.

In any case, this is how it looks like:



The board is actually shown upside down, but you can see that the TFT is mounted on front of the PCB, together with the rotary decoder, facing the outside of the enclosure. The 8mm M4 mounting studs allow me to secure the board inside the window of the enclosure that becomes free when you remove the older stuff. The enclosure already has holes for the mounting, although I needed to drill them out to 3.5mm and counter-sinked (sunk?) them on the front.


This is the back of the PCB, facing the inside of the enclosure, where most of the parts are located. Top left is the replacement connector for the K-Type sensor. The TFT display is mounted using the studs and screws that it came with. I just added two screws to mount it on the PCB.

Please take note that the -12V input, or the wall-wart GND, also gets connected to the earth ground of the enclosure, which is securely connected to the earth ground of the 230V receptacle. 

To the right are the headers for the ESP32, that are now too close together. A major goof. 



I have ordered some more ESP32DEVKIT1 modules without the connector pins soldered, and I'm hoping I can bend the pins and the headers such that it will fit, otherwise I have to figure something else out, or order new boards. I already fixed the layout so we now have Version 2.1 although there are no schematic changes as yet. I hope I can brute force the ESP into the headers so I can give it all a try to make sure it works before I order new boards.

I tried a few things, but the board continued to pop out of the sockets. I finally created a set of extenders that allowed me to plug-in the ESP32 board and verify the rest of the controller. And then, I found another foot print error, this one for the 2N3904 transistor. There are SMD foot prints that swap the B and E connections, and yet, I picked the wrong one. I tested it by flipping the transistor upside down which would flip back the E and B leads. Then there was a filter capacitor that I placed not where it should be (close to a chip). 

I fixed the four layout errors and ordered new boards that PCBWay gracefully sponsored again, despite my goofs. They arrived quickly so I could build-up a new board to give it another try. This time it seemed to work, but as soon as I turned the heater on, the screen went blank, the controller powered down and went through a reset. Oh bummer, now what? 

I had been using this setup for several weeks now, and thoroughly tested it, I thought. After some tests, I found out that it was the 12VDC wall-wart that caused the problem. It is a very, very old 1Amp supply that I hadn't used in years, but it worked for several weeks without an issue. My take on it is that one or more capacitors inside the supply probably gave up on me, and just adding 50mA or so when the SSR was activated caused the supply to drop the voltage. Replacing it with a more modern and beefier unit fixed it all.

Here is how it looks now with everything installed and working.



I have not figured out yet what I'm going to do about the left and right side of the TFT. It's functional, but does not look that nice. Unfortunately, I don't have a 3-D printer (yet?) so it will have to be like that for a while, or I can figure out to create a small window-frame from mylar or something like that..

Here are pictures of the inside:




The black box in the background is the 12VDC wall-wart that powers the controller and the fans.
To the left is the SSR.

In the top right corner is the 12VDC chassis part that the fans plug in to. Make sure that this DC chassis part is isolated from the metal frame because the minus connection for the fan(s) is not earth-ground! If the minus of the Fans is at GND/EARTH level, the switching MOSFET is bridged/shorted and the fans will run at full speed and cannot be turned off by the controller. Feel free to use another connector for the fans, I used what I had in stock, with this caveat.



K-Type Thermocouple color coding

It is important to connect the proper K-Type thermocouple leads to the connector and hence the MAX6675 inputs. There is a positive and a negative input. The color coding for these thermocouples is rather strange, but this table explains it all. According to this table, I have the German DIN13711 color coding because the wires from my K-Type are Green and Red. So according to this table, Red is positive and Green is negative.


The MAX6675 blew itself(?) up

When I was using the reflow oven, it suddenly developed an issue with the temperature reading. It turned out that the MAX6675 developed an internal short between a thermocouple lead and VCC. When I investigated this, I saw that the MAX6675 reported a status error 4, indication just that, a short. The result was that the temperature reading was 1024 degrees, obviously this is the maximum possible reading with a 12-bit ADC.

Replacing the chip solved the issue, but I also found out that I probably made a mistake that could have contributed to the demise of the chip. According to the datasheet, you should connect the minus lead of the thermocouple to circuit GND. I did not do that, under the impression that the floating input with the braided and grounded cover would take care of that. Apparently not, so I stand corrected. The fix is easy, just connect the minus lead of the thermocouple to circuit GND by soldering a short wire from the connector pin to the ground plane.


ESP32 Board Caveat

Ehen I was researching the defective MAX6675 issue, I also stumbled into another trap that I already knew but overlooked, the ESP32 bord caveat. There is a potential problem with some of the ESP32 boards that may bite you. If you are familiar with these Arduino and ESP boards, you will know that there is normally a blocking diode on the board that prevents back-feeding the 5V through the USB connector to your PC. However, on some of the ESP32 boards, this diode is missing, and the manufacturer installed a 0 Ohm resistor instead.

This is not an issue when you feed the 5V from the USB port to the ESP32 board, but if you power the ESP32 board from a voltage from your board, you will send a current of several hundred mA to your PC. Not only is this an unhealthy situation for your PC, but also the voltage regulator on your board may not be able to sink that much extra current.

During the design phase, I used an ESP32 board that had the diode in place, so there was no issue. However, I decided to use another ESP32 board in the final version with the corrected PCB layout, which was OK, because I didn't need a USB connection when operating the reflow controller.



The picture above shows the rather interesting way of soldering the reset capacitor to the EN button on the left. What is more to the point, in the middle is the blue arrow pointing to the 0 Ohm resistor that should have been a 5V blocking diode.

So, when I found out that the MAX6675 was showing problems, I was debugging this with the USB port connected, so I could use serial monitor to see what was going on. That was working fine, until I burned my finger on the 5V regulator. I quickly realized what the problem was, and remembered the root cause that I already found when designing the Dynamic DC load that has the same issue.

There are a few remedies:
  • Do not use the USB connection when you power the ESP from the controller board.
  • Remove the 0402 0 Ohm resistor from the ESP32 board. However, that will prevent you from powering the ESP32 solely from the USB port. You could add a 0402 Schottky diode in place of the 0402 resistor, but that's tricky if you use a heat gun.
  • Install the blocking diode on the controller board by cutting the 5V supply trace and install the diode there. (Cathode towards the ESP32)

Redesign of the PCB to V2.2

Because of the two above mentioned issues, I made a few corrections to the schematic and redid the layout to accommodate the grounding of the thermocouple lead, and I also added improved grounding for the MAX6675 as well.

Second, I also added the possibility to either install a 0 Ohm resistor in the 5V path to the ESP32 if your ESP32 board already has the blocking diode, or install the blocking diode on the controller board if your ESP32 board does not have it.

The Github site and the PCBWay Shared Project now have the V2.2 layout.








In the meantime, I did solder a rather large (123x83mm) and pretty complex PCB with many parts. large and small for new project, and that worked well. So with the latest changes to the controller, I'm happy to have this additional tool. It's a huge time saver compared to a heat gun, and it's also much easier for soldering larger components like large size Tantalum capacitors.

I have now created a Github repository with all the design information. It can be found here.
There is also a shared project on the PCBWay site so if you want to order PCB's, populated or not, you can go there


I may be adding information for a while while I'm collecting data from reflow soldering actual boards, so stay tuned!