PDA

View Full Version : HLS Dimming Curves



XmasInGalt
09-19-2012, 06:02 PM
I'm in the process of building RGB LED robo spot lights using servos. As discussed in other threads, I used dimming curves to keep the servo from going beyond it's limits on either end. After a number of tests, the dimming curves seem to solve the problem with one exception. If I manually stop the sequence while it's playing, the servos go immediately to 0% (beyond the range set by the dimming curves). It appears that HLS sends all channels to 0% and dimming curves are ignored. Is there any way to use the dimming curves when the sequence is manually stopped?

Thanks!

Materdaddy
09-19-2012, 06:29 PM
This leads me to ask a question. Vixen had a check-box setting for whether it would reset controllers after a sequence (or stop). This was useful in that you could leave the last cell with certain things on (tune to light, inflatable decoration pump, etc.) and after your sequences are done playing, they could be left on.

Is this possible in HLS? It seems from XmasInGalt's post that HLS sends a reset. If so, can this be a configurable option in a future release?

JHinkle
09-20-2012, 01:35 PM
Version 6J now allows you to pick the light status at Stop or Pause. See the Output Menu Selection.

Dimming Curve translation is now after the STOP/PAUSE light status stated above.

Joe

XmasInGalt
09-24-2012, 09:53 AM
Just got a chance to test the updated software. It works perfectly. Thanks Joe!!!

XmasInGalt
10-07-2012, 11:30 PM
I thought I had everyting set up for the servos and now I'm having a weird problem. I've ugraded a couple of times since the modification to dimming curves on update 'J'. I'm now on 'U' and it appears that the dimming curves are not working. I set up the low end dimming curve to not go below 10% but the servos just keep going until they try to go beyonnd their limit. The interesting thing is that if I stop execution of the sequence, the servos go to the low end of the dimming curve and not to absolute zero. Also, I noticed that with the current version, if you right click an effect and select 'modify this effect', the Level Intensity always shows 100 and the value for that effect. On previous versions, it showed the current level for that effect.

Any guidance would be appreciated.

Thanks

Dale.

joeytx
10-08-2012, 06:32 AM
What firmware or you using to drive the servos? I am using the Renard version, and I just when in to the as and set upper and lower limits to the code. Basically it reads: if x <= y then set x = y (low end) and if x=>z then set x=z. I can provide example code if it would help. I like firmware limits because I can use my tester, that I have built, to drive the servos for party's as a pseudo stage light.

XmasInGalt
10-08-2012, 10:20 AM
What firmware or you using to drive the servos? I am using the Renard version, and I just when in to the as and set upper and lower limits to the code. Basically it reads: if x <= y then set x = y (low end) and if x=>z then set x=z. I can provide example code if it would help. I like firmware limits because I can use my tester, that I have built, to drive the servos for party's as a pseudo stage light.

Joey, thanks for the response. I am using Chris Maloney's Renard firmware and firmware limits would be perfect. I'm not very familiar with firmware coding so providing example code would be perfect.

Thanks.

Dale.

JHinkle
10-08-2012, 01:58 PM
I thought I had everyting set up for the servos and now I'm having a weird problem. I've ugraded a couple of times since the modification to dimming curves on update 'J'. I'm now on 'U' and it appears that the dimming curves are not working. I set up the low end dimming curve to not go below 10% but the servos just keep going until they try to go beyonnd their limit. The interesting thing is that if I stop execution of the sequence, the servos go to the low end of the dimming curve and not to absolute zero. Also, I noticed that with the current version, if you right click an effect and select 'modify this effect', the Level Intensity always shows 100 and the value for that effect. On previous versions, it showed the current level for that effect.

Any guidance would be appreciated.

Thanks

Dale.

Thanks for identifying the "Modify Effect for "Level" effect showing as 100. I copied - but forgot to remove an initialization line. Fixed in next release.

The best way to check your output to see if dimming curves are working properly is to use the "Debug" feature from my output engine.

Go to "Output"->select output method and compile for show.

Upper right corner is a Debug checkmark.

When you check it ... it opens a debug file. When you un-check it ... it closes the file.

Make sure you close it prior to opening it in a text editor.

