Thursday, January 2, 2025

FGPA's 2025 part I: Intel/Altera/Quartus

Hello there, it's a new year, and I am jumping back down the FPGA rabbit hole:

Tesaric DE10-LITE. The URL for the CD, on a sticker glued by the manufacturer to the board, 404's. Sorry.

I last worked with FPGA's a couple of years ago almost to the day (post here)

This time I wanted to see if I could figure out how to use an FPGA for accurate data acquisition (the frequency counter project/multiplier, for instance: here).  

I got out my tinyFPGA BX for this but soon found out it's listed on Digikey as "obsolete" and not currently for sale.... 

Hello? It's only a couple of years old but, whatever.

Digging into alternatives, wow, the FPGA market is figure 8 trailer racing: 

In a nutshell: the FPGA landscape apparently changes more quickly and more often than my chonies.

Older, lower density FPGA's are being phased out:

I bought this Altera Cyclone II development board a few years ago for next to nothing, but recently discovered that the current Quartus programming IDE no longer supports it. Sorry. I might be able to get an older version of Quartus working on an Windows 7 VM and revitalize this dinosaur? 

Regardless, as a birthday gift to myself, or maybe because I love punishment, I bought a few newer FPGA offerings and will try to get their toolchains going in the next few posts.  

This time it's Intel, Altera, and Quartus. But first.....

PCBWAY--THIS BLOG'S HUMBLE SPONSOR

No matter what FGPA I end up using, if I have to fab up a board for it, my stop will of course be my sponsor, PCBWAY.  They manufacture small quantities of PCB's for very affordable prices and work and ship very quickly. They also do injection molding, 3D printing, assembly, and a lot more. You can help out this blog by checking them out here.

A QUARTUS LOW?


Quartus Prime Lite Edition is the free offering from Intel (Wait--Altera? or these guys?) you can use to program supported Intel FPGA's.

As far as I can tell, Quartus Prime Lite is the same software with the same features as the >$2k USD  licensed versions but only supports Altera's current line of lower density FPGA's. 

Good enough for what we do? Probably, yes!

I downloaded and ran the 28MB SFX installer for Windows: here. Some how-to videos such as the one here demonstrated downloading tricks needed to get Quartus Prime Lite to work for free, but nope, the single file linked above pulled in necessary files and the install was simple. 

Best of all--no license was needed! 

Warning: As mentioned above, the FPGA scene is always changing fast, so who knows when the links in this post will break....if you want software so you can program your FPGA, get it soon!

For hardware: after some research, a good bang-for-the-buck option supported by the current version of Quartus Prime Lite is the Tesaric DE10-LITE.  
 
There are less expensive Altera options, but for now, I wanted to make sure I could get the toolchain to work and a lot of documentation pointed to Tesaric.

The video I followed to get the toolchain up and running is Olawale Akinwale's offering here

This was a helpful video, but Olawale showed me how to do something wrong before showing me how to do it right--educational, but, time consuming. You might want to watch the whole video before attempting to get your FPGA board working.

For Verilog code I used the same .v file the content he used:

module lab1_1 (SW,LEDR);
input [9:0] SW; //slide switches
output [9:0] LEDR; // red LEDs
assign LEDR = SW;
endmodule


A few things not mentioned in the video:

  • The USB-Blaster driver did not install correctly on my windows 11 system during the initial Quartus install. 

To get that going I ran the DPINST.exe program that was installed along with Quartus. On my Windows PC I found the app here: C:\intelFPGA_lite\23.1std\quartus\drivers.  




I found other videos and forum posts saying to fix this issue use Windows device manager--but for Windows 11, no, that didn't work.  Running DPinst.exe fixed things; I can now see "USB-Blaster [USB-0] in the "hardware setup" dialog.

  • To blow your verilog code get into the firmware of the dev board--and not have your work wiped out each power cycle--the Programmer UI needs to be set to run the .pof file and "program/configure" needs to be set as you see here:



Beyond that the video was spot-on.

After uploading to the FPGA deb board, and solving the issues above, each slide switch turned on or off its corresponding LED. 

