Small title bar4
spacer

  Home -- article index                                                                    

Rewritten 6-29-2012

Re-greening the Heathkit IG-18: IG-18 #2
Bob Cordell's State-Variable Oscillator, the BIG-18


With IG-18 #1, I explored the relatively easy mods to an IG-18 (or SG-5218, or IG-5218, and probably other Heath-Zenith-Schlumberger models which are identical or similar, like the IG-1272) to lower noise and THD without spending too much time or money. It ended up pretty well, with 1kHz THD+noise at around 0.014% - 0.02% depending on feedback level. That's pretty good -- much better than the original and 10dB to 20dB better in the audio range than the HP 204B and 204C units I once had.

But I bought a second old IG-18 in order to redo a mod that I first built some 20 years ago -- to replace the Bridged-T sine-wave oscillator with Bob Cordell's State-Variable oscillator design. Bob's design is built around the old but terrific NE5534 opamp. This type of oscillator has been used by Tektronix (notably in the TM500 Series SG-505, also with NE5534s), and I suspect by Krohn-Hite in the 4400A (Nope, it's an LM318; I'd change this IC, although the LM318 is a very good amp), and other commercial designs, such as the oscillator in the HP 8903A and B (also using 5534s).

Many will ask, "Why re-build an old product so extensively?" The answer for me is that the old product has a great chassis, very good switches and mechanical gear, a decent power transformer, has a meter for the output level, and is generally well-shielded. These days, those are the parts that either are expensive, hard to get, completely unavailable, or, in many cases, just plain unattractive -- if you can find them. So for me, the iG-18 is a very good candidate for a new life of greatly enhanced performance.

Bob's design, published in Audio magazine in the mid-'80s, has well stood the test of time and he has a great article in a PDF on his website about building a complete THD Analyzer, of which this oscillator is part. Around 1990, I built Bob's design as two boxes -- analyzer and oscillator -- and the pair had, for their time, fabulous performance, better than almost anything commercially available, at least for the analyzer section. The pair I built measured 1kHz THD at a little under 0.0005% -- but I couldn't confirm that result with any other gear I had access to. Was the result real? The short answer turns out to be "Yes." Bob's article thoroughly discusses the merits of the SV design and I won't repeat any of that here. If part IDs are needed for clarity, I will use Bob's number system. See his THD analyzer article for the schematic and reference numbers.

I first started this rebuild before I had the capability to do high-resolution distortion analysis. Even when I began, well over three years ago, I only had an HP 334 THD analyzer, and with a resolution limit of about 0.01%, it just didn't have the resolving power to tell me anything about the actual performance of this design. Then I bought an HP 339A and subsequently an 8903E -- and I found that those instruments, good as they are, also could not reveal the true performance of this design. They both resolve to about 0.001% at 1kHz -- not anywhere near good enough, as it turns out.

So, what can you expect from this BIG-18 oscillator?
Here are two plots of its performance, using OPA1641 for amplifiers IC1 and IC2, LT1468 for IC3 and IC4, LME49710 for IC5 and IC7, NE5534 for IC8, and an OPA134 for IC6.

The first plot is the spectrum of its output of 10VRMS (!!) at 1kHz into a medium impedance load. The BIG-18's 600 ohm output drives a 30k ohm level pot, followed by an Active Twin-T notch filter to suppress the fundamental while passing harmonics unchanged. This is followed by an E-MU 0204 USB sound module, which then supplies data to a PC and the ARTA Audio Analysis software's spectrum analyzer function.

