Kaynağa Gözat

speed and acc limit implemented

and quickly tested
Etienne Landon 7 yıl önce
ebeveyn
işleme
2e171518a3
2 değiştirilmiş dosya ile 128 ekleme ve 106 silme
  1. 26 20
      OSCstepperCtl.pd
  2. 102 86
      kostepper.pd

+ 26 - 20
OSCstepperCtl.pd

@@ -1,4 +1,4 @@
-#N canvas 952 55 958 984 10;
+#N canvas 537 200 1131 703 10;
 #N canvas 157 186 817 472 SerialOSC 0;
 #X obj 99 6 inlet;
 #X obj 99 362 outlet;
@@ -56,7 +56,7 @@ verbose 1 \, retries 0;
 #X obj 362 51 cnv 20 22 60 empty serialSend S 4 12 0 20 -233017 -233017
 0;
 #X obj 362 81 cnv 20 22 30 empty serialReceive R 4 12 0 20 -233017
--128992 0;
+-233017 0;
 #X obj 99 78 t a b;
 #N canvas 1 55 450 300 serialSendGUI 0;
 #X obj 70 23 inlet;
@@ -124,14 +124,14 @@ verbose 1 \, retries 0;
 #X connect 36 0 10 0;
 #X connect 36 1 37 0;
 #X coords 0 -1 1 1 85 61 1 300 50;
-#X restore 747 137 pd SerialOSC;
-#X obj 723 491 print OSCin;
-#X obj 721 357 r /fromOSC;
-#X obj 721 379 t a a;
-#X obj 721 470 spigot;
-#X msg 753 405 \$1;
-#X obj 753 427 == 3;
-#X msg 749 112 /home;
+#X restore 723 46 pd SerialOSC;
+#X obj 756 540 print OSCin;
+#X obj 754 406 r /fromOSC;
+#X obj 754 428 t a a;
+#X obj 754 519 spigot;
+#X msg 786 454 \$1;
+#X obj 786 476 == 3;
+#X msg 725 21 /home;
 #N canvas 212 557 792 428 syncControl 0;
 #X floatatom 42 268 5 0 0 0 - - -, f 5;
 #X floatatom 218 275 5 0 0 0 - - -, f 5;
@@ -140,13 +140,13 @@ verbose 1 \, retries 0;
 #X obj 23 300 t f f;
 #X obj 23 341 abs;
 #X obj 23 362 s /stepper/0/manualSpeed;
-#X obj 123 309 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#X obj 123 309 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
 1;
 #X obj 70 317 > 0;
 #X obj 70 338 s /stepper/0/manualDirection;
 #X obj 242 305 t f f;
 #X obj 242 346 abs;
-#X obj 342 314 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#X obj 342 314 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
 1;
 #X obj 289 322 > 0;
 #X obj 289 343 s /stepper/1/manualDirection;
@@ -195,20 +195,18 @@ bang;
 #X connect 24 0 25 0;
 #X connect 27 0 29 0;
 #X coords 0 -1 1 1 400 250 1 10 10;
-#X restore 157 714 pd syncControl;
-#X obj 12 13 kostepper 0;
-#X obj 12 362 kostepper 1;
-#N canvas 4 354 637 633 settings 0;
+#X restore 721 117 pd syncControl;
+#N canvas 417 245 901 633 settings 0;
 #X obj 100 100 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
 -1 -1;
 #X obj 100 178 text define -k settings;
-#A set accLimit 1.5 \; speedLimit 1 \; microstepping 4 \; serialDevice
+#A set accLimit 3 \; speedLimit 10 \; microstepping 4 \; serialDevice
 /dev/ttyACM0 \;;
 #X msg 100 150 click;
 #X obj 417 249 r accLimit;
 #X floatatom 417 270 5 0 0 0 - - -, f 5;
-#X floatatom 405 350 5 0 0 0 - - -, f 5;
-#X obj 405 329 r speedLimit;
+#X floatatom 531 206 5 0 0 0 - - -, f 5;
+#X obj 531 185 r speedLimit;
 #X floatatom 410 413 5 0 0 0 - - -, f 5;
 #X obj 410 392 r microstepping;
 #X symbolatom 407 492 40 0 0 0 - - -, f 40;
