I have my PC working well enough to repeat the issue and solve it ! (as I think you have)..
The "problem/bug" is that the PI03 "Channel" Setup options to make a pin a PWM Output or SERVO Output ("Blink" or "Servo") take priority over the Pi02 "Port" Type/direction settings ("Input" /"Output").
, If you have any of the "Channel" pins set to Blink
, then the Pi02 Port Type/direction will always be set(forced) to "Output". (Note: It will report "Output" if you "get" the settings, to show that it is an Output)
- You may have to "set" and "get" the port / channel settings a few times to confirm what you have set if you have problems, and check you have not set Blink or servo in the Channel settings...
If you have the Arduino Serial Monitor running you should see the result of the "PortSetupReport()" function that is called as part of the commit EEprom sequence. This sends out something like this:
Code: Select all
*Debug Message:<20:50:41s> Node:28 (Wood St) Msg:Commiting EEPROM
---- Switching OFF ALL Servos---
Port :0 is SignalLED Output (FIXED) Pi02 PortType :0 Pi03_Setting_options:0
Port :1 is Input with pullup Pi02 PortType :1 Pi03_Setting_options:0
Port :2 is Input with pullup Pi02 PortType :1 Pi03_Setting_options:0
Port :3 is Input with pullup Pi02 PortType :65 Pi03_Setting_options:0
Port :4 is Input with pullup Pi02 PortType :65 Pi03_Setting_options:0
Port :5 is Input with pullup Pi02 PortType :1 Pi03_Setting_options:6
Port :6 is Input with pullup Pi02 PortType :65 Pi03_Setting_options:0
Port :7 is Input with pullup Pi02 PortType :1 Pi03_Setting_options:1
Port :8 is Input with pullup Pi02 PortType :1 Pi03_Setting_options:1
---------------------- LOCO Setup -----------------------
'Locomotive Address' is7
Ports 3,4 and 6 are set "inverting" (hence the "PortType : 65")
(Note you cannot change port 0 settings!!, and it still sends out the nodes "loco address" even if it is not a loco..)
The Commit to EEprom happens quite quickly after the setting, so this was not the issue.
I may try and expand this configuration report display and send it to the MQTT debug, but that may have to wait a while, unless you would like to try?