Monday, June 25, 2018

32X Squeal Fix

Backstory


Everything I do has a little story to go with it.  If you just want to know how I fixed the Squeal issue, skip to "Resolution" below.

I bought my 32X brand new when Sega had given up on the platform and the stores were liquidating them.  I think I paid about $30 for it, then took the free copy of Virtual Fighter out of the box, went across the street to a used game shop that hadn't yet caught on and sold Virtual Fighter for $35.  So essentially I got paid $5 to take the 32X off of the store's hands.

A Tale of 2 32X's

It's probably not a wonder then that I didn't have very high expectations of the 32X, and simply dismissed the video distortion and audio squeal it introduced.  I legitimately thought it worked that way.  At the time I only had a Genesis Model 1, so I misplaced the spacer that it comes with for use with the Genesis Model 2.  About 3 years ago I went to a local used game shop and bought a whole 32X for $25 just to get the stupid spacer so I could use it with a Genesis Model 2.  The newly bought 32X was scratched up and didn't look as nice as my original, so I put the newly bought one away and continued using the one I had bought new.

You Mean It's Not Supposed To Sound Like That?

Connecting the 32X to an OSSC greatly amplified and magnified the video noise and audio squeal to the point where it was damn near unplayable, so I started searching around to see if anyone knew how to improve the situation.  I found a lot of articles and a lot of supposition, but almost nothing in the way of a solution.  One thing stood out, however.  Some users were reporting that their 32X systems didn't add any audio or video noise at all.  That got me thinking, so I pulled out the 32X I had recently bought used and swapped it out for my shiny original, and I couldn't believe it.  There was no discernible audio or video noise at all!

Conjecture

So I had one "good" 32X and one "bad" 32X.  In all of my searches for a solution, three suggestions kept coming up, but there never seemed to be any followup on a solution.

1. Power

It was suggested in a couple of places that insufficient power was a possible cause.  In my case I have been using a "Trio M2" power adapter from www.retrogamecave.com.  I would expect that if the power supply was the problem, the problem would exist with both 32X modules, but it only affected the one.  I did try switching back to the original power bricks for both the Genesis 2 and the 32X, and also alternating, but there was no detectable difference.

2. Capacitors

The next thing that came up in a few places was the fact that the 32X had one particular "Low ESR" capacitor.  ESR is the resistance a capacitor has to being charged.  High ESR can cause odd failures because a capacitor may not charge up until after a delay, or the power supply may not be able to overcome the ESR to charge it at all.  At the time I didn't have an ESR meter, so I just shotgunned the whole module, replacing all of the capacitors with brand new ones, and making sure to use a "Low ESR" capacitor in the appropriate place.  This had zero effect on the squeal or the video distortion.

3. The Inductance Coil "L7".

The lengthiest discussions I came across involved this part.  The service manual hosted at Console5.com describes L7 as "CHOKE COIL 330UH LHL13TB331K".  There were a number of users reporting that they could actually hear the coil physically squeal directly from the console even with the audio output turned off.  This was not the case with me - I only heard the noise and saw the distortion through the AV output.  After reading through several discussions, and at least one user who swapped it out without any improvement, I decided to give it a shot, but also to keep my options open.
32X main board. The original L7 inductance coil circled.

The Plan

In addition to a direct replacement, I decided to try a couple of others to see if the problem was just poor component choice.

Mouser actually sells the exact part described in the service manual.

In reading its description the thing that really bugged me was that it was described as "unshielded".  It seemed reasonable to me that a shielded inductance coil might yield better results, so I looked for coils with similar attributes - focusing mainly on inductance value, max current and maximum DC resistance.

This one was pretty close:

This one was almost exact so I decided to try it even though it was the wrong package type (surface-mount rather than through-hole):


Today I finally got around to trying them out.

The first thing I did was to replace the original with the new LHL13TB331K.  It seemed like there may have been some small improvement, but the audio and video distortion were still terrible.