@@ -227,12 +225,18 @@ bang;
 -1 -1;
 #X text 118 114 reload;
 #X msg 258 77 read ./settings;
+#X msg 530 239 \; /stepper/0/speedLimit \$1 \; /stepper/1/speedLimit
+\$1 \;;
+#X msg 550 408 \; /stepper/0/accLimit \$1 \; /stepper/1/accLimit \$1
+\;;
 #X connect 0 0 2 0;
 #X connect 1 1 16 0;
 #X connect 1 1 10 0;
 #X connect 2 0 1 0;
 #X connect 3 0 4 0;
+#X connect 3 0 23 0;
 #X connect 6 0 5 0;
+#X connect 6 0 22 0;
 #X connect 8 0 7 0;
 #X connect 10 0 11 0;
 #X connect 11 0 13 0;
@@ -246,7 +250,9 @@ bang;
 #X connect 19 0 18 0;
 #X connect 21 0 1 0;
 #X coords 0 -1 1 1 85 30 1 100 100;
-#X restore 776 67 pd settings;
+#X restore 812 47 pd settings;
+#X obj 12 362 kostepper 1;
+#X obj 12 13 kostepper 0;
 #X connect 2 0 3 0;
 #X connect 3 0 4 0;
 #X connect 3 1 5 0;

+ 102 - 86
kostepper.pd

@@ -1,4 +1,4 @@
-#N canvas 296 114 871 626 10;
+#N canvas 224 55 871 626 10;
 #X obj 85 172 cnv 15 130 200 empty empty Status 2 8 0 14 -233017 -128992
 0;
 #X obj 85 377 cnv 15 130 100 empty empty MANUEL 2 8 0 14 -233017 -128992
@@ -53,11 +53,11 @@
 #X connect 11 0 6 0;
 #X restore 65 96 pd conversion;
 #X obj 65 74 route /status /onTarget;
-#X obj 180 382 vsl 12 60 0 2 0 0 /stepper/\$1/manualSpeed /stepper/\$1/manualSpeed
-speed -10 70 0 10 -262144 -1 -1 5900 1;
+#X obj 177 382 vsl 12 60 0 2 0 0 /stepper/\$1/manualSpeed /stepper/\$1/manualSpeed
+speed -10 70 0 10 -262144 -1 -1 0 1;
 #X obj 105 444 hradio 15 1 0 2 /stepper/\$1/manualDirection /stepper/\$1/manualDirection
 direction -10 22 0 10 -262144 -1 -1 0;
-#X obj 270 175 bng 25 250 50 0 /stepper/\$1/move/go /stepper/\$1/move/go
+#X obj 329 295 bng 25 250 50 0 /stepper/\$1/move/go /stepper/\$1/move/go
 GO 6 13 0 10 -4034 -1 -1;
 #X obj 285 686 list prepend add;
 #X obj 285 707 list trim;
@@ -93,78 +93,72 @@ GO 6 13 0 10 -4034 -1 -1;
 #X restore 661 40 pd \$0-osc;
 #X obj 106 398 tgl 35 0 /stepper/\$1/manualDrive /stepper/\$1/manualDrive
 empty 17 7 0 10 -204800 -33289 -1 0 1;
-#X obj 365 264 tgl 12 0 /stepper/\$1/accMode empty 0/1 17 7 0 10 -262144
+#X obj 345 350 tgl 15 0 /stepper/\$1/accMode empty 0/1 17 7 0 10 -262144
 -1 -1 0 1;
