GithubHelp home page GithubHelp logo

paciente8159 / ucnc Goto Github PK

View Code? Open in Web Editor NEW
247.0 19.0 57.0 31.99 MB

µCNC - Universal CNC firmware for microcontrollers

Home Page: https://github.com/Paciente8159/uCNC/wiki

License: GNU General Public License v3.0

C 99.57% C++ 0.14% Makefile 0.03% Batchfile 0.01% Python 0.01% nesC 0.26%
cnc grbl linuxcnc hal arduino avr esp32 esp8266 firmware lpc1768

ucnc's People

Contributors

ademenev avatar jarney avatar jimsynz avatar lonelycorn avatar paciente8159 avatar patryk3211 avatar v1engineeringinc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ucnc's Issues

[BUG] $P report for AVR reports incorrect values for servo pins

Describe the bug
$P report for AVR reports incorrect values for servo pins

What is your hardware
Describe your hardware:

  1. AVR based board
  2. Independent
  3. Nothing

What was the GCode running
$P report for AVR reports incorrect values for servo pins. The internal mcu_get_servo function is not recalculating the servo pin correct value (in 0 to 255 range)

Screenshots
N/A

Additional context
N/A

[EN] Move TMC drivers to external module

Is your feature request related to a problem? Please describe.

  • Move TMC drivers to external module (out of the core scope)

Describe the solution you'd like
Move TMC drivers to external module (out of the core scope)

Describe your target machine hardware
All HAL

Additional context
N/A

[EN] Add I2C speed configuration function

Is your feature request related to a problem? Please describe.
Add speed configuration function to I2C. This might be required by some libraries.

Describe the solution you'd like
Add speed configuration function to I2C like in SPI.

STEP6 and STEP7 enable pins are missing from the HAL

Describe the bug
STEP6 and STEP7 enable pins are missing from the HAL

What is your hardware
This is transverse to all architectures

What was the GCode running
N/A

Screenshots
N/A

Additional context
STEP6 and STEP7 enable pins are missing. This stepper drivers configured as shadow dual axis register to switch the enable pin.

[BUG] mcu_delay_us might lead to deadlock on ARM

Describe the bug
mcu_delay_us might lead to deadlock on ARM on an atomic operation due to the millis counter dependency that works based on Systick ISR. Need to revert to Debug counter.

What is your hardware
Describe your hardware:

  1. All ARM chips

What was the GCode running
Using mcu_delay_us in atomic operations like softuart.

Additional context
N/A

Support for VFD RS485 communication

A clear and concise description of what the feature is:
Extension module (GCode, custom harware/functionality, etc)

  • Request to add support for popular chines VFD's that has RS485 communication protocol

Describe the solution you'd like
A clear and concise description of you would like to achieve and who it should work.

  • Ability to drive spindle using RS485 protocol

Describe your target machine hardware
A clear and concise description of your target machine hardware (mechanics, electronics, etc..).

[FR] Bed Mesh autoleveling support for pcb engraving

Is your feature request related to a problem? Please describe.
A clear and concise description of what the feature is:

  • Extension module - GCode and transformation

Describe the solution you'd like
If you want to engrave PCBs properly, you need to have a bed mesh as copper layer is super thin, cannot do that without having "bed mesh" and transformation it applies to gcode

Describe your target machine hardware
Every machine as it can be done with clamps to pcb + engraving tool

Additional context
Klipper, Marlin, Reprap firmwares all have this implemented

Issue with zeroing out work position.

Describe the bug
So as you know my machine has end-stops on X & Y and I have a probe which I sometimes use on Z, but most of the time I just jog the Z axis into position at hit the "Zero out work offsets" for the Z axis in CNC.js. This sends G10 L20 P1 Z0 to which µCNC returns "Unsupported command".

What is your hardware
Describe your hardware:
https://github.com/jimsynz/uCNC/tree/master/

What was the GCode running
G10 L20 P1 Z0

