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

    Paneldue as Pendant behavior - opposite mirrored areas activate

    Scheduled Pinned Locked Moved
    PanelDue
    5
    19
    1.0k
    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.
    • sinned6915undefined
      sinned6915
      last edited by sinned6915

      I am trying to use the Diabase H-Pendant Paneldue firmware.
      https://github.com/diabase/H-Series-Pendant-Firmware

      The wierd thing is that in pendant mode, the opposite side of the screen, and mirrored position seems be what is activated for me. Here is what I mean by it-
      b9511095-d156-44c4-87cf-30f477bd6c3c-image.png

      The basis of my comparison is @jay_s_uk s_uk implementation of the SAME firmware file. Here are comparison vid's of his unit and mine-

      My Paneldue- https://photos.app.goo.gl/hecw69KgW1VADjqNA
      jay_s_uk paneldue: https://photos.app.goo.gl/eqfxMFNJW8iuJnjJA

      We are both using an encoder- his a 60mm / 100ppr CNC style one, me a 20ppr LCD menue type one.

      I can not imagine the encoder signal throwing off the Paneldue display, can it?

      What else might cause my touch screen to be flipped AND mirrored?

      sinned6915undefined dc42undefined 2 Replies Last reply Reply Quote 1
      • sinned6915undefined
        sinned6915 @sinned6915
        last edited by

        @sinned6915 I changed the encoder to match and have tried switching/flip-flopping the A&B inuts.
        I still get the same behavior.
        Anyone have any thoughts?

        1 Reply Last reply Reply Quote 0
        • Phaedruxundefined
          Phaedrux Moderator
          last edited by

          Does it work correctly in normal landscape mode with regular firmware?

          Z-Bot CoreXY Build | Thingiverse Profile

          sinned6915undefined 2 Replies Last reply Reply Quote 0
          • sinned6915undefined
            sinned6915 @Phaedrux
            last edited by

            @phaedrux
            YES!

            At the end of my video, I switch it by the 'Panel' button and go into regular landscape mode and everything works like it should.

            That is what is so confusing.

            oliofundefined 1 Reply Last reply Reply Quote 0
            • oliofundefined
              oliof @sinned6915
              last edited by

              @sinned6915 if noone from diabase reads here, you will likely need to file an issue in their github https://github.com/diabase/H-Series-Pendant-Firmware

              <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

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

                @oliof yes, that is probly best.
                I wanted to try and make sure it was not operator error first.
                thanks again

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

                  The reason I am trying to make use of this is that I am trying to avoid making the PanelDue pass-through version of the pendant.

                  oliofundefined 1 Reply Last reply Reply Quote 0
                  • oliofundefined
                    oliof @sinned6915
                    last edited by

                    @sinned6915 I'd want to use it as well if I were in need of a pendant. In fact I gave it a try last year but the soldering job on my encoder knob was so bad that I built back before I printed a case and returned to stock PanelDue firmware. But not for lack of want (-:

                    <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

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

                      @phaedrux here are some better videos of the behavior-

                      1. PanelDue with the firmware loaded. Ignore the portait/landscape difference at the start-I have it that way so you can see the lanscape mode of the normal Panel functoin. I am trying to use a stylus to push buttons so you can see the highlighed presses, and my hand movements are making the focus jumpy.
                        https://photos.app.goo.gl/8nYPxtsLjEH7yCuq7

                      2. Standar Paneldue firmware on the same machine with normal firmware to show normal function- https://photos.app.goo.gl/YUebXv5EmbUYDB296

                      1 Reply Last reply Reply Quote 0
                      • 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