Nixie Display Module With SPI Interface

by CaptainBrainFart in Circuits > Microcontrollers

22049 Views, 154 Favorites, 0 Comments

Nixie Display Module With SPI Interface

DisplayModule

Overview:

So there are plenty of display modules available to work with an SPI bus, mostly based around LED or LCD technology. But I wanted to re-use some old Nixie teck. This Instructable is what I came up with.

The completed module is compact and fairly robust so I don't need to worry about it getting knocked around on my workbench, and its a simple task to re-use the display module with multiple projects.

Features:

  • 4 circuit boards simplifies construction and testing.
  • PIC16F15344 Micro-Controller - 32MHz with internal SPI bus.
  • Operating voltage range from 2.3 to 5.5 volts.
  • No need for level shift circuitry on the SPI bus - just run the micro-controller at the same voltage as the bus.
  • Internal boost converter (6 to 12 volt input) - creates the 170 volt required by the Nixie tubes.
  • All high voltage connections are kept internal, minimising the risk of accidental contact.

Notes on construction:

I think of Perfboard as a sheet with holes drilled on a 0.1″ grid. The holes are plated on both sides, and each hole is an individual electrical node. I've never been a great fan of the stuff because I think the end results look messy, and I tend to use strip board or Veroboard instead.

But it occurred to me, Perfboard could be a lot neater if connections were made using insulated wiring on the component side of the board. And if that connecting wire was 30AWG wire-wrap cable, I could maximise the wiring density. And by using multiple wires to each hole, I wouldn't need so many connections, which would maximise the component density.

So that's the approach I've used on this project. The layout takes a bit more planning than usual, and assembly is a layered approach with wire connections going on first, followed by the components, then soldering. But the end result is compact and quite neat.

  • 30 AWG wire-wrap cable is used throughout - anything larger just won't fit.
  • Perfboard MUST have through hole plating to ensure solder can flow into the hole rather than just sitting as a dirty great blob on one surface of the board.
  • Component layout is more of a tag-board approach, with component leads and connecting wires sharing holes in the circuit board. This approach allows for a high component density.
  • Wires aren't soldered until all components and wires are in place. The circuit boards have up to 4 wires per hole.
  • All wires are trimmed as close to the circuit board as possible before soldering.
  • When soldering, the through hole plate draws solder into the holes, minimising the height of the solder joints and reducing the risk of shorts between adjacent circuit boards.

Supplies

CircuitBoards2.png
Dupont.png
Equipment_1.png
Stand.png

Parts:

  • 2 x Double Sided Prototyping Circuit Board FR4 - 6 x 8 cm - cut down into 4 smaller boards measuring 8 x 20 holes (First photo)
  • 40 Pin 2.54mm Male PCB Single Row Right Angle Header Strip Connector Arduino (Second photo)
  • 5 x male to female Dupont connecting cables.
  • Garden peg - 3cm width - insulated (fourth photo)

Nixie Board:

  • Circuit Board, 8 x 20 holes, 4 corner holes drilled for M3 spacers, 3 center holes drilled for Nixie tubes.
  • 4 x 10mm, M3, male to female stand-offs
  • 30 AWG (wire wrap) connecting cable
  • 3 x IN-17 Nixie tubes

170V PSU Board:

  • Circuit Board, 8 x 20 holes, 4 corner holes drilled for M3 stand-offs.
  • 4 x 10mm, M3, male to female stand-offs
  • 2 pin, right angle Dupont connector - cut from larger strip
  • 3 x vero pins
  • 30 AWG (wire wrap) connecting cable
  • 9 volt battery connector, with (female) Dupont connectors.
  • C1: 220uF @ 16volt electrolytic capacitor, 6mm diameter
  • C2: 2.2nF minature ceramic capacitor
  • C3: 100pF minature ceramic capacitor
  • C4: 2.2uF @ 250volt electrolytic capacitor, 6mm diameter
  • R1: 1K 0.25W resistor
  • R2: 10K 0.25W resistor
  • R3: 2.2K 0.25W resistor
  • R4: 220K 0.25W resistor
  • R5: 1K pre-set potentiometer - Bourns RLB0712-101KL
  • T1: BC547 NPN transistor
  • T2: IRF740 N-Channel MOSFET
  • IC1: 555 timer
  • D1: UF4004 ultrafast Recovery Rectifier
  • L1: Bourns RLB0712-101KL Inductor, RLB Series, 100 µH, 320 mA, 0.4 ohm, ± 10%