Additional context
So I had a look at the parser source and I see that L20 is not supported and only L2 is supported. A quick google says that they're synonyms and should both have the same behaviour. I was about to open a PR to add it when I thought I'd better test it and sent G10 L2 P1 Z0 and got back an ok however the WPos for the Z axis is still a non-zero value.

$10=0
ok
> ?
<Idle|WPos:0.000,0.000,50.000|FS:0.000,0>
ok
> $10=1
ok
> ?
<Idle|MPos:0.000,0.000,50.000|FS:0.000,0>
ok
> $10=0
ok
> ?
<Idle|WPos:0.000,0.000,50.000|FS:0.000,0>
ok
> G10 L20 P1 Z0
error:20 (Unsupported command)
> G10 L2 P1 Z0
ok
> ?
<Idle|WPos:0.000,0.000,50.000|FS:0.000,0|WCO:0.000,0.000,0.000>
ok
>

I noticed the addition of WCO:0,0,0 in the status, however if I'm understanding the G10 command it should be setting the work position, not the offset? Is that not right?

Thanks!

[BUG] Protocol message contamination with TX Sync

Describe the bug
In sync tx mode, protocol messages get contaminated with status reports.

What is your hardware
Describe your hardware:

  1. All boards

What was the GCode running
Auto report status enabled

[FR] Support RP2040 MCU

Is your feature request related to a problem? Please describe.

  • Add support for RP2040

Describe the solution you'd like
Add support for RP2040 like RPi Pico W

Describe your target machine hardware
RP2040 MCU

Additional context
N/A

Can I send a compiled F103C8T6 HEX file? Email [email protected]

Hello, I am from China, I am a cnc enthusiast, my job is a machining center master, cnc is a hobby, I used this firmware from https://github.com/robomechs/6-AXIS-USBCNC- GRBL, I saw your source code today. I downloaded the source code to the linux system, installed arm-none gcc, and used the make command to compile, but after downloading, I connected the computer through the ch340g serial port module and sent $$ without any response, and then I tried to uncomment them separately in the boardmap_bluepill.h file//Setup COM pins (must match selected COM port)
//#define RX_BIT 10
//#define TX_BIT 9
//#define RX_PORT A
//#define TX_PORT A

And //#define COM_PORT 1
//#define TX_BIT 9
//#define TX_PORT A
//#define RX_BIT 10
//#define RX_PORT A
There is no response after compiling and downloading. I don’t know much about C++ and microcontrollers. Can you send me a HEX file of F103C8T6 to [email protected], and tell me whether the communication method is serial or USB virtual serial

[FR] Implement Smoothieware S cluster

Is your feature request related to a problem? Please describe.
Implement Smoothieware S cluster to compress S commands for laser rastering.

Describe the solution you'd like
Example:
S values for each dot colon delimited up to 8 values per line.
In this case a S_value_ is given for every dot at 0.1mm spacing.

G1 Y-0.8S0.875:0:0:0:0.875:0:0:0.875
G1 Y-0.3S0:0:0.875
G1 Y-0.4S0:0:0:0.875

Describe your target machine hardware
N/A

Additional context
Laserburn Smoothie Cluster

Paid development of Rotary Delta kinematics for esp32[FR]

Is your feature request related to a problem? Please describe.
A clear and concise description of what the feature is:

  • HAL kinematics

Describe the solution you'd like
A clear and concise description of you would like to achieve and who it should work.

Describe your target machine hardware
A clear and concise description of your target machine hardware (mechanics, electronics, etc..).
Delta robot
Additional context
Add any other context or screenshots about the feature request here.

mechanical error compensation

Hi.
I build my own CNC from polymer concrete
Photo
and I have some mechanical error , search CNC control
system for software compensation.
Is possible do it with uCNC ?
3D printer marlin have Skew compensation .. Any idea?

[BUG] Some $ settings issue an error

Describe the bug
Some $ settings issue an error and are not correctly stored in EEPROM.

What is your hardware
All

What was the GCode running
For example $100 setting.

[FR] Support for laser PPI

Is your feature request related to a problem? Please describe.
A clear and concise description of what the feature is:

  • Add core support for laser PPI

Describe the solution you'd like
Implement core support for laser PPI with tight coupling with stepping pulses.

