Comments (13)
The minimum number of axes is 3, because the Grbl GCode parser always supports X Y and Z words. You can use null_motor: for unusable axes.
We have a conversion program that will take a Grbl_Esp32 machine.h config file and turn it into a FluidNC config file. We are still working on some rough edges for the user interface, but it seems to work pretty well at the core. You can use it to convert your existing Grbl_Esp32 machine config to FluidNC.
Go to https://github.com/marsjo/test/issues . Click on the green "New Issue" button. Use the title "translate machine file". Make a copy of your Grbl_Esp32 machine file and change the extension from ".h" to ".txt". Attach the file to the issue and click "Submit new issue". After a few minutes, the FluidNC config file will appear as a new comment on the issue.
from fluidnc.
Finally i've managed it, but can't tell, what i made different...
Now I'm using v3.2.8 and my esp is, as i wrote before, directly connected to dm556-drivers. So i thought its time to get a z-axis and a switch for homing/probing - i wired it up for testing and everything worked (both, home & probe, use the same switch on different gpio-pins, altough i'm not sure if this is ok...) . This is where it gets mysterious - i took a longer cable (2m) and tried again and got a lot of strange things happen. So i decided to use the switch (Makerbot endstop) only for one purpose by changing the gpio pin.
I can home with this setup, but when i try to probe (G38.2 Z-100 F100 / same cable, same switch) it only moves 1 millimeter and tells me:
[MSG: INFO: FOUND]
[PRB:0.000,0.000,-1.042:1]
and stops, but didn't reach the trigger...
When i go back to the short cables it works, even with both gpios connected?! But the thing i can't understand, why it can perform one operation and not the other?
Here is my config.yaml:
`name: "ESP32 DM556 Plasma 3 Axis"
board: "ESP32 Dev Controller V4"
stepping:
engine: RMT
idle_ms: 250
dir_delay_us: 0
pulse_us: 4
disable_delay_us: 0
axes:
shared_stepper_disable_pin: gpio.25:high
x:
steps_per_mm: 62.706
max_rate_mm_per_min: 2000
acceleration_mm_per_sec2: 25
max_travel_mm: 1000
homing:
cycle: 2
mpos_mm: 10
positive_direction: false
motor0:
limit_neg_pin: gpio.17:low:pu
hard_limits: true
#limit_all_pin: gpio.17:low:pu
standard_stepper:
direction_pin: gpio.14:low
step_pin: gpio.12:low
motor1:
null_motor:
y:
steps_per_mm: 62.710
max_rate_mm_per_min: 2000
acceleration_mm_per_sec2: 25
max_travel_mm: 1000
homing:
cycle: 3
mpos_mm: 10
positive_direction: false
motor0:
limit_neg_pin: gpio.4:low:pu
#limit_all_pin: gpio.4:low:pu
standard_stepper:
direction_pin: gpio.27:low
step_pin: gpio.26:low
motor1:
null_motor:
z:
steps_per_mm: 48.953
max_rate_mm_per_min: 2000
acceleration_mm_per_sec2: 25
max_travel_mm: 1000
homing:
cycle: 2
mpos_mm: 10
positive_direction: false
pulloff_mm: 5.0
motor0:
limit_neg_pin: gpio.5:low:pu
standard_stepper:
direction_pin: gpio.18:low
step_pin: gpio.19:low
motor1:
null_motor:
probe:
pin: gpio.21:low:pu
check_mode_start: true
PWM:
pwm_hz: 5000
output_pin: gpio.16
enable_pin: gpio.33
direction_pin: NO_PIN
disable_with_s0: false
s0_with_disable: true
spinup_ms: 0
spindown_ms: 0
tool_num: 0
speed_map: 0=0% 10000=100%`
from fluidnc.
Maybe the probe is already active.
Before probing, send the ? character to see the status. You should not see probe as on.
<Run|MPos:351.154,0.000,-135.983,10.477|FS:1200,0|Pn:P>
You do not want to see a 'P' in the Pn: section. Pn: section will only be there if some switch is active.
from fluidnc.
Using the same switch for two pins is not a supported configuration. It might work and it might not. The problems you are having sound to me like there is either insufficient pull-up current or insufficient capacitive noise filtering or both. The internal pullup resistors in an ESP32 are quite weak with poorly controlled resistance. They are not adequate for cables that go off-board. When you used two pins for the same switch, that had the effect of putting two internal pullup resistors in parallel, halving the resistance and thus making the circuit less susceptible to external noise.
The right way to do it is to use external pullup resistors with noise filtering. You might be able to get away with external resistors plus capacitors, but it would be even better to use optical isolation with schmitt trigger buffers, as is done with Bart's 4x Opto Input Module . Plasma arcs can generate substantial electrical noise.
from fluidnc.
Thanks a lot - i made it. As you mentioned the pullup was to weak, even a external one, so i use a optocouplerboard and run the switches with 12v...
Is there a propper way to use one switch for home x and probing? Or is it possible to disable $HZ? I know, if i set homing cycle to 0 it won't home by using $H but if anybody uses the $HZ shortcut/button wich is present in most interfaces it will crash without a switch...
from fluidnc.
There is no good way to disable $HZ.
We have been talking about having a setting to disable single axis homing, like Grbl has.
Another way we could do it is to check to see if no switches are defined. We would need to account for special motors that do not use switches to home, like RC Servos.
from fluidnc.
Another alternative is to have a homing cycle of -1 designate the axis as not to be homed. 0 would mean it is not part of $H.
from fluidnc.
I would make "not homed" be the default, and omit the homing_cycle: key. It could be represented internally as -1.
from fluidnc.
I am not sure it works. There is also the case where it should have a homing cycle in $H, but $H is not allowed.
from fluidnc.
I will create a ticket.
from fluidnc.
would be nice to have this feature , but for now i'm happy, everything seems to work ... so i can take it back from the desktopt to the workshop and "play" ... tanks again!
from fluidnc.
I have given this a bit of thought and I think the only clean solution is to add a new item to the config file on each axis. It would be more self documenting and easier to read. Not sure about the name. Here is the old config.h version
#define HOMING_SINGLE_AXIS_COMMANDS
homing:
cycle: 1
allow_single_axis: true
positive_direction: true
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 800.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
from fluidnc.
Created a test branch
from fluidnc.
Related Issues (20)
- Web interface bug HOT 2
- Problem: Failed to communicate with FW! HOT 4
- OTA update to v3.7.15 failed at 36%, threw an error in the WebUI. Rebooting then failed. HOT 14
- Problem: MKS DLC32 v2.1 error rst:0x10 (RTCWDT_RTC_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT) HOT 9
- Can't implement shared_fault_pin HOT 8
- Problem: v3.7.15 WiFi failed:406 wrong data HOT 4
- Probe no more working after 3.7.13 Upgrade HOT 14
- Problem: Fallback web page fails with 3.7.15 HOT 2
- Problem: Issues with uploading *.yaml to FluidNC (latest version) HOT 13
- Feature: Folinn BD600 class in "Spindles" for RS485 support HOT 1
- Problem: Fluidnc seems to respond to a jog command with the jog command itself on additional uart HOT 7
- What is the size of serial Buffer ? HOT 2
- Problem: M5 will still report a spindle speed HOT 1
- Problem: Inverting probe pin stopped working after 3.7.12 HOT 12
- Problem: Random homing fail from 3.7.7 onwards HOT 9
- Problem: fluidterm Command cannot be entered HOT 1
- Problem:" $Files/ListGcode error" codes in response UART 1 & 2 HOT 2
- Fluid Dial only ever shows NC when connected to a 6-Pack Board HOT 31
- MKS DLC32, PWM Spindle runs for a second on board reset. HOT 2
- Probe not working on 6x board or Wemos D1 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fluidnc.