-#X obj 223 292 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/move /stepper/\$1/move
-tours 48 8 0 10 -262144 -1 -1 0 256;
-#X obj 168 459 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/manualSpeed /stepper/\$1/manualSpeed
-empty 0 -8 0 10 -262144 -1 -1 2 256;
-#X obj 315 282 vsl 12 60 0 2 0 0 /stepper/\$1/setMaxSpeed /stepper/\$1/setMaxSpeed
-speed -10 70 0 10 -262144 -1 -1 2950 1;
-#X obj 303 359 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/setMaxSpeed /stepper/\$1/setMaxSpeed
-empty 0 -8 0 10 -262144 -1 -1 1 256;
-#X obj 365 282 vsl 12 60 0 2 0 0 /stepper/\$1/acceleration /stepper/\$1/acceleration
-acc -2 70 0 10 -233017 -233017 -195568 2950 1;
-#X obj 353 359 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/acceleration
-/stepper/\$1/acceleration empty 0 -8 0 10 -233017 -233017 -195568 1
+#X obj 233 292 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/move /stepper/\$1/move
+tours 48 8 0 10 -262144 -1 -1 0.0555556 256;
+#X obj 165 459 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/manualSpeed /stepper/\$1/manualSpeed
+empty 0 -8 0 10 -262144 -1 -1 0 256;
+#X obj 253 371 vsl 25 60 0 2 0 0 /stepper/\$1/setMaxSpeed /stepper/\$1/setMaxSpeed
+speed -4 70 0 10 -262144 -1 -1 600 1;
+#X obj 243 449 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/setMaxSpeed /stepper/\$1/setMaxSpeed
+empty 0 -8 0 10 -262144 -1 -1 0.20339 256;
+#X obj 342 372 vsl 25 60 0 2 0 0 /stepper/\$1/acceleration /stepper/\$1/acceleration
+acc 4 70 0 10 -233017 -233017 -195568 400 1;
+#X obj 333 449 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/acceleration
+/stepper/\$1/acceleration empty 0 -8 0 10 -233017 -233017 -195568 0.135593
 256;
 #X obj 434 838 cnv 15 180 100 empty empty presets 2 8 0 14 -233017
 -128992 0;
 #X obj 197 175 bng 15 250 50 0 /stepper/\$1/updateStatus /stepper/\$1/updateStatus
 refresh -45 8 0 10 -262144 -1 -1;
-#X obj 298 175 bng 25 250 50 0 /stepper/\$1/stop /stepper/\$1/stop
+#X obj 357 295 bng 25 250 50 0 /stepper/\$1/stop /stepper/\$1/stop
 STOP 1 14 0 10 -258113 -1 -1;
 #X obj 281 531 t b b;
 #X obj 286 765 s /stepper/\$1/sequences/list;
 #X msg 309 559 clear \, align 0 \, add none \, set 0;
 #X obj 83 127 s /stepper/\$1/pos/current;
-#X obj 339 227 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/move/startPos
-/stepper/\$1/move/startPos startPos 0 -8 0 10 -262144 -1 -1 0 256;
-#X obj 277 232 bng 15 250 50 0 /stepper/\$1/move/gotoStart /stepper/\$1/move/gotoStart
-goto 17 7 0 10 -262144 -1 -1;
-#X obj 230 232 bng 15 250 50 0 /stepper/\$1/move/setStart /stepper/\$1/move/setStart
+#X obj 224 229 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/move/startPos
+/stepper/\$1/move/startPos Position_depart 0 -8 0 12 -204800 -1 -1
+0 256;
+#X obj 353 229 bng 15 250 50 0 /stepper/\$1/move/gotoStart /stepper/\$1/move/gotoStart
+goto 17 7 0 10 -204800 -1 -1;
+#X obj 296 229 bng 15 250 50 0 /stepper/\$1/move/setStart /stepper/\$1/move/setStart
 set 17 7 0 10 -262144 -1 -1;
 #X obj 148 241 nbx 3 14 -1e+37 1e+37 0 0 /stepper/\$1/pos/current/deg
-/stepper/\$1/pos/current/deg degrees -50 8 0 10 -262144 -1 -1 0 256
-;
+/stepper/\$1/pos/current/deg degrees -50 8 0 10 -262144 -1 -1 330.808
+256;
 #X obj 148 225 nbx 5 14 -1e+37 1e+37 0 0 /stepper/\$1/pos/current /stepper/\$1/pos/current
-turns -45 7 0 10 -262144 -1 -1 0 256;
-#X obj 223 308 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/move/deg /stepper/\$1/move/deg
-deg 48 8 0 10 -262144 -1 -1 0 256;
+turns -45 7 0 10 -262144 -1 -1 0.918911 256;
+#X obj 233 308 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/move/deg /stepper/\$1/move/deg
+deg 48 8 0 10 -262144 -1 -1 20 256;
 #X obj 153 97 s /stepper/\$1/pos/onTarget;