It worked! Cool!!! 

str = 'F' + str.Substring(1);


Say what you will about Intel, Quartus is a super powerful piece of software.

Next, I found out that you can do low code/no code Verilog development using its "schematic" feature. Video is here.  

Using that I drew up a few AND gates and converted the schemo into verilog code:

"File" > "Create/Update" > "Create HDL Design File for Current File" (I had to have the .v overarching project open for this export to work).

I got this:


module lab1_3(
SW0,
SW1,
SW2,
SW3,
LEDR0
);


input wire SW0;
input wire SW1;
input wire SW2;
input wire SW3;
output wire LEDR0;

wire SYNTHESIZED_WIRE_0;
wire SYNTHESIZED_WIRE_1;




assign SYNTHESIZED_WIRE_0 = SW0 & SW1;

assign SYNTHESIZED_WIRE_1 = SW2 & SW3;

assign LEDR0 = SYNTHESIZED_WIRE_0 & SYNTHESIZED_WIRE_1;


endmodule


QUARTOUTTRO?  QUARTUSTRO?  QUARTOJUMBO? 


Between these features and AI maybe I can do useful FPGA coding without having to learn a ton of Verilog.....

Obviously I have a very, very long way to go here, but, figuring out this new toolchain was a lot of fun.

Next up I am going to look into current offerings for Lattice--thankfully, they are still around, have not been recently acquired by a wig company, and in that they have some lower-end offerings and seem to care about the hobbyist and semi-pro community, might be a better fit for DiWHY.  

We will see.
 


Tuesday, December 31, 2024

EFM LFO2--Old Skool Fun


Readers: If you'd like to build the project featured in today's post, please go to PCBWAY's Community pages--gerber file (main board); gerber for jacks board, front panel gerber, KiCAD project/pcb/schematic/library files, a B.O.M., a link to GitHub simulations for the design and more are here.  

You can also help out this site immensely by checking out PCBWAY using the link here. Thanks!

=====

I needed a break from programming, MPU's, logic, and whatever else, and stumbled upon a cool design here from EFM ("Electronics for Music"). 

I decided to build it:


To further break with past Eurorack projects I built this "EFM LFO2" in PAIA's Frac Format, giving the build a large format look and feel: +/- 15V rails, panel mount potentiometers, and hookup wire.

I had forgotten how much fun it was going old-school--I could try out different things, slap in modifications, and quickly recover from the stupid mistakes.  

DESIGN

LFO2 caught my eye because of its extensive use of OTA's and the different ways current was passed to the CA3080s' amp bias pin 5. 

Using Falstad I simulated the different sub-circuits that fed  bias current to the circuit's OTA's: get the simulations at GitHub here

Falstad sim for the LFO delay sub-circuit

If you want to learn more about how to incorporate OTA IC's into your designs a great resource is Thomas Henry's book "Making Music with the 3080" here; highly recommended.

The circuit also incorporated a CD4007--an interesting IC, 6 MOSFET in a 14 pin DIP. 

It clamps and buffers an incoming gate signal to control the LFO's onset delay--yep, CD4007, an IC with 1001 uses.

Overall: LFO2 combines EFM's Tom Gamble signature economy-with-coolness--a clever  design that shows off Mr. Gamble's considerable skill as an analog audio design engineer.

The project used 3 PCB's:  a 3.5mm jacks board found at PCBWAY's community site here; a front panel, and a main board.  

I copied the EFM schematic into Kicad 8 and laid the main board out on a 99 x 99mm PCB.

You can get a 99x99 board from my sponsor PCBWAY dirt cheap: 

GO PCBWAY!

Shout out to Serene and the good folks at PCBWAY for help getting this project off the ground. I use them for all of my PCB fab and have also counted on PCBWAY for metal work, 3D printing, and assembly. They do all this and a lot more.  

They always do great work, are extremely affordable, and ship super fast. Please help this blog and check 'em out: here.

THE BUILD

I employed the same design and fab techniques found in the previous post here, but employed a SMD stencil (a good video for using stencils is here--go to 38:10--showcasing the technique used), stencils are available from PCBWAY of course.

