config, fonts, gcode

This commit is contained in:
cpu
2026-05-14 23:58:10 +02:00
parent 8b21d6e710
commit 91b895a139
22 changed files with 204 additions and 34 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
fluidnc-v* fluidnc-v*
KiCad/*-backups

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -54,6 +54,7 @@
"zone_display_mode": 0 "zone_display_mode": 0
}, },
"git": { "git": {
"integration_disabled": false,
"repo_type": "", "repo_type": "",
"repo_username": "", "repo_username": "",
"ssh_key": "" "ssh_key": ""

View File

@@ -30,9 +30,9 @@
* *More info:* [wiki.fluidnc.com](http://wiki.fluidnc.com/en/hardware/existing_hardware#pibot-fluidnc-grbl-cnc-controller-v47) * *More info:* [wiki.fluidnc.com](http://wiki.fluidnc.com/en/hardware/existing_hardware#pibot-fluidnc-grbl-cnc-controller-v47)
* *Schematics/PCB:* [oshwlab.com](https://oshwlab.com/pi3d14/pibot-fluidnc-grbl-cnc-controller-v4-7a) * *Schematics/PCB:* [oshwlab.com](https://oshwlab.com/pi3d14/pibot-fluidnc-grbl-cnc-controller-v4-7a)
* **Stepper Drivers:** 3x **DM542** (Digital External Drivers). * **Stepper Drivers:** 3x **DM542** (Digital External Drivers).
* **Motors:** 3x **NEMA 23** 57BYGH76 Stepper Motors (3.0A, ~1.5Nm+ torque). * **Motors:** 3x **NEMA 23** 57BYGH76 Stepper Motors (3.0A, 1.5Nm torque).
* **Limit Sensors:** 3x **LJ12A3-4-Z/BX** (Inductive NPN NO). * **Limit Sensors:** 3x **LJ12A3-4-Z/BX** (Inductive NPN NO).
* *Note: The PiBot V4.7 features built-in 0-10V analog output and opto-isolated inputs, eliminating the need for separate converter modules and isolation boards.* * *Note: The PiBot V4.7 features built-in RS485 module and 0-10V analog output and opto-isolated inputs, eliminating the need for separate converter modules and isolation boards.*
![PiBot FluidNC GRBL Laser CNC Controller V4.7B top](images/PiBot_Board_top.jpg) ![PiBot FluidNC GRBL Laser CNC Controller V4.7B top](images/PiBot_Board_top.jpg)
![PiBot FluidNC GRBL Laser CNC Controller V4.7B bottom](images/PiBot_Board_bottom.png) ![PiBot FluidNC GRBL Laser CNC Controller V4.7B bottom](images/PiBot_Board_bottom.png)
@@ -92,7 +92,7 @@ The PiBot V4.7 uses 5V logic shifting for axis signals. The following diagram il
### D. Spindle Control (0-10V Direct) ### D. Spindle Control (0-10V Direct)
The PiBot V4.7 includes an integrated 0-10V circuit. The PiBot V4.7 includes an integrated 0-10V circuit.
**1. 0-10V Signal Connection** **Option A: 0-10V Signal Connection (5-Core Shielded Cable)**
Locate the **10V Spindle Interface** terminal on the PiBot. Locate the **10V Spindle Interface** terminal on the PiBot.
| PiBot Output | VFD Terminal | Function | | PiBot Output | VFD Terminal | Function |
@@ -103,20 +103,18 @@ Locate the **10V Spindle Interface** terminal on the PiBot.
| **out2/Rev** | **REV** | Reverse Signal | | **out2/Rev** | **REV** | Reverse Signal |
| **out common** | **DCM** | Digital Common | | **out common** | **DCM** | Digital Common |
**2. RS485 Implementation Detail (4-Core Shielded)** **Option B: RS485 Implementation Detail (2-Core Shielded Twisted Pair Cable)**
It allows for digital precision (no voltage drift), real-time RPM feedback, and the ability to monitor VFD temperature and current via the FluidNC Web UI. It allows for digital precision (no voltage drift), real-time RPM feedback, and the ability to monitor VFD temperature and current via the FluidNC Web UI.
To ensure zero-error communication at 24,000 RPM, the RS485 cable must be paired as follows: To ensure zero-error communication at 24,000 RPM, the RS485 cable must be paired as follows:
1. **Signal Pair:** [RS+] and [RS-] must share a single twisted pair to maximize differential noise cancellation. 1. **Signal Pair:** [RS+] and [RS-] must share a single twisted pair to maximize differential noise cancellation.
2. **Reference Pair:** Both wires of the remaining twisted pair are joined for [GND] to provide a stable common-mode reference between the PiBot and VFD logic. 2. **Shielding:** The drain wire/braid is connected to the VFD Earth terminal (PE) only. The PiBot side of the shield is left floating (cut and insulated) to prevent ground loops.
3. **Shielding:** The drain wire/braid is connected to the VFD Earth terminal (PE) only. The PiBot side of the shield is left floating (cut and insulated) to prevent ground loops. 3. VFD Config (Huanyang):
4. VFD Config (Huanyang):
Set PD001=2 and PD002=2 for RS485 control. Set PD001=2 and PD002=2 for RS485 control.
Set PD163=1, PD164=1, PD165=3 for 9600 baud communication. Set PD163=1, PD164=1, PD165=3 for 9600 baud communication.
5. Wiring: 4. Wiring:
PiBot [A] → VFD [RS+] PiBot [A] → VFD [RS+]
PiBot [B] → VFD [RS-] PiBot [B] → VFD [RS-]
PiBot [GND] → VFD [DCM] (If required)
Shield → VFD PE (Earth Ground screw) Shield → VFD PE (Earth Ground screw)
### E. Probe (GX12) ### E. Probe (GX12)
@@ -131,7 +129,7 @@ Shield → VFD PE (Earth Ground screw)
Proper shielding is critical to prevent EMI from the VFD from interfering with the limit sensors or stepper signals. Proper shielding is critical to prevent EMI from the VFD from interfering with the limit sensors or stepper signals.
* **Spindle:** **GX20-4** (Double shielded **TRVVP 4x1.5mm²**). *Note: High-flex, oil-resistant for drag chains.* * **Spindle:** **GX20-4** (Double shielded **TRVVP 4x1.5mm²**). *Note: High-flex, oil-resistant for drag chains.*
* **Motors:** **GX16-4** (Double shielded **RVVP 4x0.5mm²**). * **Motors:** **GX16-4** (Double shielded **TRVVP 4x0.5mm²** for moving parts and **RVVP 4x0.5mm²** for the rest).
* **Sensors/E-Stop:** **GX12-3/GX12-2** (Shielded **RVVP 0.3mm²**). * **Sensors/E-Stop:** **GX12-3/GX12-2** (Shielded **RVVP 0.3mm²**).
| TRVVP (High-Flex Drag Chain) | RVVP (Standard Shielded) | | TRVVP (High-Flex Drag Chain) | RVVP (Standard Shielded) |
@@ -146,8 +144,8 @@ Proper shielding is critical to prevent EMI from the VFD from interfering with t
2. Unzip and run: 2. Unzip and run:
```bash ```bash
./erase.sh ./erase.sh
./install-fs.sh
./install-wifi.sh ./install-wifi.sh
./install-fs.sh
``` ```
3. Use `fluidterm.sh` to set your WiFi: 3. Use `fluidterm.sh` to set your WiFi:
``` ```
@@ -190,4 +188,6 @@ For **1.5kW, 220V, 400Hz** spindle:
| **PD070** | Analog Input | **0** | **0-10V** (Standard for PiBot). | | **PD070** | Analog Input | **0** | **0-10V** (Standard for PiBot). |
| **PD072** | High Analog Freq | **400.0** | Scales the knob so "Max" = 400Hz. | | **PD072** | High Analog Freq | **400.0** | Scales the knob so "Max" = 400Hz. |
*For advanced spindle control, see [FluidNC Spindle Config Documentation](http://wiki.fluidnc.com/en/config/config_spindles).* Set the jumper **J1** to short pins **1** and **2** for using the external power supply (0-10V comming from the PiBot Controller). The onboard potentiometer will be disabled.
*For advanced spindle control, see [FluidNC Spindle Config Documentation](http://wiki.fluidnc.com/en/config/config_spindles).*

Binary file not shown.

View File

@@ -11,11 +11,11 @@ stepping:
axes: axes:
shared_stepper_disable_pin: NO_PIN shared_stepper_disable_pin: NO_PIN
x: x:
steps_per_mm: 320.000 steps_per_mm: 1000.000
max_rate_mm_per_min: 3000.000 max_rate_mm_per_min: 4000.000
acceleration_mm_per_sec2: 150.000 acceleration_mm_per_sec2: 400.000
max_travel_mm: 290.000 max_travel_mm: 230.000
soft_limits: false soft_limits: true
homing: homing:
cycle: 2 cycle: 2
positive_direction: false positive_direction: false
@@ -27,7 +27,7 @@ axes:
feed_scaler: 1.100 feed_scaler: 1.100
motor0: motor0:
limit_neg_pin: gpio.35:low limit_neg_pin: gpio.33:low
limit_pos_pin: NO_PIN limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN limit_all_pin: NO_PIN
hard_limits: false hard_limits: false
@@ -38,11 +38,11 @@ axes:
disable_pin: I2SO.0 disable_pin: I2SO.0
y: y:
steps_per_mm: 320.000 steps_per_mm: 1000.000
max_rate_mm_per_min: 3000.000 max_rate_mm_per_min: 4000.000
acceleration_mm_per_sec2: 150.000 acceleration_mm_per_sec2: 400.000
max_travel_mm: 390.000 max_travel_mm: 350.000
soft_limits: false soft_limits: true
homing: homing:
cycle: 2 cycle: 2
positive_direction: false positive_direction: false
@@ -54,7 +54,7 @@ axes:
feed_scaler: 1.100 feed_scaler: 1.100
motor0: motor0:
limit_neg_pin: gpio.34:low limit_neg_pin: gpio.32:low
limit_pos_pin: NO_PIN limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN limit_all_pin: NO_PIN
hard_limits: false hard_limits: false
@@ -65,10 +65,10 @@ axes:
disable_pin: I2SO.7 disable_pin: I2SO.7
z: z:
steps_per_mm: 320.000 steps_per_mm: 1000.000
max_rate_mm_per_min: 1500.000 max_rate_mm_per_min: 1500.000
acceleration_mm_per_sec2: 100.000 acceleration_mm_per_sec2: 50.000
max_travel_mm: 80.000 max_travel_mm: 110.000
soft_limits: false soft_limits: false
homing: homing:
cycle: 1 cycle: 1
@@ -82,13 +82,13 @@ axes:
motor0: motor0:
limit_neg_pin: NO_PIN limit_neg_pin: NO_PIN
limit_pos_pin: gpio.39:low limit_pos_pin: gpio.34:low
limit_all_pin: NO_PIN limit_all_pin: NO_PIN
hard_limits: false hard_limits: false
pulloff_mm: 1.000 pulloff_mm: 1.000
standard_stepper: standard_stepper:
step_pin: I2SO.10 step_pin: I2SO.10
direction_pin: I2SO.9 direction_pin: I2SO.9:low
disable_pin: I2SO.8 disable_pin: I2SO.8
i2so: i2so:
@@ -105,10 +105,25 @@ sdcard:
card_detect_pin: NO_PIN card_detect_pin: NO_PIN
cs_pin: gpio.5 cs_pin: gpio.5
parking:
enable: true
axis: Z
pullout_distance_mm: 5.000
pullout_rate_mm_per_min: 250.000
target_mpos_mm: -5.000
rate_mm_per_min: 800.000
#control:
# NOTE: safety_door_pin is repurposed as coolant flow monitor.
# "Door opened" status = NO COOLANT FLOW detected.
# safety_door_pin: gpio.39:high
probe: probe:
pin: gpio.33:low pin: gpio.36:low
toolsetter_pin: NO_PIN
check_mode_start: true check_mode_start: true
hard_stop: false hard_stop: false
probe_hard_limit: true
start: start:
must_home: false must_home: false
@@ -158,10 +173,10 @@ coolant:
direction_pin: NO_PIN direction_pin: NO_PIN
disable_with_s0: false disable_with_s0: false
s0_with_disable: true s0_with_disable: true
spinup_ms: 0 spinup_ms: 10000
spindown_ms: 0 spindown_ms: 10000
tool_num: 0 tool_num: 0
speed_map: 0=0% 6000=25% 24000=100% speed_map: 0=0% 0=25% 6000=25% 24000=100%
off_on_alarm: false off_on_alarm: false
# End of File # End of File

View File

@@ -0,0 +1,39 @@
(X-Axis Accel Test - RELATIVE POSITIONING)
(WARNING: Ensure you have 200mm of travel to the RIGHT of your starting point)
G21 (Set units to millimeters)
G91 (Set relative positioning mode)
(Long moves: Test acceleration up to full max speed)
G0 X200 (Move 200mm right)
G0 X-200 (Move 200mm left)
G0 X200
G0 X-200
(Medium moves)
G0 X100
G0 X-100
G0 X100
G0 X-100
(Short, aggressive back-and-forth moves to stress rotational inertia)
G0 X20
G0 X-10
G0 X20
G0 X-20
G0 X30
G0 X-30
G0 X40
G0 X-30
G0 X40
G0 X-40
G0 X50
(Return to Start Position)
(The net travel of the short moves above is +70mm)
(We must move -70mm to get exactly back to the start point)
G0 X-70
G90 (Set back to absolute positioning for normal operation)
(End of test)
M30

View File

@@ -0,0 +1,102 @@
; === Feed Rate Test — X axis, relative mode ===
; Range: 10006000 mm/min | Step: 200 mm/min
; Pass: 150mm | Return: 2000 mm/min | Pause: 2s
; DRY RUN — Z is not moved. Ensure spindle is off.
; Jog to a clear position with >155mm free on X before starting.
; ================================================
G21 ; mm units
G91 ; relative positioning
; --- Pass 12 of 26: F3200 mm/min ---
G1 X150.0 F3200
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 13 of 26: F3400 mm/min ---
G1 X150.0 F3400
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 14 of 26: F3600 mm/min ---
G1 X150.0 F3600
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 15 of 26: F3800 mm/min ---
G1 X150.0 F3800
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 16 of 26: F4000 mm/min ---
G1 X150.0 F4000
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 17 of 26: F4200 mm/min ---
G1 X150.0 F4200
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 18 of 26: F4400 mm/min ---
G1 X150.0 F4400
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 19 of 26: F4600 mm/min ---
G1 X150.0 F4600
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 20 of 26: F4800 mm/min ---
G1 X150.0 F4800
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 21 of 26: F5000 mm/min ---
G1 X150.0 F5000
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 22 of 26: F5200 mm/min ---
G1 X150.0 F5200
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 23 of 26: F5400 mm/min ---
G1 X150.0 F5400
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 24 of 26: F5600 mm/min ---
G1 X150.0 F5600
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 25 of 26: F5800 mm/min ---
G1 X150.0 F5800
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
; --- Pass 26 of 26: F6000 mm/min ---
G1 X150.0 F6000
G4 P2
G1 X-150.0 F2000 ; return
G4 P0.5 ; settle 0.5s
G90 ; restore absolute positioning
M2 ; end program

2
examples/gcode/Lavy.nc Normal file
View File

@@ -0,0 +1,2 @@
G1 X22.8 Y86.8 F1500

2
examples/gcode/Pravy.nc Normal file
View File

@@ -0,0 +1,2 @@
G1 X204.4 Y86.8 F1500

1
examples/gcode/Predny.nc Normal file
View File

@@ -0,0 +1 @@
G1 X111 Y0 F1500

2
examples/gcode/Stred.nc Normal file
View File

@@ -0,0 +1,2 @@
G1 X111 Y86.8 F1500

2
examples/gcode/Zadny.nc Normal file
View File

@@ -0,0 +1,2 @@
G1 X113.6 Y176.8 F1500

View File

@@ -0,0 +1,3 @@
G21 ; Set units to millimeters
G91 ; Set relative positioning
G1 X5 F100 ; Move X axis +5mm at feed rate 100