HV Driver Board:

  • Circuit Board, 8 x 20 holes, 4 corner holes drilled for M3 stand-offs.
  • 4 x 10mm, M3, male to female stand-offs
  • 30 AWG (wire wrap) connecting cable
  • 13 x MPSA42 High voltage, NPN transistor
  • 3 x MPSA92 High voltage PNP transistor
  • 6 x 100K 0.25W resistor
  • 13 x 33K 0.25W resistor

Micro-controller Board:

  • Circuit Board, 8 x 2 0 holes, 4 corner holes drilled for M3 stand-offs.
  • 4 x 8mm, M3, male to female stand-offs
  • 4 x M3 4mm machine screws
  • 2 x 5 pin, right angle Dupont connector - cut from larger strip
  • C1: 0.1uF ceramic capacitor
  • C2: 220uF @16V electrolytic capacitor, 6mm diameter
  • R1: 10K 0.25W resistor
  • IC1: PIC 16F15344 micro controller

Equipment: (Third photo)

  • Multi-meter: with 200 volt range and a continuity tester.
  • Hand held miniature drill: Required to drill out the corners on the circuit boards.
  • Pickit 3 + MPLAB XIDE: Debugger/programmer or some other means to compile a C program and deploy it to the PIC mcrocontroler.

NOTE: The MPLAB - XIDE application can be a steep learning curve. This project assumes you are familiar with the application, and can create and configure a new project to compile and deploy the code for the micro-controller.

Nixie Board

Nixie_Circuit.png
Components.png
Nixie_Wiring.png
WireSide.png
SolderSide.png
1N-17 Pinout.png
NixieTubes.png
Soldered.png
CompletedBoard.png

This is built on the circuit board with the 3 additional holes, which allow for the glass blob on the base of each Nixie tube. The circuit is a simple grid, connecting identical cathodes, whilst keeping the 3 anodes separate. Any of the 30 Nixie segments can be selected by taking the Anode high, and Cathode low.

Notes:

  1. Wires aren't soldered until all components are in place. The circuit board has up to 4 wires per hole.
  2. The anode + cathode bus are left about 6 inches long and will be trimmed to length later.
  3. Nixie tubes are added last, to sit on top of the cabling.
  4. Soldering the Nixies in place also connects the grid wiring and bus connections.

170 Volt PSU Board

High Voltage Circuit.png
High Voltage Layout.png
High Voltage Wiring.png
Wiring.png
SolderSide.png
Components_1.png
Components_2.png
Components_3.png

Just a re-work of the standard Nixie HV driver circuit which is already all over the web. All I've done is scrunch it up a bit and make it fit on the same size circuit board as the Nixie tubes.

Photos in sequence...

  1. Circuit diagram:
  2. Wiring layout : Viewed from the top, layout isn't critical.
  3. Physical wiring: The 3 vero pins forming JP2 are soldered into place at locations 7C, 7D and 7E. All other wires are left unsoldered until the remaining components are in place.
  4. Solder side: The 2 Du-Pont connectors forming JP1 are located on the solder side of the board. Long tails keep the wires in place until the board is ready to solder.
  5. Component positioning: Viewed from the top.
  6. Assembly #1: Pre-set potentiometer R5 and MOSFET transistor T2 are put aside for later, and all other components and connectors are soldered in place.
  7. Assembly #2: The oscillator circuit is completed by soldering the pre-set potentiometer to the 3 vero pins. Set it fully clockwise (minimum output voltage).

Caution - this next stage will create high voltages. Do not come into contact with any point of the circuit while power is applied.

  1. Assembly #3: Solder the MOSFET transistor. Using a suitable voltmeter, adjust the pre-set to provide an output of roughly 170 volts.

Notes:

  • Red wiring = +9 volt
  • Black wiring = Ground
  • Orange wiring = +170 volt

Adding the Nixie and 170 Volt PSU Boards

Assembly_2.png
Assembly_1.png

The Nixie board and the 170 volt PSU board are added together using the 10mm, M3, male to female stand-offs. There is no direct electrical connection between these two boards, so no soldering required at this stage.

  • The 13 trailing wires from the Nixie board thread through the corresponding holes on the 170 volt PSU board.
  • The capacitors on the 170 volt PSU board should be oriented towards the wiring as per the photos. This allows the wiring bus to double up as a finger guard keeping any exposed high voltage connections protected behind the wires.

HV Driver Board

Schematic.png
Components.png
Wiring.png
Wiring2.png
SolderSide.png
PNP.png
Completed.png

This board is a bit tight, and its important to match the input bus to the outputs.