IMPORTANT! For what we DIYers do, pick the "non-framework" option when you order your stencil--for instance, at PCBWAY the order choice looks like this (I figure all fab houses offer this option):



Happiness is a batch of new PCB's:

3 boards and a mask....

The build went  quickly, but of course didn't work first time (WFT). 

Here are a few useless build photos:

To add to LFO2's old-skool vibe I used JSTs, hook wire, and a Stratocaster 3 position switch. Fender Stratocaster switches are a standardized part, with lots of clones for sale; any decent Strat 3-position pickup select switch should work for this project.


I didn't have a .005uF (5nF) 1206 cap so I stacked 2 2.2nF 1206 SMD caps, which was surprisingly easy to do, I soldered on one 2.2nF cap, put the other on top, and reheated. 


    

I used DIP IC's, not SOIC. Again: old skool, dude, old skool.

"Wires R us"




MISTAKES, I'VE MADE A FEW

But then again too few to mention? Nope. Lots to mention.

I misread the schematic; the "range" pot to the left is a 10K trimmer but no, I made it panel mounted.  

So....I soldered a 10K 25 turn trimmer into the JST footprint (perfect fit, I got lucky).

I thought a first the circuit didn't work at all, but once I turned this "cvrange" trimmer down pretty far things started to work. 

But...now I have a big drill in the front panel ("Range") that doesn't need to be.

I fed a 50K "range" pot to pin 3 of the EXT JST.  Feeding this range pot was V+ from the Euro 10 pin power header; GND was provided to pin 1. I had to add a 10K resistor between the wiper and EXT to make sure if the pot was set fully counterclockwise--to ground--the +15V supply rail wasn't sent there as well.

This meant when nothing was plugged into MODULATION CV2 the range knob provided 0-15CV to the OTA controlling frequency and the frequency of the LFO at output increased dramatically.

If I revised LFO2 I'd put +12V or +15V or whatever to the normal of one of the mod pots....but the mod to fill the useless "range" drill worked. 

I also had a considerable amount of trouble remembering that when I looked a potentiometer from behind its pinout is 3-2-1. From the front it's 1-2-3. I had to re-solder a few pots.

I also mistakenly plugged one of the pots into the EXT JST during testing. The EXT JST is for normaling this module to others and could be omitted. This mistake created some very strange behavior at output until I unplugged the errant pot.
 

MODS

Only one: The random voltage output bias offset increased with the "Level" settings, which some synth heads might like, but I didn't.  

I put a 10uF cap in series with the 3 position switch input for SQUARE, which knocked its DC offset output to ground regardless LEVEL's setting. 

The 10uF cap turned the random signal into not quite a random changing square wave, more of a randomly changing slightly sawtooth wave, but: good enough. 

Maybe even better, the cap adds an analog vibe to the random output.

If I do another revision of this module I will add the 10uF cap to the PCB design.

PERFORMANCE

This is a cool LFO with a early Roland modular  feel. The delay goes from 0 (no delay) to maybe 20 seconds. Cool! The main issue is that some level settings, which control the overall output amplitude for all the LFO's waveforms, distort the triangle wave and can push the square wave output to a DC rail voltage. Not sure how to fix that quickly, but I can live with adjusting the LEVEL pot to get the output I want. 

The frequency at output goes from slow < .1hz (with sufficient negative CV) to a nice fast-modulated sound--satisfying!

Overall, this was a really entertaining project, and I needed a fun build after some not-so-fun builds. 

Going forward I may create more large format/frac/ with wires, guitar switches, pots, and whatever else. Sure it may not work for the other guys in my synth group, but it works for me....so,why not?  

Sunday, December 22, 2024

EFM/KORG770 VCF--BUILT: yes, WORKS: yes, SOUNDS: bad

Ahoy! 

