Build Project: Dewster's D-Lev Digital Theremin

Posted: 6/26/2019 2:55:21 PM

From: Minnesota USA

Joined: 11/27/2015

DIY SMD Reflow Oven (cont.)

Before I had even started on this project I had decided to use the open source Reflow Master temperature profile controller designed by Seon Rozenblum.  If you look for available controllers you will find a few that have come and gone in relatively short production runs. The above unit is (or was) still available and has a nice color display that shows both the target profile temperature curve and the current temperature progress against it.  It has four built-in temperature profiles for some common leaded and lead-free pastes, and more can be added if you get into the code.  It also has provision for an exhaust fan that can be switched on as a cooling aid after the reflow peak, helpful because the oven cool time is much longer than the temperature profile demands.  I chose not to use this, however, because an exhaust fan does nothing if there is no air intake, and if I have to be present to open the door for that intake, I don't really need the fan.

One of the other available temperature controllers out there can trigger a standard RC servo to prop the door open at the appropriate time, but it's still best to monitor things in person for the whole five minutes or so that it takes to reflow a board.

The space on the control end of the oven was limited, so I knew better than to try to fit this controller inside the oven body.  The solid state relays (SSRs), their heat sink, and a 5v power supply would be located inside the oven and the controller and display would be housed in a separate box (I haven't started on this yet).  A multi-pin connector on the back of the oven provides the connection port for the controller.

Even though this particular controller does not have separate outputs for the top and bottom heating elements, I decided to use separate SSRs for the top and bottom with separate toggle switches on the front panel so that I could manually preheat the oven or override the controller if the temperature for any reason lagged the desired profile.  The SSRs require heatsinking, so I machined a plate from 3/8" thick aluminum that would fit the space and also provide a mounting surface for terminal blocks and the power supply.  This plate had to fit around some obstacles (note the cutouts for the convection motor and the bell).

The only original control that I used was the timer switch.  A new front panel was made from stainless steel and a small fan was put in the bottom to push air over the heat sink and out the bottom and rear vents.

The choice of solid state relays wasn't trivial.  The most commonly available brand on eBay is Fotek, which is a real manufacturer of quality relays, but as far as I can tell nearly all on eBay are Chinese clones that have a habit of failing, often in the shorted state.  As it turns out, post-mortem analysis by a few inquisitive users has shown that some of the clones use severely underrated triacs - in one case someone found the clone SSR-40 amp relay board populated with a 6 amp triac.  Fortunately I found these Panasonic relays from Mouser for about $14 each.

I was now able to fire up the oven for the first time to get some idea of the heating and cooling rates and to see if it could keep up with the controller profile.  With all of the elements turned on, it could generally reach the peak temperature within the required number of seconds, but keeping up with those sections demanding a higher-slope temperature rise would be difficult.  Plus there was a lot of radiant heat escaping through the front glass, so I applied a sheet of polished aluminum with a viewing window to the inside of the glass to help reflect most of the energy before it even reached the glass. Here is the inside of the oven showing the clip-on thermocouple and the reflective panel on the door:

This was a huge help for increasing the rate of the temperature rise, but it presented a new problem.  The front glass was much cooler, except in the area of the window, where it was still very hot.  This could have exploded the glass in my face, but fortunately it held together and I was able to make a couple of sliding shutters (also polished aluminum) that can be left closed until the crucial moment where you want to view the reflow action, and then closed again after that.

As a final test before buttoning up the oven I timed the heating rates and found that I could go from room temperature to 185 Celsius in 145 seconds, which should be able to keep up with the profiles.  Some people have lined the inside of their ovens with a very expensive adhesive gold film (gold is highly reflective at infrared wavelengths) which improves both the heating and cooling rates.  And it looks impressive as well.  But I thought I would try going without at first because it does add probably over $100 just for the material.

Now I have to finish an enclosure for the Reflow Master controller.  I'm thinking it would be a good idea to put a standard PID temperature controller in the same box so I could use the oven for other purposes as well (powder coat baking, drying).  I also really need to go back and put some type of hardware temperature limit switch inside the oven too.  With the manual override switches on the front panel I don't need to have a China syndrome in my basement if I should forget and walk away with the heating elements left on...

Posted: 6/28/2019 4:19:52 PM

From: Minnesota USA

Joined: 11/27/2015

D-Lev "Pro" Build Progress  Pt. 1

The good news is that the D-Lev Pro (informal name for D-Lev stuffed into a custom-build EWPro-like cabinet) is finally up and running with the latest board set and is working well with only two minor issues.  To keep the inductor size down for this cabinet design, both oscillators are running at higher frequencies (roughly 2.9MHz for volume and 1.9MHz for pitch).  The inductor physical size constraint was driven entirely by the pitch oscillator side, where both the inductor and the Analog Front End (AFE) surface-mount pcb are located inside the end of the pitch extension arm. But having a small volume inductor both electrically and physically doesn't seem to hurt either.

New boards arrived last Friday from JLCPCB.  The order had been confirmed on the previous Monday, and both the turnaround time and the board quality were again outstanding.  Four of the seven different boards are somewhat universal D-Lev boards, while the other three (TOUCH, POWER, and INTERCONNECT) are unique to this particular enclosure design.  Most of the changes made from the original board run involved increasing a few hole clearances to make component insertion easier.

The Pro theremin has been up and running with the first board set for a couple weeks, and as the new boards were built up they were substituted one-by-one into place and confirmed to be working. The three new Pro-unique boards were built up and tested on the bench. All were working as planned and the theremin was then partially disassembled to allow installation of the new boards.

The touch-sensitive feature that lights corresponding LEDs surrounding the display panel for whichever encoder knob is being touched was intended to be used only on this cabinet design because the knobs had to be placed well below the display, and I wanted to avoid having to look back and forth between the knobs and the display.  The eight encoder boards were removed from the front panel to allow the TOUCH board to be installed between the two encoder columns.  Each of the TOUCH board's eight touch pad input lines goes to a screw-hole pad in the board perimeter. One screw goes through each of these pads and connects directly to each of the eight encoder knob bezel rings.  The knobs themselves are only capacitively coupled to these bezels, but the programmable sensitivity of the TTP226 IC allows a wide range of adjustment from requiring direct finger pressure on a knob to only requiring close proximity to it.

Eight 0-80 screws hold and connect the TOUCH pcb, and when the screws are tightened down the board curves and conforms to the panel curvature.  I had considered using .031" substrate for this, but the .062" bends to shape without a problem.  This was the first pass of this particular board, and it came out too wide to fit between the encoders.  I had to sand the width and restore a couple lost traces with wire.  This will be fixed on the next board run.

Touching an encoder knob lights the corresponding LED surrounding the LCD panel.  As it is now all knobs respond to touch but the lower right knobs are a little less sensitive.  I think this can be balanced out by changing the shunt chip capacitor that is on each line.

I was always ready to ditch this feature at any point if it became a problem, and I still am, although it looks like it is going to work.

Next is a sequence of photos showing the internal board layout and how the cabinet goes together.  In this first view the top left board is a simple interconnect to transition from a ribbon cable to the individual wires that run to the pitch arm contacts.  The brass button to the right of it is part of the locking mechanism (and electrical ground) for the pitch arm.  The green air-core inductor is for the volume AFE pcb seen just to the right and below it, mounted on its own little shelf bracket. Mounted deeper in the cabinet and within the front panel itself is the LCD with the multicolored Dupont wires connecting to the MAIN FPGA pcb.  These are temporary because I am still waiting for 34-pin ribbon connectors to fit the 1x16 LCD header and the 2x17 connector on the main board.

This is another view showing a little more of the MAIN FPGA board:

(To be continued)

Posted: 6/28/2019 10:12:46 PM

From: Northern NJ, USA

Joined: 2/17/2012

Ho boy!  Roger, you're killing me - and making me run out of superlatives!  Your reflow oven looks amazing!  And your "Pro" is a thing of beauty, inside and out!  Your volume coil is particularly spiffy looking.

People should know that Roger super kindly just sent me a stuffed and working set of his PWBs that I'll soon be cobbling into a functional mock-up.  My input won't look anywhere near as good as anything on this thread, but the boards at least will be pretty! :-)  (Though if you look waaay inside, I do write fairly nice looking code, if I do say so myself.)

