Hey Mitch

I did a smooth fading on a AVR, and the code is up there on GitHub already:

https://github.com/isparkes/ArdunixNix6

I do it a different way than I think you will want to, because I use an old 
fashioned K155,and use 6 I/O pins to control the anodes. I have an inner 
loop of 1000 iterations (to display each digit), and an outer loop of 6 
iterations (one for each digit). I manage dimming by defining the off time 
for each digit (earlier off time = more dimming), and the fading by the 
switch point between the old and new digit. Each display impression, the 
switch point is progressed until the fade is done. Of course the code has 
to be quick enough so that all of this is done without letting flicker 
creep in. On my 1 x 6 multiplexed clock, this is a challenge, but with 
careful software design it is perfectly possible.

What exactly was the problem with the fading? Not smooth? Too hard to 
program? I guess is that it was not really smooth, because the process of 
clocking in the data was not quick enough, and that to resolve this, you'll 
have to be really careful about writing the clock and data lines, probably 
using bit level operations directly on the ports. Possibly clocking the 
HV5530s in parallel could help.

PV Electronics does smooth fading, but using the 20 bit HV5812, so it is 
possible if you are multiplexing 3 x 2.

If you post the code up, I'm sure someone will be able to add the "special 
sauce" to make s smooth fade. If you have some boards made, I'd like to get 
one and have a play around with it.

Regards

Ian

My own workings to try and understand the issue:

In my design I'm transferring 60 bits per impression. cathodes: 6 digits * 
4 bits * 2 values (before and after fade). Anodes: 1 bit * 6 digits * 2 
(anode on, anode off). I don't have to toggle a clock line. If I needed to, 
I would write the registers directly, but right now I don't need to. 
Standard Arduino ditigalWrite() is fast enough.

You appear to be using 3 HV5530s, I suppose two managing 3 digits each with 
the odd 2 bits for the colons, and the last one for the 7th digit? I 
suppose you are running the RGB back lighting off Atmel's PWM outputs?

An impression for you is 74 raw bits, but using bit banging on the clock 
line to clock the data in, so that's tripling that number. However, you 
only need to toggle the data line 20 times (2 for each digit, 2 for each 
colon point), which means about 168 bits toggled. If you don't optimize the 
handling of the data line, you'll end up writing 224 bits per impression.

That's nearly 3 times the amount of data transferred per impression, and 
all because of the clock line. I think this is where you need to optimize.


On Wednesday, 19 August 2015 21:15:54 UTC+2, Mitch wrote:
>
> I tried doing something similar, and that's how I came up with the 
> vibration effect, which is really just a failed attempt at cross fading. 
> I'm not sure whether the limitation is with the hardware or software, 
> probably both. Writing to registers rather than using digitalWrite() may 
> speed it up enough. That can be someone else's project at this point, I 
> don't think I'll spend more time on it for now.
>
> The clock on the Metronome in Union Square, uses 15 digits. Time, time to 
> midnight, and 1/100 seconds in between. I think 1/10 makes more sense 
> because at least you can see the digits. I like your idea better, but a 
> combination would make it very interesting.
> Here's the info:
> https://en.wikipedia.org/wiki/Metronome_(public_artwork)
>
>
>
> On Wednesday, August 19, 2015 at 11:55:34 AM UTC-4, gregebert wrote:
>>
>> > I don't see a way to dim just one digit. With multiplexing, as each 
>>> digit is selected the PWM rate could be set >differently, but I don't see 
>>> how to do it with direct drive.
>>>
>>> Dimming individual digits is possible with hardware control, but 
>> probably not with software. The idea is to resend the serial data to the 
>> HV5530's twice every few milliseconds or so: Once to turn off the digit(s) 
>> to be dimmed, then again to turn all digits on. By adjusting the on and off 
>> times, you are doing PWM. I have 2 cascaded HV5530's (64 bits), and I clock 
>> them at 1.5Mhz, so it's possible to do PWM up to a few kHz.
>>
>>  
>>
>>> A 14 digit IN-18 clock sounds interesting. What are you doing with the 
>>> extra digits?
>>>
>>
>> I went overboard, so it displays hours, minutes, seconds, date, month, 
>> year = 14 digits. My wife saw the nixie clock in the movie "Tomorrowland" 
>> and ordered me to build one for her (yeah, like I'm going to say no ???). I 
>> saw no purpose for 12 digits, so I super-sized it to 14 digits. To 
>> level-out the tube usage, I swap date and time locations hourly, then run a 
>> depoisoning routine at 4AM for 1 hour.
>>
>> The clock will be in our vacation home, so the tubes will be off most of 
>> the time. It will be an art-deco theme, in a wooden case complete with 2 
>> large toggle switches and 1950's-era incandescent panel lamps. I expect it 
>> will be 30 inches wide x 5 inches deep x 5 inches tall. I'm leery about the 
>> reliability of non-Burroughs tubes, and we already have 3 nixie clocks 
>> running 24/7 (why not, they are Burroughs tubes....) in our permanent home. 
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"neonixie-l" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neonixie-l+unsubscr...@googlegroups.com.
To post to this group, send an email to neonixie-l@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/neonixie-l/3cfae22b-8d5a-4a75-af59-f359d0e2de96%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to