The next one I tried was the 994-RFS1317-334KL.  This was the shielded coil with a slightly lower DC resistance value, but was otherwise rated the same as the original part.  The footprint was too narrow to fit directly so I had to very carefully bend the legs of the coil to fit onto the board.  There was a definite improvement with this one.  The volume of the distortion was cut about in half, but it was definitely higher-pitched.  It was better but still awful.

Resolution

By the time I got to the 81-MBH12282C-331MAP3, my hopes were not very high.  Fortunately the vias had solder pads on the top of the board as well as the bottom so I didn't have to do anything too crazy to attach it.  There's an exposed ground point directly under the spot where the coil sits. This isn't a problem for the through-hole inductors, but would have caused a short on the SMD inductor, so I covered it with a tiny corner of black electrical tape before placing the new coil on top of it. There wasn't a lot of room to maneuver but I managed to get some good solid connections.  When I fired up the 32X for the first time I couldn't believe my eyes and ears.  It was dead quiet - not even a hint of the squeal or visual distortion.  For a moment I thought I may have blown out the audio circuit, but then the game started up clear as a bell.

32X with the 81-MBH12282C-331MAP3 inductance coil installed as a replacement for L7 to fix audio squeal and video distortion.

Now I can obey Admiral Akbar, storm the imperial Death Star, and wipe out enemy fighters without distortion!

But Why?

Someone on the shmups forum challenged me to try to explain why this worked when the parts were technically the same.  My initial thought was that the new part was just "better", but the question made me consider other possibilities.  Before going into this I thought shielding might be the answer, but, then, of course 994-RFS1317-334KL did not eliminate the squeal.  Since it reduced the volume of the squeal, I'm inclined to think the shielding played a part, but it was definitely not the "smoking gun".

Possibility 1: Vibration
In my research I read that physical vibration is a factor with inductance coils.  At least one example corroborating this is the Turbo Express where the coils are covered in gray epoxy - presumably to dampen vibrations.

The shell of the LHL13TB331K and  994-RFS1317-334KL have a kind of skirt at the bottom that makes contact with the board in a circle all the way around the coil. When I first tried replacing the coil with the new LHL13TB331K, I tried to make sure to get full contact with the surface of the PCB, but in fairness, I was just eyeballing it. While it didn't appear to do much good it's possible it wasn't completely flush with the board and was allowing for vibration. With the 994-RFS1317-334KL, the legs were too far apart to fit through the vias for the original coil and putting right-angle bends in them prevented the skirt of the coil from making contact with the board at all. With the 81-MBH12282C-331MAP3 (SMD), basically the entire bottom of the coil is a conductor. I had to put a little triangle of electrical tape over an exposed ground point under the coil to keep it from shorting.  So the entire underside of the coil sits flush against the board with a piece of electrical tape serving as a cushion- it's possible that full contact and the additional cushion is allowing the PCB to absorb all of the the vibration and that's the real difference.

Possibility 2: Inductance Value
The other thing is the inductance variation between the parts. When I measured the original, and the LHL13TB331K replacement, they both registered 0.3mH. It isn't exact, but it's at the low end of tolerance. The 994-RFS1317-334KL measured 0.33mH - exactly as rated, and it _did_ seem to make an improvement. Since my component analyzer doesn't have an easy way to measure SMD parts, I used DMM probes to measure the MBH12282C-331MAP3 and got 0.36mH. I assumed the DMM probes were going to introduce a certain amount of inductance by themselves and that might be throwing the reading off so I dismissed the difference. But since the question was asked, I went back and measured the LHL13TB331K using the same probes and got 0.3mH - meaning that the probe wires weren't throwing the measurement off as I had assumed, and the SMD coil does have a significantly higher inductance value.

