Putting strobes together

cenote

Suburbs of Philadelphia
Joined
May 16, 2010
Messages
246
Location
Pottstown, PA USA
uh oh...i must of missed the part list for the pin headers. Any chance someone could post the part numbers for mouser or digikey for these two? Thanks
 

budude

Way behind schedule - again...
Joined
May 13, 2010
Messages
127
Location
San Jose, CA
cenote said:
uh oh...i must of missed the part list for the pin headers. Any chance someone could post the part numbers for mouser or digikey for these two? Thanks

There are no pin headers on these. You could add them but the normal ones are fairly tall (they would be at least twice as tall as the transistors. Are you looking at them for the ICSP or the controller/power interface? You might add right-angle MTA style connectors like those used on the Tiger controllers?
 

riri7707

Full time elf
Joined
May 9, 2010
Messages
222
Location
Paris / France
Hi :)

Strobes are up and running...
I used the PIC and put pin4 to ground to trigger the LED as power on (2 wires only =5v).

For moment i built 10 modules with just the PIC and the R4/1 K resistor (other way, without the resistor, the PIC cannot be programmed and considered as Write protected?).
Then, from Pin 4 i go rirectly to a standard LED : 3.1v/20mA with a 120 Ohms resistor in serial to ground.
Matches, not yet burned and the chip is not hot... (another way to use less components, but no brightness; not relevant for the show : but be 500mW or 1W with the current led driver NUD4001). Actually, maybe i'm totally wrong and the PIC will quickly be a toast :-\

First results are ok, but :

the triggers seems to be synch between the modules in that way and it's quite impossible
to have random flashes between the modules. Can be normal as all modules where powered at same moment...

My first though is to have variations on the PIC code (different hex files) to generate randon flash between the modules. Means to program each module or group of modules with different HEX files.
This will permit to use on/off general power to activate the flashes by a single line from DC controller.

Checking long time with power on, actually it takes more than 4/5 minutes to begin to see something like randon flashes between the modules.

But on a show, flashes can be activated for a couple of seconds only and the randon must to be immediate.


Any ideas, tips and tricks?

Cheers... Henri
 

Tabor

Full time elf
Joined
May 16, 2010
Messages
249
Location
Perth, WA
Hello Henri

If you are using the firmware files that we released in the Wiki then they should be random between individual strobes.

The very first flash will happen at the same time but after that multiple strobes should light up in at different times.

There are two variables in the C file which can be manipulated in order to get a different strobe effect.

Code:
//the following two values are used to fine tune the effects
unsigned char longdelaytune = 4;	//tune the random blink rate
unsigned char ledontime = 30;	//LED on time in milliseconds
 

riri7707

Full time elf
Joined
May 9, 2010
Messages
222
Location
Paris / France
Thanks Tabor,
I downloaded this time from the WIKI (checksum 8DD1), as it's the same Hex file i had.
Tried again, but always synch even after few minutes...

Is there another file i missed somewhere?

Cheers... Henri
 

David_AVD

Grandpa Elf
Community project designer
Generous elf
Joined
Jun 12, 2010
Messages
4,682
Location
Victoria Point (Brisbane)
Henri, would you like to try an experiment? If so, grab two strobes and do the following:

Power them from a single power supply and note if the patterns seem to be synced or not.

Then power them from independent power supplies, switch them on at the same time and take note of any syncing.

I have a theory, but would like someone to try it independently from me.
 

Tabor

Full time elf
Joined
May 16, 2010
Messages
249
Location
Perth, WA
I am sure you have seen this video, but it is of six of the strobes all running the same software.

I did decrease the "longdelay" time in the C file, but all them had the same value.

This was running from a DCSSR, all on the same power supply.

Henri you can compile you're own hex file by using the C file and delay.h file in the zip from the wiki.

http://forums.auschristmaslighting.com/index.php/topic,268.msg1765.html#msg1765
 

budude

Way behind schedule - again...
Joined
May 13, 2010
Messages
127
Location
San Jose, CA
I'm seeing the same as Henri but figured that's just the way it was due to pseudo randomness. I put 4 of them off the same supply and they have identical flash patterns for quite a while. I decided to make the bulk of mine without the PIC and do all the work with Vixen.
 

rkhanso

New elf
Joined
Jun 25, 2010
Messages
28
budude said:
I decided to make the bulk of mine without the PIC and do all the work with Vixen.
I wish I had the free channels to do that too. Will have to think of some other creative way to get satisfactory results.