This time, I wanted to refine the quick prototyping idea discussed midway through this previous post:

  • Minimal breadboarding--I hate breadboards
  • Hookup wires for fast modifications/fixes to switches, input jacks, and potentiometers using JST connectors 
  • Panel mounted hardware
  • SMD 1206 parts--easy to place, easy to change; heat the part up, remove it, drop another value in.
  • SOIC IC's
  • PAIA Frac Format--bigger than dinky Eurorack--not as rotunce as large format.

The idea: if I came up with something really cool I would port it to another format....Frac isn't dead, it just smells funny.

This time I put this workflow to the test with EFM's take on Korg's 770 VCF:

Frac me up Scotty? find a listing of all cool EFM designs here



 A real 770....could the 1999 VCF design from DIY pioneer Tom Gamble get me the sound of classic 700/770 synthesizers?  

I heard a B3 guy play a Korg 770 at a music festival a few years ago and thought it sounded--bodacious.

So I laid out some boards based on the EFM design, using KICAD, and off to PCBWAY the gerbers went.

THANKS TO THIS BLOG'S SPONSOR: PCBWAY

PCBWAY was super as always about turning around the boards for this project around fast! Instead of breadboarding it is always much less time and frustration to lay out KICAD designs and send them off to be made into PCB's. 

For this service, PCBWAY is always extremely helpful, super affordable, and fast! 

As always I got my PCB's right away, fabricated to perfection. And! PCBWAY can do a lot more: 3D printing, assembly, metalwork, injection molding, are all cake for these guys. You can get five 99mm x 99mm 2 layer PCB's for five bucks USD! 

Help out this blog and check 'em out here.

KORGANING.....

So with the cool PCB's back--did this project go?

The good news: the entire process of construction, populating the PCB's, and modifying them went much quicker than using through-hole, skiff construction, or breadboarding. 

Construction of the module in its entirety--this was not a super low parts count VCF--took about two hours. 

Since the quick prototyping challenge was met I could make simple changes to the EFM design post-fabrication fast, fast, fast.

The bad news: this particular 770 filter sounded really lame. 

Yeah, I made modifications and swapped in different component values trying to bring this filter into the land of the living; I banged away on the prototype for about three hours then gave up. 

PASS ON LOWPASS

I couldn't get LowPass section to completely block audio without greatly impacting its overall frequency response. 

So either I ended up with a constant "wah" or a modulated maximum cutoff frequency that was too low to be audibly pleasing. 

This drove me nuts.

Changing rail voltages altered this poor performance, so I tried doing wacky things with diodes to drop the power rails by .6, 1.2, 1.8 etc volts. 

This helped but I never got things to a place I liked.

Diode between rails and V--; instant drop from -15V to -14.3

The LP filter input brought the audio signal down at output about 16db (!); output amplitude got slightly better with a decent amount of resonance added; but amplifying the circuits output back to near unity with an additional op amp made the output too noisy/hummy/buzzy.

If I cranked the "Q" pot past about 80% I got horrible sounding distortion at output. This was not cool MS20 Daft Punk distortion: this was butt-ugly distortion. 

The bandpass setting, which I don't recall a Korg 770 having, sounding, well, oddly bad ("badpass"?)

The highpass sounded (almost) OK?  It might have made sense to ditch the LP and BP sections and just focus on that with some mods?  Well, maybe, but maybe not, the HP didn't sound that good.

Overall the filter had a feminine quality, was a Seinfeld low talker, and didn't punch; to me, it definitely didn't capture any of the je ne sais quoi of old school King Kong Korg.

FABRO-CATION 

However the fabrication workflow felt like a win and I might do it again.

Boards in bags from the blog's faithful sponsor, PCBWAY.  Even when my projects sound really bad these guys do really good. Help out this blog and check 'em out.

Project consisted of 3 PCB's: front panel, jacks board, and main board. Also a cheapo stratocaster guitar pickup selector to choose LP/HP/BP. Why not?

The jacks board is 4x 35RAP Switchcraft 3.5mm mono jacks, spaced 600 mil apart. This small PCB might find its way into other projects.

I used the SMD goo-n-tweezers + hotplate for the lions' share of soldering. Read more about this solder technique midway through the previous post here. This is the "before" picture: sloppy, right?


 

