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.

ATC TOOL register the tools [MEM] select the main program Automatic mode door interlock switch [START] it runs

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.

KeyModeWhat it is forRuns a stored program?
[MANU]Manual operationMachine 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 selectionNo
[MDI]MDI operationEdit 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 recallBlocks you type, not a stored program
[MEM]Memory operationCall a program saved in memory and run itYes
[EDIT]Program editWrite and edit programsNo

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 DOEND and GOTON 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 modeMemory operationMDI operation
Doors closed
AutomaticAllowedAllowed
SettingRestricted — not possible unless [SINGL], [DRY] or [M.LCK] is setRestricted
ServiceNot possibleNot possible
A door open
AutomaticNot possibleNot possible
Setting (with [ENABLE] pressed)Not possiblePossible, forced to single operation
ServiceNot possibleNot 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 resetState
Execution pointerReturns 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 modeCancelled
All other modal G codesMaintained as is
Spindle and coolantStop
F, S and T dataUnchanged
Lock keys, dry run, single operation, optional block skip, optional stopON/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.

KeyWhat it doesThe detail people get wrong
[SINGL] Single operationStops operation after each block is executedIt 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 runIdles 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 insteadIt 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 lockRuns the program with all machine motion suppressed — the display behaves as if the machine were runningMachine 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 skipIgnores any block with a slash / at the beginning or immediately after the sequence numberToggling it mid-run does not affect blocks that have already been read ahead by the interpreter.
[OP.STP] Optional stopMakes M01 stop the program the same way M00 does. With the key off, M01 is ignoredWhen 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:

FunctionMemory operationMDI operationManual operation
Machine lockYesYesYes
Dry runYesYesNo
Single operationYesYesNo

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.

TypeHow you get thereWhat it does
Type 1[MEM]<Program restart> keyRestores 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 restartSequence 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.

AreaC00 (M200X3 / M300X3)D00 (M200Xd1 / M300Xd1)
Screen interactionPhysical 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 screenScreen list begins at PositionAdds 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 extrasBookmarks (registered screens recalled from a pop-up) and accessories: file viewer, notebook, calculator, shortcut registration, display off
Program restart, Type 1Three routes to a start position: sequence number, execution pointer, saved positionFour 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 stopDocumented as not equipped on this product; the manual section is explicitly omitted
Extended memory operation thresholdUser parameter <Program load size>Fixed at 32 MB
Alarm referenceFull alarm code list lives in the Operation Manual for advanced personnel, Chapter 11Referred 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:

PrefixSourcePrefixSource
NCNC PCB hardwareSMSystem software (main)
ECIO/servo communicationSLSystem software (local)
IOIO PCB hardwareSPPLC
SVServoCMLocal communication
EXExternal signalESPanel communication
FCField 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.

MessageNumberWhat it means and what to do
Selecting and loading the program
No programSM7553, SL7518The 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 subprogramSL7591, SM4042A 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 errorSM7552Memory operation was attempted with no program number set at all.
No tool in magazineSM2054, SL7720A 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 openSM2092, 0500A 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 openSM7503The door was opened during spindle rotation. Close the door and press [START] — the spindle resumes from where it stopped.
Close the automatic door.SM7548On 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.SM7550You tried to open or close the automatic door mid-operation, when it should be locked. Stop the machine first.
Memory operation modeSM7500You tried to run MDI during a pause in memory operation. Finish the memory-operation program first.
MDI operation modeSM7501The mirror image: memory operation or a mode change attempted during MDI operation.
During ATCSM7526Mode change attempted mid tool-change. Wait for the ATC to finish.
Program restart
Enter start position.SM7594You 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.SM7572The 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 program7525Operator 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 positionThe 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 informationYou 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.SM7544A restart was attempted while the external program-selection signal names a different program. Turn the signal off.
Cannot start from midpoint of prog.SM7535Pallet machines: a program cannot be restarted mid-program for the external pallet.
Machine state
The spindle running-in has not been completed yet.SM2125A 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 performedSL7719Automatic 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