Skip to content

Commit

Permalink
Merge pull request #532 from Paciente8159/v1.8.x
Browse files Browse the repository at this point in the history
V1.8.x
  • Loading branch information
Paciente8159 committed Oct 18, 2023
2 parents cfb1d00 + 84e6436 commit f340878
Show file tree
Hide file tree
Showing 129 changed files with 22,171 additions and 6,382 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/pio-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ jobs:
strategy:
fail-fast: false # Allow all machines to finish building
matrix:
boards: [bluepill_f103c8_clone, re_arm, arduinoZero, bluepill_f103c8, rpi_pico, mks_tinybee, rambo, ramps14mirror, rpi_pico_w, d1, arduinoM0, skr_v14_turbo, mks_gen_l_v1, mks_dlc32, x_controller, uno, blackpill_f411ce, blackpill_f401cc, skr_pro_v1_2, uno_shield_v3, mks_base_v13, ramps14, d1_r32, mks_robin_nano_v1_2, mks_dlc]
boards: [LPC176X-RE-ARM, ESP32-MKS-DLC32, STM32F4-Blackpill-F411CE, AVR-X-Controller, ESP8266-Wemos-D1-R2, AVR-MKS-DLC, AVR-UNO, ESP32IDF-Wemos-D1-R32, STM32F1-Bluepill-F103C8-CLONE, ESP32-MKS-TINYBEE, STM32F1-Bluepill-F103C8, AVR-RAMBO, RP2040-PICO-W, SAMD21-Wemos-M0, AVR-CNC-Shield-V3, STM32F4-Blackpill-F401CC, ESP32IDF-MKS-DLC32, STM32F4-SKR-Pro-V1_2, RP2040-PICO, ESP32-Wemos-D1-R32, LPC176X-SKR-v1_4-TURBO, STM32F1-MKS-Robin-Nano-V1_2, AVR-MEGA2560-RAMPS-V1_4, LPC176X-MKS-BASE-V1_3, AVR-MKS-GEN-L-V1, SAMD21-Arduino-Zero, ESP32IDF-MKS-TINYBEE]

steps:
- uses: actions/checkout@v4
- name: Cache pip
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pio-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
strategy:
fail-fast: false # Allow all machines to finish building
matrix:
boards: [bluepill_f103c8_clone, re_arm, arduinoZero, bluepill_f103c8, rpi_pico, mks_tinybee, rambo, ramps14mirror, rpi_pico_w, d1, arduinoM0, skr_v14_turbo, mks_gen_l_v1, mks_dlc32, x_controller, uno, blackpill_f411ce, blackpill_f401cc, skr_pro_v1_2, uno_shield_v3, mks_base_v13, ramps14, d1_r32, mks_robin_nano_v1_2, mks_dlc]
boards: [LPC176X-RE-ARM, ESP32-MKS-DLC32, STM32F4-Blackpill-F411CE, AVR-X-Controller, ESP8266-Wemos-D1-R2, AVR-MKS-DLC, AVR-UNO, ESP32IDF-Wemos-D1-R32, STM32F1-Bluepill-F103C8-CLONE, ESP32-MKS-TINYBEE, STM32F1-Bluepill-F103C8, AVR-RAMBO, RP2040-PICO-W, SAMD21-Wemos-M0, AVR-CNC-Shield-V3, STM32F4-Blackpill-F401CC, ESP32IDF-MKS-DLC32, STM32F4-SKR-Pro-V1_2, RP2040-PICO, ESP32-Wemos-D1-R32, LPC176X-SKR-v1_4-TURBO, STM32F1-MKS-Robin-Nano-V1_2, AVR-MEGA2560-RAMPS-V1_4, LPC176X-MKS-BASE-V1_3, AVR-MKS-GEN-L-V1, SAMD21-Arduino-Zero, ESP32IDF-MKS-TINYBEE]
steps:
- uses: actions/checkout@v4
- name: Cache pip
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/pio-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ jobs:
build:
strategy:
matrix:
boards: [uno, ramps14, rambo, arduinoM0, bluepill_f103c8, blackpill_f401cc, d1, re_arm, d1_r32, rpi_pico_w]

