Brother Speedio: Running a Program at the Control
A Speedio speaks a G-code dialect close enough to Fanuc that most programmers can read a Brother program on sight. The panel is not Fanuc, and neither is the run-time behavior underneath it — single block does not stop where you expect, the restart function needs two presses of START, and switching to manual mode to nudge one axis can silently throw away your place in the program. This page is about the machine side of that: getting a program that already exists to run, stopping it safely, and putting it back where it was.
The Short Version
Four things, in this order. Each has its own alarm if you skip it, and those are collected at the bottom of the page.
• Set the tools in the magazine. Brother makes this step one of memory operation, not an afterthought: the tools the program will call are registered on the <ATC tool> screen.
• Select the main program. Press [MEM] and pick the program from the Memory operation screen or the Program list screen. Selecting it loads it and every subprogram it calls.
• Check the door interlock mode. It must be in automatic mode. In setting mode the machine refuses memory operation unless a check key is on; in service mode it refuses outright.
• Press the START switch. Operation begins when you release the switch, not when you press it.
Which Mode Actually Runs a Program
Four mode keys on the operation panel, and only one of them runs a stored program. The wrinkle unique to Brother is that each of the execution modes exists twice — once for the NC language (G-code) and once for the Conversation language, Brother’s on-control conversational programming format. The manuals split them into separate chapters, and the screens differ.
| Key | Mode | What it is for | Runs a stored program? |
|---|---|---|---|
[MANU] | Manual operation | Machine zero return, pallet index, single tool change (ATC), magazine forward/reverse rotation, high-speed / low-speed / step travel, spindle rotation and stop, handle operation, spindle selection | No |
[MDI] | MDI operation | Edit and execute NC blocks typed at the control — multiple blocks up to 255 characters, and executed MDI programs are kept in a history you can recall | Blocks you type, not a stored program |
[MEM] | Memory operation | Call a program saved in memory and run it | Yes |
[EDIT] | Program edit | Write and edit programs | No |
There is no separate “single block mode” key the way a Heidenhain has a separate mode for it. On a Brother, single block is a toggle key ([SINGL]) that modifies memory operation — more on that below.
One more execution path exists and behaves differently enough to be worth knowing about: tape operation, which streams a program from an external device or memory card instead of loading it into NC memory. Related to it, memory operation itself silently switches gears on very large programs. On the D00 control, when the loaded program exceeds 32 MB the control runs it in extended memory operation — still NC memory, but executed on the tape-operation model because the program is bigger than the operating memory. The screen tells you which one you got: Memory operation or Extended memory operation in the top-left of the program screen. In extended memory operation the tape-operation restrictions apply to WHILE DO…END and GOTO…N macros. On the C00 control the same behavior exists but the threshold is a user parameter (<Program load size>) rather than a fixed 32 MB.
Selecting the Program Pulls In Every Subprogram
Press [MEM] to reach the Memory operation screen, then either type the program number or name into the data input field and press [ENT], or open the Program list screen and pick it with the cursor. Either route does the same thing: the specified main program is read and all the subprograms called from it are loaded to the NC, then the main program appears on screen.
That single sentence explains most of the selection-time alarms. If the main program is not there you get No program. If a subprogram the main program calls is not there you get No subprogram — and in both cases the previously selected program is invalidated too, so you are left with nothing selected rather than with the old one still loaded. The ceiling is 256 programs loaded to the NC, main program included.
Three more behaviors worth carrying around:
• A selection is sticky. Once a program is selected it stays selected until the next one is selected.
• The edit program and the memory-operation program are separate. Having a program open in [EDIT] mode is not the same as having it selected to run. They can be forced to track each other with the user parameter <Set the same program for edit/memory operation programs>, but out of the box they are independent.
• You cannot change program while the control is holding a position. A program number cannot be set during a pause, during a block stop, or during program restart.
Before You Press START
Tools first. Brother writes the memory-operation procedure as two steps, and step one is setting the tools to be used on the <ATC tool> screen. Skip it and the run dies at the first tool call with No tool in magazine.
Startup inspection. The operator manual asks for an emergency-stop and door-interlock check before starting operation each day, and again after any maintenance. The E-stop check is four keystrokes: confirm Emergency button activated is not showing, press the [EMERGENCY] switch, confirm the alarm appears, twist the button right to release, press [RST], confirm the alarm clears — repeated for every E-stop button on the machine.
Door interlock mode. This is the gate people trip over, because it is a keyswitch and not something the screen nags you about. The mode governs what memory operation is even allowed to do:
| Door interlock mode | Memory operation | MDI operation |
|---|---|---|
| Doors closed | ||
| Automatic | Allowed | Allowed |
| Setting | Restricted — not possible unless [SINGL], [DRY] or [M.LCK] is set | Restricted |
| Service | Not possible | Not possible |
| A door open | ||
| Automatic | Not possible | Not possible |
Setting (with [ENABLE] pressed) | Not possible | Possible, forced to single operation |
| Service | Not possible | Not possible |
Two details in that table matter more than they look. With a door open in setting mode, single operation is carried out automatically even if the [SINGL] key is off — the control forces block-by-block execution on you. And changing the door interlock mode temporarily turns all axis servos off and back on, so an axis can shift or move when you turn that key. Do not turn it with a probe in a bore.
⚠ Brother is explicit that setting and service mode are not operator modes. The operator’s instruction is to verify the switch is in automatic mode before running the machine, and to tell the supervisor if the key has been left in the switch.
START, FEED HOLD, and RST
[START] begins memory operation — and operation actually starts when the switch is released. It will not start at all while a program is loading, while a program restart is in progress, or while [FEED HOLD] is held down. Pressed after a reset it runs the program from the top; pressed after a single-block or program stop it runs the next block; pressed after a pause it resumes from the position where operation was cancelled.
[FEED HOLD] pauses axis travel and program execution. Two things it does not do: it does not stop the spindle, and it does not interrupt a tool change or a tapping cycle — those complete first, then the machine stops. During a dwell it waits out the dwell; during an S, T or M function it waits for the function to finish.
[RST] is the blunt instrument. Pressed during memory operation it stops the machine immediately (again, except mid tool-change or mid-tap). What a reset does to your machine state is worth memorizing, because it is not “nothing”:
| After a reset | State |
|---|---|
| Execution pointer | Returns to the beginning of the main program |
| Cutter compensation, tool length offset, TCP control, rotational transformation, mirror image, scaling, canned cycle, subprogram modal call, feature coordinate machining mode | Cancelled |
| All other modal G codes | Maintained as is |
| Spindle and coolant | Stop |
| F, S and T data | Unchanged |
| Lock keys, dry run, single operation, optional block skip, optional stop | ON/OFF status unchanged — a reset does not clear them |
That last row is the one that bites. Reset does not turn off dry run or machine lock. If you proved a program out with [DRY] on, hit reset and then hit start, you are still in dry run.
After an [EMERGENCY] stop the recovery is two steps: turn the switch in the RESET direction to release the latch, then press [RST]. Note that when the servo turns off the Z-axis drops slightly, and returns to position when the servo comes back on.
The Check Keys: SINGL, DRY, M.LCK, B.SKIP, OP.STP
Five toggle keys, each with an LED, each modifying how memory operation behaves. They are the prove-out toolkit.
| Key | What it does | The detail people get wrong |
|---|---|---|
[SINGL] Single operation | Stops operation after each block is executed | It stops several times within one block for a reference point return, a canned cycle, or a nonstop ATC block — and it does not stop after an M98 or M99 block. Do not read the number of START presses as a block count. |
[DRY] Dry run | Idles the machine through the program to check it. The F command in the program is ignored and the feed comes from the high-speed travel setting on the Manual conditions screen instead | It also lifts the Z-axis in the plus direction by the user parameter <Dry run offset amount>, and while it is running the operator message Dry run offset amount is displayed with the value. Dry run is not available in manual operation mode. |
[M.LCK] Machine lock | Runs the program with all machine motion suppressed — the display behaves as if the machine were running | Machine coordinates on the position screen do not change, and the S, T and M functions do not execute. It is a syntax and logic check, not a motion check. |
[B.SKIP] Optional block skip | Ignores any block with a slash / at the beginning or immediately after the sequence number | Toggling it mid-run does not affect blocks that have already been read ahead by the interpreter. |
[OP.STP] Optional stop | Makes M01 stop the program the same way M00 does. With the key off, M01 is ignored | When the program stops this way the spindle, lathe spindle and coolant stop too; whether they come back automatically depends on the <… return method for program stop> user parameters. Same read-ahead caveat as block skip. |
Availability differs by mode, which catches people trying to prove out an MDI block:
| Function | Memory operation | MDI operation | Manual operation |
|---|---|---|---|
| Machine lock | Yes | Yes | Yes |
| Dry run | Yes | Yes | No |
| Single operation | Yes | Yes | No |
One safety net tied to these keys: the user parameters <Check before coolant pump startup> and <Check before chip shower pump startup> will alarm at start if you forgot to switch coolant on — but only when [SINGL], [DRY] and [M.LCK] are all off. The control assumes that if any check key is on, you are proving out and do not want coolant.
Restarting in the Middle: The Program Restart Function
This is Brother’s answer to Heidenhain’s Block Scan and Fanuc’s program restart, and it splits into two jobs: starting operation somewhere in the middle of a program, and resuming after a stop. Which flavor of it you get is a machine setting, not a runtime choice — the user parameter <Program restart> selects Type 1 (compatible with the older CNC-B00 control) or Type 2 (compatible with CNC-A00). Establish which one your machine is set to before you need it.
| Type | How you get there | What it does |
|---|---|---|
| Type 1 | [MEM] → <Program restart> key | Restores the machine to the state of the block immediately before your chosen start position, then runs from there |
| Type 2 | [MEM] → <Search for sequence No.> key (sequence search), or the same <Program restart> route for restart | Sequence search skips reading the program up to the start position; restart behaves like Type 1 |
Naming the start position. On the D00 control the search string is richer than most people realize — it accepts a program, a sequence number or a block number, and a repeat count for loops:
10 or N10 sequence number 10
B30 block number 30
10-5 or N10-5 the fifth time sequence 10 is executed
B30-5 the fifth time block 30 is executed
P0010N10-5 the fifth N10 inside program O0010
<ABCDEFG>B30-5 the fifth B30 inside the program named ABCDEFG
The sequence number is matched as a number, so searching for 0042 stops on N42, N042, N0042 and N00042 alike. The repeat count defaults to 1 and maxes out at 9999.
Besides typing a number you can move the execution pointer with the [CURSOR] keys, and the control will tell you what you have done: moving the pointer off the start of the program raises the operator message Operation has begun using program restart in Type 1, or Restart by a sequence search in Type 2. Two more routes exist for resuming rather than starting fresh. During a block stop, single-block stop or pause you can press <Save operation status>, which stores the current program, block number and subprogram call information and confirms with The operation status has been saved. — later recalled with <Restart from saved position>. The D00 control also saves that information automatically, keeping the last ten stops with date/time, program, sequence and block numbers, reachable through <Restart from automatically saved position>.
Two presses of START, not one. Once the start position is set, the first [START] runs the restoration sequence: it re-issues the last S and T, moves Z to the <Distance to zero point> position, performs the tool change to whatever tool was last selected by M06/G100, restores the last modal M codes for spindle and coolant, and then walks the axes one at a time to the end position of the block before your start block. Only the second [START] actually begins machining. Feedrate and rapid override apply during that restoration, so wind them down before the first press.
Axis order during restoration is machine-dependent, and Brother documents it that way rather than flattening it: on an M-series machine Z goes to the distance-to-zero position and then Y goes to machine zero before the tool change, and afterwards the axes travel X, then the additional axis, then Y, then Z. On other models Z goes to the distance-to-zero position, and afterwards X and Y travel together, then the additional axis, then Z. If your machine has an A-axis you should watch a restoration once, deliberately, at low override, before you trust it over a fixture.
Sequence search and restart do not land in the same place. This is the subtlest trap in the whole function, and the manual demonstrates it with its own example. A sequence search ignores the program logic while it counts — a WHILE loop is not interpreted and optional block skip is not honored — so a slashed block still gets counted and the loop is effectively walked out of. A restart interprets the loop and honors block skip. Given the same command (N10-5, with [B.SKIP] on) against a program whose N10 appears four times inside a WHILE loop and once after it, the sequence search lands on the block after the loop, while the restart lands on the fourth iteration inside it. Same input, different block, different machine position.
Finally, mid-program restart can be switched off entirely at the machine. With the user parameter <Prevent restart from middle of program> set to Yes, moving the execution pointer off block one and pressing start raises Restart from the middle of the program prohibited. and nothing runs. And if you set up a restart but forget to press the key that commits the start position, starting the machine raises Enter start position.
Interrupting a Run to Do Something by Hand
The documented sequence for stepping away mid-program — to clear a chip nest, blow out a pocket, look at a part — is four steps:
1 [FEED HOLD] (or turn [SINGL] on) to stop the block
2 [MANU] switch to manual operation mode
3 ... do the manual work
4 [MEM] then [START] back to memory operation and resume
If you jump straight to step 2 without stopping first, memory operation simply pauses — that part is forgiving. What is not forgiving is what you do while you are in manual mode:
⚠ This throws away your place in the program. After a machine zero return, a tool change, a magazine forward or reverse rotation, or a pallet index performed in manual operation mode, memory operation is reset when you switch back to memory operation mode. The execution pointer goes to the top of the main program. The four most natural things to do at the machine are exactly the four that cost you the resume.
If you only jogged an axis, the return behavior depends on the modal state at the moment you interrupted. In G90 absolute mode the remaining travel of the interrupted block is held until that block finishes, and from the next block the axes travel to the programmed positions — the interruption washes out. In G91 incremental mode the remaining travel is carried out relative to wherever you left the machine, so the interruption offsets everything downstream. Interrupt in G91 and you have moved the part.
Several states refuse the interruption outright. Pressing [MANU] while a workpiece is being measured raises During measurement; during automatic centering, Automatic alignment mode; during a program restart or sequence search, Restarting program. With G68.2 feature-coordinate machining modal, the additional axis will not travel and the control says Feature coordinate manufacturing mode engaged; under TCP control (G43.4/G43.5) it says TCP under control. And if you stopped or restarted the spindle by hand, the user parameter <Spindle rotation return during restart> decides whether the previous speed comes back — set to return, you get the alarm Restore the spindle speed prior to manual operation after startup when you re-enter memory operation.
C00 vs D00: What Changes Between Generations
The two Speedio generations covered by the current manual set — the C00 control on M200X3/M300X3 machines and the D00 control on M200Xd1/M300Xd1 machines — run the same modes, the same keys and the same G-code. What changed is the screen and the depth of the restart function.
| Area | C00 (M200X3 / M300X3) | D00 (M200Xd1 / M300Xd1) |
|---|---|---|
| Screen interaction | Physical function keys [F0]–[F7] plus [PAGE UP]/[PAGE DOWN]. The program list is [F2], program restart is [F1], save operation status is [F7] | Touch panel: function keys are tapped, the program display scrolls by swiping or dragging a scroll bar, and there are two virtual keyboards (a QWERTY layout and an NC layout) |
| Landing screen | Screen list begins at Position | Adds a Home screen ([Home] key): remaining/elapsed program time, workpiece counter current and target value, program name and content, and the tool life of up to five tools shown shortest-life first, plus registerable shortcut keys |
| Navigation extras | — | Bookmarks (registered screens recalled from a pop-up) and accessories: file viewer, notebook, calculator, shortcut registration, display off |
| Program restart, Type 1 | Three routes to a start position: sequence number, execution pointer, saved position | Four routes: sequence or block number (with program number or program name), execution pointer, saved position, and automatically saved position — the last ten stops, kept with date and time |
| Restart from block stop | — | Documented as not equipped on this product; the manual section is explicitly omitted |
| Extended memory operation threshold | User parameter <Program load size> | Fixed at 32 MB |
| Alarm reference | Full alarm code list lives in the Operation Manual for advanced personnel, Chapter 11 | Referred out to a separate Data Bank & Alarm Manual |
If you run both generations in the same shop, the practical divergence is the restart: a D00 remembers where it stopped without being asked, a C00 only remembers if someone pressed [F7] at the time.
Reading Brother Alarms
Brother splits screen messages into two kinds. An alarm is an error the CNC detected. An operator message warns you or prompts you to check something. Alarms flash; operator messages do not. Alarms carry a two-letter prefix naming the subsystem that raised them:
| Prefix | Source | Prefix | Source |
|---|---|---|---|
NC | NC PCB hardware | SM | System software (main) |
EC | IO/servo communication | SL | System software (local) |
IO | IO PCB hardware | SP | PLC |
SV | Servo | CM | Local communication |
EX | External signal | ES | Panel communication |
FC | Field bus |
The format is XXnnnn **description. Two independent properties travel with it. The stop level says how hard the machine stopped: level 5 turns the servo off, level 4 stops immediately and disables everything after, level 3 finishes the current block and then refuses to start, level 2 runs to the M02/M30 and then refuses to start, level 1 is a warning that affects nothing. The cancel level says how you clear it, and the asterisks in front of the text are the shorthand: no asterisk or one asterisk clears with [RST] (or, at the lowest level, any key), while two asterisks in red require a power cycle.
Alarms While Trying to Run
The curated set — the ones that stop you before the first chip rather than the full list. Numbers here are from the C00-generation alarm list; the message text is what appears on screen and is the stable part, so match on the text first.
| Message | Number | What it means and what to do |
|---|---|---|
| Selecting and loading the program | ||
| No program | SM7553, SL7518 | The designated program was not found — the number in brackets is the program number it looked for. Check the number or name. Your previous selection is now invalid too. |
| No subprogram | SL7591, SM4042 | A subprogram the main program calls does not exist. In extended memory or tape operation it must be in the same folder as the main program (tape operation: the root folder). |
| Program number error | SM7552 | Memory operation was attempted with no program number set at all. |
| No tool in magazine | SM2054, SL7720 | A tool the program calls is not registered in the magazine. Set it on the <ATC tool> screen — this is step one of memory operation, not an optional step. |
| Doors, mode and interlocks | ||
| Door open | SM2092, 0500 | A door was open when the ATC arm tried to turn, or open immediately after memory operation started. Close it and press [RST]. If it recurs with the door shut, suspect chips in the door seal or the door limit switch. |
| Spindle stopped with door open | SM7503 | The door was opened during spindle rotation. Close the door and press [START] — the spindle resumes from where it stopped. |
| Close the automatic door. | SM7548 | On machines with an automatic door: memory operation was attempted with the [MANU/AUTO] switch on AUTO and the door neither fully open nor fully closed. Switch to MANU, cycle the door with [OPEN/CLOSE], switch back to AUTO. |
| Machine is operating. | SM7550 | You tried to open or close the automatic door mid-operation, when it should be locked. Stop the machine first. |
| Memory operation mode | SM7500 | You tried to run MDI during a pause in memory operation. Finish the memory-operation program first. |
| MDI operation mode | SM7501 | The mirror image: memory operation or a mode change attempted during MDI operation. |
| During ATC | SM7526 | Mode change attempted mid tool-change. Wait for the ATC to finish. |
| Program restart | ||
| Enter start position. | SM7594 | You began a program restart but never committed a start position, then pressed start. Go back and press the set-start-position key. |
| Restart from the middle of the program prohibited. | SM7572 | The user parameter <Prevent restart from middle of program> is set to Yes on this machine. Either start from block one or have the parameter changed. |
| Restarting program | 7525 | Operator message. You tried to change mode or start the machine while a program restart was still in progress. Wait for it. |
| Program restart error from saved position | — | The saved position no longer maps onto the program — typically because the program was edited so the subprogram nesting level changed or the saved block is now outside the program. Re-select the start position by hand. |
| There is no sequence number for the restart block information | — | You picked a restart record by sequence number that is not in the saved set. Choose from the listed records instead. |
| Turn external program select off. | SM7544 | A restart was attempted while the external program-selection signal names a different program. Turn the signal off. |
| Cannot start from midpoint of prog. | SM7535 | Pallet machines: a program cannot be restarted mid-program for the external pallet. |
| Machine state | ||
| The spindle running-in has not been completed yet. | SM2125 | A spindle command was issued before the run-in. Press [RST], go to manual mode, run the spindle run-in. Expect this after installation or a long shutdown. |
| Zero return not performed | SL7719 | Automatic coordinate setting was attempted before a dog-type machine zero return completed. Do the zero return in manual operation mode. |
Habits That Prevent Most of This
Check the LEDs before you check the program. [SINGL], [DRY], [M.LCK], [B.SKIP] and [OP.STP] all survive a reset, all survive a program change, and all quietly change what the machine does. A part that came out oversized because the last operator left dry run on is not a program problem.
Decide before you touch [MANU]. The moment you interrupt a program, decide whether you are resuming or restarting. If you intend to resume, do not zero return, do not change a tool, do not rotate the magazine and do not index a pallet — any of those resets memory operation the moment you go back to [MEM]. If you intend to restart, do whatever you like and then use the restart function deliberately.
Override down before the first START of a restart. The restoration pass is a rapid-speed sequence that moves Z, changes tools and then walks the axes to a position you have only inferred. Rapid and feedrate override both apply to it.
Prove new programs in machine lock, then dry run, then single block. Machine lock catches syntax and logic with nothing moving. Dry run catches motion with the Z-axis lifted clear. Single block catches the rest, one press at a time — just remember it will stop more than once inside a canned cycle and not at all across M98/M99.
Know your restart type. Type 1 or Type 2 is a parameter someone set once, and it changes what keys exist and where a search lands. Find out on a quiet afternoon rather than at 4:55 on a Friday with a broken tap in the part.
See Also
Brother System Variables for macro arguments and work-offset variables, Brother Blum-Novotest V4B Probing and Brother Blum V4B Programming for the probing side of setup, and Coordinate Systems & Offsets for work offsets and datums. For the same operator workflow on another control, see Heidenhain: Running a Program at the Control — the Block Scan section is the direct analogue of the program restart function above — and Haas Alarms & Diagnostics for how another builder structures its alarm numbering.
References
- Brother Industries, Ltd., M200Xd1 Series / M300Xd1 Series Operation Manual I (D00 control), part code 69B218001, 2023 — Chapter 3 Operation (switch and key functions), Chapter 4 Screen Display, Chapter 7 Memory Operation. The primary source for mode keys, the check keys, start/pause/reset behavior and the program restart function.
- Brother Industries, Ltd., M200Xd1 Series / M300Xd1 Series Operation Manual (For General Operators), part code 69B206001, 2303 (3), 2023 — Safety Manual, Door Interlock Function (startup inspection, interlock mode tables), Chapter 1 Operation Panel, Chapter 2 Operation.
- Brother Industries, Ltd., M200X3 Series / M300X3 Series Operation Manual for advanced personnel (C00 control), 2020 — Chapter 7 Memory Operation (NC Language) for the C00 procedure and function-key layout, and Chapter 11 Alarms for the message format, stop/cancel levels and the alarm code list quoted above.
- Brother Industries, Ltd., M200X3 Series / M300X3 Series Operation manual for general operators (C00 control), 2020 — consulted for the C00 operator-level start procedure.
- Brother Industries, Ltd., Operation Manual (Data), eCOM3OPDT, 2020 — consulted for program edit, data bank and tape operation mode; contains no alarm list.
Have a question or want to contribute?
Contact us with corrections, additions, or topics you'd like covered.
Get in Touch