Silicon ChipThe WaveMaker: An Arbitrary Waveform Generator - January 2001 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: Technology has its benefits - and its drawbacks
  4. Feature: LP Ressurection: Transferring LPs & Tapes To CD by Greg Swain
  5. Feature: Biorecognition: Checking Your Identity by Jon Reid
  6. Project: The LP Doctor: Cleaning Up Clicks & Pops; Pt.1 by John Clarke & Leo Simpson
  7. Feature: Look Mum, No Cables by Greg Swain
  8. Project: The WaveMaker: An Arbitrary Waveform Generator by David Sibley
  9. Product Showcase
  10. Project: 2-Channel Guitar Preamplifier, Pt.3 by John Clarke
  11. Project: Digital Reverb - The Missing Pages by John Clarke
  12. Order Form
  13. Project: PIC Programmer & TestBed by Barry Hubble & Peter Smith
  14. Book Store
  15. Vintage Radio: The 32V 5-valve Operatic Mignon by Rodney Champness
  16. Notes & Errata: Pink Noise Source / 2-Channel Guitar Preamplifier
  17. Market Centre
  18. Advertising Index
  19. Outer Back Cover

This is only a preview of the January 2001 issue of Silicon Chip.

You can view 34 of the 96 pages in the full issue, including the advertisments.

For full access, purchase the issue for $10.00 or subscribe for access to the latest issues.

Items relevant to "The LP Doctor: Cleaning Up Clicks & Pops; Pt.1":
  • The LP Doctor PCB pattern (PDF download) [01101011] (Free)
  • LP Doctor panel artwork (PDF download) (Free)
Articles in this series:
  • The LP Doctor: Cleaning Up Clicks & Pops; Pt.1 (January 2001)
  • The LP Doctor: Cleaning Up Clicks & Pops; Pt.1 (January 2001)
  • The LP Doctor: Cleaning Up Clicks & Pops; Pt.2 (February 2001)
  • The LP Doctor: Cleaning Up Clicks & Pops; Pt.2 (February 2001)
Items relevant to "The WaveMaker: An Arbitrary Waveform Generator":
  • DOS software for the WaveMaker Arbitrary Waveform Generator (Free)
  • WaveMaker PCB pattern (PDF download) [04101011] (Free)
  • WaveMaker panel artwork (PDF download) (Free)
Items relevant to "2-Channel Guitar Preamplifier, Pt.3":
  • 2-Channel Guitar Preamplifier PCB patterns (PDF download) [01111001/2] (Free)
  • Digital Reverb PCB pattern (PDF download) [01112001] (Free)
  • 2-Channel Guitar Preamplifier panel artwork (PDF download) (Free)
Articles in this series:
  • 2-Channel Guitar Preamplifier (November 2000)
  • 2-Channel Guitar Preamplifier (November 2000)
  • 2-Channel Guitar Preamplifier, Pt.2: Digital Reverb (December 2000)
  • 2-Channel Guitar Preamplifier, Pt.2: Digital Reverb (December 2000)
  • Digital Reverb - The Missing Pages (January 2001)
  • Digital Reverb - The Missing Pages (January 2001)
  • 2-Channel Guitar Preamplifier, Pt.3 (January 2001)
  • 2-Channel Guitar Preamplifier, Pt.3 (January 2001)
Items relevant to "Digital Reverb - The Missing Pages":
  • 2-Channel Guitar Preamplifier PCB patterns (PDF download) [01111001/2] (Free)
  • Digital Reverb PCB pattern (PDF download) [01112001] (Free)
  • 2-Channel Guitar Preamplifier panel artwork (PDF download) (Free)
Articles in this series:
  • 2-Channel Guitar Preamplifier (November 2000)
  • 2-Channel Guitar Preamplifier (November 2000)
  • 2-Channel Guitar Preamplifier, Pt.2: Digital Reverb (December 2000)
  • 2-Channel Guitar Preamplifier, Pt.2: Digital Reverb (December 2000)
  • Digital Reverb - The Missing Pages (January 2001)
  • Digital Reverb - The Missing Pages (January 2001)
  • 2-Channel Guitar Preamplifier, Pt.3 (January 2001)
  • 2-Channel Guitar Preamplifier, Pt.3 (January 2001)
