Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Paneldue as Pendant behavior - opposite mirrored areas activate

    Scheduled Pinned Locked Moved
    PanelDue
    5
    19
    1.1k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Phaedruxundefined
      Phaedrux Moderator
      last edited by

      Normal hardware and normal firmware are working correctly. Beyond that I wouldn't even know where to begin looking. The Diabase github would be my next step if I were you.

      Z-Bot CoreXY Build | Thingiverse Profile

      1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @sinned6915
        last edited by

        @sinned6915 did you re-run touch calibration after switching to pendant mode?

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        sinned6915undefined 1 Reply Last reply Reply Quote 0
        • sinned6915undefined
          sinned6915 @dc42
          last edited by sinned6915

          @dc42 yes, i believe I have. I will redo and double check and report back.

          EDIT: After upload of the FW, the PanelDue is calibration mode to touch the 4 spots.
          After calibration it is in Pendant mode, and after switching to Panel mode, rerunning the calibration does not seem to make any difference.

          Once I have gotten into a jog selection, say X at 1.0mm, the encoder works beautifully.

          I have tried this on both a PanelDue 7.0 with V3 controller AND on a PanelDue 7i, both behave the same.

          Is there anything in the config.g settings that might throw this off? I looked at the H5 firmware files, but did not see anything obvious.

          I agree that the next step would be to create an issue ticket on Diabase github.

          I have tried delving into the source code, but I am having a hard time telling what is OE code and what is user contributed code. My conclusions are that looking at the code are above my skills at this time.

          dc42undefined 1 Reply Last reply Reply Quote 0
          • dc42undefined
            dc42 administrators @sinned6915
            last edited by

            @sinned6915 in the original PanelDue firmware code, there is a parameter of type DisplayOrientation to the constructor that determines the polarity of the touch response. There is also a function AdjustOrientation that can change it. AFAIR the touch calibration procedure calls AdjustOrientation.

            Duet WiFi hardware designer and firmware engineer
            Please do not ask me for Duet support via PM or email, use the forum
            http://www.escher3d.com, https://miscsolutions.wordpress.com

            sinned6915undefined 1 Reply Last reply Reply Quote 0
            • sinned6915undefined
              sinned6915 @dc42
              last edited by

              @dc42 any suggestions on what to look for?

              their firmware is supposed to work for 5i and 7i.
              could something be 'wrapping' to behave like this?

              dc42undefined 1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators @sinned6915
                last edited by

                @sinned6915 I don't know why you are having this problem and Diabase isn't. However, I think a solution would be to make this function call when switching between portrait and landscape:

                touch.adjustOrientation(ReverseX | ReverseY);

                Duet WiFi hardware designer and firmware engineer
                Please do not ask me for Duet support via PM or email, use the forum
                http://www.escher3d.com, https://miscsolutions.wordpress.com

                sinned6915undefined 1 Reply Last reply Reply Quote 0
                • sinned6915undefined
                  sinned6915 @dc42
                  last edited by

                  @dc42 where should I be looking for this function call?

                  I am looking at lines 815 - 837 of PanelDue.cpp -

                  
                  void LandscapeDisplay(const bool withTouch)
                  {
                  	lcd.fillScr(black);
                  	lcd.setOrientation(nvData.lcdOrientation, IS_ER, true);
                  	if (withTouch)
                  	{
                  		touch.init(DisplayX, DisplayY, nvData.touchOrientation);
                  		touch.calibrate(nvData.xmin, nvData.xmax, nvData.ymin, nvData.ymax, touchCalibMargin);
                  	}
                  }
                  
                  void PortraitDisplay(const bool withTouch)
                  {
                  	DisplayOrientation portrait = static_cast<DisplayOrientation>(nvData.lcdOrientation ^ (SwapXY | ReverseX));
                  	lcd.fillScr(black);
                  	lcd.setOrientation(portrait, IS_ER, true);
                  	if (withTouch)
                  	{
                  		DisplayOrientation portraitTouch = static_cast<DisplayOrientation>(nvData.touchOrientation ^ (SwapXY | ReverseX));
                  		touch.init(DisplayXP, DisplayYP, portraitTouch);
                  		touch.calibrate(nvData.ymin, nvData.ymax, nvData.xmin, nvData.xmax, touchCalibMargin);
                  	}
                  }
                  

                  the references to (SwapXY | ReverseX) are throwing me off.

                  sinneD

                  dc42undefined 1 Reply Last reply Reply Quote 0
                  • dc42undefined
                    dc42 administrators @sinned6915
                    last edited by

                    @sinned6915 said in Paneldue as Pendant behavior - opposite mirrored areas activate:

                    DisplayOrientation portraitTouch = static_cast<DisplayOrientation>(nvData.touchOrientation ^ (SwapXY | ReverseX));

                    Since X and Y need to be reversed compared to what happens now, I suggest you change ReverseX in that line to ReverseY.

                    Duet WiFi hardware designer and firmware engineer
                    Please do not ask me for Duet support via PM or email, use the forum
                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                    sinned6915undefined 1 Reply Last reply Reply Quote 0
                    • sinned6915undefined
                      sinned6915 @dc42
                      last edited by

                      @dc42 that seems to have done it!
                      at least it compiled and now runs.
                      i need to reassemble it all and make all the connections to fully test.
                      i will report back.

                      solex4everundefined 1 Reply Last reply Reply Quote 0
                      • solex4everundefined
                        solex4ever @sinned6915
                        last edited by

                        @sinned6915
                        Hello, I have the same issue on PanelDue7.0/V3 controller.
                        I can't recompile the firmware with the modified PanelDue.cpp file because I don't have the skills. Would it be possible to share the one you use? Thanks in advance

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Unless otherwise noted, all forum content is licensed under CC-BY-SA