[Grbl_Esp32 PR#547] Dynamically changing the mode of I2S

未分类 bolang 4个月前 (10-14) 39次浏览

Issue #547 | 状态: 已关闭 | 作者: odaki | 创建时间: 2020-08-15


The I2S stepper has two modes.
– I2S static Mode
Short (4-8 μsec) delay, little jitter
– I2S stream mode
Long (10-12 millisec) delay, no jitter

This PR is a proposed change that takes advantage of the strengths of each mode of I2S and uses them to their advantage.

In homing and probing, synchronization of sensor input and motor movement is important. So be sure to use the I2S static mode.
Normal motor movement can generate perfectly precalculated steps in normal motor movement, so use the I2S stream mode for accurate movement.
However, it is now possible to fix it to I2S static mode in the machine configuration.
#define DEFAULTSTEPPER STI2S_STATIC

In my environment, it appears to be working as intended.

Please confirm.


ets Jun 8 2016 00:22:57

rst:0x1 (POWERONRESET),boot:0x13 (SPIFASTFLASHBOOT)
configsip: 0, SPIWP:0xee
clkdrv:0x00,qdrv:0x00,ddrv:0x00,cs0drv:0x00,hddrv:0x00,wpdrv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8

[MSG:Grbl_ESP32 Ver 1.3a Date 20200815]
[MSG:Compiled with ESP32 SDK:v3.2.3-14-gd3e562907]
[MSG:Using machine:ESP32 SPI 6 Axis Driver Board Trinamic Test]
[MSG:Axis count 6]
[MSG:I2S Steps, Stream]
[MSG:Init Motors]
[MSG:X Axis Trinamic TMC2130 Step:I2SO(2) Dir:I2SO(1) CS:I2SO(3) Disable:I2SO(0) Index:-1]
[MSG:Y Axis Trinamic TMC2130 Step:I2SO(5) Dir:I2SO(4) CS:I2SO(6) Disable:I2SO(7) Index:-1]
[MSG:Z Axis Trinamic TMC2130 Step:I2SO(10) Dir:I2SO(9) CS:I2SO(11) Disable:I2SO(8) Index:-1]
[MSG:A Axis Trinamic TMC2130 Step:I2SO(13) Dir:I2SO(12) CS:I2SO(14) Disable:I2SO(15) Index:-1]
[MSG:B Axis Trinamic TMC2130 Step:I2SO(18) Dir:I2SO(17) CS:I2SO(19) Disable:I2SO(16) Index:-1]
[MSG:C Axis Trinamic TMC2130 Step:I2SO(21) Dir:I2SO(20) CS:I2SO(22) Disable:I2SO(23) Index:-1]
[MSG:X Trinamic driver test passed]
[MSG:Y Trinamic driver test passed]
[MSG:Z Trinamic driver test passed]
[MSG:A Trinamic driver test passed]
[MSG:B Trinamic driver test passed]
[MSG:C Trinamic driver test passed]
[MSG:TMCStepper Library Ver. 0x000701]
[MSG:Relay spindle Output:GPIO(26), Enbl:None, Dir:None]

[MSG:Local access point GRBL_ESP started, 192.168.0.1]
[MSG:Captive Portal Started]
[MSG:HTTP Started]
[MSG:TELNET Started 23]
[MSG:Probe on pin GPIO(25) Inverted:Y]

Grbl 1.3a ['$' for help]
[MSG:'$H'|'$X' to unlock]
$H
ok
ok
g38.2 x10 f50
[PRB:-0.011,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.011,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.011,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
$S
$Sta/SSID=GRBL_ESP
$Sta/Password=
$Sta/IPMode=DHCP
$Sta/IP=0.0.0.0
$Sta/Gateway=0.0.0.0
$Sta/Netmask=0.0.0.0
$AP/SSID=GRBL_ESP
$AP/Password=
$AP/IP=192.168.0.1
$AP/Channel=1
$System/Hostname=grblesp
$Http/Enable=ON
$Http/Port=80
$Telnet/Enable=ON
$Telnet/Port=23
$Radio/Mode=AP
$Bluetooth/Name=btgrblesp
$Notification/Type=NONE
$Notification/T1=
$Notification/T2=
$Notification/TS=
$Report/StallGuard=
$Spindle/Type=RELAY
$Stepper/Pulse=4
$Stepper/IdleTime=250
$Stepper/StepInvert=
$Stepper/DirInvert=Y
$Stepper/EnableInvert=Off
$Limits/Invert=On
$Probe/Invert=On
$Report/Status=1
$GCode/JunctionDeviation=0.010
$GCode/ArcTolerance=0.002
$Report/Inches=Off
$Limits/Soft=Off
$Limits/Hard=Off
$Homing/Enable=On
$Homing/DirInvert=
$Homing/Feed=200.000
$Homing/Seek=1000.000
$Homing/Debounce=250.000
$Homing/Pulloff=3.000
$GCode/MaxS=1000.000
$GCode/MinS=0.000
$GCode/LaserMode=Off
$GCode/Line1=
$GCode/Line0=
$Spindle/Enable/Invert=Off
$Spindle/Enable/OffWithSpeed=Off
$Spindle/Delay/SpinDown=0.000
$Spindle/Delay/SpinUp=0.000
$Spindle/PWM/Invert=Off
$Spindle/PWM/Frequency=5000.000
$Spindle/PWM/Off=0.000
$Spindle/PWM/Min=0.000
$Spindle/PWM/Max=100.000
$X/StepsPerMm=88.889
$Y/StepsPerMm=77.037
$Z/StepsPerMm=100.000
$A/StepsPerMm=100.000
$B/StepsPerMm=100.000
$C/StepsPerMm=100.000
$X/MaxRate=5000.000
$Y/MaxRate=15000.000
$Z/MaxRate=3000.000
$A/MaxRate=1000.000
$B/MaxRate=1000.000
$C/MaxRate=1000.000
$X/Acceleration=200.000
$Y/Acceleration=200.000
$Z/Acceleration=50.000
$A/Acceleration=200.000
$B/Acceleration=200.000
$C/Acceleration=200.000
$X/MaxTravel=50.000
$Y/MaxTravel=300.000
$Z/MaxTravel=100.000
$A/MaxTravel=300.000
$B/MaxTravel=300.000
$C/MaxTravel=300.000
$X/Current/Run=0.250
$Y/Current/Run=0.250
$Z/Current/Run=0.250
$A/Current/Run=0.250
$B/Current/Run=0.250
$C/Current/Run=0.250
$X/Current/Hold=0.125
$Y/Current/Hold=0.125
$Z/Current/Hold=0.125
$A/Current/Hold=0.125
$B/Current/Hold=0.125
$C/Current/Hold=0.125
$X/Microsteps=16
$Y/Microsteps=16
$Z/Microsteps=16
$A/Microsteps=16
$B/Microsteps=16
$C/Microsteps=16
$X/StallGuard=16
$Y/StallGuard=16
$Z/StallGuard=16
$A/StallGuard=16
$B/StallGuard=16
$C/StallGuard=16
ok
ok


评论 (8)

#1 – odaki 于 2020-08-15

The use of I2S as an expander requires a definition.
C++
#define USEI2SOUT
`

The use of I2S as a stepper requires additional definitions.
`C++
#define USEI2SSTEPS
`

If you want to always use I2S static, you need an additional define. (Optional.)
`C++
#define DEFAULTSTEPPER STI2S_STATIC
`

This is the machine file for my test environment:
i2soutxyzabctrinamictest.h
` C++
#pragma once
// clang-format off

/*
i2soutxyzabctrinamictest.h
Part of Grbl_ESP32
Pin assignments for the ESP32 SPI 6-axis board
2018 - Bart Dring
2020 - Mitch Bradley
2020 - Michiyasu Odaki
Grbl_ESP32 is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Grbl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Grbl_ESP32. If not, see .
*/
#define MACHINE_NAME "ESP32 SPI 6 Axis Driver Board Trinamic Test"

#ifdef N_AXIS
#undef N_AXIS
#endif
#define N_AXIS 6

// === Special Features

// I2S (steppers & other output-only pins)
#define USEI2SOUT
#define USEI2SSTEPS
//#define DEFAULTSTEPPER STI2S_STATIC

#define I2SOUTBCK GPIONUM22
#define I2SOUTWS GPIONUM17
#define I2SOUTDATA GPIONUM21

#define TRINAMICRUNMODE TRINAMICMODECOOLSTEP
#define TRINAMICHOMINGMODE TRINAMICMODECOOLSTEP

#define XTRINAMICDRIVER 2130
#define XDISABLEPIN I2SO(0)
#define XDIRECTIONPIN I2SO(1)
#define XSTEPPIN I2SO(2)
#define XCSPIN I2SO(3)
#define XRSENSE TMC2130RSENSE_DEFAULT

#define YTRINAMICDRIVER 2130
#define YDIRECTIONPIN I2SO(4)
#define YSTEPPIN I2SO(5)
#define YDISABLEPIN I2SO(7)
#define YCSPIN I2SO(6)
#define YRSENSE XRSENSE

#define ZTRINAMICDRIVER 2130
#define ZDISABLEPIN I2SO(8)
#define ZDIRECTIONPIN I2SO(9)
#define ZSTEPPIN I2SO(10)
#define ZCSPIN I2SO(11)
#define ZRSENSE XRSENSE

#define ATRINAMICDRIVER 2130
#define ADIRECTIONPIN I2SO(12)
#define ASTEPPIN I2SO(13)
#define ADISABLEPIN I2SO(15)
#define ACSPIN I2SO(14)
#define ARSENSE XRSENSE

#define BTRINAMICDRIVER 2130
#define BDISABLEPIN I2SO(16)
#define BDIRECTIONPIN I2SO(17)
#define BSTEPPIN I2SO(18)
#define BCSPIN I2SO(19)
#define BRSENSE XRSENSE

#define CTRINAMICDRIVER 2130
#define CDIRECTIONPIN I2SO(20)
#define CSTEPPIN I2SO(21)
#define CDISABLEPIN I2SO(23)
#define CCSPIN I2SO(22)
#define CRSENSE XRSENSE

/*
#define SPINDLETYPE SPINDLETYPE_PWM // only one spindle at a time
#define SPINDLEOUTPUTPIN GPIONUM26
#define SPINDLEENABLEPIN GPIONUM4
#define SPINDLEDIRPIN GPIONUM16
*/
#define XLIMITPIN GPIONUM33
#define YLIMITPIN GPIONUM32
#define ZLIMITPIN GPIONUM35
#define ALIMITPIN GPIONUM34
#define BLIMITPIN GPIONUM39
#define CLIMITPIN GPIONUM36

#define SPINDLETYPE SPINDLETYPE_RELAY
#define SPINDLEOUTPUTPIN GPIONUM26

#define PROBEPIN GPIONUM_25

#define COOLANTMISTPIN GPIONUM2

// === Default settings
#define DEFAULTSTEPPULSEMICROSECONDS I2SOUTUSECPER_PULSE

// redefine some stuff from config.h
#ifdef HOMINGCYCLE0
#undef HOMINGCYCLE0
#endif
#define HOMINGCYCLE0 bit(X_AXIS) // this 'bot only homes the X axis
#ifdef HOMINGCYCLE1
#undef HOMINGCYCLE1
#endif
#ifdef HOMINGCYCLE2
#undef HOMINGCYCLE2
#endif

#define DEFAULTSTEPPINGINVERTMASK 0 // uint8t
#define DEFAULTDIRECTIONINVERTMASK 2 // uint8t
#define DEFAULTINVERTST_ENABLE 0 // boolean
#define DEFAULTINVERTLIMIT_PINS 1 // boolean
#define DEFAULTINVERTPROBE_PIN 1 // boolean

#define DEFAULTHOMINGENABLE 1
#define DEFAULTHOMINGDIR_MASK 0 // move positive dir Z, negative X,Y
#define DEFAULTHOMINGFEED_RATE 200.0 // mm/min
#define DEFAULTHOMINGSEEK_RATE 1000.0 // mm/min
#define DEFAULTHOMINGDEBOUNCE_DELAY 250 // msec (0-65k)
#define DEFAULTHOMINGPULLOFF 3.0 // mm

#define DEFAULTXSTEPSPERMM 88.889
#define DEFAULTYSTEPSPERMM 77.037
#define DEFAULTZSTEPSPERMM 100.0 // This is percent in servo mode

#define DEFAULTXMAX_RATE 5000.0 // mm/min
#define DEFAULTYMAX_RATE 15000.0 // mm/min
#define DEFAULTZMAX_RATE 3000.0 // mm/min

#define DEFAULTXACCELERATION 200.0 // mm/sec^2. 200 mm/sec^2 = 720000 mm/min^2
#define DEFAULTYACCELERATION 200.0 // mm/sec^2
#define DEFAULTZACCELERATION 50.0 // mm/sec^2

#define DEFAULTXMAX_TRAVEL 50.0 // mm NOTE: Must be a positive value.
#define DEFAULTYMAX_TRAVEL 300.0 // mm NOTE: Must be a positive value.
#define DEFAULTZMAX_TRAVEL 100.0 // This is percent in servo mode


#2 – odaki 于 2020-08-15

Here’s a video recording of the $HX test.
https://www.youtube.com/watch?v=rzMAQWMS4AI


#3 – odaki 于 2020-08-16

I’m experimenting with the limitations of I2S static.
For I2S streams, 25,000 steps/s is no problem.
But with I2S static, the limit is about 8,333 steps/s, and at 10,000 steps/s the motor seems to stall.
I will investigate a little more.

I2S stream

I2S static
https://www.youtube.com/watch?v=4on43IB1uCM


#4 – odaki 于 2020-08-16

Sorry, the problem with the wrong high-rate step in I2S static was a bug specific to this PR.
In I2S static, the processing of pulse off was disabled by a wrong ifdef.
(The duration of the pulse is unreasonably long.)

Before fix:
!I2Sstaticbug

After fix:
!I2Sstaticfix


#5 – odaki 于 2020-08-16

Test results:

Video

Log

rst:0x1 (POWERONRESET),boot:0x13 (SPIFASTFLASHBOOT)
configsip: 0, SPIWP:0xee
clkdrv:0x00,qdrv:0x00,ddrv:0x00,cs0drv:0x00,hddrv:0x00,wpdrv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8

[MSG:Grbl_ESP32 Ver 1.3a Date 20200815]
[MSG:Compiled with ESP32 SDK:v3.2.3-14-gd3e562907]
[MSG:Using machine:ESP32 SPI 6 Axis Driver Board Trinamic Test]
[MSG:Axis count 6]
[MSG:I2S Steps, Static]
[MSG:Init Motors]
[MSG:X Axis Trinamic TMC2130 Step:I2SO(2) Dir:I2SO(1) CS:I2SO(3) Disable:I2SO(0) Index:-1]
[MSG:Y Axis Trinamic TMC2130 Step:I2SO(5) Dir:I2SO(4) CS:I2SO(6) Disable:I2SO(7) Index:-1]
[MSG:Z Axis Trinamic TMC2130 Step:I2SO(10) Dir:I2SO(9) CS:I2SO(11) Disable:I2SO(8) Index:-1]
[MSG:A Axis Trinamic TMC2130 Step:I2SO(13) Dir:I2SO(12) CS:I2SO(14) Disable:I2SO(15) Index:-1]
[MSG:B Axis Trinamic TMC2130 Step:I2SO(18) Dir:I2SO(17) CS:I2SO(19) Disable:I2SO(16) Index:-1]
[MSG:C Axis Trinamic TMC2130 Step:I2SO(21) Dir:I2SO(20) CS:I2SO(22) Disable:I2SO(23) Index:-1]
[MSG:X Trinamic driver test passed]
[MSG:Y Trinamic driver test passed]
[MSG:Z Trinamic driver test passed]
[MSG:A Trinamic driver test passed]
[MSG:B Trinamic driver test passed]
[MSG:C Trinamic driver test passed]
[MSG:TMCStepper Library Ver. 0x000701]
[MSG:Relay spindle Output:GPIO(26), Enbl:None, Dir:None]

[MSG:Local access point GRBL_ESP started, 192.168.0.1]
[MSG:Captive Portal Started]
[MSG:HTTP Started]
[MSG:TELNET Started 23]
[MSG:Probe on pin GPIO(25) Inverted:Y]

Grbl 1.3a ['$' for help]
[MSG:'$H'|'$X' to unlock]
$X
[MSG:Caution: Unlocked]
ok
ok
g0x1000
ok
ok
$X/MaxRate
$X/MaxRate=15000.000
ok
ok

Logic analyzer
!スクリーンショット 2020-08-16 12 11 44


#6 – odaki 于 2020-08-16

The current pulse interval of the I2S stream is adjusted using the adhoc value so that the timing is similar to that of a normal interrupt processing stepper.
To take full advantage of the benefits of I2S stream, the compatibility adjustment value for the overhead of a few microseconds each present in the timer interrupt has been removed and modified to accurately time the steps.
The I2S stream has no overhead related to timer processing, so the overall step time is a bit shorter.

Settings:

$X/StepsPerMm=100.000
$X/MaxRate=15000.000
$X/Acceleration=200.000
`

G-Code:
G0 X500` (50,000 steps)

Overall:
!スクリーンショット 2020-08-16 15 38 20

Zoom:
!I2Stimingcompare


#7 – odaki 于 2020-08-16

Homing and Probing test results. It appears to be normal.

I2S stream (dynamic switching)

ets Jun 8 2016 00:22:57

rst:0x1 (POWERONRESET),boot:0x13 (SPIFASTFLASHBOOT)
configsip: 0, SPIWP:0xee
clkdrv:0x00,qdrv:0x00,ddrv:0x00,cs0drv:0x00,hddrv:0x00,wpdrv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8

[MSG:Grbl_ESP32 Ver 1.3a Date 20200815]
[MSG:Compiled with ESP32 SDK:v3.2.3-14-gd3e562907]
[MSG:Using machine:ESP32 SPI 6 Axis Driver Board Trinamic Test]
[MSG:Axis count 6]
[MSG:I2S Steps, Stream]
[MSG:Init Motors]
[MSG:X Axis Trinamic TMC2130 Step:I2SO(2) Dir:I2SO(1) CS:I2SO(3) Disable:I2SO(0) Index:-1]
[MSG:Y Axis Trinamic TMC2130 Step:I2SO(5) Dir:I2SO(4) CS:I2SO(6) Disable:I2SO(7) Index:-1]
[MSG:Z Axis Trinamic TMC2130 Step:I2SO(10) Dir:I2SO(9) CS:I2SO(11) Disable:I2SO(8) Index:-1]
[MSG:A Axis Trinamic TMC2130 Step:I2SO(13) Dir:I2SO(12) CS:I2SO(14) Disable:I2SO(15) Index:-1]
[MSG:B Axis Trinamic TMC2130 Step:I2SO(18) Dir:I2SO(17) CS:I2SO(19) Disable:I2SO(16) Index:-1]
[MSG:C Axis Trinamic TMC2130 Step:I2SO(21) Dir:I2SO(20) CS:I2SO(22) Disable:I2SO(23) Index:-1]
[MSG:X Trinamic driver test passed]
[MSG:Y Trinamic driver test passed]
[MSG:Z Trinamic driver test passed]
[MSG:A Trinamic driver test passed]
[MSG:B Trinamic driver test passed]
[MSG:C Trinamic driver test passed]
[MSG:TMCStepper Library Ver. 0x000701]
[MSG:Relay spindle Output:GPIO(26), Enbl:None, Dir:None]

[MSG:Local access point GRBL_ESP started, 192.168.0.1]
[MSG:Captive Portal Started]
[MSG:HTTP Started]
[MSG:TELNET Started 23]
[MSG:Probe on pin GPIO(25) Inverted:Y]

Grbl 1.3a ['$' for help]
[MSG:'$H'|'$X' to unlock]
$H
ok
ok
$H
ok
ok
g38.2 x10 f50
[PRB:-0.010,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.020,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.020,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.010,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.010,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.010,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.010,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.010,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
`

I2S static (always static):
`
rst:0x1 (POWERONRESET),boot:0x13 (SPIFASTFLASHBOOT)
configsip: 0, SPIWP:0xee
clkdrv:0x00,qdrv:0x00,ddrv:0x00,cs0drv:0x00,hddrv:0x00,wpdrv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8

[MSG:Grbl_ESP32 Ver 1.3a Date 20200815]
[MSG:Compiled with ESP32 SDK:v3.2.3-14-gd3e562907]
[MSG:Using machine:ESP32 SPI 6 Axis Driver Board Trinamic Test]
[MSG:Axis count 6]
[MSG:I2S Steps, Static]
[MSG:Init Motors]
[MSG:X Axis Trinamic TMC2130 Step:I2SO(2) Dir:I2SO(1) CS:I2SO(3) Disable:I2SO(0) Index:-1]
[MSG:Y Axis Trinamic TMC2130 Step:I2SO(5) Dir:I2SO(4) CS:I2SO(6) Disable:I2SO(7) Index:-1]
[MSG:Z Axis Trinamic TMC2130 Step:I2SO(10) Dir:I2SO(9) CS:I2SO(11) Disable:I2SO(8) Index:-1]
[MSG:A Axis Trinamic TMC2130 Step:I2SO(13) Dir:I2SO(12) CS:I2SO(14) Disable:I2SO(15) Index:-1]
[MSG:B Axis Trinamic TMC2130 Step:I2SO(18) Dir:I2SO(17) CS:I2SO(19) Disable:I2SO(16) Index:-1]
[MSG:C Axis Trinamic TMC2130 Step:I2SO(21) Dir:I2SO(20) CS:I2SO(22) Disable:I2SO(23) Index:-1]
[MSG:X Trinamic driver test passed]
[MSG:Y Trinamic driver test passed]
[MSG:Z Trinamic driver test passed]
[MSG:A Trinamic driver test passed]
[MSG:B Trinamic driver test passed]
[MSG:C Trinamic driver test passed]
[MSG:TMCStepper Library Ver. 0x000701]
[MSG:Relay spindle Output:GPIO(26), Enbl:None, Dir:None]

[MSG:Local access point GRBL_ESP started, 192.168.0.1]
[MSG:Captive Portal Started]
[MSG:HTTP Started]
[MSG:TELNET Started 23]
[MSG:Probe on pin GPIO(25) Inverted:Y]

Grbl 1.3a ['$' for help]
[MSG:'$H'|'$X' to unlock]
$H
ok
ok
?
g38.2 x10 f50
[PRB:-0.010,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.010,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
g38.2 x10 f50
[PRB:-0.010,0.000,0.000,0.000,0.000,0.000:1]
ok
ok
g0x-3
ok
ok
?
g38.2 x10 f50
[PRB:-0.010,0.000,0.000,0.000,0.000,0.000:1]
ok
ok


#8 – odaki 于 2020-09-20

A bug found.
Please refer to the PR 608
https://github.com/bdring/Grbl_Esp32/pull/608


原始Issue: https://github.com/bdring/Grbl_Esp32/pull/547

喜欢 (0)