Can someone advise how to change the random number generator thingy, or what I would have to do to get a more random pattern? I don't mind changing the firmware to give more randomness, but don't know how to reverse-engineer a .hex (don't know programming at all, just how to follow directions)
 

riri7707

Full time elf
Joined
May 9, 2010
Messages
222
Location
Paris / France
Hi Tabor,
Tried using Mplab 8.46 without succes : error on project build:
"Project contains no Source Files".

"delay.h" is on Header.Files folder
"Ledstrobo10f200.c" is on other files
I don't have any files on Source files.

Do i missed something?
May be messing an ASM file?

Thanks for your feedback

Cheers.... Henri
 

rkhanso

New elf
Joined
Jun 25, 2010
Messages
28
I made 8 of the strobes and connected power to them - only 7 of the worked. :-\
Took some video for approx 1 minute to see how 'random' the LEDs flash. Here's the result:

8 LED Strobes (well, 7 are working), testing 'randomness'

It takes a good 40+ seconds to get them to flash randomly. That's not good enough for how I want to use them. They need to be random from the first flash.

I recorded with a digital camera that really doesn't do video very well. Those lines you see, when the LEDs do not light up - the LED are really lighting up at those times, too. Don't know why the camera has a hard time capturing it, or it happened on the video conversion and upload to Vimeo maybe.
 

riri7707

Full time elf
Joined
May 9, 2010
Messages
222
Location
Paris / France
Hi rkhanso,
this is exactly what i have too and where the PB is....

I had exactly the same PB, when i built my firsts Snowfall lights with the PICS.
They began synch and stay synch if they were powered at same time.

Only solution i had : modify the timmings and made different HEX.

The only real solution i think here is to have different Hex files too and program by groups to get the randon sequence.

Other solution will be to have different R/C on power up, to delay power on, but request more components :(

But i didn't arrived today to compile the files with mplab: i got and error (meesing source file). So asm file for me, but we have a C file instead. I'm not strong on programming, but i think we really need an ASM file to process and progress.

Other but not relevant :trigger line ( but 3 wires) and a lot of xxx channels consumption for controller...

Some help?

Cheers... Henri
 

rkhanso

New elf
Joined
Jun 25, 2010
Messages
28
Is somewhere in here where we change the 'seed' or whatever creates the randomness? Do any other things need to be changed (//tune the random blink rate or char random_seed_set = 0 or anything else)? Any suggestions on what to change numbers to to get a good variance in flashing? Or, if you just change by one digit, does it make it a completely different random sequence nothing like the number right next to the previous seed number?

Code:
#include <pic.h>
__CONFIG (WDTDIS & MCLRDIS & UNPROTECT );
//Watchdog off, MCLR off, Code Unprotected

#define DelayDivisor 4	//MHz
#define Jumpback asm("goto $ - 2")
unsigned char delayus_variable;
#define DelayUs(x) { \
			delayus_variable=(unsigned char)(x/DelayDivisor); \
			asm("nop"); } \
			asm("decfsz _delayus_variable,f"); \
			asm("goto $ - 2");
void DelayMs(unsigned char cnt);
void Delaylong(unsigned char cnt);
char rand(void);

unsigned char random_byte = 125;	//seed value
unsigned char counter;

//the following two values are used to fine tune the effects
unsigned char longdelaytune = 4;	//tune the random blink rate
unsigned char ledontime = 30;	//LED on time in milliseconds

void main()
{
char random_seed_set = 0;
TMR0 =  rand(); //Reset Timer
OPTION = 0B00001000; //Assign Prescaler Value to WDT for 1:1 timer
Since I'm not a programmer and don't understand this programming language, nor would I know what to do with this code once it's changed (how to turn it into .hex for the PIC). Can someone give some help? Christmas is fast approaching and there's no time to learn programming, too!!
 

Tabor

Full time elf
Joined
May 16, 2010
Messages
249
Location
Perth, WA
Could you try powering the strobe, for a couple of minutes then pulling the trigger line low?
 

rkhanso

New elf
Joined
Jun 25, 2010
Messages
28
Tabor said:
Could you try powering the strobe, for a couple of minutes then pulling the trigger line low?
I tried this and here are the results, starting with all 3 wires from the strobe board connected.
After about 60 seconds, you could start to see some variance in the strobe timing
After about 105 seconds, the differences got to be looking really random.
I pulled pin 4 -trigger off the ground, and the lights went out.
Then, when connecting ping 4 back to ground, as expected - the lights were flashing in random due to the fact that the PIC was still powered on and we're not starting over from the same random seed again (I think, that's why)

I repeated the same above, but instead of pulling the trigger wire, I pulled the ground (pin 2).
Pulled the trigger wire (pin 2, I think - on the strobe board) at 2 minutes and the strobes started flashing in unison again.
I let it run this way for 1 minute and the strobes were still mostly in unison
After 2 minutes of running this way, it was more random, but still 'kinda' similar
After 2.5 minutes with the trigger disconnected, it started getting really random again.

Maybe this isn't the way these lights were intended to be used, but I have to do it this way...I don't have enough channels left over to control 160 strobes. I only have 6 channels (planned on them being used in groups of 25 in parallel), and need them to be random from a complete power on to the strobe PCB. Getting a nice random flash pattern with only 15 seconds of power from a Vixen channel was my intended use for these strobes. Hopefully this will still be possible.

If you'd like another video, I can work on that, too.
 
Top