Hi!
Just in case it might be useful for somebody else. For me, building for Duet2 required explicit copying DuetWiFiSocketServer/src/include/MessageFormats.h to RepRapFirmware/src/, although that was outlined in the official build manual as an optional action. Building for Duet3 did not required that action and went smoothly in the same Workspace in Eclipse (version 3.4-dev)
Best posts made by Arplyu
-
RE: Firmware Build errors [help needed]
-
RE: Configuration of OUT_7 connector on Duet3-6HC
@jay_s_uk my bad, I'm lacking knowledge in electronics The easiest way was just to test with a real fan, which I have done now. Everything works as expected.
-
Compilation of RRF2.05.1 in 2022
Hi, our little company still uses RRF2.05.1 in our printers. We have been using precompiled binaries so far. Now we need now to make small changes in the basic code.
Unlike the 3.x family, it turned out to be a more complicated task, since there are no specific version tags in other projects than the main RRF, at least if I'm not missing anything. By trials and errors, I found such a combination of commits, which is compiled without errors. Can anybody confirm if this more or less corresponds to the original precompiled binary from release 2.05.1, or how can I check that?
CoreNG: 55dfcf0441adf01ab7bc2ae6a638e395ef018595, 10.12.2019, 17:09:25
FreeRTOS: 83d87c0f61618f5a471f2d52ca75590d67c7a616, 25.01.2020, 13:55:26
RRFLibraries: c3b754a423ce8eb67958c77a8afe54fc5755ae15, 6.01.2020, 22:13:13
RepRapFirmware: eec61ee0d5df8d3b4b556e8854216cee2038f045, tag "2.05.1", 9.02.2020, 13:41:34Thank you
Latest posts made by Arplyu
-
RE: Few questions about building the DSF 3.4.x
@chrishamm thanks! Now everything works fine!
-
RE: Few questions about building the DSF 3.4.x
@chrishamm
I built all deb packages for arm64 (for 3.4.4), installed them successfully. I increased SPI buffer size as explained to 8192. Then I enabled both DuetControlServer and DuetWebServer services; successfully connected to DWC from the browser. A macro file created from DWC appeared on the Raspi... BUT! Running tools like CodeConsole and ModelObserver fail withFailed to connect to DCS
. There is one suspicious record in logs, despite I mentioned above:Sep 13 13:42:50 core DuetControlServer[1745]: [warn] Kernel SPI buffer size is smaller than RepRapFirmware buffer size (4096 configured vs 8192 required)
Could that be a problem? If yes, what is wrong? shouldn't file
/etc/modprobe.d/spidev.conf
have set the right size? Or may be I've missed some step in the setup?Thanks!
UPD: I increased buffer size as explained here, the warning from service's log disappeared, but still cannot connect to DCS
-
RE: Few questions about building the DSF 3.4.x
- Roger
- Thanks a lot, I will check it out asap
- Just tested passing
--target=arm64
, seems to build it. I was a little bit confused that this option was not listed in the help. Will try those packages on my raspi a little later.
Thank you very much! I'll get back here if have further questions
-
Few questions about building the DSF 3.4.x
Hi! I'd like to add some minor changes to the DSF. As a first step, I tried to build standard version myself, and the process looked successful but in reality not everything is clear.
Could anybody please answer these questions:
- Which way is actually preferred - makefile in the root directory, or build.sh in /pkg?
- I haven't found in either of those files a target for building reprapfirmware package - what am I missing?
- I compiled .deb for 64-bit raspiOS. If I understand correctly, aarch64 (as it is named in pkg/build.sh) is just another name for the same architecture, but attempt to install from this package fails with
package architecture (aarch64) does not match system (arm64)
(thoughuname
gives aarch64!). Is it known problem?
(please take into consideration these points:
- I need to build version 3.4.4, maximum 3.4.6 - for compatibility with the modified RRF.
- I haven't had experience with .NET stuff and with building .deb packages by myself before, sorry if some questions seem too primitive for experienced users
- my goal is to do compilation of .deb packages for standard raspiOS (both 32 and 64 bits) on my x86-64 ubuntu machine)
Thank you
-
RE: Proper setup for debugging Duet3
@dc42 thank you for the reply. I use commits with tag "3.4.4" in all projects. Non-debug config from the same commits compiles without any problems, I used that as a start point for my modifications.
PS At the same time, checking out 3.4-dev branches at latest commits in all projects works fine - I managed to compile debug config and test the hardware, everything was ok.
-
RE: Proper setup for debugging Duet3
Sorry for getting back again to that topic. I finally found time to try compiling the debug version of MB6HC code. However, I'm getting errors if I try to compile for original 3.4.4 (my modified code is based on that, so I'd like to start from exactly this version):
Building target: Duet3Firmware_MB6HC_Debug.elf Invoking: Cross G++ Linker arm-none-eabi-gcc -L"/RRF/CoreN2G/SAME70_CAN_SDHC_USB_RTOS_Debug" -L"/RRF/RRFLibraries/SAME70_RTOS_Debug" -L"/RRF/FreeRTOS/SAME70_Debug" -L"/RRF/CANlib/SAME70_RTOS_Debug" --specs=nosys.specs -Os -Wl,--gc-sections -Wl,--fatal-warnings -mcpu=cortex-m7 -mfpu=fpv5-d16 -mfloat-abi=hard -T"/RRF/RepRapFirmware/src/Hardware/SAME70/same70q20b_flash.ld" -Wl,-Map,"/RRF/RepRapFirmware/Duet3_Debug/Duet3Firmware_MB6HC_Debug.map" -o "Duet3Firmware_MB6HC_Debug.elf" -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group ./src/libcpp/eh_alloc.o ./src/libcpp/vterminate.o ./src/libc/memcmp.o ./src/libc/memcpy.o ./src/libc/memmove.o ./src/libc/memset.o ./src/libc/nano-mallocr.o ./src/libc/strptime.o ./src/bossa/Applet.o ./src/bossa/BossaFlash.o ./src/bossa/Device.o ./src/bossa/EefcFlash.o ./src/bossa/Flasher.o ./src/bossa/Samba.o ./src/bossa/WordCopyApplet.o ./src/bossa/WordCopyArm.o ./src/Tools/Filament.o ./src/Tools/Spindle.o ./src/Tools/Tool.o ./src/Storage/CRC16.o ./src/Storage/CRC32.o ./src/Storage/EmbeddedFiles.o ./src/Storage/FileInfoParser.o ./src/Storage/FileStore.o ./src/Storage/MassStorage.o ./src/SBC/DataTransfer.o ./src/SBC/SbcInterface.o ./src/PrintMonitor/PrintMonitor.o ./src/Platform/Event.o ./src/Platform/Heap.o ./src/Platform/Logger.o ./src/Platform/OutputMemory.o ./src/Platform/Platform.o ./src/Platform/PortControl.o ./src/Platform/RepRap.o ./src/Platform/Roland.o ./src/Platform/Scanner.o ./src/Platform/Tasks.o ./src/Platform/UniqueId.o ./src/ObjectModel/GlobalVariables.o ./src/ObjectModel/ObjectModel.o ./src/ObjectModel/Variable.o ./src/Networking/MulticastDiscovery/MulticastResponder.o ./src/Networking/MulticastDiscovery/fgmc_protocol.o ./src/Networking/LwipEthernet/Lwip/src/netif/bridgeif.o ./src/Networking/LwipEthernet/Lwip/src/netif/bridgeif_fdb.o ./src/Networking/LwipEthernet/Lwip/src/netif/ethernet.o ./src/Networking/LwipEthernet/Lwip/src/netif/lowpan6.o ./src/Networking/LwipEthernet/Lwip/src/netif/lowpan6_ble.o ./src/Networking/LwipEthernet/Lwip/src/netif/lowpan6_common.o ./src/Networking/LwipEthernet/Lwip/src/netif/slipif.o ./src/Networking/LwipEthernet/Lwip/src/netif/zepif.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/dhcp6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/ethip6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/icmp6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/inet6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/ip6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/ip6_addr.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/ip6_frag.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/mld6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/nd6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/autoip.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/dhcp.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/etharp.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/icmp.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/igmp.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/ip4.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/ip4_addr.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/ip4_frag.o ./src/Networking/LwipEthernet/Lwip/src/core/altcp.o ./src/Networking/LwipEthernet/Lwip/src/core/altcp_alloc.o ./src/Networking/LwipEthernet/Lwip/src/core/altcp_tcp.o ./src/Networking/LwipEthernet/Lwip/src/core/def.o ./src/Networking/LwipEthernet/Lwip/src/core/dns.o ./src/Networking/LwipEthernet/Lwip/src/core/inet_chksum.o ./src/Networking/LwipEthernet/Lwip/src/core/init.o ./src/Networking/LwipEthernet/Lwip/src/core/ip.o ./src/Networking/LwipEthernet/Lwip/src/core/mem.o ./src/Networking/LwipEthernet/Lwip/src/core/memp.o ./src/Networking/LwipEthernet/Lwip/src/core/netif.o ./src/Networking/LwipEthernet/Lwip/src/core/pbuf.o ./src/Networking/LwipEthernet/Lwip/src/core/raw.o ./src/Networking/LwipEthernet/Lwip/src/core/stats.o ./src/Networking/LwipEthernet/Lwip/src/core/sys.o ./src/Networking/LwipEthernet/Lwip/src/core/tcp.o ./src/Networking/LwipEthernet/Lwip/src/core/tcp_in.o ./src/Networking/LwipEthernet/Lwip/src/core/tcp_out.o ./src/Networking/LwipEthernet/Lwip/src/core/timeouts.o ./src/Networking/LwipEthernet/Lwip/src/core/udp.o ./src/Networking/LwipEthernet/Lwip/src/apps/netbiosns/netbiosns.o ./src/Networking/LwipEthernet/Lwip/src/apps/mdns/mdns.o ./src/Networking/LwipEthernet/Lwip/src/api/api_lib.o ./src/Networking/LwipEthernet/Lwip/src/api/api_msg.o ./src/Networking/LwipEthernet/Lwip/src/api/err.o ./src/Networking/LwipEthernet/Lwip/src/api/if_api.o ./src/Networking/LwipEthernet/Lwip/src/api/netbuf.o ./src/Networking/LwipEthernet/Lwip/src/api/netdb.o ./src/Networking/LwipEthernet/Lwip/src/api/netifapi.o ./src/Networking/LwipEthernet/Lwip/src/api/sockets.o ./src/Networking/LwipEthernet/Lwip/src/api/tcpip.o ./src/Networking/LwipEthernet/GMAC/ethernet_sam.o ./src/Networking/LwipEthernet/LwipEthernetInterface.o ./src/Networking/LwipEthernet/LwipSocket.o ./src/Networking/FtpResponder.o ./src/Networking/HttpResponder.o ./src/Networking/Network.o ./src/Networking/NetworkBuffer.o ./src/Networking/NetworkInterface.o ./src/Networking/NetworkResponder.o ./src/Networking/TelnetResponder.o ./src/Networking/UploadingNetworkResponder.o ./src/Movement/StepperDrivers/DriverMode.o ./src/Movement/StepperDrivers/TMC22xx.o ./src/Movement/StepperDrivers/TMC2660.o ./src/Movement/StepperDrivers/TMC51xx.o ./src/Movement/Kinematics/CoreKinematics.o ./src/Movement/Kinematics/FiveBarScaraKinematics.o ./src/Movement/Kinematics/HangprinterKinematics.o ./src/Movement/Kinematics/Kinematics.o ./src/Movement/Kinematics/LinearDeltaKinematics.o ./src/Movement/Kinematics/PolarKinematics.o ./src/Movement/Kinematics/RotaryDeltaKinematics.o ./src/Movement/Kinematics/RoundBedKinematics.o ./src/Movement/Kinematics/ScaraKinematics.o ./src/Movement/Kinematics/ZLeadscrewKinematics.o ./src/Movement/HeightControl/HeightController.o ./src/Movement/BedProbing/Grid.o ./src/Movement/BedProbing/RandomProbePointSet.o ./src/Movement/AxisShaper.o ./src/Movement/DDA.o ./src/Movement/DDARing.o ./src/Movement/DriveMovement.o ./src/Movement/ExtruderShaper.o ./src/Movement/Move.o ./src/Movement/MoveSegment.o ./src/Movement/RawMove.o ./src/Movement/StepTimer.o ./src/Libraries/sha1/sha1.o ./src/Libraries/sd_mmc/ctrl_access.o ./src/Libraries/sd_mmc/sd_mmc.o ./src/Libraries/sd_mmc/sd_mmc_mem.o ./src/Libraries/sd_mmc/sd_mmc_spi.o ./src/Libraries/Fatfs/diskio.o ./src/Libraries/Fatfs/fattime_rtc.o ./src/Libraries/Fatfs/ff.o ./src/Libraries/Fatfs/ffunicode.o ./src/InputMonitors/InputMonitor.o ./src/Heating/Sensors/AdditionalOutputSensor.o ./src/Heating/Sensors/CpuTemperatureSensor.o ./src/Heating/Sensors/CurrentLoopTemperatureSensor.o ./src/Heating/Sensors/DhtSensor.o ./src/Heating/Sensors/LinearAnalogSensor.o ./src/Heating/Sensors/RemoteSensor.o ./src/Heating/Sensors/RtdSensor31865.o ./src/Heating/Sensors/SensorWithPort.o ./src/Heating/Sensors/SpiTemperatureSensor.o ./src/Heating/Sensors/TemperatureSensor.o ./src/Heating/Sensors/Thermistor.o ./src/Heating/Sensors/ThermocoupleSensor31855.o ./src/Heating/Sensors/ThermocoupleSensor31856.o ./src/Heating/Sensors/TmcDriverTemperatureSensor.o ./src/Heating/FOPDT.o ./src/Heating/Heat.o ./src/Heating/Heater.o ./src/Heating/HeaterMonitor.o ./src/Heating/LocalHeater.o ./src/Heating/RemoteHeater.o ./src/Heating/TemperatureError.o ./src/Hardware/SharedSpi/SharedSpiClient.o ./src/Hardware/SharedSpi/SharedSpiDevice.o ./src/Hardware/SAME70/Ethernet/ksz8081rna/ethernet_phy.o ./src/Hardware/SAME70/Ethernet/GmacInterface.o ./src/Hardware/SAME70/Devices.o ./src/Hardware/SAME70/Main.o ./src/Hardware/ExceptionHandlers.o ./src/Hardware/I2C.o ./src/Hardware/IoPorts.o ./src/Hardware/NonVolatileMemory.o ./src/Hardware/SoftwareReset.o ./src/GPIO/GpInPort.o ./src/GPIO/GpOutPort.o ./src/GCodes/GCodeBuffer/BinaryParser.o ./src/GCodes/GCodeBuffer/ExpressionParser.o ./src/GCodes/GCodeBuffer/GCodeBuffer.o ./src/GCodes/GCodeBuffer/StringParser.o ./src/GCodes/GCodeException.o ./src/GCodes/GCodeFileInfo.o ./src/GCodes/GCodeInput.o ./src/GCodes/GCodeMachineState.o ./src/GCodes/GCodeQueue.o ./src/GCodes/GCodes.o ./src/GCodes/GCodes2.o ./src/GCodes/GCodes3.o ./src/GCodes/GCodes4.o ./src/GCodes/ObjectTracker.o ./src/GCodes/RestorePoint.o ./src/GCodes/StraightProbeSettings.o ./src/GCodes/TriggerItem.o ./src/FilamentMonitors/Duet3DFilamentMonitor.o ./src/FilamentMonitors/FilamentMonitor.o ./src/FilamentMonitors/LaserFilamentMonitor.o ./src/FilamentMonitors/PulsedFilamentMonitor.o ./src/FilamentMonitors/RotatingMagnetFilamentMonitor.o ./src/FilamentMonitors/SimpleFilamentMonitor.o ./src/Fans/Fan.o ./src/Fans/FansManager.o ./src/Fans/LedStripDriver.o ./src/Fans/LocalFan.o ./src/Fans/RemoteFan.o ./src/Endstops/Endstop.o ./src/Endstops/EndstopsManager.o ./src/Endstops/LocalZProbe.o ./src/Endstops/RemoteZProbe.o ./src/Endstops/StallDetectionEndstop.o ./src/Endstops/SwitchEndstop.o ./src/Endstops/ZProbe.o ./src/Endstops/ZProbeEndstop.o ./src/Config/Pins.o ./src/Comms/AuxDevice.o ./src/Comms/FirmwareUpdater.o ./src/Comms/PanelDueUpdater.o ./src/ClosedLoop/ClosedLoop.o ./src/CAN/CanDriversData.o ./src/CAN/CanInterface.o ./src/CAN/CanMessageGenericConstructor.o ./src/CAN/CanMotion.o ./src/CAN/CommandProcessor.o ./src/CAN/ExpansionManager.o ./src/Accelerometers/Accelerometers.o ./src/Accelerometers/LIS3DH.o ./src/RepRapFirmware.o ./src/Version.o -lCoreN2G -lRRFLibraries -lFreeRTOS -lCANlib -lsupc++ -Wl,--end-group -lm /opt/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: ./src/SBC/DataTransfer.o: in function `SPI1_Handler': /RRF/RepRapFirmware/Duet3_Debug/../src/SBC/DataTransfer.cpp:366: warning: undefined reference to `SPI1_WiFi_Handler()' /opt/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: ./src/Networking/Network.o: in function `Network::HandleWiFiCode(int, GCodeBuffer&, StringRef const&, OutputBuffer*&)': /RRF/RepRapFirmware/Duet3_Debug/../src/Networking/Network.cpp:366: warning: undefined reference to `WiFiInterface::HandleWiFiCode(int, GCodeBuffer&, StringRef const&, OutputBuffer*&)' /opt/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: ./src/Networking/Network.o: in function `Network::ResetWiFiForUpload(bool)': /RRF/RepRapFirmware/Duet3_Debug/../src/Networking/Network.cpp:406: warning: undefined reference to `WiFiInterface::ResetWiFiForUpload(bool)' /opt/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: ./src/Networking/Network.o: in function `Network::CreateAdditionalInterface()': /RRF/RepRapFirmware/Duet3_Debug/../src/Networking/Network.cpp:205: warning: undefined reference to `WiFiInterface::WiFiInterface(Platform&)' /opt/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: /RRF/RepRapFirmware/Duet3_Debug/../src/Networking/Network.cpp:207: warning: undefined reference to `WiFiInterface::Init()' /opt/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: ./src/Comms/FirmwareUpdater.o: in function `FirmwareUpdater::IsReady()': /RRF/RepRapFirmware/Duet3_Debug/../src/Comms/FirmwareUpdater.cpp:85: warning: undefined reference to `WifiFirmwareUploader::IsReady() const' /opt/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: ./src/Comms/FirmwareUpdater.o: in function `FirmwareUpdater::UpdateModule(unsigned int, unsigned int, StringRef const&)': /RRF/RepRapFirmware/Duet3_Debug/../src/Comms/FirmwareUpdater.cpp:124: warning: undefined reference to `WifiFirmwareUploader::SendUpdateFile(char const*, unsigned long)' collect2: error: ld returned 1 exit status make[1]: *** [makefile:114: Duet3Firmware_MB6HC_Debug.elf] Error 1 make: *** [makefile:99: all] Error 2 "make -j12 all" terminated with exit code 2. Build might be incomplete.
Do you have any ideas what was wrong? Thank you
-
RE: Duet3Bootloader compilation pt.2 - SAME5x target
@dc42 Thank you very much for quick reply! I changed branches to 3.5-dev, and the old issues are gone now. However, there is one new issue
../src/Bootloader.cpp: In function 'void GetBlock(uint32_t, uint32_t&)': ../src/Bootloader.cpp:211:30: error: 'CanMessageBuffer::CanMessageBuffer(CanMessageBuffer*)' is private within this context 211 | CanMessageBuffer buf(nullptr); | ^ In file included from ../src/Bootloader.cpp:22: /mnt/NTFSD/DEV/3DTech-Brinter/RRF-Brinter/CANlib/src/CanMessageBuffer.h:186:2: note: declared private here 186 | CanMessageBuffer(CanMessageBuffer *prev) noexcept : next(prev), managed(true) { } | ^~~~~~~~~~~~~~~~
Seems like moving CanMessageBuffer(CanMessageBuffer *prev) to public fixes the issue, but could you please check if the public repo contains the latest changes? Now the latest commit in 3.5-dev is 8eda57b890b2768bf5b16fcb692f98f68cad5e16.
Thank you!
-
Duet3Bootloader compilation pt.2 - SAME5x target
Hi, I need to build customized bootloader for SAME51 chip. Unfortunately, there are some issues:
../src/BoardType.cpp: In function 'unsigned int ReadAndQuantise(uint8_t, const uint16_t*, size_t)': ../src/BoardType.cpp:106:37: error: 'ReadChannel' is not a member of 'AnalogIn' 106 | const uint16_t reading = AnalogIn::ReadChannel(CommonAdcDevice, chan); | ^~~~~~~~~~~ ../src/BoardType.cpp: In function 'bool IdentifyBoard(CanAddress&, bool&, bool&)': ../src/BoardType.cpp:177:13: error: 'Init' is not a member of 'AnalogIn' 177 | AnalogIn::Init(CommonAdcDevice); | ^~~~ ../src/BoardType.cpp:180:13: error: 'Disable' is not a member of 'AnalogIn' 180 | AnalogIn::Disable(CommonAdcDevice); // finished using the ADC | ^~~~~~~
I see that all implementation of AnalogIn namespace for SAME5x chip (./src/SAME5x_C21/SAME5x/AnalogIn.cpp) goes excluded since it's completely under "#ifdef RTOS" condition, while in bootloader RTOS is not used. Are there errors in the source files, or am I missing something in my workspace setup? Thank you in advance.
P.S. Used branches and configs:
-
RRFLibraries 3.4-dev/SAME51
-
list itemCoreN2G 3.4-dev/SAME5x_CAN
-
list itemDuet3Bootloader dev/SAME5x
-
list itemCANLib 3.4-dev/SAME51_nonRTOS
All local branches updated 1.07.2023
-
-
RE: Proper setup for debugging Duet3
@dc42 Thanks for this note, that was exactly one of my questions when I started this topic, but unfortunately I didn't specify that I also have hardware revision 1.02. I'll test with debug config next week