Lupine Systems Presents...Part Four of the Series
Build Your Own Microcontroller Calculator
THIS MONTH:   Build an Advanced Floating-Point Nixie Tube Desk Calculator
by Spike Tsasmali, Lupine Systems

Build Your Own Advanced Floating Point Nixie Tube Desk Calculator

Advanced Project Difficulty=5 Howls


In last month's article I explained how to build a basic LCD floating-point pocket calculator. The LCD model added floating-point to the original article, Build Your Own Microcontroller Calculator and addressed some of the more desired functions such as percent and memory.

In the months since I have received many requests for adding additional functions as well as correct some minor bugs in the software. In this version, bugs in the division code have been addressed and several new features have been added.

The most important addition to the calculator software has been square roots. Square roots are difficult to do using a microcontroller but once I got into the code I found it to be not as complex as once I thought it to be. Although the 8-digit floating-point square rooter would be too slow for use in complex embedded-control applications, it works very well for the calculator application, being able to find a square root of about any number in less than 250ms!

Also the use of Nixie tubes makes this version old-fashioned in appearance as well as easy to read. Although the Nixie tubes are difficult to work with the appearance makes it worthwhile.

This article outlines a COMPLETE PROJECT, including large printed circuits and keys/keycaps. Therefore this is a VERY LONG ARTICLE.



Lupine Systems warns you not to attempt to build this device unless you are familiar with the dangers of high DC voltages. Please be familiar with how to use the tools necessary to solder, trim and otherwise assemble printed circuits. Lupine Systems cannot be responsible for any injuries resulting from the misuse of tools or carelessness in regards to the presence of high voltages. Be aware of this BEFORE you begin. Safety is of UPMOST IMPORTANCE to us. If you are skillful enough to undertake a project of this magnitude but run into a snag and need help, or if you simply have a question about any part of this project, contact WOOFY anytime. Please do NOT continue if you feel overwhelmed or challenged beyond your ability. THINK SAFETY! and always wear your SAFETY GLASSES!

Quick Link Index

Due to the length of this article, I have broken it up into links that take you directly to the individual subsections for quick access.

General Power Supply Board I/O-CPU Board Display Board
Engineering a Nixie Tube Calculator Power Supply Board Schematic Diagram I/O-CPU Board Schematic Diagram Display Board Schematic Diagram
Building the Nixie Tube Desk Calculator Assembling the Power Supply Board Assembling the I/O-CPU Board Assembling the Display Board
How It Works Power Supply Board Parts Placement I/O-CPU Board Parts Placement Display Board Parts Placement
Assembling the Nixie Tube Desk Calculator Power Supply Board Parts List I/O-CPU Board Parts List Display Board Parts List

Final Assembly Links

Putting It All Together Testing for the First Time User Guide

Engineering a Nixie Tube Desk Calculator

Last month I discussed how to design the basic floating-point calculator using a simple LCD display module which made the display portion of the project quick, easy and inexpensive. But this month, the display type chosen are Nixie display tubes which are much more difficult to work with. First off, Nixie tubes use HIGH VOLTAGE (about 180v DC) and are much more cumbersome to handle and install. An array of data latches along with high voltage drivers are required for each tube. Thus a PC board with considerable size is necessary to house all of the display support components. Also, a high voltage power supply is necessary and to maintain smooth brightness a voltage regulator capable of regulating +180v DC is necessary.

Why not just multiplex the display and do away with all of those drivers?

