firmata4j icon indicating copy to clipboard operation
firmata4j copied to clipboard

`setDigitalPinValue` method creates a `DIGITAL_MESSAGE` message instead of a `SET_DIGITAL_PIN_VALUE` message

Open HawaiianSpork opened this issue 5 years ago • 2 comments

This method is called setDigitalPinValue but it actually builds a DIGITAL_MESSAGE message:

https://github.com/kurbatov/firmata4j/blob/master/src/main/java/org/firmata4j/firmata/FirmataMessageFactory.java#L226

If you are using StandardFirmata.ino this can result in the wrong pin being changed since SET_DIGITAL_PIN_VALUE changes the value of a single pin where DIGITAL_MESSAGE changes the value for all pins on a port.

DIGITAL_MESSAGE https://github.com/firmata/arduino/blob/master/FirmataConstants.h#L38

SET_DIGITAL_VALUE https://github.com/firmata/arduino/blob/master/FirmataConstants.h#L44

HawaiianSpork avatar Oct 19 '19 02:10 HawaiianSpork

Support of that message was added in v2.5 of the protocol. Currently firmata4j targets 2.3. We should add support of 2.4 features of the protocol before switching to that message to set pin's value.

kurbatov avatar Jan 05 '21 22:01 kurbatov

Previous attempt to fix it #59 was reverted in #63

kurbatov avatar May 23 '23 21:05 kurbatov