Ah! better! The goo-n-tweezers method is pretty forgiving since the parts center themselves during soldering. I had to solder wick one side of the op amp and resolder D2 by hand, other than that, all the soldering came out great.

Next I added the hookup wire and panel mount pots. I had everything right the first time, no pots where CCW was 100% , no input jacks hard-wired to outputs. 

 

KORG ME UP, SCOTTY?

So, where do we go from here? If I felt I could get anywhere near the cool Korg 7xx series sound with this VCF I would have kept working. But I wasn't on the same planet.

I put kicads, gerbers, libraries etc. on github: here.  

If anyone wants to fork this dork, or do whatever you want: do whatever you want. 

I also posted the jacks board (which i figure I will use in other projects) to the PCBWAY community site: go here.

I am going to strip this one down for its reusable parts and move on. This module's death may allow others to live.  

Over and out captain. See ya next time.

Tuesday, November 26, 2024

JTAG to SWD Converter

Readers: If you'd like to build the project featured in today's post, please go to PCBWAY's Community pages--gerber file, KiCAD files and a B.O.M. are here.  

You can also help out this site immensely by checking out PCBWAY using the link here. Thanks!

===== 

Hello again:

Another simple one!  

I use GDB to debug C based embedded system projects--I currently use a Segger J-Link EDU debugger with a JTAG interface:

Segger J-link EDU Mini

But! The development board I am currently debugging is a Raspberry Pi PICO that has an SWD interface:



JTAG is not difficult to turn into SWD, it's a "connect this pin to that pin" challenge.

However I got tired of fiddling with tiny fragile adapter cables so I whipped up a simple JTAG to SWD PCB; the focus of this post.

 


REQUIREMENTS

The J-Link EDU Mini's JTAG interface uses a 2x5 pin 50 mil pin header--1.27mm --extremely small--conforming to the "Coresight 10" JTAG pin specification



The Pico uses 3 x 100mil SWD pins for SWCLK, SWDIO (data), and ground:



The Segger J-Link EDU board, unlike Segger's more expensive debuggers, requires a 5V reference....there were may ways I could have gotten 5 volts to the adapter PCB, from a USB cable for instance? Or a battery? 

However I used wirepads and 22 gauge solid wire and connected a bench power supply for 5V; I may rethink this design choice down the road. 


DESIGN AND LAYOUT

Simplicity itself....took me maybe an hour to lay out the PCB in KICAD, very little thought went into design, perhaps it shows?


Did a very quick 3D check in KICAD....good enough--sure. Off the gerbers went to PCBWAY.



BUILDING/TESTING:


PCB's are back! Happiness is new PCB's from this blog's sponsor, PCBWAY. Please help this blog by checking them out.


Easy build. The SMD JTAG 2x5 connector was pretty small but I managed to solder it without needing my microscope.

For the Pico I used a 3 pin JST connector:

The more JST connectors I use the happier I get, they are inexpensive and extremely reliable. You can get them for next to nothing from Tayda.


To test I coded a simple C proof of concept program: "PrintRTT", which used the adapter board to bring printf() statements from the PICO to a Segger J-Link and then to my Linux system. 

Wired it up:
Pico needs power as well--use USB and/or 6V-9V and GND to pins 39 and 38. 



Worked--I dragged the UF2 file to my Pico and ran the Segger "JlinkRTTViewerExe" terminal app on my Linux virtual machine..

You can get the code from Github here

Instructions for using the Segger printf() overload and the Segger RTT app are covered in latter half of the post here and the Segger page here.

Adapter with a "stock" Pico....the red and black gator wires are 5V and GND from a bench power supply, needed to provide the JLINK with its 5V reference.

And to debug the rotary encoder experimenter's board....

The adapter board was a piece of cake and worked first time. Viola! No more fiddling with tiny fragile SWD cabling. 

I had a few ideas for improvements: clarifying the silkscreens and adding more diode protection.

But for now it's time to move on.  

I remain extremely happy with the Segger J-link Mini EDU. There are other PICO/RP2040 GDB debug options  (DIY "PicoProbe" and the offering here) but to me the Segger offers a good mix of simplicity, value, and useful software tools for a Linux-based toolchain.  

