Close
0%
0%

NRI Model 832 Digital Computer Reproduction

Created in 1972, the Model 832 was designed as part of a training program to teach both digital electronics and computer operations.

Similar projects worth following
The Model 832 shipped as a kit that contained all the parts necessary to build a working digital computer including; 10 PCBs, 75 7400 series ICs with sockets, 140 slide switches, 4 push buttons, 16 lamps, various discrete components, wire, screws, etc. Included was a "Training Kit Manual" which had full schematics and instructions for assembling the Model 832. The end result was housed in a sturdy case with steel sides and a brushed aluminum front panel.

Focus

I don't want to discount the power of the Model 832 kit for teaching the digital hardware side that makes this and all computers possible. The Training Kit Manual is very thorough with complete assembly instructions and lots of "experiments" to ensure that  you understand what you have just constructed. I would venture to say that a skilled engineer could legitimately reproduce the hardware based on this manual. 

NRI Model 832
Courtesy the Old Computer Museum

My focus however will be on the computing side. I want to make a reproduction that clearly looks like a Model 832 and more importantly works just like one. In the absence of all that original hardware I will be using a modern microprocessor to emulate that functionality. 

The Computer

Once the Model 832 is assembled you have a fully functional but simple computer with the following characteristics:

  • 8 bit word size
  • 16 bytes of ROM (128 switches)
  • 16 bytes of RAM
  • 3 working registers (Accumulator, B and E)
  • 3 internal registers (Instruction Register, Memory Address, and Program Counter)
  • 7 memory reference instructions
  • 8 additional operate instructions
  • direct memory addressing

Wow, pretty underwhelming right?  While not much of a computer power wise, I would argue that this simple architecture is perfect for teaching computer concepts. You can easily wrap your head around the whole machine.  

You write programs for the Model 832 by entering them directly into ROM memory, yes by setting the positions of the 128 slider switches into the 1 or 0 (up or down) positions. I think this is brilliant (I have a thing for tactile interfaces). No keyboard required.  To quote from Louis E. Frenzel, designer of the Model 832, "It is amazing what you can program in just 32 words.".

16 lamps provide more than enough information to understand what is going on inside the machine. No monitor required. 

All of the "op codes" available to the machine are printed on the front panel. Additional switches and buttons are clearly labeled and understood. Simple. Straightforward. 

Inspiration

