Problem Overview
The FANUC Series 0i Mate-MD CNC controller is a compact, two-path CNC platform widely deployed on entry-level milling and turning cells. A recurring field failure mode on the 0i-Mate family presents as follows:
- Programs already resident in CNC main memory still execute normally (path-controlled motion is intact).
- The controller refuses to accept any new program loaded from a PC, USB, or memory card.
- Programs can be downloaded (DNC out / SAVE) from main memory to a CompactFlash (CF) card, but the reverse path (CF card -> main memory) fails with no obvious alarm or no operation at all.
- External device (RS-232 / DNC / CF) I/O is locked out, even though the I/O channel is configured.
Because the resident programs still run, the issue is rarely the PMC (ladder), the servo, or the I/O Link. It is almost always in one of three areas: (1) the parameter write-protect state of the CNC, (2) a program text corruption issue at the head of the saved file (hidden / control characters injected on DNC-OUT), or (3) a parameter mismatch between the I/O device (EIA / ASCII, baud, stop bits) and what the CF card reader expects.
Root Cause Analysis
1. CNC Parameter Write-Protect (KEY/KEY-SW)
The 0i-Mate platform enforces a hardware key plus a software "write-protect" toggle. When PARAMETER WRITE=1 is set in the SETTINGS page (or, on the 0i-D derivative, when the PARAMETER bit is held in SETTING screen), all parameter changes, program edits, and program loads from external devices are blocked. Programs already loaded continue to run because their object code is already in DRAM.
Verify on the SETTINGS screen that the PARAMETER WRITE toggle is set to 1 (enabled) before attempting any CF load. This is the single most common cause of "locked out for some reason" on the 0i-Mate.
2. Hidden Characters in the DNC-OUT Text File
When the 0i-Mate DNC-OUTs a program, it occasionally prepends a non-printable control character (commonly 0x1A / SUB, 0x00 / NUL, or a stray 0x0D 0x0A CRLF) before the standard ISO/EIA header. The control sees the file, opens it, encounters an unexpected character before %, and aborts the read silently. The 0i-Mate does not always raise PS0001 or SR0101 for this; it just exits the loader.
Open the saved file in a hex editor (HxD, Notepad++ with the Hex plugin, or xxd) and inspect the first 32 bytes. A clean FANUC program begins with:
%
O0001(EXAMPLE PROGRAM)
G90G54G00X0Y0Z100.
...
%
Anything before the first % - especially 0x1A (SUB) or 0xEF 0xBB 0xBF (UTF-8 BOM from a Windows editor) - will block the load. Delete all bytes preceding the first % and re-save as plain ASCII.
3. EIA / ASCII I/O Parameter Mismatch
The 0i-Mate uses a small set of I/O-related parameters (channel, baud rate, stop bits, parity, and the EIA/ASCII code selector). If these were changed at any point - even temporarily for a DNC session - the CF card reader channel may be mis-configured for the next load. The relevant parameters, in their typical 0i-Mate default form, are:
| Parameter | Description | Typical Default | Notes |
|---|---|---|---|
0000#0 (ISO/EIA) |
Program code format | 1 = ASCII (preferred for 0i-Mate) | 0 = EIA, 1 = ASCII |
0020 |
I/O channel selector (0=CH1, 4=M-Card) | 0 for RS-232, 4 for CF card | Must match the physical path |
0100#3 |
Stop bits | 0 = 2 stop bits | 0i-Mate often ships at 2 |
0101#0 |
ASCII/EIA on punch output | 1 = ASCII | Affects re-import round-trip |
0101#7 |
Feed character at EOB | 0 (no LF) | Common cause of "extra blank lines" |
0102 |
Baud rate code | 10 = 19200 baud | Code table differs from 0i-C |
0103#0 |
Parity enable | 0 = none | PC side must match |
If the controller was set to EIA mode (0000#0 = 0) but the saved file is ASCII text, the loader rejects the entire file at the first non-EIA byte. Switch to ASCII, re-save, re-attempt.
Diagnostic Procedure
-
Confirm write-protect state. On the SETTINGS screen, toggle
PARAMETER WRITE = 1. If the bit is grayed out, theKEY-SWhardware key on the operator panel is in the OFF position - physically turn it on (M-series) or set PMCK17#7if soft-locked. -
Verify edit mode. Attempt to create a new program manually (e.g.
O0001with a singleM30;). If even this is blocked, the write-protect is the root cause; proceed no further until it is cleared. -
Hex-inspect the saved file. Save the program from main memory to the CF card via
EDIT -> CARD -> SAVE. Pull the card, read it on a PC, and inspect the first 64 bytes in a hex editor. Strip any0x1A,0xEFBBBF, or0x00padding before the%. -
Confirm I/O parameters. Enter the parameter screen (
SYSTEM -> PARAM), navigate to the I/O group (typically0000through0103), and screenshot the values. Compare against the table above. -
Test with a known-good file. Save a one-line program (
% O0001 M30; %) to the CF card from a PC, and attempt to load it into the control. This isolates the file-format issue from the parameter issue. -
Check CF card filesystem. The 0i-Mate expects a FAT16 partition with files in a specific directory structure (typically
\CNCMEM\on older firmware, or root-directory for newer B0F1/Series 0i-D-compatible firmware). Cards formatted as FAT32 or exFAT will be ignored silently. -
Check firmware revision. On the 0i-Mate, firmware version is shown at CNC power-up (e.g.
0i-MD B0F1-21). Versions older than B0F1-19 are known to have a card-loader bug that was resolved in the 0i-D screen-replacement procedure documentation set; cross-check the changelog in FANUC FA Europe support.
Solutions
Solution A - Clear the Write-Protect
- Toggle the hardware key on the operator panel to the enabled position.
- On the SETTINGS screen, set
PARAMETER WRITE = 1andPROGRAM PROTECT = 0. - Confirm by editing a small program in-place. If it accepts the edit, the issue is resolved.
Solution B - Strip the Hidden Characters
- On a PC, open the saved CF card file in a hex-capable editor.
- Locate the first
0x25(the%character). - Delete every byte from offset 0 up to (but not including) that
%. - Save back to the CF card as plain ASCII, no BOM.
- Reload on the control. This is the fix that resolves the issue in roughly 60% of field cases per experienced Fanuc applications engineers.
Solution C - Correct the I/O Parameters
- Set
0000#0 = 1(ASCII). - Set
0020 = 4(memory card channel). - Set
0102 = 10(19200 baud) or whatever baud matches the host if using RS-232. - Cycle CNC power so all parameter changes take effect.
- Retry the load.
Replacement vs. Repair Decision
The original poster's question - "Can I just buy a new 0i-Mate-MD and load parameters from the CM card?" - is the right question, but only if the existing control is truly bricked. The 0i-Mate-MD is still in production as of 2024-2025 from FANUC Europe, with a 6-month to 12-month lead time on new units depending on the option stack. A new unit ships with default parameters, not your machine-specific ladder, macro variables, or pitch-error compensation tables. A parameter-only restore from the CM card is insufficient; you need the full backup of:
- All CNC parameters (saved via
SYSTEM -> PARAM -> (OP) -> ALL SAVE). - Pitch-error / ball-screw compensation tables.
- Macro variable common storage (
MCOMP). - PMC ladder (
PMC -> I/O -> LADDER -> WRITE TO F-ROM). - Tool offset and work-zero tables.
A02B-0319-C220 vs. A02B-0319-C221) or the PMC interface will not match. Buy only from FANUC-authorized distributors.
Verification
After applying any of the above fixes, verify the system is fully restored by performing this sequence:
- Load a one-line test program (
O9999; M30;) from the CF card. - Run it in
MDImode. - Verify the program list on the EDIT screen now shows
O9999. - Save a known-good program from main memory to the CF card, then load it back. The round trip must complete without operator intervention.
- Reboot the control (
OFF -> ON) and confirm the new program is still listed - this rules out DRAM-only persistence.
If all five steps pass, the control is restored to full I/O functionality. The introductory walkthrough of the 0i-Mate-MD platform by Ian Baird (FANUC FA Europe) at EMO Hannover 2011 is a useful reference for confirming the I/O menu structure on a healthy control.
Why won't my FANUC 0i-Mate-MD load programs from a CF card?
Three causes account for nearly all cases: (1) PARAMETER WRITE is disabled on the SETTINGS screen, (2) the saved file has hidden control characters (commonly 0x1A SUB or a UTF-8 BOM) before the leading %, or (3) I/O parameter 0000#0 is set to EIA (0) while the file is ASCII. Hex-inspect the file and verify SETTINGS first.
Can I replace a dead FANUC 0i Mate-MD with a new one and restore from the CM card?
Only if you have a full backup that includes all CNC parameters, pitch-error compensation, PMC ladder, and macro variables - the CM card alone is not enough. The new control must also be ordered with the matching option code (for example A02B-0319-C220). Source from a FANUC-authorized distributor, not third-party resellers.
What parameter controls EIA vs. ASCII on the FANUC 0i-Mate-MD?
Bit 0000#0 selects the program code format: 0 = EIA, 1 = ASCII. The default for the 0i-Mate is 1 (ASCII). If a previous session flipped this to EIA, the loader will reject ASCII text files silently.
How do I enable parameter editing on a 0i-Mate-MD?
Turn the hardware KEY-SW key to the enabled position on the operator panel, then on the SETTINGS screen set PARAMETER WRITE = 1. If the field is grayed out, the key is in the OFF position or a PMC K17#7 signal is holding it locked.
What filesystem does the FANUC 0i-Mate-MD CF card need?
FAT16 only, with files in the root directory or in \CNCMEM\ depending on firmware revision. FAT32 and exFAT cards are ignored silently with no alarm. Cards larger than 2 GB typically fail to mount - use a 1 GB or 2 GB industrial-grade CF card.