[EDIT] Hey, for real "Pro" high fidelity, you need to make that thing self destruct the PWB's when it tips over and lands on the knobs!

Posted: 6/29/2019 7:09:34 AM

From: Minnesota USA

Joined: 11/27/2015

"(Though if you look waaay inside, I do write fairly nice looking code, if I do say so myself.)" -Dewster

I wouldn't know what I was looking at if I went waaay inside. But from what I see on the outside, I would say you do indeed.

Posted: 6/29/2019 8:10:07 AM

From: Minnesota USA

Joined: 11/27/2015

D-Lev "Pro" Build Progress  Pt. 2

Below the MAIN FPGA board are the two breakout ribbon cable assemblies that connect it to each of the eight individual ENCODER pcbs.  Encoders can be part of a larger main board at some point to eliminate this added complexity.

Here is a wider view of the enclosure with the back removed.  The dangling wires are for connecting a "write" LED, which I will probably not use this for this project.  This is a feature that Eric added to flash an LED during the preset/system-parameter write sequence and provide a confirmation that something is actually happening.  The user interface on the LCD also gives a text indication when you are armed to write, but the flashing LED is a more universally accepted indicator of a temporary state that requires attention.

The bottom panel has all of the I/O connections.  In the photo below and clockwise from the power entry on top we have the fuse, RJ45 female for the separate tuner, a mono pitch preview jack, main power switch, mono main audio out, an alternate stereo jack for providing both preview (ring) and main (tip) audio, and finally a 3.5mm jack for use with an external pedal that triggers auto-calibration (acal).  I forgot to make room for an optical output, so I may remove a redundant 1/4" audio jack and stick one there.  Four screws that go into the side panels lock the front panel to the sides, and the two top holes are for thumbscrews that insert into the end of the back panel for easy tool-less removal.  The top ends of the front and back panel each have a slide-in locking mechanism, so there are no visible screws other than these six on the bottom panel. The center sleeve has an internally threaded insert to accept a shortened boom mic stand.

