dekunukem / exixe Goto Github PK
View Code? Open in Web Editor NEWMiniature driver modules for IN-12 and IN-14 Nixie tubes
License: MIT License
Miniature driver modules for IN-12 and IN-14 Nixie tubes
License: MIT License
Hello!
I am unable to turn of the LED completely. When sending
my_tube.set_led(0, 0, 0);
I still get a weak white glow from the LED.
I get the same weak white glow from the LED when I first power a fresh board without connecting it to an arduino.
Is there anyway to fix this besides desoldering R14, R15 & R16.
Hi,are the green & blue addresses (spi_buf[14] and [15]) reversed in the Arduino 0_LED sketch? I find they are so I'm wondering if my boards have an issue. Tested 2x boards so far with the same results. exixe12. Thanks.
Hi,
The labels on the pcb goes up to R28 while the BOM only goes to R25.
This means that i don't know the values for the bottom of pcb.
Thank you
Hi @dekuNukem,
so, firstly a massive thanks for the project; this is exactly what I’m looking for !
I’m also a beginner in electronics. But am a very quick learner. Before starting this I have done research and practiced using various boards etc.
so I believe my soldering job is half decent.
I’ve had the boards printed (Exixe-14)
I’ve assembled 1 board so far using the BOM provided and attached a working (and tested) IN-14 Nixie Tube.
I’ve soldered pins to pads :
3.3v
GND
DIO
CLK
from here I’ve attached the four pins via jumper wires to a ST LINK V2 as suggested. With the suggested software.
I click the button to link to the STM32 via the software but an error appears showing : no st link found ( I’m writing this from memory so will double check the wording of this when next at the pc! )
I also checked the voltage across the GND and 3.3v pins when connected to the ST LINK V2 with a multimeter; this only showed around 0.1volts.
but once disconnected the ST LINK V2 showed 3,3volts again. Seems odd ?
Any helps would be great!!
I found that the library (used with the examples) wouldn't compile for me when targeting my Adafruit Huzzah32 ESP32-based board.
The specific issue appears to be that it can't find memset
. I'm still not very familiar with Arduino and its idiosyncrasies, but some Googlging reveals that this can be fixed by importing Arduino.h.
I've added the following to the top of exixe.cpp and everything works fine:
#include "Arduino.h"
This could be an issue with my setup but it is, as far as I can tell, the default configuration for the ESP32 boards and I'm not aware I've done anything strange.
Hi,
I'm having issues getting the crossfade function to work correctly on my ESP8266 based device.
It keeps on going into software watchdog reset because of the while loop.
Adding yield(); in the while loop hasn't helped either.
Do you have any experience on running this successfully on these devices?
This is my loop code with the yield as required by ESP8266:
void loop()
{
count = (count + 1) % 10; // keep count between 0 to 9
my_tube1.crossfade_init(count, 15, 127, 0);
my_tube2.crossfade_init(10-count, 15, 127, 0);
// my_tube3.crossfade_init(count, 15, 127, 0);
// my_tube4.crossfade_init(10-count, 15, 127, 0);
/*
again, crossfade_run() is non-blocking, that means
you can run other tasks in the loop.
just make sure to call it at least every 33ms
and check its return value to see if it's finished.
*/
while(1)
{
yield();
unsigned char result1 = my_tube1.crossfade_run();
unsigned char result2 = my_tube2.crossfade_run();
// unsigned char result3 = my_tube2.crossfade_run();
// unsigned char result4 = my_tube2.crossfade_run();
// exit when both animations are finished
if(result1 == EXIXE_ANIMATION_FINISHED && result2 == EXIXE_ANIMATION_FINISHED)
break;
}
my_tube1.set_led(127, 40, 0); // orange;
my_tube2.set_led(127, 0, 127); // purple;
my_tube3.set_led(127, 40, 0); // orange;
my_tube4.set_led(127, 0, 127); // purple;
delay(500);
}
I'm finding that initialising multiple exixe instances stops them all from working. For example,
exixe_1 = exixe(cs_pin_1);
exixe_2 = exixe(cs_pin_2);
Individually each exixe works, but together, they do not.
I believe this is because the SPI initialisation is performed in the exixe
method, and therefore called twice. This bit:
SPI.begin();
SPI.beginTransaction(SPISettings(8000000, MSBFIRST, SPI_MODE0));
Removing this code, and performing it explicitly, just once, beforehand seems to work for me.
I propose introducing a new method, perhaps begin
, or setup
, which wraps the SPI setup and means that developers can still benefit from the convenience of using just the exixe library, but can also configure this all themselves if they want to.
I'm enjoying working with my boards. I have some tubes where certain digits are slightly faded in areas, which I thought the overdrive function could help with.
I've tried enabling it (I'm using the Python library on a Raspberry Pi), but don't seem to see any difference. I don't notice any increase in brightness or any help with the faded areas, so I question if I'm using it correctly. I'm doing exixe.Exixe(cs_pin_m, spi, overdrive=True)
when initializing. I have 3 tubes next to each other and the one with overdrive turned on looks no different to the others.
So, am I using it incorrectly, or just expecting too much? TIA for any help!
I think when you zero out the buffer in exixe::set_led
and then spi_write()
out that buffer, the LED gets turned off. Maybe unrelated, the LED does not light at all when set_led()
is called in arduino's setup()
.
Are there any requirements for the type of STM32F being used?
Availability of these chips is still bad. From what I can see, it needs to support the SPI bus and be in 32-LQFP footprint?
I'm new to building and SMD components to pcb and have run into a problem trying to load the firmware to the STM-32 module. Attached is a photo of the error I'm running into, plus the front and back of the Exixe-12 board I soldered the components onto (maybe I messed that up).
Hoping someone can help me out or point me in the right direction.
I'm trying to drive 4 nixie tubes (with the goal of driving 6 for a clock)
I'm seeing inconsistent behavior. I see either 0, 1, 2 or 3 tubes changing digits. Even when 2 tubes are running, sometimes a digit might not flip.
Based on the documentation, I'm guessing this might be due to a lack of power but the 4 exixe are getting the 3.3V from my power supply directly (3.3V rated at 800mA max) I do have a GPS module connected to the same supply and it is able to run and get a fix.
My code currently stores the last digit and calls show_digit when the digit changes for that particular tube
if (digit != tube_digit) {
tube.clear();
tube.show_digit(digit, 127, 0);
tube_digit = digit;
}
tube.spi_init()
is only called once in setup()
If I use the first 2 exixe for seconds then I am able to see them count up based on GPS time. But the next 2 tubes which are hooked up to minutes aren't showing anything, even though I can see in the logs that I am calling show_digit.
I had followed the getting started guide and tested tubes and ran the LED test on the exixe board by themselves.
Any idea on how to debug the issue here? Thank you
Hello there,
i got myself some nixie tubes and the IN14 driver boards.
I tried hooking up the cables as shown in the getting started page and double checked the connections.
Then I tried running the LED-test code as prescribed. I could change the colour of the LED, but it also happened, that the LED changed randomly from bright to low white(ish) and to purple. So no consistent behaviour here.
When I tried the digit loop, the LED start blinking random, changing colour between purple and red and the digits of the Nixie tube show up, but in a random way and definetly not all 0.5s.
What could be possibly wrong and what else could I try to get this thing working?
I figured out several things what could be, but I´m not sure how to fix this.
What do you mean with RST must be high/low and how can I change this?
Should i attach a video with my current setup?
I´m not an electronic expert and I´m just starting to dive in the world of Arduino & Co, but I still want to figure out whats wrong and get this thing working. Unfortunately I dont own a logic analyzer yet. Would such a thing help figuring out the issue?
As a result i want 6 Nixie tubes showing a clock and changing to user defined values whenever i want it.
Its maybe still a long and bumpy road till there, but I think I can make it with some help.
Is there a preferred method of mounting the exixe board to something other than a breadboard?
Hi,
in the exixe12_bom.xlsx
C1 has a capacity of 1uF, but in the eagle file it has 100nF (0,1uF).
100nF is the correct value?!
Btw thanks for sharing.
I have two exixe 2017 boards that work just fine, but when i tested the exixe 2018 boards with the same set-up, they didn't work.
STM32 ST-LINK Utility (STSW-LINK004) doesn't seem to work on Windows 10.
I had the PCB's made, did an excellent job reflowing the PCB with solder paste, but couldn't connect with the programmer to the STM32. I used exactly the same software, programmer and settings.
After 2-3 hours of fiddling around I looked for another programmer, since the software looked quite old. STM32CubeProgrammer immediately connected to the STM32 and my board is working just fine.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.