-#X obj 327 175 cnv 25 70 25 /stepper/\$1/runningGui /stepper/\$1/runningGui
+#X obj 301 174 cnv 25 70 25 /stepper/\$1/runningGui /stepper/\$1/runningGui
 idle 17 12 0 14 -233017 -195568 0;
 #X obj 353 122 r /stepper/\$1/accGUI;
-#X text 227 212 Position depart;
 #X text 225 263 Reglages mouvement;
 #X obj 405 172 cnv 15 370 305 empty empty Sequence 2 8 0 14 -233017
 -128992 0;
-#X obj 500 175 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/move/startPos
-/stepper/\$1/move/startPos startPos 48 8 0 10 -262144 -1 -1 0 256;
-#X obj 661 175 bng 15 250 50 0 /stepper/\$1/move/gotoStart /stepper/\$1/move/gotoStart
-goto 17 7 0 10 -262144 -1 -1;
-#X obj 614 175 bng 15 250 50 0 /stepper/\$1/move/setStart /stepper/\$1/move/setStart
-set 17 7 0 10 -262144 -1 -1;
-#X obj 675 210 bng 15 250 50 0 /stepper/\$1/writeSeq /stepper/\$1/writeSeq
+#X obj 637 248 bng 15 250 50 0 /stepper/\$1/writeSeq /stepper/\$1/writeSeq
 save 17 7 0 10 -262144 -1 -1;
 #X text 144 204 CURRENT;
 #X obj 172 824 tof/menubutton 100 25 \$0-mbS \$0-mbR 1 grey90 black
 grey95 black 0 \, none \, test (autre copie).move \, test.move \, test (3e copie).move
 \, test (4e copie).move \, test (copie).move;
 #X obj 183 801 r /stepper/\$1/sequences/list;
-#X obj 427 208 bng 15 250 50 0 /stepper/\$1/sequencer/open empty choose_sequence
+#X obj 637 228 bng 15 250 50 0 /stepper/\$1/sequencer/open empty choose_sequence
 17 7 0 10 -262144 -1 -1;
-#X obj 559 240 nbx 5 14 -1e+37 1e+37 0 0 /stepper/\$1/cue/current /stepper/\$1/cue/current
+#X obj 798 255 nbx 5 14 -1e+37 1e+37 0 0 /stepper/\$1/cue/current /stepper/\$1/cue/current
 empty 0 -8 0 10 -262144 -1 -1 0 256;
-#X obj 421 232 bng 25 250 50 0 /stepper/\$1/sequencer/go /stepper/\$1/sequencer/go
-GO 6 13 0 10 -4034 -1 -1;
+#X obj 481 229 bng 30 250 50 0 /stepper/\$1/sequencer/go /stepper/\$1/sequencer/go
+GO 9 16 0 10 -4034 -1 -1;
 #X msg 494 538 1;
-#X obj 556 212 tgl 15 0 /stepper/\$1/sequencer/loop /stepper/\$1/sequencer/loop
-loopSeq 17 7 0 10 -262144 -1 -1 0 1;
+#X obj 534 229 tgl 30 0 /stepper/\$1/sequencer/loop /stepper/\$1/sequencer/loop
+loop 32 15 0 13 -162280 -1 -1 0 1;
 #X obj 410 273 stepperCue \$1 0;
-#X obj 675 230 bng 15 250 50 0 /stepper/\$1/sequencer/load /stepper/\$1/sequencer/load
+#X obj 791 226 bng 15 250 50 0 /stepper/\$1/sequencer/load /stepper/\$1/sequencer/load
 reload 17 7 0 10 -262144 -1 -1;
-#X text 451 236 sequence;
+#X text 413 232 sequence;
 #X obj 410 321 stepperCue \$1 1;
 #X obj 411 369 stepperCue \$1 2;
 #X obj 411 417 stepperCue \$1 3;
@@ -324,8 +318,8 @@ CUE 3 \; /stepper/0/cue/3/move 0.0277778 \; /stepper/0/cue/3/setMaxSpeed
 #X obj 471 227 - 360;
 #X text 517 225 go backward \, quickest path;
 #X floatatom 502 166 5 0 0 0 - - -, f 5;
