Smart effector not remembering sensitivity
-
I am absolutely not sure, because I was just briefly looking into the code.
There are two basic options. Either I am extremely unlucky and got a unit with defective EEPROM.
Or there is a bug in the code. Was just briefly looking, and it seems for me the checksum math does not fit in v2 (generation with check). V1 looks fine for me.nvData.checksum = NvData::magic ^ nvData.sensitivity ^ nvData.flags;
and
nvDataValid = ((nvData.sensitivity ^ nvData.checksum) == NvData::magic);
For me it should look like this:
nvDataValid = (nvData.sensitivity ^ nvData.flags ^ nvData.checksum) == NvData::magic; -
I agree with you, the code looks wrong. I'll see if I can reproduce that problem.
-
Yes I can reproduce it. I'm sorry about this. I guess nobody else is using custom sensitivity!
Have you tried moving the sensitivity command to the end of config.g and using G4 to insert a delay before it? The delay will have to be long enough for the LED to have stoppled flashing.
-
I am not an embedded developer. Do you have a small guide how to flash the firmware? I will make a push request in github.
-
Definition of M672 S105:8:247 in the config file is useless, because I can just change the sensitivity every third run.
I guess there is another issue with the error handling, because the checksum check is false, but the led blinks three times. -
I think I got it, the LED blinks probably one time because of the check, and two times because it resets ^_^
I misinterpreted this as three blinksif (!nvDataValid && (PINA & BITVAL(PortADuetInputBitNum)) == 0) { nvData.flags = 0; UpdateEEPROM(); FlashLed(2); }
-
What works is to put M672 in the bed file and finish with a reset 131:131.
-
@dgrat, thanks for your PR. I have accepted it, made some other minor changes, tested it, and published a new release at https://github.com/dc42/Duet3dSmartEffector/releases/tag/2.01.
Flashing the firmware requires an AVR programmer, such as AVRISP, TinyISP, or an Arduino running the ArduinoISP sketch. The pads on top of the Smart Effector have the standard 6-pin ISP layout. We use spring-loaded pins to make contact with them.
If you are based in the UK then I can reprogram your Smart Effector. Send me a chat message if you would like to arrange this.
-
@dc42 I am living in Germany, and I guess, I anyway had to learn it. I will test it out, when I get my pogo pin connector.
-
@dc42
Okay I flashed the firmware with avrdude. Seems to work now.