Grbl_Esp32をメンテナンスしようとgithubを覗いたところ、後継バージョンとしてFluidNCがリリースされたことを知る。
試しにESP32-WROOM-32Dにスタンドアロンで導入してみた。
ESP32へのインストールは簡単であり、シェルを使ってデバイスを探してフラッシュしてくれる。
BT使用かWifi使用かなどでインストーラは分かれている。
$ ./erase.sh
$ ./install-wifi.sh
esptool.py --chip esp32 --baud 230400 dump_mem 0x3ff5a018 4 SecurityFuses.bin
esptool.py v3.1
Serial port /dev/cu.usbserial-2230
Connecting....
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 230400
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x00172fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 17120 bytes to 11841...
Wrote 17120 bytes (11841 compressed) at 0x00001000 in 0.7 seconds (effective 188.9 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 801.6 kbit/s)...
Hash of data verified.
Compressed 1450384 bytes to 883446...
Wrote 1450384 bytes (883446 compressed) at 0x00010000 in 39.7 seconds (effective 292.3 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 129...
Wrote 3072 bytes (129 compressed) at 0x00008000 in 0.1 seconds (effective 307.4 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Starting fluidterm
Wifi使用でインストールするとFluidNCのSSIDが現れ、振られたIPにブラウザでアクセスするとWebUIが表示された。
最初の接続時はWebUIのファイルがインストールされていないのでindex.html.gzファイルを選択して、uploadする必要がある。
マシンの設定は別途yamlファイルを作成して、WebUIよりアップロードするが、直近のGrbl_Esp32を使っていた場合、machine.hファイルをyamlに変換してくれるサービスも利用できる。
【移行例】
name: "BlueLaser Engarver"
board: "ESP32-DevKitC"
stepping:
engine: RMT
idle_ms: 250
dir_delay_us: 0
pulse_us: 2
disable_delay_us: 0
axes:
shared_stepper_disable_pin: gpio.13
x:
steps_per_mm: 42.327
max_rate_mm_per_min: 60000.000
acceleration_mm_per_sec2: 9000.000
max_travel_mm: 500
soft_limits: true
homing:
cycle: 1
positive_direction: true
mpos_mm: 500
seek_mm_per_min: 4000.000
feed_mm_per_min: 500.000
settle_ms: 250
seek_scaler: 1.2
feed_scaler: 1.2
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: gpio.2:pu
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.500
stepstick:
direction_pin: gpio.26
step_pin: gpio.12
motor1:
null_motor:
y:
steps_per_mm: 44.444
max_rate_mm_per_min: 20000.000
acceleration_mm_per_sec2: 150.000
max_travel_mm: 450
soft_limits: true
homing:
cycle: 2
positive_direction: true
mpos_mm: 450
seek_mm_per_min: 4000.000
feed_mm_per_min: 500.000
settle_ms: 250
seek_scaler: 1.2
feed_scaler: 1.2
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: gpio.4:pu
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.500
stepstick:
direction_pin: gpio.25:low
step_pin: gpio.14
motor1:
null_motor:
spi:
miso_pin: gpio.19
mosi_pin: gpio.23
sck_pin: gpio.18
coolant:
mist_pin: gpio.16:low
probe:
pin: NO_PIN
sdcard:
cs_pin: gpio.5
card_detect_pin: NO_PIN
control:
safety_door_pin: gpio.35:low
reset_pin: gpio.34:low
feed_hold_pin: gpio.36:low
cycle_start_pin: gpio.39:low
Laser:
pwm_hz: 20000
output_pin: gpio.17
enable_pin: gpio.22
disable_with_s0: false
s0_with_disable: true
tool_num: 100
speed_map: 0=0.000% 255=100.000%
github.com
wiki.fluidnc.com