On March 24, 2026 the Computer Museum at the University of Waterloo held an open house. (Full disclosure this is my alma mater, Class of '82, Go Warriors :-)  I had been to the museum before, but in the interim they had replaced a corridor facing wall with glass shelving displaying many of their artifacts. Plus they were introducing some new artifacts that had been recently donated. Very cool. I had to check it out.

While there I met Dr. Scott Campbell, Director of the Centre for Society, Technology and Values (CSTV) and a lecturer at the University of Waterloo. He is also the co-creator and a current curator of the U of W Computer Museum.  I really enjoyed our conversation. It's not that often the I get to "geek out" with someone who is as interested in (and way more knowledgeable of)  "retro" technology as I am. I was also very flattered that he knew who I was having seen some of my projects online.

As part of our conversation I told him that I was always on the lookout for new project ideas and he pointed out the NRI Model 832 they had on display in the aforementioned glass case. I had never encountered one before and their Model 832 is in beautiful condition. Scott mentioned that a summer intern had started work on an 832 emulator, and suggested that having a reproduction that people could actually "play with" might be nice. I don't believe that they have powered up their original artifact yet. 

We left the conversation at that. I don't think Dr. Campbell realized at that point how deeply the "hook" had been set into me. I immediately started researching the NRI Model 832 to determining how best to make a reproduction. 

Motivation

One facet of early "personal" computing that I am especially interested in is the pre-microprocessor era between 1966 when the first "commercial grade" 7400 series logic ICs went...

Read more »

Power Cord Mount.3mf

Cap to hold the power cord securely in a 13 mm hole.

3mf - 194.40 kB - 04/28/2026 at 19:55

Download

LED Holder With Threads.3mf

A panel mounted holder for 3 mm LEDs.

3mf - 237.93 kB - 04/28/2026 at 19:55

Download

MEGA Holder.3mf

A holder that can be used to mount an Arduino MEGA 2560 development board. Glue the holder to the chassis and screw the board into the holder with 2.5M x 6 mm bolts.

3mf - 99.38 kB - 04/28/2026 at 19:55

Download

Button Cap.3mf

Shell to "decorate" the slide switches lever.

3mf - 81.07 kB - 04/28/2026 at 19:55

Download

Foot.3mf

Rounded "washer" to hold the laser cut acrylic bottom panel in place. Helps prevent the acrylic from cracking and allows the screw to flush with the top surface.

3mf - 73.52 kB - 04/28/2026 at 19:55

Download

View all 8 files

  • 1 × Arduino MEGA 2560 https://a.co/d/0fC9UkPn
  • 16 × E10 Sockets https://a.co/d/004pznyL
  • 16 × LED Flashlight Bulbs https://a.co/d/0bgl0rvr
  • 140 × Mini Panel Slide Switches https://a.co/d/0eNzGF2f
  • 280 × M2.5 x 6 MM Screws https://a.co/d/03KoPm3B

View all 7 components

  • Finishing The Hardware

    Michael Gardi04/28/2026 at 21:46 0 comments

    I wrote a test routine that exercised all the hardware and was a bit surprised that everything mostly worked. There were a lot of solder joints I could have messed up. In the end I had to replace three of the push buttons that were a bit flakey.  Not sure what happened to them. I'll keep an eye on the replacements, and a lookout for some better buttons.

    I still wanted to show off "how the sausage was made", but needed  to protect the exposed wiring, so  I attached a clear acrylic laser cut bottom panel.

    Trust me, there is an acrylic panel there ;-)  I printed some "washers" to hold the panel in place without running the risk of cracking the acrylic, and to counter sink the screw heads.  Then I had to add some rubber feet to keep the unit from slipping around on the slick washers. 

    I drilled a 13 mm hole on the side of the case to pass through the USB cable that will be used to program the emulator and for now power the unit.

    Then I printed a "plug" to hold the cable firmly in place.  

    When the programming is done, my plan is to replace the cable and plug with a proper power socket connected to the POWER switch on the console. For now the POWER switch could be used to put the Arduino in "sleep mode" on power OFF, and wake on power ON.

  • Wiring (Part 3)

    Michael Gardi04/27/2026 at 18:58 0 comments

    Just finished the wiring for the NRI Model 832. In the absence of a any PCBs (other than the Arduino MEGA) that's a lot of wire. Hopefully I haven't messed up too much. Let the testing begin.

  • Rewiring

    Michael Gardi04/26/2026 at 23:38 0 comments

    With the lamps wired I thought I would write a little test program.

    // Test NRI Model 832 Hardware 
    
    #define IR7 21
    #define IR6 20
    #define IR5 19
    #define IR4 18
    #define IR3 17
    #define IR2 16
    #define IR1 15
    #define IR0 14
    
    #define AC7 2
    #define AC6 3
    #define AC5 4
    #define AC4 5
    #define AC3 6
    #define AC2 7
    #define AC1 8
    #define AC0 9
    
    // Array of pins connected to Lamps.
    int lampPins[] = {IR7, IR6, IR5, IR4, IR3, IR2, IR1, IR0, 
                        AC7, AC6, AC5, AC4, AC3, AC2, AC1, AC0}; 
    int pinCount = 16;
    
    void setup() {
      pinMode(AC7, OUTPUT);
      digitalWrite(AC7, HIGH);
        
      // Setup the display lamps as outputs.
      for (int i = 0; i < pinCount; i++) {
       pinMode(lampPins[i], OUTPUT);
       digitalWrite(lampPins[i], LOW);
      }
    }
    
    void loop() {
      while(true) {
        // Show the lamps in order.
        for (int i = 0; i < pinCount; i++) {
        digitalWrite(lampPins[i], HIGH);
        delay(250);
        digitalWrite(lampPins[i], LOW);
       }
      }
    }

    I ran the script and guess what, none of the lamps turned on. A quick check showed that the output pins defined were in fact going HIGH each in turn.  What? 

    It took me a few minutes to realized that the Arduino pins did not have enough Amps to drive the lamps. On closer inspection of the lamp description it turns out the lamps require about 300 mA whereas an Arduino pin only puts out 20-40 mA. I had assumed since they were basically LEDs they would not require so much current. Sigh.

    I considered running the lamps on a separate power supply and using some switching transistors to drive them. I even ordered some 2N2222 NPN transistors. As much as I really liked the look of the old timey lamps, in the end I decided that this just added too much complexity for this version.  It took minimal rework to switch to LEDs.

    I used some Panel Mount LED Sockets that I had designed for another project.

    Here is the rewired panel so far.

    Note that the 470 ohm limiting resistors are just wired inline.

    Now when I run my little test program I get blinkenlights.

  • Wiring (Part 2)

    Michael Gardi04/25/2026 at 20:23 0 comments

    I started wiring the lamps first. There is a wire going from each lamp to a pin on the Arduino MEGA.

    I slid the long pins of some male 90 degree headers into the MAGA's female headers and directly attached the wires to the appropriate pins via the short pin of the header. Also attached were two ground leads. 

  • Wiring (Part 1)

    Michael Gardi04/19/2026 at 19:11 0 comments

    While I waited for my Arduino MEGA 2560 to arrive I decided to get a start on the wiring.  I created a 3D printed holder to mount the Arduino development board and glued it in place.

    Preliminary Wiring Including ROM Switch Matrix

    The biggest part of this job was to create the ROM switch matrix which is basically the same thing that is done to read the switches on a keyboard.

    Original NRI Model 832 Keyboard Schematic

    There is a diode for each switch to prevent "ghosting", a phenomenon where pressing three or more keys simultaneously causes an unintended fourth key to register. (NOTE: My implementation is a little different than the one in the schematic.)

    ROM Matrix Wiring

    The diodes are mounted in such a way as to elevate the common "column" wires safely away from the "row" wires. Looks a little like magnetic core memory to me. I had done something like this for the Core Memory Panel of my Working Digital Computer project.

    The rest of the work was to run a ground wire to each of the remaining switches, bulbs, and buttons.

  • Populating the Front Panel

    Michael Gardi04/18/2026 at 02:05 0 comments

    With the front panel lased, I added the switches, lamps, and buttons.

    Slider switches, all 140 of them, are attached with 280 M2.5 x 6 mm screws. I did these all by hand to ensure that I didn't over drive them and ruin the wood. Lasered starter holes for the screws helped. I panel mounted the 4 push buttons.

    I found some E10 sockets for the lamps that (luckily) fit perfectly into the pre-cut 10 mm holes. The sockets are anchored from below with 3D printed friction fit socket holders.

    Finally I 3D printed and added coloured caps for the switches and buttons.

  • Lazing The Front Panel

    Michael Gardi04/15/2026 at 18:44 0 comments

    No I wasn't being lazy creating the front panel, but lasing the panel from plywood was pretty easy.

    There were some diagrams in the Reference Manual that showed the text and outlines of the front panel that I was able to organize into a layout for the Model 832. 

    I brought the above image into Autodesk Fusion as a "Canvas", basically a background picture. You can "calibrate" the image to be the millimeter size you want in the real world. Then its a matter of "tracing over" the elements with CAD based lines, circles, and text. The result is saved as a DXF file (which I have posted to the Files section above).

    DXF files (sometimes called cut files) can be loaded into the LightBurn Software that drives the 100W laser at Kwartzlab (my local makerspace). The front panel was created in two passes. First the text and outlines were added onto the birch plywood sheet I was using with vector engraving which follows path lines, tracing graphics like a pen to create deeper, faster lines.  On a second pass the holes for the switches, lights, and buttons were cut out using a much higher power. Here is the result.

    Pretty happy with the way that it turned out.

  • Design Decisions

    Michael Gardi04/14/2026 at 21:35 0 comments

    I mentioned already that I had decided to use an Arduino development board to "drive" the NRI Model 832. It's more than powerful enough to emulate the simple Model 832 computer. The problem is that all of those switches, buttons, and lamps require a lot of IO lines. To enumerate:

    • ROM memory switches need 24 IO ports, 16 lines for the switch "rows", and 8 bits to read the switch "columns".
    • Lamps require 16 lines, one for each.
    • Switch register switches 8 lines.
    • Control switches and buttons another 8 lines.

    For a grand total of 54 IO lines. Well as chance would have it the Arduino MEGA 2560 has 54 available digital IO pins (more if you use the analog ports as digital).  Done.

    There were a couple of ways I could have gone with the case design. 

    One thought was to create a large PCB to hold DIP versions of the switches, lights, and buttons, all wired together neatly by traces on the PCB to the Arduino. On the front, the 832 panel text and graphics could be rendered using the silkscreen layer.  The Arduino MEGA could be mounted on the back. This would be a clean and robust solution. Put everything in a acrylic case? Nice.

    However such a large PCB would be quite expensive. The pressure would be on to get the PCB right the first time. While looking cool it would not be "period" correct.  Version 2 maybe?

    Option 2 might be to mount the same PCB into a case made to look more like the original Model 832. Still expensive but it would certainly pass the reproduction smell test. Possible.

    In the end I based the design for my "version 1 prototype" on stuff that I mostly had on hand.  For instance I had 50 panel mount slide switches (and ordered 100 more), about 300 IN4148 signal switching diodes, and some push buttons in my parts box. My maker space negotiated a deal on some beautiful 3 mm birch plywood panels (about 500 x 300 mm) that I was looking to use.  When I went looking for "lamps", I found some very cool period looking bulbs that are actually LEDs.

View all 8 project logs

Enjoy this project?

Share

Discussions

Peabody1929 wrote 04/22/2026 at 19:05 point

The Computer HIstory Museum in Mountain View CA has this object in their collection.  You can see it in the catalog.  It is item #102718664.  CHM does allow research projects about items in the collection. 

  Are you sure? yes | no

Michael Gardi wrote 04/22/2026 at 19:29 point

cool. Ya CHM was very helpful when I made inquiries about the DEC Model 30 Display!

  Are you sure? yes | no

Does this project spark your interest?

Become a member to follow this project and never miss any updates