Commit Graph

867 Commits (3d-gussner-patch-1)

Author SHA1 Message Date
VintagePC c5a5304775 Minor cleanup 2022-09-21 18:28:22 -04:00
VintagePC 8c6435d4e8 Change back a debug test 2022-09-16 19:46:48 -04:00
VintagePC 10fd23700b Improve implementation 2022-09-16 19:39:27 -04:00
VintagePC df86a6d472 Make test run by default, get fault display working 2022-09-13 21:43:51 -04:00
VintagePC 973db11bec First pass/WIP 2022-09-13 08:47:27 -04:00
3d-gussner 860b91e42b Add Write gcode M708
Fix doxygen format
2022-09-09 16:57:04 +02:00
3d-gussner 5accb05b2d Fix and add units 2022-09-09 16:57:04 +02:00
3d-gussner 9c751d592d Update register documentation 2022-09-09 16:57:04 +02:00
D.R.racer 210bd99eaa Implement Idler moves via registers 2022-09-08 11:51:59 +02:00
D.R.racer 48d5bbc19e Fix computation of CRC for Write requests (non-zero value2) 2022-09-08 11:39:10 +02:00
D.R.racer 9a5a6d9498 Fix computation of CRC
came out of unit tests of read/write registers functionality.
2022-09-07 15:44:08 +02:00
D.R.racer 5d2a0dab04 Fix selector's homing feedrate 2022-08-18 07:29:51 +02:00
D.R.racer a5ce819143 Raise version (due to changed register layout) 2022-08-16 10:35:31 +02:00
D.R.racer 10514380a4 Change layout of registers - avoid empty registers 2022-08-16 10:35:31 +02:00
D.R.racer 74160c6c81 Remove PROGMEM temporarily - make registers actually work on AVR
This needs some investigation if it is really possible to push the Registers into PROGMEM. I think it should be possible, but the compiler is currently not collaborating.
It is not critical though as we have lots of free RAM at the moment (I can't believe I wrote this on an AVR project :) )
2022-08-11 10:26:42 +02:00
D.R.racer 89fc176955 Add basic unit test infrastructure for application + registers 2022-08-11 10:26:42 +02:00
vintagepc fdb2058d2b Fix test build 2022-08-11 10:26:42 +02:00
VintagePC fc5e8a6ae0 Make CMake the source of truth for versioning 2022-08-11 10:26:42 +02:00
D.R.racer 39caece714 Add CRC to the protocol + unit tests 2022-08-11 10:26:42 +02:00
D.R.racer bf5c0f3f23 Allow result codes on a Finished Command state
Helpful for the printer to show, that a command has been cancelled (or anything else we can think of in the future).
MMU-146
2022-08-11 10:26:42 +02:00
D.R.racer 283403306e Add additional registers
It looks like the units' conversion linked some floating point routines ... C++ units are a PITA :(
2022-08-11 10:26:42 +02:00
D.R.racer 8473e84f89 Fixup CppCheck complaints 2022-08-11 10:26:42 +02:00
D.R.racer caf3bc86b7 Fixup after rebase 2022-08-11 10:26:42 +02:00
D.R.racer 94d6795252 Add register for FSensorToNozzleFeedrate 2022-08-11 10:26:42 +02:00
D.R.racer 7bc9217cd7 Move register map into PROGMEM
hopefully the compiler understands...
2022-08-11 10:26:42 +02:00
D.R.racer 48dacd57bd Improve code style (constexpr + unions = avoid reinterpret_cast) 2022-08-11 10:26:42 +02:00
D.R.racer ad0b26c5ec Fix unit tests 2022-08-11 10:26:42 +02:00
D.R.racer a0bff0ef3a Introduce register map + use Read/Write register 2022-08-11 10:26:42 +02:00
D.R.racer 53f87c8755 Introduce generic Read/Write register operations 2022-08-11 10:26:42 +02:00
D.R.racer 5dffd32025 Introduce Idler::PartiallyDisengage
This is to solve a potential problem while feeding to printer's drive gears - while disengaging the Idler, the Pulley was still rotating to avoid grinding the filament (printer is pulling it).
Other filaments could have moved a bit when the Idler's bearings ran over them while the Pulley was still rotating slowly -> the filament could have been moved into the Selector's path causing trouble (especially when not used in the print).
Therefore, the Idler disengages partially now - moves into an intermediate position between the slots.
Then, the Pulley is completely stopped and after that the Idler does a full disengage like before.
2022-08-02 07:28:10 +02:00
D.R.racer 4964e9a781 Fixup unit tests due to new homing behavior 2022-08-02 07:16:54 +02:00
Alex Voinea 989b6e6191 homing changes to increase reliability 2022-08-02 07:16:54 +02:00
D.R.racer 7002e3b0c7 Avoid homing Idler and Selector at the same time
This PR is an experimental code to delay homing of the Selector after the Idler homes properly.

Unit tests are expected to fail at this moment...
2022-08-02 07:16:54 +02:00
3d-gussner 857b028baf Update vscode to avr-gcc 2022-07-27 17:04:52 +02:00
Yuri D'Elia 289eca1295 Drop irrelevant pre-commit exclude paths 2022-07-27 17:04:52 +02:00
Yuri D'Elia 8e6aa41299 Update Jenkins rules to match updated cmake/ninja versions 2022-07-27 17:04:52 +02:00
Yuri D'Elia 7c0548a62c README: Mention the correct output filename 2022-07-27 17:04:52 +02:00
Yuri D'Elia 392298c3da Uniform gcc-avr => avr-gcc for consistency 2022-07-27 17:04:52 +02:00
Yuri D'Elia 911b1c5e69 HexConcat: Silence a cmake 3.22 warning 2022-07-27 17:04:52 +02:00
Yuri D'Elia 05aba7141b Add the AvrGcc toolchain to lock gcc version
Substitute documentation to reference AvrGcc by default, which locks gcc
to the dependency folder.

AnyAvrGcc is inteded to use any system/external gcc version (as the name
implies).
2022-07-27 17:04:52 +02:00
Yuri D'Elia 2117ee12de Update boostrap.py from Buddy 2022-07-27 17:04:52 +02:00
Yuri D'Elia 186c07d771 Require cmake 3.22.5 for consistency with Buddy 2022-07-27 17:04:52 +02:00
Yuri D'Elia 534347151a Remove unused ARM cmakefiles 2022-07-27 17:04:52 +02:00
VintagePC 1bc5fdaec4 Fix filename passing to hex modifier 2022-07-27 17:04:52 +02:00
3d-gussner a241f55513 Update vscode
Remove fixed version in AnyAvrGcc.cmake
Update build.py to use current avr-gcc version defined in bootstrap.py
Attempt to change MM-control-01.hex to MMU2SR-<project version> like in buddy releases
2022-07-27 17:04:52 +02:00
3d-gussner d04e5e704b Update vscode settings
Update README and version
2022-07-27 17:04:52 +02:00
D.R.racer 858cd0349b Upgrade build system to gcc 7.3
based on PR#185 and https://github.com/wavexx/Prusa-Firmware-MMU-Private/pull/1
2022-07-27 17:04:52 +02:00
Yuri D'Elia d9355249a0 Enable LTO 2022-07-25 10:27:16 +02:00
Yuri D'Elia 4794cfea40 Convert illegal constexpr to static const pointers
We cannot get a constexpr definition of the register addresses, and any
reinterpret cast is currently illegal for a constexpr in c++17.

Change the SPI0, TIFR and TIMSK to volatile const pointers instead.

SPI0 has volatile members instead of marking the entire struct as
volatile, which is probably not a good idea as it technically drops the
volatile from the original pointer.
2022-07-25 10:27:16 +02:00
Yuri D'Elia d34b79b087 Update standard to c++17 2022-07-25 10:27:16 +02:00