Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs draft #69

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 33 additions & 7 deletions Development.md
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ hacking permits.
- [ ] Needed for full 3D printer solution: add PWM/PID-loop for heaters.
- [ ] Motion: consider limited constant jerk movements.

### Random thought collction for roadmap points above
### Random thought collection for roadmap points above

#### Shoveller

Expand All @@ -393,12 +393,38 @@ hacking permits.
an emergency stop (e.g. manually jogging away the tool, then restart
will move it back to where we stopped.

#### Planner
#### Pause, Resume, Stop and Emergency Stop

```mermaid
stateDiagram-v2
[*] --> NotHomed: Start
NotHomed --> Homed: Homing
Homed --> Moving: GCode
Moving --> Homed: Finished
Moving --> Pause: Pause
Pause --> Moving: Resume
Pause --> Homed: Stop
Moving --> Homed: Stop
Moving --> NotHomed: EmergencyStop
```

##### Introduction
This documentation introduces a set of operations that enhance the interaction with a running machine. These operations include pause, resume, stop, and emergency stop.

###### Receiving Commands
While the machine accepts GCode from a main channel (such as a TCP server or file), these commands are expected to be received through a secondary channel. This approach maintains asynchronous processing from the GCode parsing. The secondary channel can be either a hardware input or a secondary server.

##### Pause Command
The pause command initiates an immediate deceleration until the machine reaches speed 0. Additionally, auxiliary outputs are zeroed. This behavior allows users to interrupt the machine while it's executing GCode without affecting the final trajectory already enqueued.

##### Resume Command
The resume command is the opposite of the pause command. It instructs the machine to resume its motion and continue along its trajectory while adhering to the machine constraints.

##### Stop Command
The stop command has a similar effect to the resume command, but with one crucial difference: any motion that has been sent to the machine but not yet executed will be discarded. Consequently, it cannot be resumed once the stop command is issued.

- right now, we just do proper 'ramp up' of acceleration, but not
deceleration. In order to do that, we need to delay emitting
LinearSegmentSteps until we know that we can stop within the deceleration
constraints. Otherwise we need to edit the speeds backwards.
##### Emergency Stop
The emergency stop command can be triggered by multiple sources. When issued, this command immediately disables the motors and halts any step generation output as quickly as possible, even if it violates the machine's motion constraints. Due to the possibility of lost steps, the machine will need to be homed again after an emergency stop.

#### Status Server
- Issue [#38](https://github.com/hzeller/beagleg/issues/38) has some good discussion.
- Issue [#38](https://github.com/hzeller/beagleg/issues/38) has some good discussion.