The LHL13TB331K is rated at 330uH with a tolerance of 10%, meaning anything from 297uH to 363uH _should_ technically be acceptable, and the MBH12282C-331MAP3 is still within this margin, but in practice at the opposite (high) end compared to the original part.  From what I've been reading about coils, this shouldn't make that big of a difference, but who knows?

So, to recap, although the MBH12282C-331MAP3 has the exact same ratings as the original coil, it's also shielded, has nearly 20% more inductance, and is almost definitely making better physical contact with the PCB.

I have no intention of fussing with that 32X any further now that it's working perfectly, but logically if you wanted to try fixing it without replacing the coil, you could try doing something to dampen the coil by fixing it to the board, like using a soft epoxy to fix the coil to the board.

18 comments:

Red said...

If you send me your inductor, I can do a failure analysis on it. e-mail me.

samson7point1 said...

The original LHL13TB331K and the brand new replacement had the exact same result when installed, both measured identical inductance and resistance on my component tester, and it has made that squeal since I bought it brand new. I don't think the inductor "failed", I just think it was a poor component choice, or an installation failure by Sega.

Red said...

If that is the case, perhaps something else is out of spec in the unit that is driving the coil too hard. It's likely that the part is saturating.

I'd be interested if a known noisy coil work fine in another unit. I'd be willing to throw it in my 32x. I should re-cap it anyhow.

FYI I design inductors and transformers for a living, thus the interest.

samson7point1 said...

I wouldn't mind sending you the original part from my 32X, but it would probably be simpler just to order the one Mouser sells.

Perhaps you could answer a general question for me. If I understand correctly (and I probably don't), the job of the inductor in this application is to dampen high-frequency amperage fluctuations without adding significant resistance to the DC voltage. Is a higher inductance value going to filter out higher amperage fluctuations, or higher frequencies?

Red said...

Preface: I am not a power supply designer, but I look at these schematics a lot.

It looks like L7 is a buck inductor. https://console5.com/techwiki/images/6/61/Sega_32X_-_Schematic%2C_Sub_Section.pngz

You can read about this converter here: https://en.wikipedia.org/wiki/Buck_converter

The driver looks standard, 1.5A PEAK out max. 5V out [1.25*(1*10000/3300)]. Switching frequency is around 50kHz. Probably ~0.75A design. 330uH looks okay, I get around 900mA peak (saturation).

In general, the higher the inductance, the lower the peak currents. The energy is being stored via the equation 1/2 L*I^2. What can happen is that if the peak currents are too high, L actually decreases in an inductor (saturation). This causes the peak current to go up even higher.

Probably the choke is saturating. Something could be off on the circuit connected to pin #3, maybe even the cap is off, causing the switching frequency to be low.

When coils saturate, they tend to make noise. Also you are probably losing power in the circuit.

IC Datasheet: http://www.ti.com/lit/ds/symlink/mc34063a.pdf or www.onsemi.com/pub/Collateral/MC34063A-D.PDF

Red said...

50kHz is from the 460pF cap (C85). Also I have the URL for the schematic wrong (no z at the end). I don't know how to edit these posts. :-)

samson7point1 said...

Does that mean that the replacement coil is probably working because L is just enough higher (remember the originals, despite being rated at 330uH are measuring 300uH, and the replacement is 360uH) that it can cope with a higher-than-spec peak current?

Red said...

I think you'd have to scope the current on the L7 (via a shunt resistor) to really know what is going on. All I can say is that I suspect the one coil is saturating and the other isn't. Audible noise is a symptom of core saturation.

I did notice that the saturation value of LHL13TB331K isn't defined. It's max current is 1.1A, but that is typically limited by temperature rise. There are typically two current values on an inductor. Irms/dc/temp and Isat/Incremental Current. The murata has a 10% drop at 0.9Adc.

I don't think you can figure out the root cause until you have scope plots. If L is low, current goes up. If current goes up, L goes down. If there is non linearity in the current waveform, the core is saturating. Current also goes up if the switching frequency is lower than expected (C85/that whole node on pin 3).

My *guess* is that it is probably just a bad stack up of tolerances, since it's been like this since day one.

samson7point1 said...

Gotch. But knowing why the coil was getting saturated may lead to an alternative, possibly easier fix, such as swapping C85 out for a cap with a different value, right?

Red said...

I would try a higher Isat radial leaded inductor. Maybe 390uH. I don’t think It needs to be shielded.

If you change the cap, don’t alter the value. I’d recommend not changing the cap.

If you had another unit that was making noise, I would send you a part or two to try.

Also, inductors don’t really go bad over time, if you have a good unit, I wouldn’t change anything.

samson7point1 said...

So, something like one of these?:
https://www.mouser.com/ProductDetail/Panasonic/ELC-12E391L?qs=MtOUKumLmnbnNYSaSGITdQ%3d%3d

https://www.mouser.com/ProductDetail/Panasonic/ELC-11D391F?qs=sGAEpiMZZMsg%252by3WlYCkU52rNVHMnkCR2PLfCcBXNzE%3d

Red said...

I am checking the calculations today via LT Spice (I am not proficient in LTSpice..) and my normal buck inductor calculations I use to design buck inductors without waveforms.

I am also debating justifying my desire to buy an o-scope to check the inductor waveform.

I can also send you some inductors to try if you want to rip yours apart again.

I am also going to look at buying the LHL13TB331K to measure L vs I on my equipment at work.

Red said...

1) I suck at spice. The circuit has is using a saturated pnp switch, I am not sure I have it right.

