Coder Social home page Coder Social logo

sbambach / exixe Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dekunukem/exixe

0.0 2.0 0.0 94.64 MB

Low-cost miniature Nixie tube driver modules for IN-12 and IN-14

License: MIT License

Arduino 0.01% C 92.52% Makefile 1.71% HTML 2.76% Assembly 0.30% C++ 0.66% Shell 0.01% CSS 2.03%

exixe's Introduction

exixe: Low-cost miniature Nixie tube driver modules

Alt text

Alt text

Alt text

exixe is a low-cost miniature driver module for IN-12 and IN-14 Nixie tubes.

Instead of using obscure out-of-production driver chips, it uses a STM32 to handle display and dimming of all digits with hardware PWM. The module is controlled via standard SPI protocol, and has onboard RGB LED backlight.

exixe is cheap, small and modular for easy integration. It is compatible with Arduino, Raspberry Pi, ESP8266, and virtually all embedded dev boards today.

Since each tube has its own driver, there is no need for multiplexing. Thus reducing the power consumption, simplifying the circuit design, increases perceived brightness, and prolongs the tube life.

Video

Here's a short video of exixe14 modules in action on the high precision clock shown in the above picture:

https://www.youtube.com/watch?v=r3d2alzgjKc

Features

Compared to the traditional approach, exixe modules offers significant advantages:

Small and modular

  • 2x4 cm (0.79x1.57 inches)
  • Breadboard friendly
  • Easy integration

Low-cost

  • $3 in components
  • No need for expensive obscure vintage driver chips

SPI interface

  • High speed, up to 24MHz SCLK
  • Available on virtually all embedded systems including Arduino and Raspberry Pi
  • Simple 16-byte command packet

Advanced control

  • Powered by ARM Cortex-M0 microcontroller
  • Hardware PWM on all cathodes and LEDs for smooth dimming and animations

Tube overdrive

  • Optionally allows twice the cathode current
  • For poisoned cathodes in second-hand tubes

RGB backlight

  • Because RGB

No multiplexing

  • Brighter display
  • Longer tube life
  • Simpler design
  • Less power consumption

Technical details

At the heart of the module is a STM32F042K6T6 microcontroller, which is connected to the cathodes of the Nixie tube through high-voltage transistors to turn them on or off. Thanks to the abundance of timers, every single cathode gets their own hardware PWM, which is much more consistent and smooth than software toggling.

The PWM frequency is 200Hz by default, it works well and can be changed by adjusting timer predivider values.

The microcontroller acts as a SPI slave and reads 16-byte commands from the master devices. Details of which can be found on the next section.

In normal operation each cathode has a 68K current resistor, allowing 2.6mA at 180V. However, if you're using IN-14 tubes chances are they are second-hand, and most I see doesn't light up all the way on digit 2 and 3. They are slightly poisoned and needs a bit more current to light up properly. Therefore exixe-14 features an overdrive command that allows twice that current to pass through.

Please note that you still need a high-voltage power supply around 180V for Nixie tubes to start glowing. You can design one yourself for your project, or use a pre-made module that takes 5V and outputs 180V. Just search "5V nixie power" on ebay, here's one example.

SPI command protocol

SPI configurations

  • MSB first
  • 8 bits per transfer
  • Clock is LOW when inactive (CPOL = 0)
  • MOSI data valid on clock rising edge (CPHA = 0)
  • Enable is active LOW
  • Max clock rate 24MHz (according to datasheet, I only tested up to 8MHz)

SPI data format

exixe expects a fixed 16-byte command, which should be sent within one CS activation (CS down, send 16 bytes, CS up):

Alt text

  • Byte 0 is sent first, byte 15 sent last.

  • Set OD to 0 for regular current(2.6mA), 1 to enable tube overdrive (5.3mA)

  • Set EN to 1 for the following value to take effect, 0 for no change.

  • Brightness values are 7-bit integer from 0 to 127, 0 being off and 127 being brightest.

  • SPI commands are the same for exixe-12 and exixe-14, however OD and dots are not available on exixe-12, changing them will have no effect.

Notes

  • Only one single digit should be on at any given time, apart from during transition animations.
  • Dots can be turned on alongside digits.

Sample timing capture

Setting digit 4 to fully on while other digits are off, no overdrive, orange LED color:

Alt text

Detailed timing for the first byte:

Alt text

Board pinout

Alt text

Alt text

  • Officially, exixe modules are NOT 5V compatible.
  • However it shouldn't cause damage if you put a 2.2K resistor in series of the 5V signal.
  • Still, the module must be powered at 3.3V.
  • When assembling insert the Nixie tube so its anode lead is in the anode hole, and TEST THE TUBE BEFORE SOLDERING it in place.
  • Pinout and dimension are the same for exixe-12 and exixe-14.

Buying some

I can custom make some exixe modules for you in small quantities. However, soldering them together and testing them takes a long time, so it's going to be more expensive than just the cost of materials.

As for a larger scale, I don't have plans of putting it in production right now, however I might consider a small run if there is enough interest.

Also, I do have some extra empty PCBs in panels of 8, so if you want I can sell one to you. You still need to source the rest of the components and solder it together though.

Alt text

Email me at dekunukem gmail com for inquires.

Making one

Full BOM here: exixe12, exixe14

Making some exixe modules yourself is fairly straightforward, just order the PCBs and parts and solder them together. Since the component count is not small and they are densely populated, I suggest order the PCB in panels of 6 or 8 and get a matching stencil to apply the paste. Use of reflow oven or skillet reflow is also recommended, since soldering each and every component by hand is basically torture.

exixe's People

Contributors

dekunukem avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.