That said....I'm feeling a little tired of crafting embedded RP2040 projects and might fabricate a few analog EFM based circuits (will it work? it effectively frigging might?) in the next few weeks, a distraction.

And some analog design.  

Wait, analog? Math, breadboards, smoked parts. Sure, why not? Until then: don't breathe the fumes! 


 

Sunday, November 10, 2024

Rotary Encoder Expermenter's Board: Improving the Hardware

Quick one this time....I have posted a few projects lately that incorporated a Raspberry Pi Pico, rotary encoder, and .96" OLED: here, here, and here. To make it unnecessary to breadboard the hardware, I posted an "experimenters board"--a development board to augment a RP Pico that adds a rotary encoder, an OLED, and a buffered GPIO output, and other enhancements.

Just now I updated the KICAD and Gerber files on the PCBWAY community site salient to the posts: here.


The 9-29-24 revision of the experimenter's board uses less components, incorporates the encoder debounce library here, superseding the less responsive CD4011 based hardware debounce discussed here

Good news: it all works.

Thanks to Wendy and the gang and PCBWAY for patiently providing revised me with PCB's. You can help this blog by checking 'em out. 

9-29-24 revision

To make sure the grounding issues I saw with earlier revisions was a function the PCB's layout, not the schematic nor code, I breadboarded the entire "dev board for a dev board":


The breadboard example worked every time, but some of the older experimenters PCB's didn't, so, for versions of the board prior to 9-29-24, I was fairly certain this was a hardware/PCB layout issue.

I thought trace layouts for low frequency audio wasn't terribly important--put things almost anywhere, throw in whatever traces you want--it will work--we are bottom feeders?

Wrong. Apparently the I2C traces (at the very least) needed to be treated with forethought.

Previously: more narrow traces....no ground pour


9-29-24 design improves that. 

I found myself putting the 9-29-24 assembly on hold for a couple of weeks, partially because I was tired of revising the board, and also having a feeling (incorrect, fortunately) that the 9-29-24 revisions would make things less reliable, not more.


Word of caution: 1306 128x64 .96 OLED's are everywhere but there appear to be 2 different pinouts coming from Shenzen: GND far left, and VCC far left.  

My design requires VCC on the far left--make sure you get that style of OLED if you build this project.

Spinning the rotary encoder advances or diminishes the counter on the OLED as expected. Every time, without fail. Thank goodness.  

Next: I have augment the code to create a user interface for the frequency counter....yes, I will get to that someday, but it means a lot of code changes.  

For now it's back to my day job--for better or worse the global pandemic is over.

Saturday, October 12, 2024

Building a Moog T904B Inspired High Pass Filter--Using an SMD hotplate--Works!

Readers: If you'd like to build the project featured in today's post, please go to PCBWAY's Community pages--gerber file (main board); gerber for jacks board, front panel gerber, KiCAD project/pcb/schematic/library files, a B.O.M. and more are here.  

You can also help out this site immensely by checking out PCBWAY using the link here. Thanks!

=====

This is a continuation of this previous post...where I laid out and built a Moog T904B HighPass Filter homage, based on a schematic from DIY pioneer Tom Gamble.  

Revision one's design/build attempt was disappointing, since it "worked" but sounded, well, terrible.

After rewatching the Kristian Blasol video (here) I wanted to keep working. The filter in his video sounds--interesting.  

Really interesting. Nasal, but also shimmery and a bit phase-shifty? 

To get my version of this filter off DogDoo Island I redesigned two of Revision 1's PCB's, improving ground planes; REV1's ground and audio traces looked terrible on my oscilloscope.

Good news: after building a REV2 Moog/EFM T904B, with PCB's provided by this blog's humble sponsor, PCBWAY, then spending an entire Sunday fixing stupid mistakes and experimenting with different component values, the Moog ladder highpass VCF sounds (I think)--much better. Maybe even good.

 I recall back in the day Mr. Gamble posting that his designs and kits were for experienced builders--something like that. In this case he was right! This HPF is a complex build, in terms of parts count, design complexity, and need for modification. This is not a good project for a beginner.  