-#X obj 140 463 s /toOSC;
-#X msg 140 444 /\$1 \$3 \$2;
+#X obj 140 493 s /toOSC;
+#X msg 140 474 /\$1 \$3 \$2;
 #X obj 140 345 f \$1;
 #X obj 420 314 / 360;
 #X obj 170 222 s /stepper/\$1/pos/current/deg;
@@ -340,14 +334,20 @@ CUE 3 \; /stepper/0/cue/3/move 0.0277778 \; /stepper/0/cue/3/setMaxSpeed
 #X obj 197 180 * 360;
 #X obj 170 199 -;
 #X text 286 58 START POSITION MANAGEMENT;
-#X obj 140 425 list;
-#X obj 140 366 pack 0 0 4000 0;
+#X obj 140 455 list;
+#X obj 140 396 pack 0 0 4000 0;
 #X obj 351 333 steps2camrot;
-#X text 242 366 stepper ID \, move \, speed \, acc;
-#X msg 140 391 driveMode 0 \$1 \, acceleration \$4 \$1 \, maxSpeed
+#X text 242 396 stepper ID \, move \, speed \, acc;
+#X msg 140 421 driveMode 0 \$1 \, acceleration \$4 \$1 \, maxSpeed
 \$3 \$1 \, move \$2 \$1 \, getStatus \$1 \$1;
-#X msg 416 441 driveMode 1 \$1 \, maxSpeed \$3 \$1 \, acceleration
+#X msg 416 461 driveMode 1 \$1 \, maxSpeed \$3 \$1 \, acceleration
 move \$2 \$1 \, setSpeed \$3 \$1 \, getStatus \$1 \$1;
+#X obj 611 332 / 60;
+#X obj 542 350 steps2camrot;
+#X obj 648 356 / 60;
+#X obj 579 374 steps2camrot;
+#X obj 648 338 r /stepper/\$1/accLimit;
+#X obj 611 314 r /stepper/\$1/speedLimit;
 #X connect 0 0 1 0;
 #X connect 1 0 26 0;
 #X connect 3 0 6 0;
@@ -383,8 +383,14 @@ move \$2 \$1 \, setSpeed \$3 \$1 \, getStatus \$1 \$1;
 #X connect 32 0 35 0;
 #X connect 33 0 32 1;
 #X connect 35 0 31 0;
+#X connect 37 0 38 1;
+#X connect 38 0 32 2;
+#X connect 39 0 40 1;
+#X connect 40 0 32 3;
+#X connect 41 0 39 0;
+#X connect 42 0 37 0;
 #X restore 661 97 pd \$0-startposition;
-#N canvas 624 132 1211 848 \$0-modes&moves 0;
+#N canvas 561 76 1211 848 \$0-modes&moves 0;
 #X obj 40 108 route 0 1;
 #X obj 40 44 r /stepper/\$1/manualDrive;
 #X obj 51 131 r /stepper/\$1/accMode;
@@ -446,12 +452,10 @@ move \$2 \$1 \, setSpeed \$3 \$1 \, getStatus \$1 \$1;
 #X obj 663 492 / 60;
 #X obj 663 474 r /stepper/\$1/setMaxSpeed;
 #X obj 519 646 list prepend;
-#X obj 599 624 r /stepper/\$1/driveMode;
 #X obj 626 454 r /stepper/\$1/move;
 #X obj 519 450 f \$1;
 #X obj 701 512 / 60;
 #X obj 701 494 r /stepper/\$1/acceleration;
-#X obj 519 665 route 0 1;
 #X obj 519 754 list;
 #X obj 519 792 s /toOSC;
 #X msg 519 773 /\$1 \$3 \$2;
@@ -464,9 +468,7 @@ move \$2 \$1 \, setSpeed \$3 \$1 \, getStatus \$1 \$1;
 #X obj 557 472 steps2camrot;
 #X obj 44 319 r /stepper/\$1/manualDrive;
 #X obj 44 342 route 0 1;
