Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. Michael23
    • Profile
    • Following 1
    • Followers 0
    • Topics 2
    • Posts 7
    • Best 0
    • Controversial 0
    • Groups 0

    Michael23

    @Michael23

    0
    Reputation
    1
    Profile views
    7
    Posts
    0
    Followers
    1
    Following
    Joined Last Online

    Michael23 Unfollow Follow

    Latest posts made by Michael23

    • RE: getting set up to hack firmware

      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

      posted in Firmware developers
      Michael23undefined
      Michael23
    • RE: getting set up to hack firmware

      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

      posted in Firmware developers
      Michael23undefined
      Michael23
    • RE: getting set up to hack firmware

      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.

      posted in Firmware developers
      Michael23undefined
      Michael23
    • RE: getting set up to hack firmware

      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.

      posted in Firmware developers
      Michael23undefined
      Michael23
    • RE: getting set up to hack firmware

      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)

      posted in Firmware developers
      Michael23undefined
      Michael23
    • getting set up to hack firmware

      Hello, we have the Duet Wifi and DueX5 and plan to use it to control a large custom 3d printer.
      We plan to control 6 motors off of the Duet3d as well as an additional 5 from the DueX5.
      We also plan to use the extra 2 stepper channels found on the CONN_LCD..
      But we would still like to use 1 or 2 more.. 🙂

      so we are interested in hacking the firmware to add 1 or 2 more independent stepper channels.
      I have seen that this has been accomplished by @kazolar in the forums.

      so far I have been able to build the RepRapFirmware 2.02 from source in eclipse on a pc using the master branches of the following:

      CoreNG, FreeRTOS, RRFLibraries and RepRapFirmware
      I also have DuetWifiSocketServer, CoreESP8266 and LwipESP8266 projects loaded in eclipse

      I can get this set to compile without error.

      now to proceed towards repurposing pins and adding additional channels of motor control. From reading through posts in the forum.. I believe I need to use v2-dev branches of CoreNG and RepRapFirmware..

      so far I have tried v2-dev branches of CoreNG and RepRapFirmware
      compilation yields hundreds of errors like this one

      '__are_same' was not declared in this scope RepRapFirmware
      line 383, external location: c:\program files (x86)\gnu tools arm embedded\7 2018-q2-update\arm-none-eabi\include\c++\7.3.1\bits\stl_algobase.h C/C++ Problem

      all of the visible errors concern the same file stl_algobase.h
      am I working with the right branches? if so.. How do I fix this?

      from @kazolar 's posts I was planing on modifying the Pins_DuetNG.h file for starters.. however the DuetNG folder containing it is crossed out in the RepRapFirmware src folder..

      any help would be appreciated.

      thanks!

      posted in Firmware developers
      Michael23undefined
      Michael23
    • planning for 16 stepper motors..

      Hello, We are building a large cartesian 3d printer and are hoping to drive 16 stepper motors.

      2 for the X axis, 4 for the Y axis, 4 for the Z axis
      and 6 for extruders

      We plan on using 12 nema-17 stepper motors for the X and Y axes as well as the extruders and 4 nema-23 stepper motors for the Z axis

      Upon studying the forum and the documentation, we are planning to use the duet2 wifi, the duex5 and the 2 additional motor signals sets on the CONN_LCD.. however this only nets us 12 independent channels of control.

      on the Duet2:
      We're planning to run the 2 X axis motors off the 2 Z headers on the Deut2.
      We also plan to run the 4 Y axis motors on the remaining 4 motor headers on the Duet2

      on the Deux5:
      We're planning on running 5 of the extruder stepper motors on the Duex5

      on the CONN_LCD:
      We plan to run the 6th extruder off of the signals for E10 on the CONN_LCD (Stp10, Dir10, En10, and Stop10)

      Is there a way of driving multiple motor controllers with one set of control signals so they run in parallel?

      For example could we run our 4 nema-23s on the Z axis via 4 separate motor controllers working off the same signals from E11 on the CONN_LCD (Stp11, Dir11, En11, and Stop11) ? If we can are there drawbacks to running them off of the same signals?

      We were curious if anyone has tried to use a second Deux5 custom wired to the CONN_LCD connector to get 5 more controllers?

      Finally, we saw talk in the forums about a new version in the works that supported additional motors.. Is there a timeline for this new version yet? Are there opportunities to beta test it before its released?

      Thanks for any help!

      Michael 23

      posted in Duet Hardware and wiring
      Michael23undefined
      Michael23