Describe your target machine hardware
All HAL

Additional context
N/A

[BUG] LPC176x USB crash at high rate GCode sending

Describe the bug
LPC176x USB crash when sending GCode at a very high rate (for example laser rastering). On UART this problem does not happen.
There may be an issue with TinyUSB.

What is your hardware
Describe your hardware:

  1. Re-ARM boards with version 1.5.1

What was the GCode running
Image laser rastering.

[BUG] Incorrect dynamic laser mode (M4) power factoring

Describe the bug
Dynamic laser power mode M4 accel/deaccel range is being calculated over the segment junction speed and not the programmed speed. This changes laser power density applied. Also causes some noticeable overburn on the extremities.

What is your hardware
N/A

Post Processor for uCNC

Hi,

I just reached this marvelous software. I am bit new in this field. Can you please guide about the post-processor of uCNC. I am using freecad.

Best regards,

Dual Y Axis (One motor is working where other is not)

Hi,

I am new in this field and I think reached to my last question. I have connected two motors on my Y-axis. In marlin firmware (on MKS Gen L V 2.1 Board = Ramps Board in pinouts (may be)), when updated for dual axis on Y axis, the machine run smoothly. However, I could not get the Y-Axis running with both the motors (though one is running and one is not) on GRBL or uCNC. Can you please guide me in this aspect.

(Edit) My second Y motor is attached to E1.

Best regards,

[EN] LPC176x migration to bare-metal

Is your feature request related to a problem? Please describe.
Migrate LPC176x code to bare-metal
Use SSP instead of SPI to gain one SPI port option

[BUG] Random acceleration issues

Describe the bug
Random ultra low homing motions or incorrect arc/splines acceleration calculations.
On multiple chained line motions the maximum acceleration would start to drop due to minimum limiting causing random ultra low motions or motions with acceleration bellow expected.

Also on motion control homing the motion control data block is not initialized properly leading to unexpected behavior.

What is your hardware
Describe your hardware:
All

Additional context
motion data max acceleration needs reset after each motion control line call.

[FR] Add support for comments started with ';'

Is your feature request related to a problem? Please describe.
Add support for comments started with ';'. Currently only supports RS274NGC commands that are delimited by '(' and ')'

[BUG] Homing issue

Describe the bug

I have noticed this issues during homing procedure:

Expected behaviour:

image

Current behaviour:

image

I does not happen every time. It's random.

What is your hardware

Arduino Uno + CNC Shield v3
uCNC 1.5.6

Settings:

$0=33.333
$3=2
$4=0
$10=1
$11=0.200
$13=0
$20=1
$23=0
$26=250
$27=4.000
$32=0
$80=1
$100=80.000
$101=144.000
$110=6000.000
$111=6000.000
$120=1000.000
$121=1000.000

What was the GCode running

$H

Additional context

My uCNC is slightly modified. I have to add a couple of lines of code. However, i don't think my changes could be related to this issues. I will try to add some datails if necessary.

[FR] Add wiring/alarm debugging option

Is your feature request related to a problem? Please describe.
Add conditional to enable some sort to wiring and alarm triggering debugging.
This would help determine the source of unexpected alarm conditions.

[FR] Add option to set PWM ports frequency

Is your feature request related to a problem? Please describe.
Add option to set PWM ports frequency. This might improve laser control response. Currently fixed at 1KHz for all hardware.

[BUG] M351 read output pins states in RAMBO

Describe the bug
M351 output read command reads pins as inputs and not as outputs

What is your hardware
AVR RAMBO

What was the GCode running
N/A

Screenshots
N/A

Additional context
N/A

[BUG] Software SPI and I2C need improvements

Describe the bug
Software SPI and I2C need better way to configure speed.
SPI library also as a bug in the delay calc.

Additional context
AVR us delay needs refactoring.
Aditional 100ns delay must be added for better precision.

[FR] Add additional support for CNC lathes

Is your feature request related to a problem? Please describe.
Add additional lathe support besides the existing G33 module.