boards: [LPC176X-RE-ARM, ESP8266-Wemos-D1-R2, AVR-UNO, ESP32-MKS-TINYBEE, STM32F1-Bluepill-F103C8, AVR-RAMBO, RP2040-PICO-W, SAMD21-Wemos-M0, STM32F4-Blackpill-F401CC, AVR-MEGA2560-RAMPS-V1_4]
runs-on: ubuntu-latest

steps:
Expand Down
61 changes: 61 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,47 @@

# Changelog

# Changelog

## [1.8.0] - 18-10-2023

### Added

- added status report extender callcack (#454)
- added Plasma THC velocity anti-dive (#456)
- added initial Scara Kinematics (#460)
- added ESP32 optional optimized compilation using ESPIDF and Arduino as a component

### Changed

- unified interpolator run function and new S-Curve acceleration profiles (#458)
- implemented Plasma THC status report callback (#454)
- plasma THC tool update via PID callback (#453)
- configurable S curve patterns (#459)
- moved custom MCodes to laser ppi compilation unit (#464)
- added new RT Hooks inside interpolator step ITP, to be used by laser PPI and G33 (#464)
- moved all ESP32 I2S IO update calls to core0 (#485)
- added frequency clamp to step to frequency functions (#485)
- complete redesign of multiaxis system (#477)
- new autolevel with multi axis config (#477)
- fixed ITP for multi step linear actuators (#477)
- modified homing and added support for multi axis homing in parallel (#477)
- integrated backlash filtering in the rt segment flags (#477)
- modified cnc delay to run dotasks instead of only io_dotasks (#513)
- prevent re-entrant code inside dotasks events (#513)
- redesign the main loop tasks to prevent re-entrant code on the event callbacks (#513)
- force interlocking check before getting the alarm to force alarm code refresh if alarm condition is triggered by ISR (#513)
- fixed scara kinematics code to match new multi axis (#513)
- complete redesign of the serial communication to deal with multi-stream/sources and allow future expansions (#529)

### Fixed

- step output generation from beta (#457)
- fixed tool helper macros (#468)
- fixed bug in skew compensation (#476)
- fixed 74HC595 concurrency race (#478)
- fixed hold issue on version1.8 that keeps generating steps until the end of the motion (#489)

## [1.7.6] - 17-10-2023

### Changed
Expand All @@ -21,6 +62,7 @@
- fixed RUN state clear after alarm while running (#520)
- fixed pin status report function in command $P (#525)
- fixed IO input and output macros for RP2040 (#526)
- fixed RP2040 input change ISR macro (#526)


## [1.7.5] - 26-09-2023
Expand Down Expand Up @@ -57,6 +99,23 @@
- fixed skew compensation not accepts negative values (#472)
- fixed skew compensation error accumulation over motions (#474)

## [1.8.0-beta] - 20-07-2023

### Added

- new IO HAL that simplifies io control and calls (#443)
- added support for motion control/planner hijack. This allows to stash and restore all current buffered motions to allow execution of a completly new set of intermediate motions (#432)
- added realtime modification of step and dir bits to be executed in the fly (#447)
- added new tool for plasma THC (#447)
- added debugging parsing execution time option (#452)
- added new step/dir output condition filter that prevents motion based on condition assert (#451)
- new set of macros that allow quick custom settings prototyping (#449)

### Changed

- all analog inputs were modified from 8bit resolution to 10bit (#450)
- complete redesign of PID module and modified tools functions to make use of PID update loop (#449)

## [1.7.3] - 15-07-2023

### Changed
Expand Down Expand Up @@ -1303,9 +1362,11 @@ Version 1.1.0 comes with many added features and improvements over the previous

### Initial release

[1.8.0]: https://github.com/Paciente8159/uCNC/releases/tag/v1.8.0
[1.7.6]: https://github.com/Paciente8159/uCNC/releases/tag/v1.7.6
[1.7.5]: https://github.com/Paciente8159/uCNC/releases/tag/v1.7.5
[1.7.4]: https://github.com/Paciente8159/uCNC/releases/tag/v1.7.4
[1.8.0-beta]: https://github.com/Paciente8159/uCNC/releases/tag/v1.8.0-beta
[1.7.3]: https://github.com/Paciente8159/uCNC/releases/tag/v1.7.3
[1.7.2]: https://github.com/Paciente8159/uCNC/releases/tag/v1.7.2
[1.7.1]: https://github.com/Paciente8159/uCNC/releases/tag/v1.7.1
Expand Down
6 changes: 3 additions & 3 deletions PINOUTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ This wiring can be completely modified by the user.
| DIN10 | ENC2_DIR |
| DIN11 | ENC3_DIR |
| DIN12 | ENC4_DIR |
| DIN13 | ENC5_DIR |
| DIN14 | ENC6_DIR |
| DIN15 | ENC7_DIR |
| DIN13 | ENC5_DIR or PLASMA_ARC_OK |
| DIN14 | ENC6_DIR or PLASMA_DOWN |
| DIN15 | ENC7_DIR or PLASMA_UP |
| DIN16 | DISPLAY ENC BTN |
| DIN17 | DISPLAY ENC1 |
| DIN18 | DISPLAY ENC2 |
Expand Down
28 changes: 24 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,15 @@
To configure µCNC to fit your hardware you can use [µCNC config builder web tool](https://paciente8159.github.io/uCNC-config-builder/) to generate the config override files.
Although most of the options are configurable via the web tool, some options might be missing and you might need to add them manually (regarding tools or addon modules mostly).

# VERSION 1.7+ NOTES
# VERSION 1.8+ NOTES

Version 1.7 introduced some small but breaking changes to modules function declarations. If you are upgrading from a previous version you need to upgrade the modules also. Modules for previous versions are available in the releases section of the [µCNC-modules repository](https://github.com/Paciente8159/uCNC-modules).
Version 1.8 introduced several breaking changes from the previous version. These are:
- Tools functions declarations. This version also introduces a new IO HAL that makes io abstraction easier and more performant.
- New serial/multi-stream interface. All communications ports and extension modules (displays, SD cards, etc..) that communicate to the parser now do it via a custom serial stream implementation. Serial streams are segregated and responses are sent back to the source only instead of all ports. Some types of messages are still broadcast (like status reports, alarms and feedback messages).
- Modules now also defines HOOKs that can be used as hookable points for a single consumer function.
- There are several README documents that contain relevant information about parts of the system/HAL/modules etc. This makes it easier to keep the information up to date with each change.

With version 1.8 µCNC is becomming too large for Atmega328P (still supports it, but barelly fits). For that reason and to keep giving support for this MCU a branch of version 1.7 will be maintained with all the latest bugfixes and patches.

# IMPORTANT NOTE

Expand Down Expand Up @@ -54,7 +60,19 @@ You can also reach me at µCNC discord channel

## Current µCNC status

µCNC current major version is v1.7. You can check all the new features, changes and bug fixes in the [CHANGELOG](https://github.com/Paciente8159/uCNC/blob/master/CHANGELOG.md).
µCNC current major version is v1.8. You can check all the new features, changes and bug fixes in the [CHANGELOG](https://github.com/Paciente8159/uCNC/blob/master/CHANGELOG.md).

Version 1.8 added the following new major features.

- new IO HAL that simplifies io control and calls.
- added support for motion control/planner hijack. This allows to stash and restore all current buffered motions to allow execution of a completly new set of intermediate motions.
- added realtime modification of step and dir bits to be executed in the fly.
- added new tool for plasma THC.
- all analog inputs were modified from 8bit resolution to 10bit.
- complete redesign of PID module and modified tools functions to make use of PID update loop.
- complete redesign of serial communications to support and deal with multi-stream/origins.
- complete redesign of multi-stepper axis and self-squaring axis.
- initial support for Scara kinematics

Version 1.7 added a new major feature.

Expand Down Expand Up @@ -218,6 +236,7 @@ Currently µCNC supports the following kinematics:
- CoreXY
- Linear delta robot
- Rotary delta robot
- Scara

### µCNC roadmap

Expand All @@ -230,9 +249,10 @@ These changes are:

Future versions are in plan for:

- Add support for graphical LCD
- Add support for Web interface
- Add more GCode features and hardware modules
- Add additional kinematics
- Add HAL for new MCU

### Building µCNC

Expand Down
9 changes: 9 additions & 0 deletions dependencies.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
dependencies:
idf:
component_hash: null
source:
type: idf
version: 4.4.4
manifest_hash: dcf4d39b94252de130019eadceb989d72b0dbc26b552cfdcbb50f6da531d2b92
target: esp32
version: 1.0.0
Binary file modified docs/mcumap_gen.xlsx
Binary file not shown.
Loading

0 comments on commit f340878

Please sign in to comment.