2) Using my standard buck calculations
At 330µH, Ipeak is around 850mA
At 300µH, Ipeak is around 855mA
At 360µH, Ipeak is around 842mA

3) So I just realized that my 32x makes noise too. It's low, but sounds like it's the coil.

I think I am going to order a cap kit and replace my caps and my coil. I am debating putting in a shut resistor so I can capture some waveforms... at home or work. I'll check in after I replace the coil in my unit in a week or so.

samson7point1 said...

That sounds awesome, please reply back with your progress. I really don't want to mess with this 32X any more for fear I might start to weaken the solder pads. The board seems to be extremely poor quality - when I was swapping out capacitors I noticed what looked cold solder joints (from the factory!) on one of the caps - after getting it off, it appears that the solder pads for the underside of the via were simply not there. I'm not sure if yours will be like that, but be sure to take every precaution.

Red said...

I bought an o-scope, “broken” 32x -that I’ll try to fix first, and tuned some inductors to the min spec (296uH) along with some 330, and 390uH. I have a 5w 0.1 ohm precision shut resistor that i’ll measure the voltage drop across, which will give me the current waveform.

I plan on soldering pegs to the old holes and making it so I can quickly swap and test inductors with some alligator test leads. Efficiencies will drop a bit from my setup (will add like 0.2 ohms) but I don’t think it will change the test results.

If all goes well, I can test it next weekend. I have a young family, so my free time is a bit tbd.

I’ll probably post to some forum my results-not sure what one.


samson7point1 said...

If you're looking for suggestions about where to post, I would suggest Shmups.

https://shmups.system11.org/viewforum.php?f=6&sid=9aecfc12e1d57fbf5f16805130a8e02a

I replied with some of my findings to this topic:
https://shmups.system11.org/viewtopic.php?f=6&t=58183

aarthi scan said...
This comment has been removed by a blog administrator.
Lhalvorson84 said...

Late to the party but thanks Samson for posting this, it was the exact problem I was having and I got the part from Console5 and was able to fix it.

I wish more people knew about this, something of note that I found after working on another pair of 32X units was that the pair that were fine from jump had coils that looked like blue trimmed capacitors whereas the coil I had that was bad was a squat black cylinder. Factory part change maybe? Thought it was interesting.

Thanks again for all the info, getting it fixed was immeasurably satisfying for a novice like myself.