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

    getting set up to hack firmware

    Scheduled Pinned Locked Moved
    Firmware developers
    2
    12
    1.5k
    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.
    • dc42undefined
      dc42 administrators
      last edited by dc42

      • Current development is on the dev branch of RepRapFirmware, not the v2-dev branch any more
      • Use the master branch of CoreNG for now, although I will switch to the dev branch when I have updated it
      • I have just switched to using the 2018-q4-major release of Gnu Tools ARM Embedded.
      • If the DuetNG folder is crossed out, you probably have the wrong project configuration selected. Build the Duet2_RTOS configuration of RepRapFirmware and the SAM4E8E_RTOS configurations of everything else.

      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

      1 Reply Last reply Reply Quote 0
      • Michael23undefined
        Michael23
        last edited by Michael23

        thank you for clarifying the branches and configurations..
        So I believe I have all of the correct branches and configurations set in my project..
        I also installed the new release of Gnu Tools ARM Embedded..
        however, when I attempt to compile RepRapFirmware I get errors while building the file: ../src/Movement/Kinematics/HangprinterKinematics.cpp

        here are some of the first error messages..

        'class FixedMatrix<float, 9, 9>' has no member named 'Fill' CoreKinematics.cpp /RepRapFirmware/src/Movement/Kinematics line 50 C/C++ Problem

        'class FixedMatrix<float, 9, 9>' has no member named 'Fill' CoreKinematics.cpp /RepRapFirmware/src/Movement/Kinematics line 129 C/C++ Problem

        could not convert 'normalMatrix.FixedMatrix<double, 9, 10>::GaussJordan(((double*)numFactors), (numFactors + 1))' from 'void' to 'bool' HangprinterKinematics.cpp /RepRapFirmware/src/Movement/Kinematics line 426 C/C++ Problem

        I have attached the console output below..

        Building file: ../src/Movement/Kinematics/HangprinterKinematics.cpp
        Invoking: Cross G++ Compiler
        arm-none-eabi-g++ -D__SAM4E8E__ -DRTOS -DDUET_NG -D_XOPEN_SOURCE -I"C:\Eclipse\Firmware-dev\CoreNG\cores\arduino" -I"C:\Eclipse\Firmware-dev\CoreNG\libraries\Flash" -I"C:\Eclipse\Firmware-dev\CoreNG\libraries\SharedSpi" -I"C:\Eclipse\Firmware-dev\CoreNG\libraries\Storage" -I"C:\Eclipse\Firmware-dev\CoreNG\libraries\Wire" -I"C:\Eclipse\Firmware-dev\CoreNG\asf" -I"C:\Eclipse\Firmware-dev\CoreNG\asf\common\utils" -I"C:\Eclipse\Firmware-dev\CoreNG\asf\common\services\clock" -I"C:\Eclipse\Firmware-dev\CoreNG\asf\common\services\ioport" -I"C:\Eclipse\Firmware-dev\CoreNG\asf\sam\drivers" -I"C:\Eclipse\Firmware-dev\CoreNG\asf\sam\services\flash_efc" -I"C:\Eclipse\Firmware-dev\CoreNG\asf\sam\utils" -I"C:\Eclipse\Firmware-dev\CoreNG\asf\sam\utils\cmsis\sam4e\include" -I"C:\Eclipse\Firmware-dev\CoreNG\asf\sam\utils\header_files" -I"C:\Eclipse\Firmware-dev\CoreNG\asf\sam\utils\preprocessor" -I"C:\Eclipse\Firmware-dev\CoreNG\asf\thirdparty\CMSIS\Include" -I"C:\Eclipse\Firmware-dev\CoreNG\variants\duetNG" -I"C:\Eclipse\Firmware-dev\RepRapFirmware\src" -I"C:\Eclipse\Firmware-dev\RepRapFirmware\src\DuetNG" -I"C:\Eclipse\Firmware-dev\RepRapFirmware\src\Networking" -I"C:\Eclipse\Firmware-dev\DuetWiFiSocketServer\src\include" -I"C:\Eclipse\Firmware-dev\FreeRTOS\src\include" -I"C:\Eclipse\Firmware-dev\FreeRTOS\src\portable\GCC\ARM_CM4F" -I"C:\Eclipse\Firmware-dev\RRFLibraries\src" -O2 -Wall -c -std=gnu++17 -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fno-exceptions -nostdlib -Wdouble-promotion -fsingle-precision-constant "-Wa,-ahl=HangprinterKinematics.s" -MMD -MP -MF"src/Movement/Kinematics/HangprinterKinematics.d" -MT"src/Movement/Kinematics/HangprinterKinematics.o" -o "src/Movement/Kinematics/HangprinterKinematics.o" "../src/Movement/Kinematics/HangprinterKinematics.cpp"
        ../src/Movement/Kinematics/CoreKinematics.cpp: In member function 'void CoreKinematics::Recalc()':
        ../src/Movement/Kinematics/CoreKinematics.cpp:36:42: error: invalid conversion from 'size_t' {aka 'unsigned int'} to 'float*' [-fpermissive]
        const bool ok = tempMatrix.GaussJordan(MaxAxes, 2 * MaxAxes);
        ^~~~~~~
        In file included from ../src/Movement/Kinematics/Kinematics.h:12,
        from ../src/Movement/Kinematics/ZLeadscrewKinematics.h:11,
        from ../src/Movement/Kinematics/CoreKinematics.h:11,
        from ../src/Movement/Kinematics/CoreKinematics.cpp:8:
        C:\Eclipse\Firmware-dev\RRFLibraries\src/Math/Matrix.h:87:93: note: initializing argument 1 of 'void FixedMatrix<T, ROWS, COLS>::GaussJordan(T*, size_t) [with T = float; unsigned int ROWS = 9; unsigned int COLS = 18; size_t = unsigned int]'
        template<class T, size_t ROWS, size_t COLS> void FixedMatrix<T, ROWS, COLS>::GaussJordan(T solution, size_t numRows)
        ~^~~~~~
        ../src/Movement/Kinematics/CoreKinematics.cpp:36:62: error: void value not ignored as it ought to be
        const bool ok = tempMatrix.GaussJordan(MaxAxes, 2 * MaxAxes);
        ^
        ../src/Movement/Kinematics/CoreKinematics.cpp:50:18: error: 'class FixedMatrix<float, 9, 9>' has no member named 'Fill'
        forwardMatrix.Fill(0.0);
        ^~~~
        ../src/Movement/Kinematics/CoreKinematics.cpp: In constructor 'CoreKinematics::CoreKinematics(KinematicsType)':
        ../src/Movement/Kinematics/CoreKinematics.cpp:129:16: error: 'class FixedMatrix<float, 9, 9>' has no member named 'Fill'
        inverseMatrix.Fill(0.0);
        ^~~~
        src/Movement/Kinematics/subdir.mk:39: recipe for target 'src/Movement/Kinematics/CoreKinematics.o' failed
        make: *** [src/Movement/Kinematics/CoreKinematics.o] Error 1
        make: *** Waiting for unfinished jobs....
        ../src/Movement/Kinematics/HangprinterKinematics.cpp: In member function 'virtual bool HangprinterKinematics::DoAutoCalibration(size_t, const RandomProbePointSet&, const StringRef&)':
        ../src/Movement/Kinematics/HangprinterKinematics.cpp:426:33: error: invalid conversion from 'size_t' {aka 'unsigned int'} to 'double
        ' [-fpermissive]
        if (!normalMatrix.GaussJordan(numFactors, numFactors + 1))
        ^~~~~~~~~~
        In file included from ../src/Movement/Kinematics/Kinematics.h:12,
        from ../src/Movement/Kinematics/HangprinterKinematics.h:11,
        from ../src/Movement/Kinematics/HangprinterKinematics.cpp:8:
        C:\Eclipse\Firmware-dev\RRFLibraries\src/Math/Matrix.h:87:93: note: initializing argument 1 of 'void FixedMatrix<T, ROWS, COLS>::GaussJordan(T*, size_t) [with T = double; unsigned int ROWS = 9; unsigned int COLS = 10; size_t = unsigned int]'
        template<class T, size_t ROWS, size_t COLS> void FixedMatrix<T, ROWS, COLS>::GaussJordan(T solution, size_t numRows)
        ~^~~~~~
        ../src/Movement/Kinematics/HangprinterKinematics.cpp:426:32: error: could not convert 'normalMatrix.FixedMatrix<double, 9, 10>::GaussJordan(((double
        )numFactors), (numFactors + 1))' from 'void' to 'bool'
        if (!normalMatrix.GaussJordan(numFactors, numFactors + 1))
        ^~~~
        ../src/Movement/Kinematics/HangprinterKinematics.cpp:426:59: error: in argument to unary !
        if (!normalMatrix.GaussJordan(numFactors, numFactors + 1))
        ^
        src/Movement/Kinematics/subdir.mk:39: recipe for target 'src/Movement/Kinematics/HangprinterKinematics.o' failed
        make: *** [src/Movement/Kinematics/HangprinterKinematics.o] Error 1

        14:16:44 Build Failed. 12 errors, 0 warnings. (took 18s.607ms)

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

          You have incompatible versions or branches of projects RepRapFirmware and RRFLibraries in your Eclipse workspace.

          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

          1 Reply Last reply Reply Quote 0
          • Michael23undefined
            Michael23
            last edited by

            so I was able to build the latest beta pre-lease 2.03beta2 using the updated recipe from the build instructions:

            • package: branch: configuration

            • RepRapFirmware: main: Duet2_RTOS
            • CoreNG: main: SAM4E8E_RTOS
            • FreeRTOS: main: SAM4E
            • RRFLibraries: main: SAM4E_RTOS
            • DuetWiFiSocketServer: dev: Release

            I think I may still have the wrong configuration set for RepRapFirmware as I'm using the Duet2 Wifi and the DuetNG folder containing the file Pins_DuetNG.h is still greyed out..

            Pins_DuetNG.h was the file kazolar mentions modifying in the forums to add additional motor control channels.. under my current build I have access to Pins_Duet.h should I start with this file instead?

            Is Duet2_RTOS the correct configuration of RepRapFirmware for my Duet2 Wifi board? It builds without error and when I uploaded it to the board, the web interface reports back "RepRapFirmware for Duet 2 WiFi/Ethernet" for the firmware name. The possible configurations for RepRapFirmware are below:

            Alligator
            Duet085
            Duet085_RTOS
            Duet2_RTOS
            Duet3_V03
            Duet3_V05
            DuetM_RTOS
            PCCB_08
            PCCB_08X5
            PCCB_10
            RADDS_RTOS
            SAME70XPLD

            Thank you for taking a look at this.

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

              Duet2_RTOS is the correct configuration for the Duet WiFi/Ethernet, but you should use the dev branch of every project except FreeRTOS.

              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

              1 Reply Last reply Reply Quote 0
              • Michael23undefined
                Michael23
                last edited by

                So I have modified my build as you suggested and now have the following:

                RepRapFirmware: dev: Duet2_RTOS
                CoreNG: dev: SAM4E8E_RTOS
                FreeRTOS: main: SAM4E
                RRFLibraries: dev: SAM4E_RTOS
                DuetWiFiSocketServer: dev: Release

                when I build I get errors.. see the build log attached.
                0_1553634404249_build log.txt

                thanks.

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

                  Update your RepRapFirmware project source files from the latest commit. A few days ago I accepted a PR from another user, but it turned out to be incompatible with other commits I had made recently. So the commit that implemented that PR doesn't build.

                  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

                  1 Reply Last reply Reply Quote 0
                  • Michael23undefined
                    Michael23
                    last edited by

                    So I got that to build without errors.. thanks!

                    however the RepRapFirmware\src\DuetNG folder and the file Pins_DuetNG.h are still greyed out..

                    Pins_DuetNG.h was the file kazolar mentions modifying in the forums to add additional motor control channels..

                    under my current build I have access to RepRapFirmware\src\Duet\Pins_Duet.h should I start with this file instead?

                    Thanks for your help

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

                      You have selected the wrong configuration of the RepRapFirmware to build. Select the Duet2 configuration. Then the DuetNG folder will not be greyed out.

                      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

                      Michael23undefined 1 Reply Last reply Reply Quote 0
                      • Michael23undefined
                        Michael23 @dc42
                        last edited by

                        After a break, I'm back to work on the firmware..
                        Here's an image of my project folder from eclipse
                        0_1556667389371_DuetNG-issue.jpg

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

                          The Duet_NG folder that is greyed out is the important one. I sometimes find that Eclipse greys out the wrong folder. Changing the configuration to a different one and then back again usually fixes it. However, when the wrong folder is greyed out, the build still works.

                          The version of Eclipse that I currently use is 2019-03.

                          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

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