MaxM Fade Speed Behaves Differently Than BlinkM
I finally got my hands on a MaxM (Christmas present). I sure like the light output and the external power connector. One thing I'm noticing is that the fade speed seems to work differently than on the BlinkM. I put the following script on both the MaxM and the BlinkM:
int script_ticks = 240; // 8 seconds
byte fade_speed = 1;
blinkm_script_line script_lines[] = {
{ 1, {'f', fade_speed}},
{ script_ticks, {'c', 0xff, 0x00, 0x00}},
{ script_ticks, {'c', 0x00, 0xff, 0x00}},
{ script_ticks, {'c', 0x00, 0x00, 0xff}},
};
On the BlinkM, it slowly fades from one color to the next, over 8 seconds (which I want). On the MaxM, it stays on one color for 7 seconds and then fades to the next color in 1 second (which I don't want). I've tried the time adjust feature, and that doesn't seem to chage the behavior. Is there any way to make the MaxM fade over the entire script tick value rather than remaining static on the current color and then doing a 1-second fade to the next?
Thanks,
zombieCat
int script_ticks = 240; // 8 seconds
byte fade_speed = 1;
blinkm_script_line script_lines[] = {
{ 1, {'f', fade_speed}},
{ script_ticks, {'c', 0xff, 0x00, 0x00}},
{ script_ticks, {'c', 0x00, 0xff, 0x00}},
{ script_ticks, {'c', 0x00, 0x00, 0xff}},
};
On the BlinkM, it slowly fades from one color to the next, over 8 seconds (which I want). On the MaxM, it stays on one color for 7 seconds and then fades to the next color in 1 second (which I don't want). I've tried the time adjust feature, and that doesn't seem to chage the behavior. Is there any way to make the MaxM fade over the entire script tick value rather than remaining static on the current color and then doing a 1-second fade to the next?
Thanks,
zombieCat
1
person has this question
I have this question, too!
Tell me when someone answers.
The more people who ask this question, the more it gets noticed.
The more people who ask this question, the more it gets noticed.
Create a customer community for your own organization
Plans starting at $19/month
-
Inappropriate?Hi zombieCat,
I just tried this out on a MaxM I have here using the BlinkMScriptTool and I get the expected result: slow 8-second fading between colors. Here's the script I used:
{
{1, {'f',1,0,0}},
{240, {'c',0xff,0x00,0x00}},
{240, {'c',0x00,0xff,0x00}},
{240, {'c',0x00,0x00,0xff}},
}
What is the full code you are using to program light scripts? Normally all light script commands must be four bytes long (ever for commands of shorter length). I see your 'f'ade command only has two bytes in the array.
Are you judging the LED turn-on by pointing the MaxM at a surface instead of looking directly at it? One of the things I've discovered (after seemingly burning my retinas out a few times) is that it can be deceptive when the MaxM Blaster's LEDs are changing brightness because they are so bright. By pointing it at a sheet of paper or wall that's about a foot away, you get a better feeling for how it's working.
Finally, you might've gotten a badly-programmed or defective MaxM. If you have the capability to re-flash your MaxM, you can get the firmware hex file and try that. If you don't have that ability or just think there's something physically wrong, we can try a swap. Email me at blinkm @ thingm.com and we can arrange that. -
Inappropriate?Tod,
Thanks for the reply. I originally had the 4-byte fade script line, but the datasheet sample for Set Fade Speed only shows two, so I changed it. I switched back to 4 bytes (actually, I copied your lines above), and I get the same 7-second static color and a 1-second fade. Washing it over white paper verifies that. I don't have reflash capability at this point. Here's the entire script:
#include "BlinkM_funcs.h"
void setup()
{
byte blinkm_addr = 0x09;
byte script_id = 0;
byte script_mode = 1;
byte script_len = 4;
byte script_reps = 0;
byte fade_speed = 1;
byte time_adjust = 0;
blinkm_script_line script_lines[] = {
{1, {'f',1,0,0}},
{240, {'c',0xff,0x00,0x00}},
{240, {'c',0x00,0xff,0x00}},
{240, {'c',0x00,0x00,0xff}},
};
BlinkM_beginWithPower();
BlinkM_setAddress( blinkm_addr );
BlinkM_stopScript( blinkm_addr );
BlinkM_setStartupParams(blinkm_addr, script_mode, script_id, script_reps, fade_speed, time_adjust);
BlinkM_writeScript( blinkm_addr, script_id, script_len ,script_reps, script_lines );
BlinkM_playScript( blinkm_addr, script_id, script_reps, 0 );
}
void loop(){}
Thanks again,
zombieCat -
Inappropriate?I just tried out that Arduino sketch. (had to add the '#include "Wire.h"' at the top, but otherwise it compiled fine) And it the resulting writing to the MaxM creates a script that works as we'd expect.
I think your MaxM is, as we officially say, "weird". Email me at blinkm @ thingm.com and we can arrange a swap for you. I'm curious to get my hands on it and try to figure out why it's acting the way it is.
btw, for others that may be reading this: for this particular application, you can leave out the "BlinkM_setAddress()", "BlinkM_stopScript()", and "BlinkM_setStartupParams()" if you don't need to change those values from the factory default. -
Inappropriate?Thanks Tod, I'll send you an email. BTW, my script has the #include "Wire.h" line (just didn't get it in the copy/paste).
z
Loading Profile...



EMPLOYEE