Items relevant to "PIC Programmer & TestBed":
  • Windows Software for the PIC Programmer and TestBed (Free)
  • PIC Programmer & TestBed PCB patterns (PDF download) [07101011/2] (Free)

Purchase a printed copy of this issue for $10.00.

Need a weird signal waveform for testing a new circuit or to produce an unusual sound effect? Here’s a very low cost waveform generator which hooks up to the printer port of a PC and makes it easy to generate oddball waveforms at low frequencies. The software also lets you generate standard waveforms, just like a function generator – and even programmable DC voltage levels. By David Sibley The Wavemaker (or software-controlled arbitary waveform generator) fits into a small utility box and is connected to the PC’s parallel (printer) port via the multi-way cable coming from the rear. Power is supplied by a 12V DC plugpack. 36  Silicon Chip I f you’ve ever played with audio circuits (designing, servicing or whatever) you’ll know just how essential a signal generator (or function generator) is. But what happens if you want to generate a real “oddball” waveform – not your usual sine or square wave, not even a triangular or sawtooth. Perhaps it’s because an amplifier only misbehaves with certain types of signals. Perhaps it’s simply because you want a really unusual sound effect (eg for a theatrical production). Perhaps it’s for a host of other reasons. How do you go about it? The usual way to generate an ‘arbitrary’ waveform in R&D labs is by using an arbitrary waveform generator. Now that makes sense, doesn’t it! But these are usually big and complex instruments costing big bucks – and they can be very complicated to use, too. They’re a bit like a Formula 1 racecar: even if you could afford one, you probably couldn’t drive it. One or two home-brew arbitrary waveform generator designs have been published but they’ve generally used special components and these too have been pretty expensive. Sometimes you can get away with a low-cost function generator but (usually) these can only create standard waveforms – sine, square, triangle, sawtooth, etc. So if we can’t generate the waveform we want using a standard function generator, we’re forced to find another way of tackling the problem. When we need an unusual waveform it’s usually at a fairly low frequency — a few hundred hertz or so and often even less. In view of this, it seemed to me that you should be able to produce these waveforms using a really low-cost approach, based on using software running in a PC to send a ‘stream of digital samples’ out to a digital to analog converter (DAC). So I tried it. . . and it worked. That’s how this project came about. The hardware side is really just a ‘DAC in a box’, which hooks up to the PC’s printer port. The software in the PC does all the tricky part, preparing the waveform samples and sending them to the DAC. The project is called, for fairly obvious reasons, the “Wavemaker”. Speaking of software, I’ve written four separate programs to go with the Looking inside the case from the front. Note the cutout on the rear panel to allow room for the ribbon cable to exit. Wavemaker. One is a testing program, so you can quickly confirm which printer port the unit is connected to and check that the two are ‘talking to each other’. Another is a simple program which lets you use the Wave-maker as a programmable DC voltage source. A third program lets you ‘draw’ your arbitrary waveforms on the PC’s screen, and then save them as disk files. And finally there’s the Wavemaker program itself, which drives the generator box and gets it to ‘play’ either arbitrary wave files loaded from disk, or one of a range of standard ‘function generator’ type waveforms: sine, square, triangle, sawtooth falling or sawtooth rising. More about the software later. Let’s look first at what’s inside the little hardware box. Circuit description As you can see from the circuit, there isn’t much to it: the software does most of the work. Since we’re only working at frequencies up to 2kHz, I decided to use an ‘el-cheapo’ DAC rather than a fancy (expensive!) dedicated DAC chip. So in this case the DAC consists of just a low-cost CMOS octal latch (IC1) and the network of 20kΩ and 10kΩ resistors connected to its outputs. These form what’s usually called a ‘binary weighted ladder network’. The inputs of the latch chip are connected to the 8-bit lines of the PC printer port via 100Ω suppressor resistors, as you can see. (There are also 1.5kΩ pulldown resistors, to prevent the inputs being damaged – eg, by static – when the PC is disconnected.) The latch’s load enable input is also driven from the port’s strobe line, via inverter IC3a. So when the software running in the PC sends a data byte out to the port, the strobe pulse causes the eight data bits to be latched into IC1 and they accordingly appear at its outputs. Because IC1 is operating from a regulated +5V rail, the voltages at all of these outputs will therefore swing between +5V (for a digital ‘1’) and 0V (for a ‘0’). But the effect of the binary weighted ladder of resistors is to combine these into a single output DC voltage which automatically ‘scales’ the contributions of each output, according to its position along the ladder. Each position down the ladder contributes half that of the position above it, giving exactly the right proportions we need to produce the analog equivalent of the digital input. For example, when the top-most output (pin 12) goes high, this contributes exactly 2.50V to the output. But when the next output down (pin 9) goes high, it contributes only 1.25V. Similarly when pin 15 goes high, it contributes only 625mV; and so on, right down to pin 2 which contributes only a whisker under 20mV. If you work them all out you’ll discover this gives quite an accurate digital to analog conversion. The DC output voltage at the top of the ladder varies between a maximum of 5.00V (for a digital input of FF hex, or 255 decimal) and a minimum of 0V (for 00 hex input), in steps that are very January 2001  37 close to 20mV. To make the output from the generator a little more useful and also to minimise loading on the ladder network, its output is fed to IC2b, half of a TL072 dual op amp, connected here as a non-inverting buffer with a gain of two. So the output voltage at pin 7 now varies over twice the range from the DAC ladder: from 0 to 10V. This output is then fed through a simple low-pass filter network formed by the 100Ω resistor and 0.1µF capacitor, which filter out any sample clock components and ‘glitches’ in the DAC output. The smoothed output appears across the 20kΩ pot, which allows you to control the maximum output from the generator. From here the signal simply passes through IC2a, the other half of the TL072, which is used here as a voltage follower and output buffer. The 680Ω resistor in series with the output protects the output of the op amp against damage from accidental shorts. The rest of the circuit is to support this basic DAC and buffer amplifier system. IC3b re-inverts the PC port’s strobe pulse and drives the LED, to indicate when the generator is being driven with data. The same signal is then fed back via IC3c to the port as the BUSY/READY-bar signal, with the 100Ω resistor and .01µF capacitor providing a small amount of delay. This delay gives the DAC time to “digest” the information coming to it before more data is received. While this might marginally slow the DAC operation, it is essential when used with fast computers. The TL072 dual op amp is connected to the unregulated 12V DC input for its positive supply but needs a negative supply rail as well so that it can cope with output voltage swings right down Fig.1: a cheap CMOS octal latch forms the basis of the digital-to-analog converter. This is a much cheaper approach than using a dedicated DAC chip. 38  Silicon Chip to 0V. To provide this negative rail, I’ve used the other three inverters of IC3 as the heart of a simple negative voltage generator. IC3d operates as a relaxation oscillator, running at about 1.8kHz and driving the other two inverters in parallel. The resulting 5V peakto-peak square wave is then fed to a simple chargepump rectifier using D2, D3 and the two 33µF capacitors, to produce a negative rail of about -3.3V when loaded with the TL072. Diode D1 provides reverse-polarity protection for the main +12V power input, while the 7805 regulator (REG1) provides the regulated +5V needed by the DAC, hex inverter and LED. The complete generator runs from a nominal 12V This shot inside the case is reproduced with the PC board same size to make assembly easy. DC, which can come from Use this in conjunction with the component overlay below. either a battery or a mains power supply. As the curmount on a PC board measuring 105 x track breaks or shorts between tracks. rent drain and dissipation in REG1 76mm, and coded 04101011. As you It’s also a good idea to check that the are both quite low there should be no can see from the photos the board, corner holes are drilled 3mm diaproblem about using an unregulated together with the remaining parts, fits meter to take mounting screws, and 12V plugpack supply. in a readily available small low profile that there’s also a fifth 3mm hole ready Construction instrument box, measuring 140 x 111 for the screw used to hold down the tab of regulator IC4. Apart from the pot, LED and connec- x 35mm. Before fitting any of the parts on The board layout diagram shows tors for DC power and signal output, all the components used in the generator the PC board, check it carefully for where all the board-mounted parts go, Fig.2: there aren’t too many components to solder to the PC board, as this overlay shows. January 2001  39 together with their orientation. Where there’s any doubt the internal photo should help, as well as showing the off-board parts and wiring. I suggest you fit the header strip for IDC ribbon cable first, followed by the PC board pins used to simplify the other off-board connections. There are two of these for the LED, two for the output, two for the 12V DC input and three for the pot connections. Next, I’d fit the resistors, bending their leads carefully so they mount down against the board without straining the components. Then do the capacitors, taking care with the polarity of the polarised electrolytics (including the tantalums). The correct polarities are shown on the layout diagram. The three diodes can be fitted next. Note that D1 mounts with its cathode band end towards IC2, while D2 and D3 both have their cathode ends towards the edge of the board. Finally, fit the four ICs, again taking care with their orientation. Also be careful when you’re bending the leads of regulator (IC4) down at 90°, so that there’s no strain on them when the IC is mounted down against the board. I usually fit the leads through their holes and bolt the regulator down with an M3 screw and nut before soldering the leads to their pads. Your board should now be finished and can be put aside while you prepare We’ve unplugged the ribbon cable from its on-board connector to make this rear-panel shot much clearer. The socket at left is for DC power. the case. This doesn’t involve a great deal of effort. There are just the three holes in the front panel, a hole and slot in the rear panel and four holes to drill and countersink in the bottom of the case for the PC board mounting screws. A photocopy of the front panel artwork can be used as a template to drill the holes for the LED, pot and output connector. Similarly you can use a photocopy of the PC board artwork as a template for the board mounting holes. The lo- Parts List – Wavemaker Arbitrary Waveform Generator 1 PC board, 105 x 76mm, code 04101011 1 plastic case, 140 x 111 x 35mm    (DSE H-2512; Jaycar HB-5970) 1 panel label, 27 x 132mm 1 BNC socket, single-hole panel mount 1 DC power socket, 2.1mm 1 13 x 2 header strip 1 small control knob 1 26-way IDC ribbon connector 1 DB25 plug, IDC type 1 2m length of 26-way ribbon cable 4 10mm x M3 CSK head screws 1 6mm x M3 round head screw 13 M3 nuts 8 star lockwashers 9 1mm diameter PC terminal pins Semiconductors 1 74HC373 octal latch (IC1) 1 TL072 dual op amp (IC2) 40  Silicon Chip 1 74HC14 hex Schmitt inverter (IC3) 1 7805 +5V regulator (REG1) 3 1N4001, 1N4004 diodes (D1-D3) 1 red LED, 3mm Capacitors 1 1000µF 25VW PC electrolytic 2 33µF 16VW TAG tantalum 2 2.2µF 25VW TAG tantalum 2 0.1µF monolithic or MKT polyester 2 0.01µF MKT polyester Resistors (0.25W, 1%) 11 20kΩ 1% metal film 8 10kΩ 1% metal film 1 2.7kΩ 8 1.5kΩ 1 680Ω 1 470Ω 11 100Ω Potentiometers 1 20kΩ linear carbon cation of the hole and slot in the rear panel are not critical, and you should be able to use the photos as a guide. In view of the low profile of the plastic case, I elected not to use mounting pillars for the PC board. Instead it was mounted lower in the case using four 10mm-long M3 countersunk-head screws, coming up from underneath. Each screw has a star lockwasher and nut fitted first to fasten it inside the case, then a second nut to act as a spacer. The PC board sits on these second nuts, with a further lockwasher and nut on the top to hold it in place. If you have access to a photocopier you may be able to make your own front dress panel from the artwork, on adhesive backed aluminium or matt white plastic sheet. This can be stuck carefully on the front panel after the holes have been drilled, and before fitting the pot and other parts. At this stage I cemented the LED into its hole in the front panel using a dob of Araldite at the back, leaving it aside overnight to harden, before fitting the pot and connector to the panel. Once the LED is firmly cemented in place and everything else is fitted into the case you’re ready for the final step: the off-board wiring. This can all be done in light-duty ribbon cable wire, although I used resistor pigtail offcuts to extend the LED wires so they reached their PC board pins. These were insulated with sleeving to prevent shorts. Once the off-board wiring is done, the generator itself should be com- A sinewave at about 50Hz from Wavemaker; as you can see it’s pretty clean. Here’s a triangular wave at about 200Hz. It’s quite linear, and still quite clean. plete. All that should remain is making up a suitable cable to connect it to your PC’s printer port. This is easy if you use IDC connectors and 26-way IDC ribbon cable. All you’ll need are a 26-way IDC socket, an IDC type DB25 plug and a suitable length of cable — say 2m or so. Just be careful that you fit both connectors so their ‘pin 1’ ends are at the side of the cable marked with the red stripe; then the connections will be right. You should now be ready to power your generator up and connect it to the PC, to try it out with the software. The software A ramping-down sawtooth wave at close to 20Hz; again it’s very linear and good for testing amplifier linearity. This is a true arbitrary waveform, made using MAKEWAVE.EXE. The narrow negative spikes were programmed in, for scope triggering. As mentioned earlier, I’ve written four programs to go with the Wavemaker. They’re all written in Visual Basic for DOS and will therefore run happily on most IBM-compatible PCs. This means that you can use almost any PC to drive the generator, including those elderly desktops and laptops that many of us have gathering dust in our cupboards. Although you probably won’t want to run the software on a modern machine running Windows 98 or NT, it should run quite happily on these too, in a DOS window. You’ll probably get a ‘device conflict’ warning from time to time This is at 1kHz, showing how the waveform gets a little ‘segmented’ at higher frequencies. January 2001  41 Here’s the ‘control window’ for SOFTTEST.EXE, the program you use to check the printer port and save the generator’s config file. when the programs try to send data to the generator, but once you hit the ‘Y’ key to confirm that you want the DOS program to have access to the port, Windows usually backs away and lets them run. Zipped, free-running EXE versions of all four programs will be available on the SILICON CHIP website, for you to download, unzip and use ‘as is’. However for those who would like to see how they work, zipped text files with the VBDOS source code will also be on the website for you to download and inspect with a text editor/viewer. Here’s a quick rundown on each of the four programs, so you’ll know what each one does and how it’s used. There are a few screen shots to show what their ‘user interfaces’ are like, and also a couple of output waveforms captured via a digital storage oscilloscope. SOFTTEST.EXE: Normally SOFTTEST.EXE is the first program you’ll need to use, because it’s the one that lets you check the I/O address of the printer port the Wavemaker is connected to, and confirm that they’re talking to each other. It also lets you save the port address in a ‘config’ file (SOFTAGEN.CFG), which the other programs can read when they’re started up, so they’ll know where to find the generator. SOFTTEST.EXE also lets you set the value of a ‘delay constant’, which the main generator program SOFTARBG. EXE uses to set a software timing loop which controls the frequency of its output waveforms. This is necessary because the program will tend to run at different speeds on PCs with different processor chips and clock speeds, making it difficult to control absolute timing. To get around this problem I decided to have SOFTARBG.EXE use a timing loop to set the basic time-per-sample of the output waveforms, with this time set by a loop delay variable which is saved in the config file along with the port address. This makes it fairly easy to get the generator frequencies right, simply by adjusting the delay variable by trial and error using SOFTTEST.EXE. For example, on a 486DX2 running at 33MHz, a delay value of ‘3’ turned out to give generator frequencies that were within about 3% over most of the range, which is quite acceptable. On machines with faster processors and higher clock speeds you’ll need a larger value to achieve the correct frequencies. The third program is SOFTVOLT.EXE, which lets you use the generator as a programmable voltage source. This is very handy when you’re troubleshooting projects! 42  Silicon Chip When SOFTARBG.EXE is running, it gives you this window. You can select a waveform and frequency, and also control the generator. SOFTTEST.EXE gives you a screen window with five large control buttons, and a small ‘display panel’ which shows the current I/O port address you’re trying. To change this address you simply click on the top button, which brings up a dialog box to let you select one of the other common printer port addresses. To check whether the generator is at that address, you simply click on the next control button. If you’ve found the correct address, this will cause the generator’s LED to blink on and off five times, at a rate determined by the delay constant value. So finding the correct I/O port is simply a matter of trying the various addresses until the LED blinks when the second button is clicked. The third button down is the one which lets you set the software delay constant. This is explained in a message dialog which appears when you click on the button. You can then set the value via a second dialog box. The fourth button then lets you save the port address and current value of the delay constant on disk, in the config file ‘SOFTAGEN.CFG’ expected by the main generator program. Finally the fifth control button lets you quit SOFTTEST.EXE, and return This is the opening window for MAKEWAVE.EXE, the program you use to design your own waveforms and save them as disk files. When you enter MAKEWAVE.EXE’s edit mode, you get this screen to design your waveform graphically. to DOS — ready to try the main program and check its output frequencies, perhaps. SOFTARBGEN.EXE: This is the main generator program, which gives you a screen window with four control buttons and two ‘display panels’ — one to show the currently selected waveform and the other to show the waveform’s frequency. The two uppermost buttons let you set the waveform and frequency, respectively. Click on the Select Waveform button at top left and you get a small dialog box with six options to choose from: Sine, Square, Triangular, Sawtooth Down, Sawtooth Up or Custom. The last of these is to select an arbitrary waveform file on disk, and if you select this option you get another dialog asking for the name of the waveform file you want. These files have the extension ‘.SWF’, and some sample files will be available on the SILICON CHIP website to get you going. The top right Set Frequency button calls up a dialog button which, as you’d expect, lets you set the frequency of your waveform, in hertz. However, note that this button doesn’t work if you’ve selected a custom waveform, as the frequency of these is set by the length of the waveform in the loaded file. (If you want a similar waveform of a different frequency, you’ll need to make it using MAKEWAVE.EXE.) With any of the five ‘standard’ waveforms you can select a frequency between 1Hz and 2500Hz, although the frequency resolution and accuracy Finally, here’s how SOFTARBG.EXE’s window looks when you’re running an arbitrary waveform file. You can’t adjust the frequency; it’s fixed when you design the waveform. are not wonderful above 1kHz. Note that when you select a waveform and frequency, these are displayed on the ‘panels’ above the buttons — a bit like a hardware generator. The third button at lower left lets you start and stop the generator, running whatever waveform and frequency you’ve selected. Note, though, that because the selected waveform is either calculated or loaded in from disk only when you click on the button, there can be a short delay before the generator starts producing the waveform — especially for very low frequency waveforms, which have a lot of samples to calculate or load. The final button is again Quit Program, which is self-explanatory. SOFTVOLT.EXE: The third program is SOFTVOLT.EXE, which is designed to make it easy to use the Wavemaker as a programmable DC voltage supply. This one gives you a screen window with three small ‘display panels’ and three control buttons. The display panel at far right simply shows the I/O port that the program has loaded in from the config file, as a reminder. The other two show the current DC output voltage and the current ‘maximum’ (i.e., full digital scale) voltage respectively, and each of these figures can be set by clicking on the buttons beneath them. The idea of this ‘dual control’ system is that you can use the Wavemaker as a DC voltage source programmable over different ranges, depending on what you need. All you have to do is set the pot on the generator to produce the ‘full scale’ voltage you want, with the software set for full scale. Then if you set the ‘Max Volts’ readout to this figure (say 10.00V, 5.00V, 2.00V or whatever), the Change volts button can be used to set the scaled output voltage accordingly. In effect the program can allow for the setting of the generator’s pot. This makes it easier to use the program and generator to check multimeters, voltage comparators and so on. By the way, the display panel on the left shows not only the current output voltage, but the hex value being sent to the generator as well. Sometimes it’s handy to know! As before, the last button on the SOFTVOLT.EXE window is the escape hatch: Quit Program. MAKEWAVE.EXE: The final program is MAKEWAVE.EXE, which is pretty clearly the one that lets you design your own arbitrary waveforms and save them in disk files. These can then be loaded and fed to the generator by SOFTARBG.EXE. I confess that this program is fairly basic and needs a little patience, especially when you’re designing a complex low frequency waveform. That’s because it’s graphical and uses only the cursor arrow keys to adjust the sample values. However once you get the idea you can make many different kinds of waveforms, simply by flailing away at the keyboard. When you start MAKE-WAVE. EXE you get a fairly dull looking The front panel artwork can be copied and glued to the front panel and/or used as a drilling template for the three panel holes. The left hole is 3mm while the two right holes are 10mm. January 2001  43 screen window with just five control buttons — one of which is (you guessed it!) the Quit Program button. The other four are in two groups: the two on the left used to create new waveforms from scratch and the two on the right used to either save the current waveform on disk, or load in an existing waveform for further editing. To start producing a new waveform, you first click on the button at top left. This gives you two options: either setting the frequency This is the actual-size artwork for the PC board. of the waveform (1When you’re happy with the wave1000Hz), or its period form you’ve designed, you simply press in milliseconds (1-1000ms). the End key to exit from the editing Once you’ve done this, simply click screen and go back to the main window on the “New Wfm: Draw Samples” to save the waveform or whatever. button. This brings up the waveform I should warn you that this program editing screen, which is where you can manipulate the sample values to pulls a few ‘tricks’, in an effort to keep the program itself fairly simple ‘draw’ the waveform you want. A legend at lower right shows the keys you while also trying to make creating the waveforms as easy as possible. For exuse: the Right and Left arrow keys to move to the sample column you want ample, where the waveform only has to adjust in value, and then the Up and a relatively small number of samples due to its frequency (for example, a Down arrow keys to adjust the actual 1kHz waveform uses only 25 samples), value (from 0 to 255 decimal). Initialthese are ‘stretched’ so the waveform ly, the screen comes up with a green ‘horizontal line’ waveform of the right uses most of the screen horizontally rather than being squashed over at the wavelength, with the samples all set to midscale (127) to make it a bit easier to lefthand end. On the other hand, very low frequenset the values you want. As you’re working on the waveform, cy waveforms are not edited at their full resolution. A 1Hz waveform involves a list of parameter values is shown at lower left to help you. For example, 25,000 samples, which would be too you’re shown the current waveform difficult to edit on screen unless the program provided a ‘zoom’ function column you’re in and its sample value (which was too hard — sorry!). So in decimal. You can also see the time waveforms where there are over 600 value that the column corresponds to, samples (ie, with a frequency below in microseconds, and so on, including about 42Hz) are ‘decimated’ or reduced the waveform filename if you’ve saved in resolution, until their effective it (or a default name if you haven’t). resolution fits on the screen for easy editing. This means that you can’t get a waveform resolution higher than 600 effective samples, even for the lowest frequency waveform but I think this is a reasonable compromise. This still allows quite good ‘fine tuning’ of waveform shape, by the way, except on the highest frequencies where you don’t have many samples anyway. The two remaining control buttons on the MAKEWAVE.EXE screen are labelled respectively Save Current Waveform and Load & Edit a Waveform, and their use should be fairly self-evident. Here I should warn you of another small ‘quirk’ of MAKEWAVE.EXE. Although it can create and save quite complex waveforms, especially for low frequencies, the algorithms used for decimation (during loading) and restoration (during saving) of waveforms aren’t exactly complementary. This means that when you reload some waveforms back into MAKEWAVE. EXE, they can appear to have been corrupted — but this isn’t so. If you load them into SOFTARBG.EXE and run them, you’ll find they do deliver the waveform you designed. So it’s best to design your fancy low-frequency waveforms in one sitting and then save them to disk. Reloading them back into MAKEWAVE. EXE can produce confusing results. This only happens with waveforms below 42Hz, though. Higher frequency waveforms can usually be saved and reloaded for further editing, without any complications. SC Resistor Colour Codes No.  11  8  1  8   1   1  11 44  Silicon Chip Value 20kΩ 10kΩ 2.7kΩ 1.5kΩ 680Ω 470Ω 100Ω 4-Band Code (1%) red black orange brown brown black orange brown red purple red brown brown green red brown blue grey brown brown yellow purple brown brown brown black brown brown 5-Band Code (1%) red black black red brown brown black black red brown red purple black brown brown brown green black brown brown blue grey black black brown yellow purple black black brown brown black black black brown