This is a legitimate argument. Although some of the old calculators, such as the Facit 1123 used a multiplexed scheme to reduce components, multiplexing the display requires a display update routine in the processor that "scans" the displays rapidly, resulting in a readout that appears to be all ON at once. This scanning works extremely well with LEDs and VFD displays but with Nixie tubes the scan has to be just right or the tubes won't always light up well. Although it was commonly pulled-off in the old days, I chose not to use multiplexing because...

  • The entire project requires a base support PCB to hold the power supply and keyboard (I/O-CPU board) so there would be a lot of space to put all of the drivers anyway so why not?...
  • The purpose of the project is to produce a machine that uses the simplest methodologies. Multiplexing has fewer components but is in concept more complex.
  • I wanted the tubes to have individual drivers so each segment could be lit to its fullest potential and make servicing straightforward
  • Russian tubes are known not to be as reliable as American, Japanese or British tubes (I have seen this in Nixie clock construction where the tubes fail prematurely) so it is best to give the tube all you have rather than "blink it" really fast
  • There could be other reasons why direct drive is best - and there are arguments against it. It is one of two choices and I prefer direct drive.
  • Nixie Tube Displays

    This month's calculator project uses Nixie display tubes. The tubes used are similar to those used on the Lupine Systems project, Nixie Tube Clock. Since these tubes are somewhat difficult to obtain, Russian tubes, left over from the former Soviet Union were chosen. These tubes are in abondance and easy to get from a number of sellers on Ebay.

    Nixie Tube Display. Motion graphic shows the appearance of each of the 10 separate digit segments.

    The tube chosen for this project is the Russian Nixie Tube IN-16. The IN-16 tube has digits about 1 inch tall and 3/8 inch wide. The tube is about a half-inch round and stands just shy of 2 inches tall. The long lead wires make this tube perfect for a just this kind of project and since the tube comes with a white plastic base the lead wires are easy to separate, insulate and bend into the necessary alignment to use on this project. The base protects the wires from shorting near the bottom of the glass tube and helps stop them from breaking off.

    IN-16 "Soviet" Russian Display Tube

    Since Nixies light up bright orange the visibility of the display is excellent. In fact, placing a lightly smoked glass in front of the display enhances contrast and makes the display brightly visible in about any office or home environment. More on this later...

    Building the Nixie Tube Advanced Floating-Point Desk Calculator

    Fig. 1 shows a block diagram of the Nixie Tube Advanced Floating-Point Desk Calculator. Just like previous versions, all functions are performed by the microcontroller. Last month's LCD calculator used a PIC16C63A or PIC16F73 and could add, subtract, multiply and divide in FLOATING-POINT. The addition of the decimal point required the use of a device with more memory so a PIC16C63A or PIC16F73 was used.

    Fig. 1
    Nixie Tube Advanced Floating-Point Desk Calculator Block Diagram
    Click Image to Enlarge

    This month, with the addition of extra features, a much more powerful device was chosen -- the PIC17C44, Microchip's mid-range processor. Nowadays this device is hard to come by but don't panic! Jameco Electronics stocks the part in abondance. Also, you can port the code to run on the 18Fxxx PICs.

    Due to complexity, this project has been broken up into three separate PC boards: (1) the Display Board; (2) the Power Supply Board; and (3) the I/O-CPU Board.

    The Display Board is the largest of the three boards and forms the foundation for the other two boards to mount. The Power Supply board mounts to the rear and on top the Display Board and the I/O-CPU Board mounts in the front and has all of the keys and the PIC processor. The Nixie tubes are mounted in the center of the Display Board and poke up between the Power Supply and the I/O-CPU.

    The Display Board is 10.5" x 11.5" in size and is double-sided. The other two boards, the Power Supply and the I/O-CPU are each 10.5" x 5.1" and are also double-sided.

    Picture of Professionally Made Board Set for the Nixie Tube Calculator Project
    From left to right: Power Supply Board, Display Board, I/O-CPU Board
    Click Image to Enlarge

    You can make your own PC boards for this project (especially the Power Supply and I/O-CPU) but it is HIGHLY RECOMMENDED to purchase the set of pre-etched, drilled and labeled professional PC boards from Lupine Systems. These professionally manufactured PC boards are complete with plated-thru holes, silk-screened component legend and green solder mask. All three boards are coordinated to fit exactly proper with each other without any fuss or mess. You can read about how to go about purchasing these boards at the end of the article.

    A Note on Making Your Own PC Board


    Making your own PC board can be fun and can save you a lot of money. But it will take time. By experimenter's standards, this is a HUGE board -- and very difficult to manage. Since this project has a large number of components on the Display Board, there are literally HUNDREDS of holes to drill(including via holes), most of them are .031" in size (that's thirty-one THOUSANDTHS). Many of these holes are occupied by part leads that must be soldered on both sides because there is no practical way to do the thru-hole plating in a home-brew environment. So if you dare to make the Display Board be prepared to spend some time on the project and stay away from anything that will give you the "jitters" (like too much coffee...).

    Although it is recommended to purchase and use the professionally manufactured PC boards it will still be necessary to download the PC board layout files from the Lupine Systems Download site. You will need these layouts to help you locate and install the components and the software file to program the PIC microcontroller.

    The board layout files are part of the Project Package, which includes all of the PC board layouts in Gerber file format Since this project was not drafted in EasyTrax the project does not offer EasyTrax format files.

    Note: This project was drafted using AutoTrax, a more advanced version of EasyTrax. AutoTrax is very similar to EasyTrax but the PCB files are not compatable. If you are interested in the master AutoTrax files for this project, send an E-mail to WOOFY and he'll send you those files.

    You will also need an inkjet or laser printer to print out the PC board graphic files. The files can be printed directly from the Gerber files using GCPrevue. The Ever-Muse PC board material is very forgiving -- so much so you'll forget it is a form of photography! But the better your PC board artwork is to start with the better the outcome of the board will be. You can also print out two copies of each side of the layout and carefully overlap them to darken the artwork. If you do this, be careful to align each layer as exact as possible and add an additional 5 seconds (30 seconds if you use a regular fluorescent lamp) to the exposure time.

    Most of the components used in this project are available from Mouser Electronics. You can also purchase some of the parts at Radio Shack, Jameco Electronics, Newark Electronics, or Circuit Specialists. You can also find the Nixie Tubes on Ebay. You can save some money by using parts purchased from surplus dealers and by salvaging parts from your parts junk box. In any event, the entire project is well affordable for most experimenters and students.

    This project is presented to you by Lupine Systems for educational purposes only and is not intended to be used as a base design for manufacture, and is not intended to implicate a complete and total solution suitable for all needs. All designs remain property of Lupine Systems at all times. Although this is an experimenter's project capable of producing excellent results, there remains room for improvements. This project is basic and provides all of the systems necessary to perform the desired task but is left open for you, the experimenter, to modify it to your own personal needs. Feel free to experiment with display types, keyboard types and review the processor source code. Enjoy the project, and learn how microcontrollers and microprocessors do math in the process.

    How It Works

    Due to the complexity of the circuit, the Schematic Diagram is broken up into three sections. A detailed explination is provided for each board and subsection on each board.

    Power Supply Board

    Fig. 2 shows the Schematic Diagram for the Power Supply Board for the Nixie Tube Advanced Floating-Point Desk Calculator. 5 volts is obtained from transformer T2, bridge rectifier BR2, capacitors C49,C50 and C52, switching regulator chip U35 and toroid coil L1. This simple switching power supply is capable of delivering up to 2A of current to all of the logic devices.

    Transformer T1 acts as a mains isolation transformer with an input of 125v AC and an output of 125v AC. The isolated AC voltage is then rectified by bridge rectifier BR1. Capacitor C53 smooths out the AC ripple and in conjunction with the bridge acts as a single stage voltage multiplier. Resistor R183, a 100K 1W power resistor acts as a bleed-down current sink to discharge the capacitor when the power is turned off. The voltage that appears across capacitor C53 can be as high as 280 volts so it is CRITICAL that (1) you PAY CLOSE ATTENTION to this capacitor and be ABSOLUTELY SURE that it is installed properly, and (2) you KEEP YOUR HANDS AWAY FROM ANY PART OF THE CAPACITOR AND THE ASSOCIATED CIRCUITRY! This circuit produces LETHAL VOLTAGES so BE CAREFUL in and/or around this capacitor and the high voltage regulator circuit.

    The smoothed-out high voltage is regulated by transistor Q155. Transistors Q156 and Q157 are assembled as a feedback regulator providing the base bias for the pass regulator Q155. Rectifier diode D13 provides reverse current protection to the junction of the pass regulator transistor. Zener diode D14 sets a reference to transistor Q157 while potentiometer R187 is used to vary the reference thus adjusting the output voltage. The range of adjustment varies from +160v to over +230v. Proper adjustment is set for +180v +/- 4 volts.

    Fig. 2
    Nixie Tube Advanced Floating-Point Desk Calculator Power Supply Board Schematic Diagram
    Click Image to Enlarge

    I/O-CPU Board

    Fig. 3 shows the Schematic Diagram for the I/O-CPU board for the Nixie Tube Advanced Floating-Point Desk Calculator. All keyboard scan functions are performed by the single PIC17C44 processor U32 as well as all math functions. Clock is provided by a 20MHz clock oscillator module U33. Clock can be as high as 33MHz (for PIC17C44-33 parts) but the higher clock does not produce a visually noticable improvement in performance when clocked over 20MHz. Supervisor device U31 issues the system RESET at power up and will generate a RESET condition if the +5v power source falters. Blocking diodes D1-D11 prevent key scan errors and resistor network RP1 pulls up the four keyboard row receive lines.

    Data from the I/O-CPU board is sent to the Display Board via connector CN1. Data consists of three sets of signals. First the data containing the segment ON information appears on lines D0-D5. The address for the desired latch appears on lines A0-A3. Clock to latch the data is split into two signals G1 and G2 and are active on the HIGH to LOW edge transition.

    Fig. 3
    Nixie Tube Advanced Floating-Point Desk Calculator I/O-CPU Board Schematic Diagram
    Click Image to Enlarge

    Display Board

    Fig. 4 shows the Schematic Diagram for the Nixie Tube Advanced Floating-Point Desk Calculator Display Board. Data from the I/O-CPU board is latched by octal latch devices U1-U28 (in this project, chips U1,U2,U10,U11,U22,U23,U26,U27 and U28 are not used). Each data bit represents one segment; a logic "0" is OFF and a logic "1" is ON. Latches are broken up into two sets - the G1 set, or UPPER set, and the G2 set, or LOWER set. The G1 UPPER set uses chips U1-U9 and U24-U28 and the G2 LOWER set uses chips U10-U23. Latch selection is done by the two 74LS154 1-of-16 decoder chips U29 for the UPPER set and U30 for the LOWER set. Latch clock G1 latches data onto the UPPER set of latches and G2 latches data onto the LOWER set.

    Once the data is latched, logic "1"s represent an "ON" segment. Data is then coupled to the base of an MPS-A42 transistor via a 1K base current limiting resistor. The high voltage driver transistor then switches ON or OFF the segments in each of the nine Russian IN-16 Nixie tubes. A 33K current limiting resistor is connected from the cathode of each tube to the +180v source to power each tube.

    Symbols for the negative sign (-) and OVERFLOW/ERROR are derived from unused tube location V12. Standard NE-1A bulbs strategically placed make a nice (-) sign display and overflow indicator to the right of the display.

    Fig. 4
    Nixie Tube Advanced Floating-Point Desk Calculator Display Board Schematic Diagram
    Click Image to Enlarge

    Assembling the Nixie Tube Advanced Floating-Point Desk Calculator

    Since this project uses a complex driver scheme for the Nixie tubes and a critical high-voltage power supply, the use of perforated boards or pad-per-hole boards are NOT recommended. It is HIGHLY RECOMMENDED to use the professionally manufactured PC boards available for this project. More about this at the end of the article.

    Since each of the three boards can be a project of their own, a separate Parts List and Assembly Guide is provided for each of the three boards.

    Once all three boards have been assembled and the Power Supply Board has been tested, all three boards will be combined into a single unit. Final testing will be done before the hardware construction of the encasement begins.

    Assembling the Power Supply Board

    Fig. 5 shows the Parts Placement Diagram for the Power Supply Board. Table 1 contains the Parts List and Suggested Supplier list. You may obtain parts from sources other than the ones mentioned in the Table.

    Fig. 5
    Nixie Tube Advanced Floating-Point Desk Calculator Power Supply PC Board Parts Placement Diagram
    Click Image to Enlarge

    Table 1
    Parts List
    Advanced Nixie Tube Calculator
    Power Supply Board

    DesignatorQuantityDescriptionVendorPart Number
    BR1,BR22Bridge Rectifier, 1A 400VMouser833-RB154-BP
    C49,C5024700uF 25v Axial Aluminum Electrolytic CapacitorMouser140-XAL25V4700-RC
    C511.0033uF Conformal Axial CapacitorMouser581-SA101C332KAR
    C521470uF 16v Axial Aluminum Electrolytic CapacitorMouser647-TVX1C471MAD
    C531330uF 400v Snap Radial Aluminum Electrolytic CapacitorMouser5985-381-400V330
    C54,C552.01uF 500v Ceramic Disc CapacitorMouser140-500P9-103K-RC
    CN216-pin Molex Series KK .100" Fem HeaderMouser538-22-02-2265
    CN31AC Power ConnectorMouser161-0714-7-E
    ---1AC Power CordMouser562-312008-01
    D121Schottky Diode 1N5817Mouser512-1N5817
    D1311N4004 RectifierMouser512-1N4004
    D141NTE5054A 140v 1/2 Watt Zener DiodeMouser526-NTE5054A
    F11AGC 1/2 FuseMouser504-AGC-1/2
    F21AGC 1 FuseMouser504-AGC-1
    F31AGC 2 FuseMouser504-AGC-2
    L1133uH Toroid CoilJameco371080
    Q15512N3584 NPN Power TransistorMouser610-2N3584
    Q156,Q15722N3440 NPN TransistorMouser511-2N3440
    R1831100K Ohms 1 Watt Metal Film Resistor Mouser594-5073NW100K0J
    R1841 390 Ohms 1/4W Resistor Mouser291-390-RC
    R1851 22K 2W Metal Film Resistor Mouser282-22K-RC
    R1861 1.2K 1/4W Resistor Mouser291-1.2K-RC
    R1871 25K Trimmer Potentiometer Mouser652-3306F-1-253
    R1881 82K 1/2W Resistor Mouser293-82K-RC
    R1891 8.2K 1/4W Resistor Mouser291-8.2K-RC
    R1901 1 Ohm, 1/4W Resistor Mouser291-1-RC
    R1911 1K 1/4W Resistor Mouser291-1K-RC
    U351LM2596S-5.0 Voltage Regulator ICJameco310391
    T11Hammond 115v TransformerMouser546-229A230
    T21Hammond 6.3v TransformerMouser546-229B12
    --2Screw, #6-32 1/2"Mouser534-9409
    --2Nut, #6-32 HexMouser534-9602
    --2Screw, #4-40 1" Mouser534-9405
    --4Nut, #4-40 HexMouser534-9600
    --6Fuse Clips for F1,F2,F3 Mouser534-3529
    --1Heatsink for Q155Mouser532-569006B00
    --1Heatsink Mounting Pad for Q155Mouser880-108T1-5193-08
    --1 tubeHeatsink Mounting Compound for Q155Mouser590-860-150G
    --1 ft.20 gauge Twisted Wire Pair or Zip Cord----
    --1Bare PC Board (See Text)Lupine Systems22-920A-1A

    Note: Use of water-soluble flux solder is highly recommended. Water soluble flux solders allow you to clean the flux from the board using nothing more than running warm water. Therefore you can de-flux after assembly and have a nicely assembled PC board that appears and works as good as if it were assembled professionally. But be aware that when you are using water soluble flux solders, be sure not to (1) inhale the fumes, (2) since water soluble flux is conductive you MUST wash the board after assembly, and (3) you MUST wash the board as soon as possible. The flux is corrosive and can damage the PC board and cause the solder connections to corrode and turn black. So be sure to use the solder with good ventilation (a small fan like the ones found in PCs mounted to a block of wood makes a great flux-smoke displacer) and wash the board as soon as you are finished assembly. After washing, simply place the board in the sun to dry. It takes about 4-5 hours of sunshine to completely dry all of the board and any water that gets in-between component legs and the PC board. You can speed up the process by using a regular box fan. Getting components like the ones used in this project wet does not harm them in any way as long as they are dry when power is applied. It is however suggested to avoid wetting switches and connectors or allowing water contaminated with flux residue to enter switches or connectors. If this does happen, then rinse them thoroughly, then shake vigorously to remove as much liquid as possible then let the board dry overnight before applying power.

    a Word of Wisdom: Using water soluble flux solder is the best way to get true professional results but you may need to wait for the board to dry after washing. Be patient. Patience yields a truly professional job and a quality project when done. Believe me, it is worth it. Do not rush!

    Begin assembly of the Power Supply Board by installing the surface mount voltage regulator IC U35. I have found that the use of solder paste and reflow works best but you can solder these fine pins with a regular soldering iron tip if you use 32 gauge or smaller solder and a lot of care. Carefully align the chip and while holding it in place solder one of the outside pins, Check for alignment and correct if necessary before soldering the rest of the pins. Allow the device about 2 minutes to cool before soldering the tab to the PC board. After installation, remove any solder flux from the pins and tab.

    Next, install all of the "flat" parts. Begin with resistors R184,R186,R188,R189,R190 and R191. Trim all leads. Then install capacitor C51 and diodes D12,D13 and D14. Be sure to observe polarity on the diodes.

    Install resistor R185, a 22K 2W power resistor. Mount this resistor about 1/8" above the PC board. This is to allow the part adequate ventilation for cooling and will help prevent damage to the PC board due to constant exposure to excessive heat.

    Install the fuse clips for F1,F2 and F3. These clips have a polarizing tab on one end that prevents the fuse from sliding out of the holder so be careful when installing to place the tab to the OUTSIDE on each end. It helps to put a clip on each end of a genuine fuse then install both the fuse and the two clips onto the PC board all at the same time.

    Install the toroid coil L1. Put a piece of foam rubber or foam tape underneath the coil before mounting it to the board. The coil should float about 1/8" above the PC board when properly installed. You can also use part of a packing peanut or piece of styrofoam - works the same. Do NOT use paper, paper towel, toilet paper or a rolled up piece of tape. Doing so is cheap, really looks bad and can affect the circuit if it ever used in a humid environment. Also, do not use anything metallic!

    Install the two bridge rectifiers BR1 and BR2. Be sure to observe polarity! Spread the legs apart so that the part is centered up inside the square markings on the PC board. These devices should also be mounted slightly above the PC board. 1/8" to 1/4" is adequate.

    Install the two 4700uF capacitors C49 and C50. Then install capacitor C52. Be sure to observe polarity!

    Install the AC power connector CN3. Mount the connector to the PC board using two 6-32 screws and nuts, then solder.

    Install capacitor C53. TRIPLE CHECK THIS DEVICE FOR POLARITY before continuing!!!

    Install transistors Q156 and Q157. These devices only fit one way so you cannot get the polarity wrong!

    Install transistor Q155. Use the mounting pad, heatsink compound and heatsink. Mount the transistor to the heatsink using two 4-40 x 1" screws and nuts THEN mount the heatsink/transistor assembly to the PC board using two more 4-40 nuts. This mounting technique holds the transistor and heat sink silghtly above the PC board and helps prevent the heat from the transistor from damaging the PC board over time and actually cools the device better. Wipe up any excess heatsink compound after mounting.

    Install the two ceramic disc capacitors C54 and C55.

    Install the two power trasformers T1 and T2. Notice that there are numbers printed on the paper part of the transformer that will match numbers on the PC board. BE ABSOLUTELY SURE you have these numbers aligned.

    Install the 100K 1 watt power resistor R183. Mount this device about 1/2" above the PC board. If you have a power resistor pre-former then bend the height curves at 1/2". After soldering, be sure the resistor is straight and not bent or curved. This device can get really hot if the calculator is left on for a long time (like overnight or longer) so mounting well above the PC board is important.

    Strip 1/8" of the insulation off one end of each of the two 20-gauge wires outlined in the Parts List. If you are using zip cord, then separate the two conductors 1" then strip each end 1/8". Tin each wire. Then insert one wire into each of the two holes marked "POWER SWITCH" located just behind fuse F3. Solder and trim the wire ends.

    Strip about 1/2" from the remaining ends of the 20-gauge wires installed in the previous step. Twist these two wires together and tape or use a wire nut. This is a temporary step used for testing and will be removed during the final assembly later.

    If you have not already done so, install fuses F1, F2 and F3. IT IS VERY IMPORTANT TO USE THE PROPER RATED FUSE for your safety and proper fire protection. Install an AGC 1/2A fuse for F1, an AGC 1A for F2 and an AGC 2A for F3. DO NOT USE MDL OR "SLOW BLOW" FUSES!

    Finally, install Molex connector CN1. This connector mounts on the SOLDER SIDE of the board. The pins install to the INSIDE row of holes with the holes in the connector that will accept pins aligned over the OUTSIDE row of holes. Hold the connector tight against the bottom of the board and carefully solder the pins from the TOP SIDE. BE SURE YOU DO NOT GET ANY SOLDER IN ANY OF THE HOLES ON THE OUTSIDE ROW. If you do, you MUST clear the holes or the connector from the Display Board will not fit properly into this connector.

    Remove any solder flux from the SOLDER SIDE of the board using flux remover or if you used water-soluble flux solder, wash the board on BOTH SIDES under warm running water for about 1 minute. Allow the board at least 5 hours to dry in the sun and/or in front of a fan. BE ABSOLUTELY SURE the board is completely dry, especially the transformers and connector CN1 before you continue.

    The Power Supply Board is now assembled and is ready for testing.

    !! WARNING !!

    SINCE THIS BOARD GENERATES LETHAL VOLTAGES IT IS ABSOLUTELY IMPERATIVE THAT YOU TRIPLE CHECK YOUR WORK BEFORE YOU APPLY POWER! Be sure to CAREFULLY INSPECT the high voltage regulator section, T1, C53, Q155 and all associated components. KEEP YOUR HANDS AWAY FROM THE HEATSINK, THE BOTTOM OF THE PC BOARD AND ANY COMPONENTS IN THE OUTLINED HIGH VOLTAGE AREA or you will be subject to a shock that is a very nasty jolt that can result in SERIOUS PERSONAL INJURY. If you do get jolted, SEEK MEDICAL ATTENTION IMMEDIATELY and do not drive or continue with assembly or testing until you have seen a doctor. YOUR SAFETY IS OF UPMOST CONCERN.

    Place the board on a piece of cardboard cut to the size of the board plus a few inches to each side. This will provide adequate insulation between the bottom of the board and any conductive obsticles that may be astray on the workbench.

    You will need a digital voltmeter and an INSULATED trimmer adjustment tool to set the high voltage regulator.

    Have your digital voltmeter set for DC voltage, range (if not auto-ranging) set to 300v or higher.

    Use the adjustment tool to set potentiometer R187 to center rotation. This is an important step.

    Be sure the board is centered on the insulating cardboard and connect a power cord to connector CN3 and then plug the cord into an AC outlet. Wait for about 1 minute for the board to stabalize. This is to determine if there are any missed mis-polarized capacitors or anything else drawing too much current. During this waiting period, observe the three fuses. Watch to see if any of the fuses blow. If any of the fuses blow you definitely have a serious problem. Review the assembly guide and schematic. Search for shorts, improperly installed components, solder bridges or other shorts, especially around connector CN1 and the high voltage regulators. DO NOT CONTINUE until this first step of the test can be passed.


    Use your digital voltmeter to measure the voltage at connector CN1. Make these measurements from the PARTS SIDE of the board.

    For safety purposes, pick up GROUND by connecting the BLACK meter lead to the NEGATIVE lead of capacitor C49 or C50. Then measure the voltage by touching the RED meter lead to pin 6 (closest to the heatsink) of CN1. Measure the voltage. This voltage should be somewhere between +160v and +230v. If you get any other reading, go back and re-check your work. Wait at least 3 minutes for capacitor C53 to completely bleed down before touching any part of the high voltage circuit.

    Use the adjustment tool to set potentiometer R187 so that the voltage at Pin 6 of CN1 reads +180v, give or take about 4 volts. This adjustment is very stable so setting it precisely to +180 is farily easy to do. If the voltage does not adjust, or is "stuck" at a high level (such as +230v) then you have trouble with the regulator or have diode D14 installed backwards. Recheck your work, which in this case may involve removing and testing the three regulator transistors for opens and shorts. Repair/replace and retest before continuing. Be sure to always wait about 3 minutes after removing AC power so capacitor C53 fully bleeds down before handling the high voltage circuit.

    Once you have the +180v regulator tested and adjusted, check the integrity of the +5v source. Reset your meter (if necessary) to 30v range and check the voltage at Pin 1 of CN1. This voltage should read between 4.9v and 5.2v. If you do not have this voltage, recheck the solder work on the regulator chip U35. Look for fine hairline shorts between the pins. Be sure diode D12 is properly installed and that it is the proper value (a 1N4001 or 1N5401 will NOT work! This diode MUST be a Schottky or fast recovery diode). Remember to bleed down C53 before you work on any part of the circuit.

    Once you have the power supply up and running you can set it aside and continue assembly of the project by assembling the I/O-CPU board.

    Assembling the I/O-CPU Board

    Fig. 6 shows the Parts Placement Diagram for the I/O-CPU Board. Table 2 contains the Parts List and Suggested Supplier list. You may obtain parts from sources other than the ones mentioned in the Table.

    Fig. 6
    Nixie Tube Advanced Floating-Point Desk Calculator I/O-CPU PC Board Parts Placement Diagram
    Click Image to Enlarge

    Table 2
    Parts List
    Advanced Nixie Tube Calculator
    I/O-CPU Board

    DesignatorQuantityDescriptionVendorPart Number
    C47,C482.1uF Conformal Axial CapacitorMouser581-SA105E104MAR
    C571470uF 16v Axial Aluminum Electrolytic CapacitorMouser647-TVX1C471MAD
    CN129-pin Molex Series KK .100" Fem Header (see text)Mouser538-22-02-2095
    D1-D1111Switching Diode 1N914Mouser512-1N914
    RP1110K x 5 Bussed Resistor Network Mouser264-10K-RC
    S1-S4444Data Entry Switch Mouser540-MX1A-C1NW
    U311Processor Supervisory Reset ICMouser579-MCP130-450DI/TO
    U321PIC17C44 Microcontroller (see text)Jameco247919
    U33120MHz Clock Oscillator ModuleMouser774-MXO45-3C-20.0
    --140-Pin Socket for U32Mouser571-1-390262-5
    --44Keycap, CustomizableDataCAL Enterprises628-7750K
    --44Clear Cover for KeycapDataCAL Enterprises628-7379K
    --1Bare PC Board (See Text)Lupine Systems22-920B-1A


  • As of publication, the PIC17C44 was still available from Jameco Electronics. You can also use the PIC17C43. The PIC17C42 does not have enough memory so you cannot use it for this project. It is also possible to convert the source code to assemble on the PIC18Fxx series devices such as the PIC18F452, but these chips are not pin-for-pin compatable and would require an adapter. But for best results with minimum effort, use the PIC17C44 or PIC17C43. Use of the -JW windowed ceramic part is also recommended since this allows you to erase and reprogram the chip if ever there is a software update or you write custom code yourself.
  • Parts list is for purchase of "new" parts. Use of surplus components can save you a lot of money and make projects like this affordable, even for students on tight budgets. Check for parts on Ebay, salvage yards, yard sales, flea markets and other outlets where used or broken electronic items can be found at a discount price.
  • Begin assembly by installing the two bypass capacitors C47 and C48.

    Next, install the eleven 1N914 switching diodes D1-D11. Be sure to observe polarity.

    Next, install the socket for processor chip U32. Be sure to align the notch on the socket with the outline for the notch on the silk screen legend layer on the PC board.

    Install resistor network RP1. Be sure to align the dot or bar on the resistor network with the Pin 1 dot on the PC board legend.

    Install processor supervisor U31. Then install clock oscillator module U33.

    Install capacitor C57. Be sure to observe polarity.

    Flip the board over so you can access the SOLDER SIDE. Fill all of the via holes with solder. Do not leave any of the via holes unfilled. Be sure not to fill any of the holes that are NOT via holes!

    Install the 44 data entry switches. This is easier done by installing them one "bank" at a time (the switches are divided up into three sections, two sections of 16 and one section of 12). Be sure you align the pins so they do not fold up under the switch, then press the switch firmly into the mounting holes. Once a full bank is mounted, flip the board over and solder them into place. Repeat for each bank until all 44 are installed. Do not install the keycaps at this time.

    Finally, install the two Molex 9-pin headers in place of CN1. Two of these connectors have to be used because an 18-pin connector is not readily available. Mount the two connectors on the SOLDER SIDE of the board. Install the pins to the INSIDE ROW of holes so that the holes on the connectors that accept pins are aligned over the OUTSIDE row of holes. Be sure not to get any solder in any of the OUTSIDE row holes. If you do you will need to clean out the holes. Otherwise the connector will not be able to accept the pins from the Display Board connector later.

    Remove any solder flux from the board or if you used water soluble flux solder wash the board for about 1 minute on BOTH SIDES and allow the board 5 hours to dry in the sun or in front of a fan.

    Finalize the assembly by programming the PIC17C44 microcontroller with the assembled code NIXCALC.ASM, part of the Project Package. The file, NIXCALC.ASM must first be assembled before you can program the PIC. Use MPLAB from Microchip to do the assembly. If you cannot do this, you can order a pre-programmed device from Lupine Systems. Once you have a programmed PIC, install it in the socket U32. Program the device with the clock set for EC, the Watchdog set for TMR and the mode set for Microcontroller (you can choose Prot. Microcontroller as well if you wish to code-protect the device).

    The I/O-CPU board is now complete. There is no good way to test this board as a stand-alone, so for the time being, inspect your work carefully and set this board aside.

    Assembling the Display Board

    The Display Board is the most difficult and most time-consuming of the three boards to assemble. For this project, not all of the components laid out on this board will be installed (these parts locations will be used in a future expansion perhaps...). Refer to the Parts Placement Diagram below. Parts outlined in RED are NOT used and should be left empty. Fill in the unused holes with solder.

    Since there is a large volume of resistors to install, and a large number of insulation to put on the tube leads, it is recommended that you pre-form the resistor leads ahead of time, this way all you have to do is install them without having to form each part at installation time. You will also need to cut a lot of insulation so it is best to get it done now than to do it one lead at a time. See parts list below.

    Fig. 7 shows the Parts Placement Diagram for the Display Board. Table 3 contains the Parts List and Suggested Supplier list. You may obtain parts from sources other than the ones mentioned in the Table.

    Fig. 7
    Nixie Tube Advanced Floating-Point Desk Calculator Display PC Board Parts Placement Diagram
    Click Image to Enlarge

    Table 3
    Parts List
    Advanced Nixie Tube Calculator
    Display Board

    DesignatorQuantityDescriptionVendorPart Number
    C3-C10,C13-C20,C34,C35,C39,C44,C4521.1uF Conformal Axial CapacitorMouser581-SA105E104MAR
    C23-C3210.047uF 400v Polyester Film CapacitorMouser5989-400V.047-F
    C561470uF 16v Axial Aluminum Electrolytic CapacitorMouser647-TVX1C471MAD
    CN1,CN21.100" Male Header, Long Pins (see text)Mouser517-834-07-36
    NE1,NE21Neon Indicator Bulb, NE2Jameco210260
    Q23-Q121,Q128-Q132104MPSA42 Transistor Jameco178546
    R13-R54,R65-R111,R130-R1441041K 1/8 Watt Resistor Mouser299-1K-RC
    R157-R1661033K 1/4 Watt ResistorMouser291-33K-RC
    U3-U9,U12-U21,U24,U251974HC374N Octal D Flip-FlopJameco45858
    U29,U30274LS154N 1-of-16 Decoder ICJameco46738
    V3-V119Russian Soviet IN-16 Nixie Tube DisplayEbay (see text)-----
    --23Brass Standoff, M-F #6-32 1"Mouser534-1644
    --18Hex Nut for Standoff,#6-32 Mouser534-9602
    --10Screw for Standoff, #6-32 1/4"Mouser534-9407
    --1 rollPVC Insulation Sleeving, .027"MouserPVC-105-22
    --1Bare PC Board (See Text)Lupine Systems22-924A-1A

    Note for Advanced Users

  • It is possible to alter the software to control Nixie tubes other than the Russian IN-16 tubes specified in the Parts List. Changing the software involves re-assigning the bit designations that define which bits light which segments. You could also simply twist the lead wires around to fit the current software but doing so may be difficult, confusing or may make mounting the tubes difficult. This is for ADVANCED USERS ONLY. Refer to the assembly file, nixcalc.asm in the Project Package for this project.
  • Begin assembly by pre-forming 104 1K 1/8 watt resistors to .300" forms. This will help in the installation process later.

    Pre-form the 21 .1uF conformal capacitors to .400" spacing and set aside.

    Next, cut 117 pieces of the insulation sleeving 1 1/4" long. Place these in a container and save them for a later step.

    Carefully examine each of the nine Nixie tube displays. Locate the tube CATHODE pin. This is Pin 1 of the tube. The cathode pin is the backmost pin. If you hold the tube so you are facing the front of the tube (you can see the screen wire and some of the digit wire segments, there will be no "printing" visible) then this pin is in the CENTER REAR and can be identified by a white coating on the pin INSIDE the tube itself. Once you have located this pin, CAREFULLY bend it out so that it is at a near 90 degree angle to the tube. Next, separate the remaining leads into two groups of six counting from (but NOT including) the cathode wire. There should be exactly two groups of lead wires with six to the left and six to the right. Slightly bend out each group so that they form two rows of "pins" with the cathode straight out the back. Repeat this process for each of the 9 tubes.

    Place a piece of sleeving that you cut in a previous step on each of the Nixie tube lead wires. If the sleeving was cut correctly there should be about 1/8" of lead wire left exposed. If there is not, or there is more than 1/8", either cut the sleeving so that there is the proper length or replace it with a fresh piece. Make sure EVERY TUBE LEAD has the same amount of space left over at the end once the sleeving is placed on the lead. THIS IS IMPORTANT -- otherwise you will not be able to line up the tubes later. Once you have sleeving on every tube lead set the tubes aside in a safe place.

    Install resistors R13-R54 and R100-R113. Insert ALL of these resistors into the board but DO NOT SOLDER yet. For a more professional look, insert the resistors so that the gold bands are all at the same end - usually this is done with the gold band DOWN for easy reading (since resistors are not polarized you do not have to do this - it just looks a lot better if you do). Once all of these resistors are inserted, rub your finger across the entire row to make sure all of them are fitted tight against the PC board, then place a piece of masking tape across the entire row. Rub down the tape well, then flip the board over and solder each row of lead wires one row at a time, then trim. Doing it this way will save a lot of time and will produce more professional results.

    Next, install resistors R65-R99 and R130-R144. Repeat the process done in the last step to finalize installation of these resistors.

    Install capacitors C3-C10 and C39. Using the masking tape procedure complete installation of these capacitors.

    Install capacitors C13-C20 and C34-C36. Using the masking tape procedure complete installation of these capacitors.

    Install capacitors C44 and C45 (near decoder chips).

    Install the two 1-of-16 decoder chips U29 and U30.

    Install 74HC374 latch chips U3-U21 and U24 and U25. It is best to solder one row of pins at a time then go back and solder the other row. This way the chip does not overheat during installation. Be sure you are GROUNDED before handling the chips!

    In this step you will be installing the MPSA42 transistors. Notice that the board is divided in half by the Nixie tubes V1-V14. Install transistors on the UPPER half of the board first, then do the ones on the LOWER half. Install the transistors ONE ROW OF SIX AT A TIME beginning with Q23-Q28. Use masking tape to hold the devices in place as you flip the board over to solder. Solder the lead wires beginning with the TOPMOST lead wire, then count to the 4th lead then the 7th, skipping 2 each time. This way no single transistor gets too hot during soldering. Then go back and do lead 2, 5, 8....until all 18 of the lead wires are soldered. Trim excess lead lenghts and repeat for the next section of transistors up to Q116. Once all of these are done, start with the LOWER section with only five devices per row. Complete installation with the installation of Q132.

    Important Note: When properly assembled there will be a row of transistors in the LOWER section below tube V12 but NOT in the row in the UPPER section. This is the way it is supposed to be. See the RED sections of the Parts Placement Diagram Fig. 7.

    Install the 10 .047uF polyester film capacitors C23-C32.

    Install capacitor C56. Be sure to observe polarity.

    Install 33K resistors R157-R166. These devices pre-form to .500" spacing.

    Break off 6 pins from the .100" header specified in the Parts List and install these pins at location CN2. This connector installs on the PARTS SIDE. Break off 18 pins from the remaining header and install these pins at location CN2. This connector also installs on the PARTS SIDE. Be sure these pins are STRAIGHT and perpendicular to the PC board. Trim off any part of the pin left over on the SOLDER SIDE so that the trimmed leads are as flat as any of the other trimmed leads on the board.

    The most difficult task in the assembly of this board is the installation of the Nixie tubes. This task is tedious, tiresome and delicate. Take a break, have a cigarette, drink or whatever relaxes you, or just stop for the night before moving on to the next step. Because it can get to you really quick. Take your time, relax and concentrate and you can get through it!

    Install the nine Nixie tubes in locations V3-V11. The best way to do this is to first make sure there are two separate sets of SIX lead wires, one on the left, one on the right with the CATHODE pin straight out the back. BE SURE THE LEAD WIRES DO NOT GET CROSSED UP -- the lead wires go lead-for-lead from the tube to the PC board.

    Grab the RIGHT side lead wire group and line up the lead wires in a single row. Space them out to match the .100" spacing of the PC board. Insert these six wires through the right-hand row of holes. Gently hold the tube, then flip the board over while holding the tube and bend the two outermost lead wires so that they are *near* flat against the board. Next, do the same thing for the LEFT side row of leads but this time add in the center CATHODE wire. Bend the outermost two leads once again.

    Look carefully at the installation of the tube and make sure none of the lead wires have crossed up or that any of the leads have slipped out of the holes. Then CAREFULLY flip the board and solder the 2nd, 3rd, 4th and 5th lead wires on each side, then solder the CATHODE lead. Next, bend back straight the first and last leads on each row and solder them. Be sure to trim any excess lead wires.

    If the tube seems a bit crooked don't worry -- the tubes will be straightened up and aligned later.

    Repeat these steps for each of the nine Nixie tubes.

    Finalize assembly by installing 1" brass standoffs in each of the 18 white bordered mounting holes. Mount the standoff by inserting the male end through the PC board and fastening the standoff using a #6-32 hex nut.

    Remove any flux from the board or if you used water soluble flux solder wash the board on BOTH SIDES for 1 minute then let dry in the sun for at least 5 hours, or use a fan to dry the board.

    Note: The Parts List includes two neon indicator bulbs. These will be installed to the Display Board in a later step. Hold on to them in a safe place.

    The display board is now complete. Since there is no good way to test this board stand-alone the final testing will be done when the complete project is assembled.

    Putting It All Together

    Now that all three boards have been assembled it is time to combine them into a single unit.

    During this process be sure the Nixie tubes clear the space that will be created between the Power Supply Board and the I/O-CPU board. Straighten them a bit if necessary.

    First, place the Display Board on the workbench in front of you. Next, connect the Power Supply Board to the Display Board by mounting it to the Display Board via connector CN2 and the nine brass standoffs. The pins of CN2 on the Display Board will come completely through the empty holes associated with CN2 on the Power Supply Board and clearly stick out. You will trim these in a later step. Once the board has securely been mounted at CN2, secure the Power Supply to the Display Board using only two screws at this time. Install one screw on each side of the Power Supply Board and leave the other seven screws out.

    Next, repeat the same process for the I/O-CPU board and CN1. Secure the boards using one screw on each side.

    Testing the Caclulator for the First Time

    Now that the entire unit has been assembled it is time for testing.

    Plug the power cord into CN3 and into an AC outlet. The character "0" should appear on the V11 tube. The number keys are those in the center bank of data entry switches. Press several of these keys and determine that you can make numerical entries. If all is well you should be able to enter numbers across the display exept for the tube at V3 (this tube will only display the decimal and is used when the calculator has encountered an error such as division by zero).

    If you get no display, or you cannot enter numbers, then verify first that the +180v and +5v power sources are OK (see Testing the Power Supply) and that there are no blown fuses. Once you are sure that all voltages are OK, check the PIC microcontroller and be sure that it has been properly programmed. The device MUST be programmed with the ASSEMBLED file nixcalc.asm with the clock set for EC, the Watchdog set for TMR and the mode set for Microcontroller. If the PIC is OK then check for interconnect failure between CN1 on both the I/O-CPU and Display boards and CN2 and both the Power Supply and Display boards. Be sure +5v is reaching the I/O-CPU board by measuring the voltage across capacitor C57. If after inspection you still cannot get a display, review all assembly, especially assembly of the Display Board and I/O-CPU Board and if necessary Contact Lupine Systems.

    Once you have determined that the electronics is working OK, secure the Power Supply Board to the Display Board using #6-32 x 1/4" screws. Study the Power Supply Board and observe that there are four mounting holes along each edge. Install screws in the two INNERMOST holes on each side. Leave the four corner holes open. Also leave the mounting hole above capacitor C49 open. Tighten all screws firmly.

    Secure the I/O-CPU board to the Display Board in the same fashion used to attach the Power Supply Board by placing screws in the four INNERMOST holes on each side. Place a screw in the mounting hole to the RIGHT and slightly above connector CN2 (next to the (+) key or the 4th from the RIGHT on the BOTTOM row). Tighten all screws firmly.

    Finally, trim off any excess pin length from the long pins pertruding through the PC board at connectors CN2 on the Power Supply Board and CN1 on the I/O-CPU board. Trim the pins off even with the top of the PC board.

    Nixie Tube Calculator
    User Guide

    Quick Link Index

    Using the Nixie Tube Calculator Multiplication Key Pi Key Display Mean Counter Key Invert Key
    Arithmetic Key Functions Division Key Reciprocal Key x<>y Swap Key Metric Conversion Keys
    Numerical Keys Change Sign Key Square Key Memory Add Key Display Features
    Decimal Key Equals Key Square Root Key Memory Clear Key Overflow/Error Condition
    Addition Key Clear Key Percent Key Memory Recall Key More Information
    Subtraction Key Clear Entry Key Delta Percent Key MEAN Key Unpacked BCD

    Using the Floating-Point Calculator

    Floating-point arithmetic is much more complex in software than fixed-point, therefore, the software has limitations when it comes to certain functions.

    Addition, subtraction and multiplication are fairly straightforward and have no accuracy issues. But division is a whole 'nother ball game.

    The division routine used by the software for this project is an update to the original method used by previous projects. The division routine can cycle as many times as necessary to complete a division to the accuracy of the available decimal places. This is a great improvement over the older, limited 8 cycle routine used on the earlier projects.

    I still think that by this time in history most people already know how to use a calculator, so I will only provide a quick overview of each key and its function. (actually the first part is the same as this section for the LED Fixed-Point Calculator).

    Arithmetic Keys and Their Functions

    Calculators work in the sense of performing an arithmetic operation on two variables, X and Y. The calculator in this project ALWAYS performs the desired operation on the variables X and Y and these two variables can be swapped in the event they are entered in reverse (very useful when doing subtraction or division). Arithmetic is entered in the classic algebraic format, i.e. 2+2=4. Operations can be done sequentially but do NOT follow the algebraic rule of Order of Operations. Example: Algebra rules state that the equation:

    2 + 3 x 5 =

    should be solved as:

    2 + (3 x 5) = 17

    Calculators classically do not follow these rules unless they are scientific algebraic entry calculators. Instead, most classic pocket calculators solve equations in sequential operation order rather than the mathematically defined "Order of Operations" as described above.

    Therefore, our sample equation,

    2 + 3 x 5 =

    would be solved as:

    2 + 3 x (understood equals, 5 appears on display) 5 = 25.

    Rule: The desired function is always performed on the number in the display (X). When a function key is pressed, the number on the display is transferred to the (Y) register and the calculator awaits another number to be entered as (X). The operation is completed with the (=) key OR the pressing of another function key.

    Numerical Entry Keys (0-9)

    Used to enter numbers into the calculator. The longest number that can be entered is 8 digits plus one decimal point. Unlike some calculators, this calculator will realize all 8 digits when the decimal is used rather than wasting one digit for the leading "zero" before the decimal.

    Format: (1) (2) (3) will enter the number 123 on the display and the (X) register.

    Decimal Key (.)

    Used to enter the decimal point in a floating-point expression.

    Format: (1) (2) (.) (3) will enter 12.3 on the display.

    Addition Key (+)

    Adds the number on the display to the value in the (Y) register and returns the sum to the (X) register and display.

    Format: Y + X = (display)

    Subtraction Key (-)

    Subtracts the number on the display from the value in the (Y) register and returns the difference to the (X) register and display.

    Format: Y - X = (display)

    Use of the (x<>y) key will swap these two variables. So if you entered,

    12 - 19, but meant to enter 19 - 12, all you have to do is press the (x<>y) key and the two terms are reversed.

    Multiplication Key (*)

    Multiplies the value on the display times the value in the (Y) register and returns the product to the (X) register and display.

    Format: X * Y = (display)

    Division Key (/)

    Divides the number in the (Y) register by the number in the (X) register and returns the quotient to the (X) register and display and the fractional modulus component (undivisable remainder) of the quotient in the (Y) register. Use of the (x<>y) key swaps the quotient and fractional modulus values.

    Format: Y / X = [Quotient](display) [Fractional Modulus] (Y)

    The (x<>y) key will swap the dividend (Y) and the divisor (X) prior to the pressing of the (=) key or another function key.

    If a sequential operation is performed after a division, only the quotient component is passed on to the next operation sequence. The modulus component is lost forever.

    In the event you need to extend the accuracy of a division, you may use the fractional modulus to continue the division process by dividing the modulus by the divisor (X). The display will then display the next 8 digits of the decimal component of the quotient for each time you divide the sequential fractional modulus component by the divisor (X).

    Note: Since division by zero is mathematically impossible, attempting to divide by zero will result in an error and the error condition 00000000 will appear on the display and the error indicator will light.

    Change Sign Key (+/-)

    Changes the sign of the number on the display. If the current number is positive, then it will become negative. If the current number is negative, it will become positive.

    Format: (X) (+/-) --> (-X)

    Equals Key (=)

    Terminates all functions and returns the solution to the entered equation to the display (X). The (=) key also clears the (Y) register. Sequential operations may be entered following the (=) key.

    Format: [Desired Operation] (=) [Solution to Equation --> (X)], (Y) = 0

    x and y Swap Key (x<>y)

    Switches the values in the (x) and the (y) registers, Used to switch the operands in division routines or to display the modulus (remainder) after division.

    Format: (x<>y) ----> value(x)-->(y) value(y)-->(x)

    After a division operation: (x<>y) ----> Final modulus (fractional)-->(x)

    Clear Key (C)

    Clears all registers (X, Y and internal registers), clears all operations (+, -, *, /) and returns the machine to an initialized state. Cancels any operation in mid-sequence. The CLEAR key has no affect on data stored in memory.

    Format: (C) --> (X) = 0, (Y) = 0, [Internal Working Registers] = 0, --> Operations Cancelled

    Clear Entry Key (CE)

    Clears the display (X). Has no affect on any other register or operation.

    Format: (CE) --> (X) = 0

    Reciprocal Key (1/x)

    Finds the mathematical reciprocal of the number on the display (X). This key only affects the number on the display. The (Y) register or any pending operations are not affected.

    Format: Reciprocal of 17 (1) (7) (1/x) --> .05882352

    Square Key (x2)

    Finds the mathematical square of the number in the display. This key only affects the number on the display. The (Y) register or any pending operations are not affected.

    Format: Square of 52 (5) (2) (x2) --> 2704

    Square Root Key (sqrt)

    Finds the mathematical square root of the number in the display. This key only affects the number on the display. The (Y) register or any pending operations are not affected.

    Format: Square Root of 49 (4) (9) (sqrt) --> 7

    Percent Key (%)

    Calculates using percentages. This key only affects the number on the display. The (Y) register or any pending operations are not affected.

    Format: Calculates (X)% of (Y) and returns the answer to the display and (X).

  • Percentages as Part of a Calculation. Enter (Y) value first. Then enter the desired math operation. Then enter percentage and press (%). (X)% of (Y) is displayed. Pressing (=) finalizes the sequence.
    • 15 + (25% of 15) = 18.75 --> (1) (5) (+) (2) (5) (%) (=) --> 18.75

  • Finding Raw Percentage. Enter the base number, then press (x<>y). Then enter the percentage and press (%).
    • 45% of 93 --> (9) (3) (x<>y) (4) (5) (%) [no equals required]

    Delta Percent Key (delta %)

    Calculates the percentage of change between two numbers.

    Format: If 48 changes to 96 then how much change in percentage has occurred?

    (4) (8) (D%) (9) (6) (=) 100 the value has increased by 100%.

    A positive result means an increase, a negative result means a decrease.

    Memory Add Key (M+)

    Adds a cumulative sum to the caculator's memory (Epsilon +). Each time (M+) is pressed the number on the display is added to memory. The MEAN counter is incremented each time this key is pressed. The display (X) and the (Y) register remain unchanged.

    Format: Add 29.3 to Memory --> [Display]29.3 (M+) --> [Memory + 29.3]

    Memory Recall Key (MR)

    Displays the value currently saved in memory on the display. The (Y) register remains unchanged.

    Format: (MR) --> [Memory Value] --> [Display]

    Memory Clear Key (MC)

    Clears the memory. Also resets the MEAN counter.

    Format: (MC) --> [Memory] = 0

    MEAN Key (MEAN)

    Calculates the statistical MEAN of the numbers entered into memory and places the answer in the display and (X). Up to 255 entries can be made. This key has no affect on the (Y) register.

    Format: Enter each number you wish to average, or you can use the result of a calculation. Press (M+) after each entry. Once all numbers have been entered, press (MEAN). The statistical MEAN will be displayed.

    Display Mean Counter Key (DMC)

    Displays the number of entries into memory that have been made. This is the number that will be used as the divisor during the MEAN calculation. Cleared by pressing the (MC) key. The (Y) register remains unchanged.

    Format: (DMC) --> [Mean Counter] --> [Display] and (X)

    Pi Key (pi)

    Enters automatically the mathematical proportional constant pi rounded to 7 decimal places -- 3.1415927

    Pressing (pi) will erase the current contents of the (x) register.

    Format: (pi) --> (X)

    Metric Conversion Keys (various)

    Converts the value in the (x) register from English to Metric values.

    INV (Invert) Key
    Pressing (INV) will swap the direction of the conversion making it a Metric to English conversion instead.

    The eight most commonly used conversions are provided. Below is a list of all of the Metric-to-English, English-to-Metric conversions included in the software:

  • Inches to Centimetres
  • Pounds (lbs) to Kilograms
  • Fluid Ounces to Millilitres
  • Miles to Kilometres
  • Ounces to Grams
  • Gallons to Litres
  • Yards to Metres
  • Degrees Farenheight to Centigrade
  • All conversions are done by multiplying the value in the (x) register with an algorithm appropriate for the conversion except for degrees F to C, which follows a formula which includes two algorithms. All conversions are done using multiplication routines (no division!).

    Format: {[English](x)} (any conversion key)--> {[Metric](x)}

    {[Metric](x) (INV)} (any conversion key)--> {[English](x)}

    The Display

    The display represents the (X) register and is 8 digits long. A 9th tube has been added to provide for the farthest most decimal point and may also be used in future versions of the software. The display can handle any 8-digit integer and any decimal value up to 8 full digits. Unlike most calculators with 8 digits, the 8th digit is not sacrificed for the leading "0" which is blanked on our model.

    Overflow and Error Conditions

    Overflow occurs when the calculation exceeds the numerical value of 99999999., less than -99999999. or is a fraction smaller than 0.00000001 or -0.00000001. Error occurs when an attempt is made at division by zero, reciprocal of zero or if the calculator encounters a malfunction. A warning is given for taking the square root of a negative number (since this is actually done in theoretical mathematics) and is cleared with the next function.

    Overflow and errors are indicated by all nine Nixie tubes lighting their "0" and "." segments along with the WARNING neon indicator. Negative sign is indicated by the illumination of the SIGN neon bulb to the RIGHT side of the display. Initiating any new operation or pressing the (C) key will remove the calculator from the ERROR state.

    Unpacked BCD

    This project incorporates a technique to process unpacked BCD numbers. Most programmers would have used packed BCD numbers, mainy because packed BCD uses less RAM space and can manipulate two digits simultaneously. So the question is, why unpacked BCD?

    Here's why...Most of the time, out here in the real world, experimenters and hobbyist (and often times engineers facing a daunting challenge) run into numbers in one of two forms:

  • Seven Segment format on some LED display, or
  • Binary represented, or Binary-Coded Decimal (BCD) single digit numbers.
  • For example, have you ever thought about the display on a digital time clock? What "if" you had to "access" this digital information for one reason or another?...So you take the thing apart, just to find that the display is driven directly from the processor. You don't have "access" to the actual individual digit data. But you do! You can "re-encode" the 7-segment display data back into BCD and presto! But how can you deal with this if all that's available deals with packed BCD? What if you need to deal with the numbers in an "unpacked" way, which is the way most displays work?...

    Now you know. Experimenters classically write code that manipulates displays one at a time. So the math routines used in this project manupulate the numbers ONE AT A TIME, making the routines useable in many projects without having to do binary/hex or pack/unpack conversions.

    I know this is the long way around this ride but necessary to facilitate easy integration into other projects, designs or concepts. Personally I know of many projects I've passed up because of one reason or another, and one of those reasons has been the lack of the ability to calculate basic numbers. Well, now YOU don't have to pass up any of these projects because you will soon know how this is done!

    If you are clever, you "could" pack the digits, compress the code some and save some RAM...but that would take a lot of time...!!

    Parts Suppliers

    Here are links and contact information for the recommended parts suppliers. You can purchase all of the parts used in this project from the suppliers listed below (not all from one, see the Parts List for supplier information), or you can shop around on the Internet for better prices and sources. Surplus outlets are especially useful when purchasing TTL logic chips, sockets, resistors and capacitors.

  • Circuit Specialists
    • Phone: 800-528-1417

  • Digi-Key
    • Phone: 800-DIGI-KEY

  • Jameco Electronics
    • Phone: 800-831-4242

  • Mouser Electronics
    • Phone: 800-346-6873

  • Newark Electronics
    • Phone: 800-4-Newark (800-463-9275)

  • Radio Shack
  • Printed Circuits are available for this project from Lupine Systems. Just send WOOFY an E-mail and he'll get right back to you!

  • We're Sorry, but this project is not being offered as an assembled ready to use product at this time. Please do not inquire into having us build one for you!
  • Back to the Lupine Systems Homepage
    Lupine Systems Download Section
    How to Make PC Boards

    © 2010 Lupine Systems. It's a WOLF Thing! ®