The main audio and pitch preview jacks on the bottom panel will provide outputs from the SPDIF/analog converter that are adjustable up to line level using the potentiometers on the front panel (the large wood knobs). This allows setting the main audio level to blend with accompaniment music and optimizing pitch preview level when using a behind-head monitor, both without having to use a nearby mixer or adjust volume digitally through the user interface.  The front panel "Phones" and "Preview" jacks are these same variable level signals run through a a TDA1308 headphone driver configured for somewhat less than unity gain.

Auto calibration ("acal") can be initiated by rotating the lower left encoder knob if you're on the main page of the interface, but sometimes when experimenting with pitch or volume system settings it's nice to be able to perform acal from those menu pages without going back to the main screen.  A dedicated hardware input was added that allows the use of a simple normally open floor pedal to perform this same function. Tapping the pedal triggers calibration no matter which page you are currently on in the user interface. I find this immensely useful for setting your reference "zero beat"  and volume with both hands poised in a retracted rest position.  I put quotes around "zero beat" because the calibration pitch with the pitch hand withdrawn and near the body of course should not be zero if you want to maintain pitch linearity into the lower octaves.

(To be continued)

Posted: 6/29/2019 1:31:27 PM

From: Northern NJ, USA

Joined: 2/17/2012

I don't think I ever gave you / hooked up an FPGA pin for the write LED?

I really like how you only have visible screws on the bottom, looks real classy!  Hey, on the bottom there you need one of those two-pronged mickey-mouse AC input jacks (IEC320C7) and an XLR line level output, that way when fumbling around by "feel" on a dark stage you can zap the audio section with 110VAC!  (A real design flaw on the Roland RD-800 stage piano with downward facing I/O - their fix was to cable clamp the AC cord to the case!)

I think we're using the same mic stand.  For some types of Theremins the small size is too short and the regular size is too tall.  It looks like they can probably be cut down to whatever size fairly easily.

My turn to snoop on your bench!  Is that a microscope with ring illumination?  A hot plate of some sort (blue)?  A syringe hooked up to a vacuum source - for solder sucking?  What's the blue-tipped hose connected pencil thing next to it?  Don't ask don't tell re. the roll of TP!

Thanks to you, when making toast in the morning in our B&D toaster oven I think of solder reflow!  Though I use ours for cheese and butter reflow...

Posted: 6/29/2019 3:40:36 PM

From: Minnesota USA

Joined: 11/27/2015

"I don't think I ever gave you / hooked up an FPGA pin for the write LED?"

I have FPGA pin 74 assigned to led_o[4] which I have been calling "STORE LED" on the board.  I can't find the original discussion of the pin assignment offhand, but I recall that you told me it was an active low signal so I paired it with an adjacent 3.3v pin.  And below are a couple references to it in your change logs.  I thought I tested it with the slow blink but I'm back at 5/17 software right now so I haven't checked it recently.  Are we possibly talking about something different? 

- Now only writes to preset slot 0 save the system parameters.
  This has the side effect of making slot 0 the power-up default.
- Write LED now blinks.

- Doubled the write LED blink rate.
- Removed 0xd0 type.

"I think we're using the same mic stand.  For some types of Theremins the small size is too short and the regular size is too tall.  It looks like they can probably be cut down to whatever size fairly easily."

I've cut down almost all of my stands now.  The standard tall ones (I forget the height?) are sometimes right for a theremin if I'm on a tall stool and if the stand is fully collapsed, but there is no margin to lower them if I want to sit on an office chair.  I just disassemble them and saw off whichever section I want to shorten.  It's easy to restore the flared end that prevents the sections from pulling apart.  I just rest the tube on concrete with the end to be flared on top, place an oversized steel ball on the open end, and whack it with a hammer.  The steel is soft and the end flares out enough to keep the extension from pulling out of the lower tube, or keep the lower tube from pulling out of the tripod base.