-#X obj 63 378 r /stepper/\$1/accMode;
-#X msg 63 379 0;
-#X obj 44 407 f;
+#X obj 117 361 r /stepper/\$1/accMode;
 #X obj 43 466 s /stepper/\$1/driveMode;
 #X msg 84 434 2;
 #X text 66 280 SET DRIVE MODE V2;
@@ -481,6 +483,13 @@ move \$2 \$1 \, setSpeed \$3 \$1 \, getStatus \$1 \$1;
 #X text 894 512 used if driveMode = 2;
 #X obj 739 514 r /stepper/\$1/accLimit;
 #X obj 519 594 pack 10 5000 1000 1000 1000;
+#X obj 970 43 r /stepper/\$1/manualDrive;
+#X msg 970 64 0;
+#X text 970 20 Force speed to 0 when manual;
+#X obj 970 83 s /stepper/\$1/manualSpeed;
+#X msg 44 363 0;
+#X obj 599 624 r /stepper/\$1/accMode;
+#X obj 519 665 route 1 0;
 #X connect 0 0 4 0;
 #X connect 0 1 5 0;
 #X connect 2 0 22 0;
@@ -534,36 +543,43 @@ move \$2 \$1 \, setSpeed \$3 \$1 \, getStatus \$1 \$1;
 #X connect 55 0 51 0;
 #X connect 56 0 47 0;
 #X connect 57 0 18 0;
-#X connect 58 0 74 1;
+#X connect 58 0 72 1;
 #X connect 59 0 58 0;
-#X connect 60 0 66 0;
-#X connect 61 0 60 1;
-#X connect 62 0 75 1;
-#X connect 63 0 92 0;
-#X connect 64 0 72 1;
-#X connect 65 0 64 0;
-#X connect 66 0 71 0;
-#X connect 66 1 87 0;
-#X connect 67 0 69 0;
-#X connect 69 0 68 0;
-#X connect 70 0 63 0;
-#X connect 71 0 67 0;
-#X connect 72 0 92 3;
-#X connect 74 0 92 2;
-#X connect 75 0 92 1;
-#X connect 76 0 77 0;
-#X connect 77 0 80 0;
-#X connect 77 1 82 0;
-#X connect 78 0 79 0;
-#X connect 79 0 80 1;
-#X connect 80 0 81 0;
-#X connect 82 0 81 0;
-#X connect 87 0 67 0;
-#X connect 88 0 89 1;
-#X connect 89 0 92 4;
-#X connect 91 0 88 0;
-#X connect 92 0 60 0;
+#X connect 60 0 95 0;
+#X connect 61 0 73 1;
+#X connect 62 0 88 0;
+#X connect 63 0 70 1;
+#X connect 64 0 63 0;
+#X connect 65 0 67 0;
+#X connect 67 0 66 0;
+#X connect 68 0 62 0;
+#X connect 69 0 65 0;
+#X connect 70 0 88 3;
+#X connect 72 0 88 2;
+#X connect 73 0 88 1;
+#X connect 74 0 75 0;
+#X connect 75 0 93 0;
+#X connect 75 1 78 0;
+#X connect 78 0 77 0;
+#X connect 83 0 65 0;
+#X connect 84 0 85 1;
+#X connect 85 0 88 4;
+#X connect 87 0 84 0;
+#X connect 88 0 60 0;
+#X connect 89 0 90 0;
+#X connect 90 0 92 0;
+#X connect 93 0 77 0;
+#X connect 94 0 60 1;
+#X connect 95 0 69 0;
+#X connect 95 1 83 0;
 #X restore 661 117 pd \$0-modes&moves;
+#X obj 514 190 nbx 4 14 -1e+37 1e+37 0 0 /stepper/\$1/move/startPos
+/stepper/\$1/move/startPos Position_depart 0 -8 0 12 -204800 -1 -1
+0 256;
+#X obj 643 190 bng 15 250 50 0 /stepper/\$1/move/gotoStart /stepper/\$1/move/gotoStart
+goto 17 7 0 10 -204800 -1 -1;
+#X obj 586 190 bng 15 250 50 0 /stepper/\$1/move/setStart /stepper/\$1/move/setStart
+set 17 7 0 10 -262144 -1 -1;
 #X connect 3 0 11 0;
 #X connect 11 0 10 0;
 #X connect 11 0 13 0;