In the first spectrum, the 2nd H. is pretty low among the line-frequency harmonics at around -135dBV (there's a smaller power-line harmonic just to the left of the 2kHz spike), while the 3rd H. is about -126dBV; the calculated THD is 0.000061% -- that's 0.61 parts per million...

The second plot has easily-seen harmonics every 10kHz, with a few spurious noise spikes. The calculated THD is 0.00029%. The rise of the curve above 30kHz is due to the ADC's Sigma-Delta sampling system.

BIG-18 1.1kHz
Spectrum of 1kHz output. Note the powerline-frequency related products at 120Hz intervals.


BIG-18 10kHz
Spectrum of 10kHz output. The sampling frequency of 96kHz limits the spectrum to about 47kHz, but the higher-order harmonics don't amount to much -- the ones you can see are the prominent ones.

Caveats --
In the measurement area of parts-per-million, almost anything can change everything, so the results above are not guaranteed. For example, I found that using some ceramic caps in the tuning cap section of another oscillator design resulted in a huge increase in distortion, so parts materials matter, as do the actual parameter values of the various parts. I used mostly 5% carbon-film resistors on the oscillator board -- now I would use all 1% metal-film resistors. I also used a mix of polypropylene and mylar film caps for the tuning caps, and now I would use all polypropylene (or polystyrene if I could get the values needed).

Reconfiguring the IG-18
When I first put this oscillator into an IG-18, I used the existing Heath frequency selector switches and resistors -- I recommend doing that. I only needed to rewire the Bridged-T resistor switches to eliminate the junction points of the two resistor sections of each frequency step. That's because the state-variable design needs the two resistors (and also the two capacitors) of the two integrator sections to be independent, having an R and a C as part of each integrator stage.

In addition, I replaced the range switch because the switch needs (at least) 3 poles and the Heath Range switch only provides 2 poles. A 3-pole, 4-position switch is required for the 8 caps of the two filter sections, and for the 4 time-constant adjusting caps needed for the AGC feedback loop. Plus, if you use it, a fourth pole is needed for Bob's frequency trim pots, R1 thru R4 -- I didn't use them since I used selected parts for tight tuning accuracy. 3-pole, 4-position switches are readily available at low cost at Mouser and on eBay, but 4-pole, 4-position switches will cost more. The cheap switch I used has a plastic shaft, which was ideal for filing a flat onto for the Heath knob to fit over.

IG-18 top
The new and very messy range switch. Note the 100uF damping cap on the meter.

The IG-18 power transformer has two primary windings so that it can be used with 220V-240V power. This means that you can put the primary windings in series, as used for the 220V connections, and connect the 120V lines to transformer pins 1 and 4, and strap pins 2 and 3. This simple tactic cuts the secondary voltages in half, and using a full-wave bridge rectifier lets you have +/- 24VDC supplies -- ideal to supply the LM317 and LM337 regulators that supply the plus and minus 17VDC that I used in order to get the full 10VRMS output.

However, I thought -- wrongly -- that the Heath transformer was too noisy with lots of EMI hum, so I bought an Avel-Lindberg Y236004 15VA toroid with 18VAC secondaries. While not needed, and an extra cost, the toroid does offer very low radiated fields.

Regarding hum and noise, be sure to remove the neon bulb pilot light (just pull it out of the red plastic housing) and also remove it's associated wiring carrying 120VAC. Old neon bulbs make great sources of oscillation and noise in nearby circuits. If you want or need a pilot lamp, use a red LED and limiting resistor run off of one of the regulated supplies, and stuff it into the original red housing.

I drew up a two-layer PC board layout using ExpressPCB's free software. It is easy to use compared to other packages I looked at, but it does have limitations. I couldn't figure out how to leave lots of copper on the board -- I couldn't find a "flood" tool that fills areas to be left unetched even though I'm sure the tools are there to do that. The other issue is that the files it creates are not industry-standard, like Gerber files, and so you're stuck using ExpressPCB to make the boards from the layout you create. I have the ExpressPCB board layout in their format -- if you would like it, email me and I'll email it back

I wanted low cost, so I had four prototype boards made (no silkscreen for parts location) -- one for the IG-18, and three for online friends. ExpressPCB delivered the four boards in 6 days -- pretty great. Given the size of the boards and the layout, they ended up costing $27 each -- an order for four was only slightly more expensive than the minimum order of two.

IG-18 top
The oscillator board -- this older photo shows the board populated with different opamps than I now recommend using. The blue 10k pot at the top replaces Bob's 6.8k R19, and adjusts the reference DC level for the AGC loop, which then sets the output level of the SV oscillator. This makes a handy level trim.

Putting the parts in was easy and the board tested OK by using a small three-output supply for power; I kludged up the two Rs and two Cs for a single-frequency test. All of the Heath boards came out, as well as the switches, in order to make reconfiguring easier. It really isn't any fun removing parts that were installed just the way that Heath recommended, with leads tightly twisted together on switch contacts, so rewiring the switches was tedious.

IG-18 top
Top view of the oscillator, showing the osc. board, right, and the power supply & meter board, left. The toroid power transformer is on the back panel (see the bottom of the page for an important change in location). If you use the Heath power transformer, there's still room for a power supply/meter amp board in the chassis. Note the two OPA1641 on the adapters at bottom-right of the board.


IG-18 top
Close up of the power supply, with the DC voltage adjust pots between the caps.

I built the power supply on strip (Vero) board for the rectifier bridge, filters, regulators, and the meter amp, and mounted it over the holes where the Heath transformer and power supply had been. I put the Avel toroid on the rear panel. Lastly, I mounted the oscillator board where the Heath oscillator board had been.

AGC issues
Cordell's design uses a 2N4091 as the JFET for the AGC loop's voltage-variable resistor. These are virtually unobtainable, but PN4091s, and PN4092s are still at Digi-Key and other distributors. The FET requirement is simple -- an Rds(on) of 50 ohms or less, which is pretty low for small-signal FETs, many of which have values in the hundreds of ohms. I'm using a PN4092 for the JFET -- it seems to put the gate voltage in a better range than the PN4091, which was quite close to pinch off for me.

THD Analysis
In order to tell how well the oscillator is working and in order to make adjustments for lowest distortion, you need a very good THD analyzer or spectrum analyzer. As mentioned, I bought an HP 339A and it is good, but not good enough -- it has a measurement floor set by the level of 2nd H. distortion in the notch filter, and that limits its performance to about 0.001% at 1kHz. This same limit and cause exists for the otherwise excellent HP 8903 series. I'm guessing that it is common-mode failure in the notch filter summing amps, but I'm not completely sure.

I initially used the Intel "High Definition Audio" chipset in my PC, which has 24-bit converters with a maximum sample rate of 96kHz. With that, I used the ARTA Spectrum Analysis software. It isn't clear to me exactly what the limits of performance are for this hardware & software combination, but it looks to be around 0.0005-0.001% for THD only, with THD+noise dependent on a host of external and internal factors. That's pretty good -- except for limited bandwidth, it's comparable to many commercial analyzers. For comparison, my old, now sold-off set of the Cordell oscillator and analyzer had a 1kHz combined floor of under 0.0005%, depending on low-pass filtering and wind direction -- now, remind me again, why did I sell those?

But, as mentioned above, I now use an E-MU 0204 USB sound module for input to the PC and ARTA. By itself, the 1kHz residual of the E-MU is in the 0.0002-0.0005% area, which is excellent. Used with the Active Twin-T notch filter, the results are spectacularly better, as shown the the two spectra at the top of the page. And it offers a maximum sample rate of 192kHz, allowing measurements out to about 90kHz -- good enough for 10 or 20kHz depending on the strength of the higher harmonics.

First run
Oscillation did not occur -- well, it did occur on a couple of ranges, but erratically and with lots of distortion. Checking wiring, I found that I had mis-wired the range switch all the way around by one position. Fixed that and everything was good. I started out using the op-amps Bob specified -- NE5534s for oscillator and output, and LM318s for AGC gain. Performance was good but not spectacular -- somewhere in the muddy area of "Is the oscillator good?" and "Just how well are the analyzers actually working?" I substituted OPA134s for the NE5534s, and the 1kHz THD measured by the PC & ARTA went down by almost two. that was good news, and since then, the news has only gotten better and better.

Checking THD at the 100 setting of the 10s decade (using the OPA134 and 604 amps) resulted in higher THD than when using the 10 setting and the next higher range. This meant that the integrators were not so happy with the 1k ohm resistance that the Heath design has on the 100 setting. I decided to rewire the resistors in the range switches, doubling the values -- Bob's design has a minimum R of about 3k ohms, with frequency steps on ISO 1/3-octave frequencies. That was a lot of work, and I would not now change the frequency resistors to larger values -- modern opamps seem to be perfectly OK with the 1k resistors at the 100 frequency setting. But I don't intend to un-rewire the switches! If you keep the existing Heath resistors, the range caps need to be "16" values, from 1.6nF to 1.6uF -- see the next section.

Rs and Cs
The Heath resistors are switched combinations of 10k, 5k, 3.33k, and 2.5k for the 0 - 100 switch, for a span of 10k to 1k in equal frequency steps, and 100k, 50k, 33.3k, and 25k for the 0 to 10 switch, for a span of 100k to 10k. The vernier is a dual 1M pot with each section shunted with 82k. Shifting Rs up by two meant I would need some 20k and 6.66k, and 200k and 66.6k resistors, and reuse the 10k and 5k, and 100k and 50k resistors. 20k and 200k are standard 1% values. 6.65k and 66.5k are also. That's close enough -- low by 0.15%, if exact -- and, if necessary, they could be padded.

Since I had previously sorted and assembled the caps to better than 1% using parallel combos and a 3-1/2-digit C meter, the caps were going to be a chore, and I wasn't sure I had enough of various values. The oscillation frequency is given by f = 1/(2*Pi*R*C). For the Heath resistors, the C values are 1.6uF, 160nF, 16nF, and 1.6nF, with two of each needed.

I had ordered "1.5" series 2.5% caps from Mouser, as well as "1" series values for padding. Changing the resistors up by two meant I could use half of the Heath 1% resistors, and add four other 1% values to each switch. But the caps would need to be "8" series -- not so great. But "3.3" and "4.7" could be paralleled, and given 10% tolerances, I could get pretty close. It turned out that "8.08" was the magic number, given the caps I had on hand, and I got the necessary set of 8 caps through a lot of fooling around and sorting.

Op-amps... oops
After making all the changes, I now discovered that the OPA134s did not like this set of Rs and Cs above about 60kHz. I'm not sure why. The 5534s were just fine, but I didn't want to lose the lowered THDs from the OPA134s. I had a number of OPA604s, which have better than twice the gain-bandwidth-product of the 134s and are unity-gain stable, and they were as happy in-circuit as the 5534s, but with essentially the same THD as the 134s. My mental assessment is unproductive of why the 134s were not happy with 808pF of C and the higher-frequency smaller Rs -- I'm guessing too much edge-of-band phase shift plus maybe some problem with stray capacitance, but I really don't know.

By the way, as noted earlier, Bob's design uses an extra pole on the range switch to provide connecting an on-board 6.8k resistor, R5, to a switched pot for each range, in order to trim the frequency for range-to-range consistency. Because I had pretty accurate cap values, I just used a 10k resistor in place of all that, then padded it with 270k in parallel to get the output frequency near to "1" given the slightly large Cs I used -- the close matching of the Cs made it good enough. If you want real frequency precision, then use a 4-pole range switch and Bob's four-pot trim system.

Since then, I've bought a variety of good opamps that offer particular strengths for the various circuits. See the next Opamps section below.

Output attenuator
Heath's design for the output attenuator provides a reasonably high resistance load to the oscillator on the 10V/+20dBV and 3V/+10dBV ranges and prevents the front panel switchable 600 ohm load from being used on those ranges, again to avoid output loading. I think that was because they didn't use a buffer amp between the oscillator and the load -- at the time, a good buffer was hard to find.

The Cordell design does have a good buffer amp. I rewired the attenuator to put its vernier pot between the oscillator and the buffer, per Bob's design, then connected the output of the buffer directly to the switched attenuator. I realized that the 5534 buffer didn't care very much about loading, especially at lower signal levels from the vernier pot, so I removed the 150 ohm, 2.4k and 390 ohm resistors of the first two positions. I initially wired the output directly to the first position and made an 1155 ohm shunt resistor (30k//1.2k) and two 1708 ohm (39k//1.8k) series resistors, giving the attenuator better accuracy both unloaded and loaded by 600 ohms. The result is that if there is no external load, the oscillator sees a roughly 2.4k load from the attenuator. The resistor combos above for 1155 and 1708 ohms could be used for the rest of the attenuator, too, but at the time I didn't want to work that hard.

Attenuator upgrade
Then I decided I wanted a good attenuator. The following schematic shows the attenuator 1% resistor values as used in the HP 239A and 339A. These values are a very good fit for any IG-18 incarnation -- especially this one -- and provide much better accuracy than the Heath design does, both terminated and unterminated. The load on the output buffer amp is a minimum of 800 ohms if there is a 600 ohm load terminating the output of the 10V range, and a load of almost 2.5k if the output is not terminated. Using the 600 ohm load switch for a floating or hard ground is very useful. I made the mod and highly recommend it.

IG-18-2 attenuator


Further work
For now, there is no square-wave capability. That is fairly easily fixed by using a CMOS hex inverter and a few resistors, but I'm going to skip having a square-wave output in this version -- the boards are pretty full now and I have other sources for square waves.

More seriously, the output is slow to start up at very low frequencies. I used a larger time-constant cap than Bob specified for the X1 range, which may be part of the problem. I'm using 5.5uF (a paralleled combo) and the settling time is quite long, with the output doing a lot of flopping around before getting steady, but with 1uF, it just didn't wan't to settle at all. Using the PN4092 for the JFET (where I initially had a J105) seems to assure start up -- it takes about 8-10 seconds to settle, but it does settle, even at 1Hz. 5.5uF may simply be too large.

I was traveling for a couple of days and I had the thought of trying to see if having the output amp circuit's currents run through the board ground trace as I had it laid out was causing THD or stability issues. While I was at it, I also decided to put in a 2M pot to replace the 750k R13 signal feedback resistor that goes from the oscillator to the gate of the AGC FET and see what the best setting is. I had asked Bob about the value, and he couldn't remember how he arrived at it. Switching the grounds had no impact on THD as far as the PC and ARTA could show, so I'm using the board as laid out.

The 2M pot around the FET, however, made a difference, Using the ARTA spectrum analyzer, I found the best setting at 1kHz was very near 700k ohms, with a very significant and very sharp drop in 2nd harmonic level, and less large drops in the other even harmonics, but no change in the odd harmonics. Changing the pot's setting by a few kohms made a 6dB difference in on-screen 2nd harmonic level. Clearly the FET's channel resistance modulation consists primarily of even-order harmonics.

Opamps
The opamps used in the state-variable section, U1 thru U4, are very important to overall performance, as is the output amp U8. I tried various combinations of OPA134, OPA604, NE5534, LM318, LME49710, LT1468, and OPA1641 in the U1 - U4 positions. The best combination turned out to be OPA1641 for U1 and U2, and LT1468 for U3 and U4. And counterintuitively, the NE5534 turns out to have the lowest distortion as the gain-of-6.6 output amp, U8. I thought that the OPA1641 or LT1468 would be better. The LME49710 was as good as the 5534, but had a very-low-frequency pulsing, and since the 5534 was as good, at least at 1kHz, I just used it. 100kHz may be another matter -- high-resolution distortion measurements at 100kHz are still beyond my reach. BTW, the Active Twin-T notch filter works at 100kHz, so with that and a good hardware spectrum analyzer, such measurements are practical -- but I don't have a good hardware SA, and they are still spendy.

I found that with the extra resolution of the Twin-T notch filter and the spectrum analyzer, I could see that the AGC loop's rectifier balance, adjusted by the 2k pot I used (1k R24 in Bob's circuit), actually does affect the level of the 2nd harmonic distortion a moderate amount at 1kHz and below, so I set it for lowest 2nd H. level. The main output from the output buffer amp, which has a gain of roughly 6.6, is a little noisier than the output at connection E5, the output of the state-variable section, but does not have significantly more THD, and that's very nice. The other adjustment is the JFET 2nd H. cancellation, and I adjusted this for minimum at 10kHz, then went back and made sure the rectifier balance pot was still right for 1kHz.

I settled on using LME49710s for U5 and U7 and an OPA134 for U6, although these are not crucial to low-frequency distortion performance -- again, 100kHz may be another matter. The high input Z of the OPA134 helps avoid AGC input filter level sag so that filtering is efficient.

After finishing IG-18 #3, now called IG-339A, I had some PN4091 and PN4092 JFETs. Bob Cordell used the 2N4091 for the AGC FET in the original. The IG-339A works really well, so I decided to see if this version could be improved, too. I had been using the Fairchild J105 for the JFET. The PN4091 worked better, but the gate voltage was very close to pinch-off. I subbed in a PN4092 and it worked the best of all for quick settling time and overall stability.

I modded the Heath front-panel 600-ohm load switch to be the floating/chassis ground switch as in the HP 239A attenuator diagram. This change let me hard ground or float ground through 47nF as needed. You can see how low the power line noise is in the 1kHz spectrum, with peaks under -110dBV.

Lowest distortion?
Achieving the full 10VRMS output of the original IG-18 required higher supply voltages than usual -- 17V versus 15V -- and higher gain from the buffer amp, so some distortion performance is sacrificed compared to Bob's design. If you can live with around 1.5VRMS output, then using the usual 15V supplies and a unity gain output buffer amp will give the best results, with an up to 6dB improvement at 1kHz. And you'll get lower distortion with 15V supplies and a gain-of-4 buffer amp that gives you 6.3VRMS open circuit output or +10dBV when driving 600 ohm loads.

Circuit details
The oscillator circuitry is mostly as it is in Bob's article, with the exception of the few changes that I've made. The power supply and meter amp circuits are shown below:

IG-18-2 power circuit

The inverting configuration of the meter amp means that the amp can have gain or loss as needed for proper adjustment, and the large value of the pot (at reasonable settings) does not load the output of the buffer amp. Noise of this amp is not a factor, so the large 100k pot works fine. The input leg of the pot connects to the main output point of the buffer amp -- I found it convenient to connect to the junction of the 604 ohm and 1.87k resistors, the input point of the output attenuator.

I deleted Bob's switches S1 J & H, and made R5 10k, then padded that to get the output frequency set to 1kHz-- a 20k pot could be used for R5 to give any needed frequency trim. If you don't use Bob's frequency trim pots, it's good to check for the frequency on all four ranges and split the largest spread in two, for the smallest overall error.

If you use the opamps I did, then you won't need the compensation caps C1 thru C3 -- but I did need a 2pF cap around R5 for stability at 110kHz.

Putting a scope on the junction of the emitters of Q3 & Q4 and adjusting R24 for equal size peaks of the two phases of the rectifier output, as Bob suggests, is probably the best way to get the best performance on all ranges.

I set the output buffer amp up to have a gain of about 6.6, which turns the roughly 1.6VRMS output of the oscillator into a full 10VRMS at the output. I used 5.76k for R32 to increase the amp's gain. I deleted switch S2A and R29, and used the Heath level pot in place of R30. And, of course, I did not use Bob's output attenuator, in favor of the HP design.

One last thing...
I've been fiddling with audio for almost 60 years, and in all that time, there's never been a minute that I didn't hate hum. All through this process, I've been dealing with power-line EMI issues -- you can see the low, but obtrusive and obvious line-related noise spikes that extend throughout the spectra at the top of the page. Yes, I'm using a toroid power transformer that has low radiated fields, but low doesn't mean none. That line noise has been bothering me for a long time now. A couple of years ago, I bought some mild steel electrical junction boxes in various sizes -- these provide OK magnetic shielding on the cheap. One of them was perfect to hold the Avel toroid, so I finally dug it out, bored some holes in the back of the BIG-18, mounted the toroid inside the junction box with the bolt through the back, and mounted that assembly to the rear of the oscillator. Here's what it looks like:

IG-18-2 transformer housing

Here's what the spectrum looks like for a 1kHz signal at 10VRMS:

IG-18-2 power line noise spectrum

Compared to the 1kHz plot at the top of the page, most of the line noise artifacts are reduced by over 10dB or more, and are limited to low-orders. I like this improvement a lot. And the spectrum at the top of the page isn't as bad as it got, because I made those plots with the top cover of the oscillator removed -- putting that back on concentrated the magnetic fields and raised the noise level by more than 6dB -- so the improvement is even greater when the oscillator is in ready-to-use condition.

UPDATE -- I got around to adding a junction box cover plate between the box and the BIG-18's chassis. This reduced the power-line noise even further. While this simple magnetic shielding is far from perfect -- there are gaps and holes -- now all of the line-related noise spikes are below 1ppm, and most are well below that. But be aware that everything in the measurement chain affects or responds to any relative position, source, and strength of noise. EMI is pervasive, as is RFI, and a lot of fooling around is needed to get reliable and repeatable measurements. I'd like to be able to take the computer out of the chain, for example, but it is so convenient and helpful that for me, that is a non-starter.

Even though I didn't do it (so far, anyway), I like Bob Cordell's on-line suggestion of using a "wall-wart" transformer or small switching supply with pre-regulation, located at the wall outlet, to deliver positive and negative filtered and regulated power to the set of regulators inside the oscillator chassis. This separation of EMI noise sources would be very helpful.
###

This oscillator is finally verified as the outstanding unit that I had hoped for at the outset, so long ago. Many thanks to Bob Cordell.


back to top


to Home -- article index



© 2010-2012 Dick Moore