"My turn to snoop on your bench!  Is that a microscope with ring illumination? "

Yes, it's an Amscope circuit board model microscope.  I have an article about it on my website.

"A hot plate of some sort (blue)? "

That's what I've been using for reflow up to now.  It has a PID controller and these are pretty common on eBay.  They're used a lot for screen removal on portable devices.

"A syringe hooked up to a vacuum source - for solder sucking? What's the blue-tipped hose connected pencil thing next to it? "

The syringe is filled with solder paste and the box with the gauge is an automatic pressure/vacuum dispenser.  You can set the application pressure and time to hundredths of a second to get the paste blob size just right. Each pressure period is followed by a light vacuum to draw the paste back after application.

The other thing that you see is a homemade vacuum pickup tool for placing surface mount parts.  I made it using an aquarium air pump with the valve assembly reversed to give a mild suction instead of pressure.  A floor pedal valve tees into the vacuum line so that a tap on the pedal breaks the vacuum and the handheld tool drops the part. 

The paste applicator described above uses an electrical trigger to apply paste, and this pickup tool is strictly pneumatic.  In a moment of lucidity I modified the air pedal to add a microswitch, and now the same pedal works for paste application and vacuum part placement.  This is good because my pneumatic pedal is very positive and is mounted on a heavy plate, and the paste applicator pedal was this cheesy plastic thing.  Which, by the way, ended up serving as my "acal" pedal in one of the previous photos.  See how it all works out?  Even-Steven.

"Don't ask don't tell re. the roll of TP!"

For those long sessions at the bench!  Actually, it's much less wasteful than paper towels for the "little wipes".

Posted: 6/29/2019 5:33:43 PM

From: Northern NJ, USA

Joined: 2/17/2012

Interesting!  I was wondering how you were doing the solder paste thing, as well as the surface-mount placement.  When I was monkeying with boards at my last "real" job it seems there was a dab of rubbery glue under the center of the components, perhaps on the underside during reflow to keep them from falling off?  Or as a general "anti-knock" feature to keep things from moving around during all the jostling pre reflow?

Consulting our emails, I believe you were going to assign the write LED[4] to pin 15?  I'm currently driving LED[0] (pin 3) for testing purposes, as I can see it through the translucent housing, but pin 15 isn't hooked up to anything inside the FPGA.

I also see in the Quartus pin planner that the default output drive strength (4mA) and slew rate (slow) that I set in the *.qsf file for some reason aren't taking, something I will look into.  <= just checked the fitter resource section and the 4mA drive strength is indeed being applied.  Slower slew rate only applies to 3.3V LVTTL @ 8mA and above, so there's no downward adjustment possible.

Posted: 6/29/2019 6:22:04 PM

From: Minnesota USA

Joined: 11/27/2015

Actually the better way to apply the paste when you get up and running is to use a stencil ordered with the board and just squeegee the paste on.  But at this early stage where things are changing it's better just to apply it manually. Applying paste with the syringe and the pressure dispenser for all of the main board components on one side took about 2 minutes.

When you see tiny (often red) spots under surface mount components on one side of a board that is actually the adhesive applied to the board prior to part placement to keep them from shifting when the board is reflowed again for the other side, as you stated.

I think I found the same email from 5/1 regarding the store LED:

2) And regarding the "store" LED pin assignment, would you want to simply assign led_o[4] to any available pin that you have on your demo board for testing purposes (since your and my prototypes are currently still the same)?  I plan to assign this to pin 15 (bank 5) on my new main board.   
OK, I'll assign pin 15 and report back.  Though I'll be testing it with led_o[0] (an LED on the demo board that I can see through the translucent enclosure).

So I did assign it to pin 15 of the demo board, which is I believe pin 74 of the FPGA itself as I described in the last post.  So are we (or will we be) good here?

[Edit]  I loaded the latest software and tested the store LED and it is working.

Posted: 6/29/2019 8:24:24 PM

From: Northern NJ, USA

Joined: 2/17/2012

"So I did assign it to pin 15 of the demo board, which is I believe pin 74 of the FPGA itself as I described in the last post.  So are we (or will we be) good here?" - pitts8rh

And of course I never looked into nor got back to you on that pin!

That's LED[0] (FPGA pin 74), which is the same as the board LED I'm using for testing.  The pin would then be driving two LEDs in parallel.  The on-board LED has a 1k resistor from +3.3V, which gives (3.3V - 1.8V) / 1k = 1.5 mA, which is trivial.  If the the off-board write LED consumes this or a bit more then it should be OK.  And we can always increase the pin drive current if necessary.

You must be logged in to post a reply. Please log in or register for a new account.