AN ASIDE: WORDS FOR MY SPONSOR

Happiness is a new batch of boards from PCBWAY....

Shout out to Serene and the nice people at PCBWAY for sponsoring this blog. It sometimes takes me 2 or 3 revisions to get something to work; the T904B inspired HPF has been no exception. 

PCBWAY has always been patient, friendly and extremely supportive as I work through design changes. 

PCBWAY also has done great 3D printing for me and offers other useful services. They charge low prices and fabricate quickly. They are an asset to the DIY world; please help out this blog and check 'em out.

Back to the post....

SMOKING HOT


What fun would DiWHY be without trying new (for me) fabrication techniques?  

For the Moog/EFM T904B VCF build I purchased a $39 "Amazon's choice" 100mm x 100mm hotplate and $10 worth of solder paste.  

Links for the plate and paste (hope these links still work):

 TLZBK 350W soldering Station Hot Plate

Wonderway SN42 lead free no clean solder paste

I got building--gooped the paste, not being too neat about it;

 



 I used tweezers to put the 1206 SMD parts on top of the goop, then dropped it on the hotplate.

Note: if you want to try out this fabrication technique, work in a well-ventilated area. This hotplate/paste/SMD process produced a lot of toxic smoke; you shouldn't breathe its fumes.

Baked the jacks board....


Marvey--what temperature to use? 

This chart shows the heat curve one should follow--"IPC/JEDEC J-STD-020C--impressive?--but the plate only had set/enter switches for temperature; inputting complex functions for heating/cooling wasn't possible.


Instead, I decided to heat the damn thing up, and after the parts were put in place and the solder had melted, cool things back down. 

To my surprise this approach worked. At about 195C the parts magically centered themselves to solder pads and the solder flowed where it needed to go. 

After the parts set I let the plate continue to heat up to about 210C, then told the plate to climb back down to 100C, which it did, slowly.  

At about 150C I removed the PCB and put it on my bench to cool down to room temperature. I noticed that at 150C components could still be jostled and knocked out of place, so, removal of the populated, soldered PCB from the hotplate had to done carefully.

Visually inspecting after cooldown: in spite of my heat curve being far from ideal, it worked! 


 

I was chicken at first to bake on an SOIC TL071, but successfully soldered 2x TL074's using the hotplate when I soldered the main PCB's SMD parts.

Overall, the process was far more forgiving than anticipated. There was a solder bridge on an SOIC TL074 that I fixed with solder wick, and one 1206 resistor baked on 90 degrees opposed to where it should have, which I corrected with a soldering iron and some tweezers. 

There were tiny solder balls here and there, I assume because I splorfed too much solder onto some of the pads. These unwanted solder balls were easily neutered with a sharp blade and some tweezers.

Otherwise--all good.

One byproduct--after the 1206 bake there was a lot of leftover flux on the PCB. I used "no clean"paste, meaning this leftover flux isn't conductive and can stay where it is, but I dislike spoojim all over my PCBs. I am still trying to figure out how to best clean the no clean: flux remover, isopropyl alcohol, and other attempts haven't worked...maybe I have to leave it.

Overall using the hot plate and paste was far easier and less time consuming than soldering 1206 SMD parts by hand, and I imagine with a solder mask difficult SMD parts (QFN's?) are doable for DiWHY'ers using this inexpensive setup.

I will keep working with this hot plate for upcoming posts.

HIGH PASS DRIFTER

OK, let's talk HP filter.

The original Moog patent design looks like this:




From this MW forum post  the EFM design resembles the Moog ladder filter patent...indeed:

Long Live Moog! Long live EFM! Interesting: this is a 24db/octave high pass filter, a lot of other popular audio HPF's are 12db/octave (the Oberheim SEM's for instance--a favorite); meaning the T403B can be driven to oscillate.


From here it was a VCF build like so many other VCF builds: design and revise PCB's with Kicad; send gerbers off to PCBWAY; solder SMD's first then add through-hole components...