I write the output data to file DebugOutPutDataStream.txt.

Data keeps being appended -- so if you want to start fresh ... delete the file manually prior to opening it.

If you are using E131 ... the debug file also contains the E131 header info. Keep looking at the line of data until you find the following:


<<|OutPutData Follows|>>

Data to the left is E131 header --- to the right is illumination data.

If use this debug capability a lot to help resolve concerns.

Joe

XmasInGalt
10-08-2012, 02:47 PM
Thanks for identifying the "Modify Effect for "Level" effect showing as 100. I copied - but forgot to remove an initialization line. Fixed in next release.

The best way to check your output to see if dimming curves are working properly is to use the "Debug" feature from my output engine.

Go to "Output"->select output method and compile for show.

Upper right corner is a Debug checkmark.

When you check it ... it opens a debug file. When you un-check it ... it closes the file.

Make sure you close it prior to opening it in a text editor.

I write the output data to file DebugOutPutDataStream.txt.

Data keeps being appended -- so if you want to start fresh ... delete the file manually prior to opening it.

If you are using E131 ... the debug file also contains the E131 header info. Keep looking at the line of data until you find the following:


<<|OutPutData Follows|>>

Data to the left is E131 header --- to the right is illumination data.

If use this debug capability a lot to help resolve concerns.

Joe



Thanks for the quick response Joe. I will do it tonight when I get home from work. I'll provide feedback then.

Dale

XmasInGalt
10-08-2012, 04:50 PM
Joe,

I went home during lunch to set up the debug datastream output. I set up a 2 channel sequence with a dimming curve on channel 1 and no curve on channel 2. The dimming curve should limit the low end to a value of 25. The sequence starts with both channels at 50% (value 127). Both channels have the same effects during the entire sequence. I drop the value to 45 then by 5 every 2 seconds until they hit 0. After being at zero for 4 to 6 seconds, I increase both channels in a couple of steps back to 50% then I stop the sequence. As you can see in the datastream, channel 1 (with the dimming curve) drops just like channel 2 (no dimming curve). I'm attaching the datastream, sequence , & dimming curve files for your review. Please let me know if you need addional information and thanks for your help.

JHinkle
10-08-2012, 05:33 PM
Version 6X released that addresses the issue.

Real dumb-Shi..... mistake on my part.

You should be all set now.

Enjoy.

Joe

joeytx
10-08-2012, 09:09 PM
Dale,
Here is a snippet of the code:





;this is found after 'after_ESC_decoding:'
movf rx_char,w ; save 'our' data
movwf servo0
goto chk_servo0a ; this was taken out and replaced 'goto decode_continue'
movf rx_char,w
movwf servo1
goto chk_servo1a ; this was taken out and replaced 'goto decode_continue'





;***********************************************
;this is all new
chk_servo0a:
movlw .170 ;upper limit for servo0
subwf servo0, W ;subtract w from servoO
btfss STATUS, Z
btfss STATUS, C
goto chk_servo0b
movlw .170 ;we were too high replace with this
movwf servo0 ; save


chk_servo0b:

movlw .80 ;lower limit for servo0
subwf servo0, W
btfss STATUS, C
goto $+2
goto decode_continue
movlw .80
movwf servo0
goto decode_continue


chk_servo1a:
movlw .220 ;upper limit for servo1
subwf servo1, W
btfss STATUS, Z
btfss STATUS, C
goto chk_servo1b
movlw .220
movwf servo1


chk_servo1b:

movlw .35 ;lower limit for servo1
subwf servo1, W
btfss STATUS, C
goto $+2
goto decode_continue
movlw .35
movwf servo1
goto decode_continue



Joey

XmasInGalt
10-08-2012, 10:47 PM
Version 6X released that addresses the issue.

Real dumb-Shi..... mistake on my part.

You should be all set now.

Enjoy.

Joe

Works perfectly! Thanks Joe.

Dale

XmasInGalt
10-08-2012, 11:21 PM
Joey,

Thanks for the code. It's a great opportunity for me to learn and will provide me a nice insurance policy to protect my servos if I mess up on the dimming curves. I'll play with both options and decide if I'll use one or the other or both. Thank again for your help. I really appreciate it.