Photos in sequence...

  1. Circuit diagram:
  2. Wiring diagram: All wires go on first. Layout isn't critical.
  3. Actual wiring:
  4. Solder side: All wires left unsoldered until components are in place. Long tails keep the wires in place until the board is ready to solder.
  5. Component positions:
  6. PNP transisitors: 3 x MPSA92 and 6 x 100K resistors.
  7. NPN transistors: 13 x MPSA42 and 13 x 33K resistors.

Adding the HV Driver Board

Assembly_4.png
Assembly_3.png
Assembly_6.png
Assembly_5.png

The HV driver board is added below the 170 volt PSU board using 10mm, M3, male to female standoffs.

  1. Top view. The 13 trailing wires from the Nixie board thread through the corresponding holes on the HV driver board.
  2. Bottom view: The 2 trailing wires from the HV PSU board thread through the corresponding holes on the HV driver board.
  3. Connection details: The 10 Nixie cathodes (blue) are soldered to the NPN transistor collectors. The 3 Nixie anodes (red) are soldered to the PNP transistor collectors. Also the HV output from the 170 volt PSU board ( red + black ) are soldered to the power rails.
  4. Module view: The green trailing cables form the low voltage bus to the micro-controller board.

Micro-Controller Board

MicroControllerCircuit.png
MicroControllerLayout3.png
MicroControllerWiring.png
MicroControllerWiring_1.png
MicroControllerWiring_2.png
MicroControllerWiring_3.png
MicroControllerWiring_4.png
  1. Circuit diagram: Connector JP1 provides an ICSP port for connection to a Pickit 3. Connector JP2 provides an SPI bus and the power input to the micro-controller. JP3 is the wire links to the HV Driver Board
  2. Component Positioning:
  3. Wiring diagram: Red = Vdd, Dark blue = Vss
  4. Actual wiring: Red = Vdd, Black = Vss
  5. Solder side: All wires left unsoldered until components are in place. Long tails keep the wires in place until the board is ready to solder
  6. Assembly #1: Connectors JP1 and JP2 are put aside for later, all other components and connectors are soldered in place.
  7. Assembly #2: Connectors JP1 and JP2 NOT soldered until later.

Adding the Micro-Controller Board

AdingMicroController_2.png
AdingMicroController_1.png
AdingMicroController_3.png
Connectors.png
Completed.png

The Micro-Controller board is added using using 8mm, M3, female standoffs with the 4mm M3 panhead screws.

  1. Top view: The straight Dupont connectors shown in the image were temporary, and were not soldered in place.
  2. Bottom view.
  3. Connection details: Details of the required solder joints.
  4. Right angle Dupont connectors. These are located on top of the solder connections, so are the last of the soldered components.
  5. Desk stand (Optional): This is just a garden peg I spotted on eBay. The green powder coating ensures insulation, and it slides into the gap between the Nixie tubes and the top standoffs, and doesn't require any additional mounting.
  6. Completed unit: With desk stand.

Programming the Micro-controller

Programming.png

The module connects to the Pickit 3 programmer through the ICSP port. The code for the module is in a Github Repository, and can be copied locally using git clone. Alternatively, the files can just be copied from the Github as they are self contained, and don't really need the whole project folder.

The two key files are...

  • HardwareTest_16F15344.c :This is a simple 3 digit counter which cycles from 0 to 999. The main point of the test is to ensure the bus has been connected OK. If any of the digits are incorrect, there is a wiring problem.
  • SPI_Display_16F15344.c : This is the display modules run code, providing 3 digit display with SPI Mode 1 interface.

The code has been compiled using MPLAB X IDE v6.0, with the project set for XC8 (v2.30). The project should also be set to power the mico-controller from the Pickit 3 when programming the device.

Interfaces

Interface.png
SPI_Protocol.png
  1. Connection details: ICSP port connects directly to a PicKit 3 for programming the Micro-Controller. The SPI port connects to any SPI master device for data (and power) transfer.
  2. SPI Comms:
  • Operates in SPI client mode 1.
  • Data transmitted as a single 16 bit word with MSB (Most Significant Bit) transmitted first.
  • The Client Select line (SS1) being taken low synchronises the start of each data transfer
  • The Client Select line (SS1) being taken high ends the data transfer and triggers the routine to sanity check the data + update the display.
  • The Client Select line (SS1) must remain low for the full duration of the 16 bit data transfer.
  1. I2C Comms: Looking through the micro controller data sheet, it might be possible to modify the software to provide an I2C interface. However, I have no requirement for this, so won't be doing it. But feel free to give it a go.