As per a comment in the youtube video: I didn't have to match transistor Vbe's, so I didn't.

Before too long I had new PCB's, populated and ready to test.

Testing. I used an single 3mm nylon phillips screw, standoffs, and nut to secure the jacks and mainboard to each other.

Did it work first time (WFT)?  

Nope.

I spent a masochistically joyful Sunday (all pain, all day long) troubleshooting the REV2 build. 

There were a few stupid build errors, the biggest: I put .22uF caps in the resonance feedback subcircuit, where .22pF should be used.  

I had a cold solder joint in the 100mil V-- trace between main and jacks board--that didn't help.

EFM mistake? The EFM schematic showed the main frequency cutoff pot with V++ (I used +12) Vdc on one side and ground on the other. Nope. It needed V+ on one side and V- on the other--this is corrected on the PCB's uploaded to the PCBWAY community site:


Otherwise the VCF cutoff required CV values below ground....doable, but not "normal" as I see things.

I found the EFM resistor values for CV mod didn't work for me; for my rack's 0-5V CV setup I used 20K's and B50K pots as in the snippet below.... 

 

Fortunately incorporating 1206 SMD resistors made trying different values for R1/R2 easy: using a 700F soldering iron with a sharply pointed tip I heated up both ends of the tiny resistors, removed them, and soldered in something different. This was faster and easier than working with through hole resistors and posed less danger of damaging traces when changing out components.

MODS AND SODS

Besides messing with resistor values I made two semi-major modifications to the EFM schematic:

First to the jacks board I added an output buffer:

R6 adjusts output--try between 10K and 100K to get the output level you want; I started with 10K (shown) for R6 but later changed it to 47K.
 
Second: I added an audio input attenuator to the jacks board: 

 
I added the latter ("ladder"?) because in this cool Youtube video the filter sounded slightly distorted at times.

Looking at the EFM schematic I thought that high peak to peak input signals saturated the first stage of the PNP/NPN/op amp trifecta--just a guess.

To my surprise the additional input attenuator didn't only let me dial in appropriate audio levels to remediate distortion, in some cases, the attenuator changed the character of the filter's resonance.  Unexpected, but I'll take it!
 
One more tidbit: I didn't have 220K 1206 resistors in my junk box, so on the main board I used 200K for R11 and 30K for R21. I am not sure how common 220K 1206 SMD resistors are at retailers like Tayda--whatever--some resistor values aren't critical--just get them close.

IMPROVED OUTRO

Anything Moog and EFM are cool right?  

Sure, but: this EFM Moog HPF isn't a module where every setting sounds great. In general I found I had to experiment--it's an odd beast--messing around is a big part of what we do, so this is a feature, not a bug? 

If I were to continue working on this filter--I probably don't have time--I'd add a resistor in series with the V++ feed to the cutoff1 pot (current "jacks board" has a resistor for V--, but not V++).  

Why: a lot of potentiometer real estate for the frequency cutoff above 2PM was useless--turn the frequency pot above 60-70% and the audio at output was gone.   

The modification to the cutoff pot should look something like this:



Update: modified! I cut the "3" leg to Cutoff 1 on the jacks board and kludged in a 12K THT resistor between it and the V++ rail. Big help! If I do a REV3 of the jacks board I will include this modification.

Also: since this is a high-pass filter, it might be useful to change one of the modulation inputs to invert the incoming CV signal and set its bias to somewhere above ground--2.5V perhaps. Even better: add a modulation attenuverter to get cool inverted highpass effects. 

Finally: would matching Vbe in the transistor pairs make this sound better?  A traditional LP Ladder filter doesn't have a buffer between each transistor pair, but this design does, so I am going to guess it doesn't need transistors to be matched. Just a guess. 

OK enough for now--this has been a maddingly fun project--to remain high, consider giving this filter a pass. Something like that. See ya next time.

FGPA's 2025 part I: Intel/Altera/Quartus

Hello there, it's a new year, and I am jumping back down the FPGA rabbit hole: Tesaric DE10-LITE. The URL for the CD, on a sticker glu...