Beautiful, works like a dream! 

I’ll go on and play around with GPS and Motion sensor features.

If you don’t mind, I’ll ping you again for anything quick but I’ll try to 
understand the code myself first.

You did save me a couple of nights going through the code though :)

Thanks so much.

Max


> On 5 Oct 2022, at 06:05, SWISSNIXIE - Jonathan F. <jfrech...@gmail.com> wrote:
> 
> Hi
> 
> If I understand correctly, you need to alter the code in the section 
> "menuItemHandler"
> https://github.com/sgtJohnny/sunix/blob/master/sunix.ino 
> <https://github.com/sgtJohnny/sunix/blob/master/sunix.ino> 
> 
> The function calls on line 639 and 654 do set the values to the three tube 
> groups, if you do not have the seconds column, you would have to change this 
> this:
> formatOutput(menu_item, 255, currentVal, 0, 0);  and set the currentVal to 
> the second tube group resulting in formatOutput(menu_item, currentVal, 255,  
> 0, 0); 
> 
> On Tuesday, 4 October 2022 at 01:15:13 UTC+2 flata...@gmail.com 
> <http://gmail.com/> wrote:
> Hi Jonathan,
> 
> I have built this clock and works well. I have however decided to go for a 4 
> digits version instead of 6. I can manually set the time, no issues. But when 
> I go through the parameters menu, I can see the menu number but not the 
> parameter numbers of each menu as the code is displaying those using the 
> second digits which I don’t have.
> 
> I can code in Assembler but I am not very good with Arduino yet. Is there an 
> easy way to modify the code for 4 digits only?
> 
> Any help would be much appreciated.
> 
> https://www.swissnixie.com/sunixs/ <https://www.swissnixie.com/sunixs/>
> 
> Thank you,
> 
> Max
> 
> 
> 
> 
>> On 13 Aug 2022, at 22:16, SWISSNIXIE - Jonathan F. <jfre...@gmail.com 
>> <applewebdata://485FC2A8-5FFF-4547-8BC5-E8A01476C7FF>> wrote:
>> 
> 
>> Yes, the code is open source :)
>> 
>> You can download it at the bottom of the page
>> https://www.swissnixie.com/sunixs/ <https://www.swissnixie.com/sunixs/>
>> 
>> 
>> I programmed it in Arduino with the atmeag328, but it should be a good start 
>> to look at the function "setOutputs" in the code, it contains the actual 
>> shifting process.
>> Also it's easier to layout the outputs of the IC and cathode-pins as 
>> "numbered" with the output number unless you are very experienced with the 
>> code.  This allows bitwise operations for creating the variable containing 
>> the value.
>> For example, if your Cathode 0 is connected to output 1, and cathode 9 to 
>> pin 10, you can use a function to shit as a single bit according to the 
>> current digit number. If your digit is 8, you can do " 0x01<<8". If your 
>> cathodes are randomly connected (to make an easy layout) you will need to 
>> implement more code. 
>> 
>> On Saturday, 13 August 2022 at 22:35:13 UTC+2 flata...@gmail.com 
>> <http://gmail.com/> wrote:
>> Jonathan,
>> 
>> I just found this, it's excellent. 
>> 
>> http://swissnixie.com/projects/SUNIX-S/SN_SUNIX_S_R1.2_WTB_SCHEMATIC.png 
>> <http://swissnixie.com/projects/SUNIX-S/SN_SUNIX_S_R1.2_WTB_SCHEMATIC.png>
>> 
>> From this post:
>> https://groups.google.com/g/neonixie-l/c/S1oX30hLrmw 
>> <https://groups.google.com/g/neonixie-l/c/S1oX30hLrmw>
>> 
>> If the code is open source, I'll just use that otherwise I'll adapt mine to 
>> use hv5530 and hef4104. 
>> 
>> Awesome! 
>> 
>> 
>> -------- Original message --------
>> From: "SWISSNIXIE - Jonathan F." <jfre...@ <>gmail.com <http://gmail.com/>> 
>> Date: 13/08/2022 20:51 (GMT+00:00) 
>> To: neonixie-l <neoni...@ <>googlegroups.com <http://googlegroups.com/>> 
>> Subject: Re: [neonixie-l] Re: Nixie Clock - Direct Drive HV5530 
>> 
>> The time to shift out the bits is not critical, the clock rate is as fast as 
>> you implement it, there is only a minimum clock time, but no maximum one.
>> Brightness should be the same as putting the tube pin directly to ground, 
>> the internal resistance of the mosfet in the HV5530 is in the Ohms range, 
>> while your anode resistor will probably will be a few kiloohms, so no 
>> visible issue.
>> 
>> About voltage:
>> The HV5530 is specified for 10.8 to 13.2V, but alot of people seem to use it 
>> with 5V logic and it works. If you want do operate ith with 12V logic, you 
>> need a 12V source and a level shifter. HEF4104 
>> <https://www.digikey.com/en/products/detail/nexperia-usa-inc/HEF4104BT-653/1156435>
>>  could work
>> 
>> 
>> On Saturday, 13 August 2022 at 19:04:21 UTC+2 flata...@ <>gmail.com 
>> <http://gmail.com/> wrote:
>> Thanks.
>> 
>> In terms of nixie brightness, is there any advantage in using serial to 
>> parallel converter+shift register vs multiplexing using high voltage 
>> transistors on anodes and cathodes of the nixies? Other than saving 
>> component and uC pins, of course. 
>> 
>> -------- Original message --------
>> From: Bill Stanley <billsta...@ <>gmail.com <http://gmail.com/>> 
>> Date: 13/08/2022 17:32 (GMT+00:00) 
>> To: neonixie-l <neoni...@ <>googlegroups.com <http://googlegroups.com/>> 
>> Subject: [neonixie-l] Re: Nixie Clock - Direct Drive HV5530 
>> 
>> I use that part for my NIXIE, Panaplex and LED displays and I also write in 
>> assembly (8051, not PIC)
>> For my code, I send the serial data for NEXT time to display in the time 
>> after a 1 second update. On the 1 second "hack"
>> I update the display by doing the serial to parallel pulse.
>> 
>> Here is the code I use:
>> 
>> ;************************************************************************
>> ;*                                    *
>> ;*    Serial clock the data in the raw buffer to the H/W drivers.     *
>> ;*    Note: this routine does not strobe the data to the display.    *
>> ;*                                    *
>> ;*    On Entry: None.                            *
>> ;*    On Exit:  Display H/W drivers updated from ram.            *
>> ;*                                    *
>> ;************************************************************************
>> 
>> WRT_NIXIE_HW:    MOV    R0,#DISP_RAW_TH        ;point at start of raw 
>> display ram
>>                                  MOV    R1,#12d            ;12 bytes of data 
>> to send
>> RAW_BYTE_LP:     MOV    R2,#5            ;5 bits per byte
>>                                 MOVX    A,@R0            ;get a 5 bit value
>>                                 INC    R0            ;bump the pointer
>> 
>> RAW_BIT_LP:        RRC    A            ;bit 0 into carry
>>                                MOV    DISP_DAT,C        ;put the bit into 
>> the I/O port
>>                                CALL    HV_BIT_DELAY        ;delay
>>                                SETB    DISP_CLK        ;clock high
>>                                CALL    HV_BIT_DELAY        ;delay
>>                                CLR    DISP_CLK        ;clock low
>>                                DJNZ    R2,RAW_BIT_LP        ;loop 5 bits
>>                                DJNZ    R1,RAW_BYTE_LP        ;loop 12 bytes
>>                                RET                ;and return
>> 
>> 
>> ;************************************************************************
>> ;*                                    *
>> ;*    Update the NIXIE readouts with the data in the H/W buffers.    *
>> ;*                                    *
>> ;*    On Entry: None.                            *
>> ;*    On Exit:  NIXIE displays show updated values.            *
>> ;*                                    *
>> ;************************************************************************
>> 
>> 
>> UPDATE_DISP:    CALL    HV_BIT_DELAY        ;delay
>>                               SETB    DISP_STRB        ;strobe the data
>>                               CALL    HV_BIT_DELAY        ;delay
>>                               CLR    DISP_STRB        ;un-strobe NIXIE 
>> drivers
>>                               RET
>> 
>> 
>> 
>> On Saturday, August 13, 2022 at 8:40:39 AM UTC-7 flata...@ <>gmail.com 
>> <http://gmail.com/> wrote:
>> Thank you both.
>> 
>> Say that I want to drive high HVOUT12 on pin2 (that is binary b'00000010') 
>> of the HV5530... and reading your previous messages, do I simply...:
>> 
>> drive pin28 (CLOCK) low
>> drive pin31 (LE) low
>> 
>> drive pin28 (CLOCK) high
>> drive pin32 (DATA Input) low ; send 0 for bit 0 of b'00000010'
>> drive pin28 (CLOCK) low
>> drive pin28 (CLOCK) high
>> drive pin32 (DATA Input) high ; send 1 for bit 1 of b'00000010'
>> drive pin28 (CLOCK) low
>> drive pin28 (CLOCK) high
>> drive pin32 (DATA Input) low ; send 0 for bit 2 of b'00000010'
>> drive pin28 (CLOCK) low etc
>> etc...
>> drive pin31 (LE) high.
>> 
>> Of course, I'd need to do it do it within a certain time frame (nS, I 
>> suppose)
>> 
>> Then I guess I would need a level shifter as while the input voltage is 12V, 
>> the PIC is at 3.3V (LF series). Argh. 
>> 
>> I'm starting to think whether that is really a better approach than using an 
>> 80pin or 100pin PIC with HV transistors to drive the cathodes of the Nixies 
>> (pic18f46k22 would do for instance). It would increase component count and 
>> cost of PIC etc, but it's not a commercial project, I'm only making 3 clocks 
>> in total.
>> 
>> Indeed, I'm building a clock with Dalibor's RZ568M (beautiful!).
>> 
>> Il giorno sabato 13 agosto 2022 alle 15:46:58 UTC+1 gregebert ha scritto:
>> Be sure to use a level translator to drive the 5530-type devices at the 
>> proper signal voltages (12 VDC). Some people have driven them at 5V, which 
>> is out-of-spec and not guaranteed to work.  I use these drivers in some of 
>> my clocks and they work very well. 
>> 
>> Pardon my rant below, but I've been designing IC's for a living since the 
>> 1980's and too often I see others having problems with serial devices  :
>> 
>>   One thing that annoys me about the HV5530 (and similar) devices is that 
>> the datasheet specs are incomplete for the serial data signals. The data-in 
>> hold time (tH) is 10nsec, but there is no minimum propagation time in the 
>> spec (tDLH, tDHL). The only have a maximum (100ns). What this means is that 
>> per the datasheet, you cannot simply cascade multiple devices. It might work 
>> if you do, but if you want to guarantee that it will always work, place a 
>> rising-edge flip-flop between cascaded devices). In order to have reliable 
>> shifting, the minimum propagation-delay of the driving device must be 
>> greater than the hold-time of the next device. If there is no minimum 
>> prop-delay spec, assume it's zero (a very safe and reasonable assumption). 
>> 
>> My current clock project (6-tube RZ 568m) has multiple PC boards with ribbon 
>> cables interconnecting them. Not just for the three HV5530's that drive the 
>> tubes, but also many other devices in the same serial chain for reading 
>> switches and controlling lamps. After many weeks of testing with billions of 
>> bits, there are zero bit errors.....because I made sure setup and hold times 
>> are met.
>> 
>> 
>> On Saturday, August 13, 2022 at 6:32:31 AM UTC-7 SWISSNIXIE - Jonathan F. 
>> wrote:
>> Hi Max,
>> The HV5530 and other HV-Series IC's are "Serial to Paralell" converters 
>> which allow to be control 32-pins (or even more with multiple ic's) from 
>> single clock and data lines. They are basically normal serial to parallel 
>> converters with high voltage transistors attached. 
>> 
>> To operate these you will need a clock source (for easy way a gpio that goes 
>> high/low) and a data source, which means either a pin that is high or low at 
>> the time of clock. After you've sent the required amount of data (number of 
>> outputs on the IC) the first data will transfer to "DATA OUT" pin and into 
>> the next IC (if there is one).
>> 
>> For a 6 digit clock you need 2 pcs of HV553
>> 
>> I cannot provice ASM code for PIC, but here is a low level code of ATMega:
>> 
>> #define thePort PORTD 
>> #define DATA PD5
>> #define CLK PD7 
>> 
>> PORTC |= _BV(PC1);  //Set OE/LE Signal LOW
>> 
>>  for (int i = 0; i < 32; i++) {
>>     thePort &= ~_BV(DATA);  //Data LOW
>>     if ( bitRead(val_one, i) == 1) {
>>       thePort |= _BV(DATA);  //Data HIGH
>>     }
>>     thePort |= _BV(CLK);  //CLK HIGH
>>     thePort &= ~_BV(CLK); //CLK LOW
>>   }
>> PORTC &= ~_BV(PC1);  //Set OE/LE Signal HIGH
>> 
>> The general operation of the 5530 is as following.
>> 
>> 1.) Drive Data pin and Clock pin LOW
>> 2.) Before starting to send data, drive LE pin LOW
>> 3.) For each bit you need to do a clock signal and data pin, for this:
>> 3.1) Drive CLOCK High
>> 3.2) Drive DATA high or low, depending if you want to turn the digit on or 
>> off
>> 3.3) Drive CLOCK Low
>> 3.4) Drive DATA Low
>> 4.) This needs to be done for all Inputs of an ic, if you have two ic's 
>> chained you need to to it two times.
>> 5.) After all Data has been sent, drive LE pin HIGH, Outputs will now be set 
>> to the data you've just send
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> On Saturday, 13 August 2022 at 12:13:24 UTC+2 flata...@ <>gmail.com 
>> <http://gmail.com/> wrote:
>> Hello,
>> 
>> I'm starting to design my first 6 digit nixie clock and I'd like to use 
>> direct drive of the tubes (my power supply can take 6 nixies without 
>> multiplexing).
>> 
>> So far I have built my Nixie watch, coding in ASM, worked on extreme power 
>> saving etc.
>> 
>> I could multiplex the nixies as I did in this project 
>> https://fb.watch/eTb69SnxEP/ <https://fb.watch/eTb69SnxEP/> , but since I 
>> have a good power supply I wanted to build a clock with direct drive of the 
>> tubes.
>> 
>> I prefer to code in ASM (don't ask why :)  ), I could use a 100pin PIC18 to 
>> drive each digit individually through MMBTA92 & A42 transistors. However, if 
>> I want to use a PIC with a lower pin count (say 40pins), I may use a driver 
>> such as HV5530.
>> 
>> Would I still get same brightness as a genuine direct drive as when using 
>> A92&A42 transistors? I suppose the switching that happens using CLK/SDA on 
>> the HV5530 is not too different than a good multiplexing. I may be wrong.
>> 
>> And if I were do code ASM to use HV5530, does anyone have sample ASM code? I 
>> managed to write myself the code to read/write time from an RTC using 
>> CLK/SDA so I suppose it's very similar but I cannot figure it out from the 
>> datasheet of HV5530.
>> 
>> Any help is much appreciated.
>> 
>> Max
>> 
>> -- 
>> 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+...@ <>googlegroups.com <http://googlegroups.com/>.
>> To view this discussion on the web, visit 
>> https://groups.google.com/d/msgid/neonixie-l/c2e49484-d56e-4545-b635-942952d2c1f4n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/neonixie-l/c2e49484-d56e-4545-b635-942952d2c1f4n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>> 
>> -- 
>> 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+...@ <>googlegroups.com <http://googlegroups.com/>.
>> To view this discussion on the web, visit 
>> https://groups.google.com/d/msgid/neonixie-l/e7145848-36e9-48cc-a5c5-f5fec8fcbcdfn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/neonixie-l/e7145848-36e9-48cc-a5c5-f5fec8fcbcdfn%40googlegroups.com?utm_medium=email&utm_source=footer>.
>> 
>> -- 
>> 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+...@googlegroups.com 
>> <applewebdata://485FC2A8-5FFF-4547-8BC5-E8A01476C7FF>.
> 
>> To view this discussion on the web, visit 
>> https://groups.google.com/d/msgid/neonixie-l/33c9a621-0006-4f94-998f-5f2e29a7fb6cn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/neonixie-l/33c9a621-0006-4f94-998f-5f2e29a7fb6cn%40googlegroups.com?utm_medium=email&utm_source=footer>.
> 
> 
> -- 
> 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 
> <mailto:neonixie-l+unsubscr...@googlegroups.com>.
> To view this discussion on the web, visit 
> https://groups.google.com/d/msgid/neonixie-l/45236401-ba65-4c12-8381-878659095488n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/neonixie-l/45236401-ba65-4c12-8381-878659095488n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
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 view this discussion on the web, visit 
https://groups.google.com/d/msgid/neonixie-l/FBA147E6-CC79-4269-B902-588B470DE0B8%40gmail.com.

Reply via email to