Back again! Please note that my connection information is from handwritten notes; you'll want to double-check the DFRobot documentation before actually trying this out.
I daisy-chained all four Nixie modules together, then connected an external 12V supply to pins 7 and 9. I then connected:
Pin 1 (DIN) => Netduino pin D11
Pin 2 (ST) => D8
Pin 3 (SH) => D13
Pin 4 (OE) => D5
Pin 5 (GND) => ground
Pin 6 (+5) => +5
I haven't got as far as writing a proper class just yet; this is more of a proof-of-concept.
namespace NixieTest2{ public class Program { public enum Color { White, Yellow, Cyan, Green, Magenta, Red, Blue, Black }; public enum Colon { None, Upper, Lower, Both }; public static void Main() { OutputPort ChipSelect = new OutputPort(Pins.GPIO_PIN_D8, false); PWM BrightnessControl = new PWM(PWMChannels.PWM_PIN_D5, 1000, .5, true); BrightnessControl.DutyCycle = .5; BrightnessControl.Frequency = 1000; BrightnessControl.Start(); var spiConfig = new SPI.Configuration( SPI_mod: SPI.SPI_module.SPI1, ChipSelect_Port: Cpu.Pin.GPIO_NONE, ChipSelect_ActiveState: false, ChipSelect_SetupTime: 0, ChipSelect_HoldTime: 0, Clock_IdleState: true, Clock_Edge: true, Clock_RateKHz: 1000 ); SPI Spi = new SPI(spiConfig); ushort[] bufOne = new ushort[1]; ushort[] bufTwo = new ushort[1]; ushort[] bufThree = new ushort[1]; ushort[] bufFour = new ushort[1]; bufOne[0] = 0; bufTwo[0] = 0; bufThree[0] = 0; bufFour[0] = 0; ChipSelect.Write(false); Thread.Sleep(20); Spi.Write(bufOne); Spi.Write(bufTwo); Spi.Write(bufThree); Spi.Write(bufFour); ChipSelect.Write(true); Thread.Sleep(20); ChipSelect.Write(false); Thread.Sleep(20); //common color and colon stuff int ColorAndColon1 = ((int)Color.Red << 4) + ((int)Colon.Upper << 2); int ColorAndColon2 = ((int)Color.Cyan << 4) + ((int)Colon.Lower << 2); int ColorAndColon3 = ((int)Color.Yellow << 4) + ((int)Colon.Both << 2); int ColorAndColon4 = ((int)Color.Magenta << 4) + ((int)Colon.None << 2); //write '7654' bufOne[0] = (ushort)ColorAndColon1; bufOne[0] <<= 8; bufOne[0] |= 64; bufTwo[0] = (ushort)ColorAndColon2; bufTwo[0] <<= 8; bufTwo[0] |= 32; bufThree[0] = (ushort)ColorAndColon3; bufThree[0] <<= 8; bufThree[0] |= 16; bufFour[0] = (ushort)ColorAndColon4; bufFour[0] <<= 8; bufFour[0] |= 8; Spi.Write(bufOne); Spi.Write(bufTwo); Spi.Write(bufThree); Spi.Write(bufFour); ChipSelect.Write(true); Thread.Sleep(Timeout.Infinite); } } }