Describe the solution you'd like
Add additional support in for G7/G8 (lathe mode), G76 and G10 L1 L10 and L11.

Describe your target machine hardware
Any CNC lathe and any board

Additional context

  • option 1: integrate in the core
  • option 2: integrate via module(s)

[EN] Move TinyUSB to external dep

Is your feature request related to a problem? Please describe.
Move TinyUSB to external dep library. Cleaner code and easier to update.

Describe the solution you'd like
Add TinyUSB as an external ArduinoIDE/PlatformIO library.

[FR] Add extra UART ports

Is your feature request related to a problem? Please describe.
Add extra UART ports to be used by the softuart lib or with Grbl TFT's

[BUG] Abrupt deacceleration at high speeds and short segments

Describe the bug
Abrupt deacceleration at high speeds and short segments. This is particularly noticeable at laser rastering.

What is your hardware
N/A

What was the GCode running
Raster test image at 100mm/s

Screenshots
N/A

Additional context
Problem seems to be located in the planner

[FR] Support external memory settings saving

Is your feature request related to a problem? Please describe.

  • Enable settings saving to external memory module

Describe the solution you'd like
Add module events to enable storing settings in external memories (for example via SD card module)

Describe your target machine hardware
All HAL

Additional context
N/A

[BUG] STM32 UART incorrect baudrate

Describe the bug
STM32 UART is set with incorrect baudrate (no USB) with option FRAMEWORK_CLOCKS_INIT enabled

What is your hardware
Describe your hardware:

  1. STM32 F1 and F4

Additional context
With FRAMEWORK_CLOCKS_INIT APB2 will run at 2x the expected speed making the UART incorrectly configured.

[BUG] Typo! procotol_send_newline

Describe the bug
The function name has an ugly typo. procotol_send_newline in protocol.c

Additional context
No additional context. Just a typo.

[FR] Support for external module GRBL settings

Is your feature request related to a problem? Please describe.

  • Add custom Grbl type settings to external modules

Describe the solution you'd like
Implement custom Grbl type settings to be used by external modules

Describe your target machine hardware
All HAL

Additional context
N/A

Compilation error

Hello,
Tried to compile for Bluepill custom configuration, get an error when I disable //#define PROBE_BIT 9 in boardmap_bluepill.h.
It says "c:/users/dst/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: .pio/build/bluepill_f103c8/src/src/hal/mcus/stm32f1x/mcu_stm32f1x.c.o: in function mcu_init': mcu_stm32f1x.c:(.text.mcu_init+0x41e): undefined reference to mcu_disable_probe_isr'".
Actually I am ok with not disable it, just reporting, Thanks for great project. Have not enough knowledge to fix it.

It is win10, vscode 1.69.0-insider, pio latest

[FR] Allow more dual axis drivers

Is your feature request related to a problem? Please describe.
Allow additional dual drive axis. If there is vacant stepper drivers allow those to be used as dual drive axis.

[BUG] No command response after M3/M4

Describe the bug
If a M3 or M4 (with laser mode disabled) is sent without any gcode running the board stops accepting gcode commands.

All hardware

What was the GCode running
None. A single M3 S10 for example locks

Screenshots

Additional context
The problem is the interpolator sync function that has condition that causes the deadlock. Needs fixing.

[BUG] Dwell is being executed out of time

Describe the bug
G4 (dwell) is being executed immediately and not on where it should in the code.

What is your hardware
All

What was the GCode running
This code will execute dwell before first motion

G90 G17 G40 G21 G54
G0 X0 Y0 F1000
G91
G1 X100
G4P5
G0 X-100
M2

[BUG] Probe fails using ISR on STM32

Describe the bug
Probing fails to stop on detection via ISR. Works ok with FORCE_SOFT_POLLING enabled

What is your hardware
Describe your hardware:
STM32 chips

[FR] Support for Graphical displays

Is your feature request related to a problem? Please describe.

  • Add new module for Graphical displays

Describe the solution you'd like
Add new module for Graphical displays. u8g2 or other middleware library might be needed.

Describe your target machine hardware
All HAL

Additional context
N/A

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.