
MPINO Series
MPINO-8A4R-S
MPINO-8A4R-S Industrial Arduino Controller
MPINO-8A4R-S is an ATmega128-AU-based industrial Arduino-compatible PLC controller with 8 isolated digital inputs and 4 relay outputs. Onboard RS-232, I²C with Modbus RTU, programmable in the Arduino IDE. DIN-rail mountable for automation, testing, HMI integration and embedded control.

International shipping (EMS) — calculated at checkout by destination & weight
Shipping weight 200 g (per unit)
Ships the next business day (regardless of order time)
Large orders may take 1 extra day to dispatch
Cancel before dispatch · request a return/exchange after delivery
Key features
/ FEATURES- ATmega128-AU core, programmable in the Arduino IDE and MPINO STUDIO2
- 8 opto-isolated digital inputs (NPN/PNP, up to 40 V tolerant)
- 4 relay outputs for AC/DC dry-contact switching
- 6 analog inputs (0–5 V / 4–20 mA / 0–10 V ranges)
- 2 NTC temperature inputs (−40 to +120 °C)
- Industrial communication: RS-232, I²C · Modbus RTU
- DIN-rail 35 mm mountable, isolated field I/O for the factory floor
Specifications
/ SPEC| MCU | ATmega128-AU |
|---|---|
| Power input | DC 12V – 24V |
| Digital inputs | 8 |
| Relay outputs | 4 |
| Analog inputs | 6 |
| Temperature sensor inputs | 2 |
| High-speed pulse inputs | 4 |
| High-speed pulse outputs | 3 |
| RS-232 | 1ch |
| I²C | 1ch |
| Modbus RTU | Yes |
| Arduino IDE compatible | Yes |
Software
Arduino IDE / MPINO Studio 2


Arduino IDE compatible
Works with the Arduino toolchain you already use
MPINO STUDIO2 included
Arduino code and ladder logic in one tool
Arduino + ladder logic
Build control logic faster with familiar ladder rungs
Setting up the toolchain
Installing the ARDUINO SDK adds this product's board definition to the Arduino IDE and makes the functions that earn their keep in industrial work available as built-in commands. There is no library to add — the Arduino IDE offers them with autocompletion as you type.
Built-in commands the SDK unlocks
- PLC timers · callback timersIton · Itof · Itpl · Itmr · ItimerSet
- CountersIctu · Ictd · Ictud · IgetCount
- Scaling · PID controlIscale · Iscalef · IpidSet · IpidRun
- First-in and last-in buffersFIFO · FILO
- Input debounce · edge detectionIbounce · IdigitalRead · Iup · Idown · Ialt
- Debug · watchdogdebug · debugln · WDT_ENABLE · WDT
- Modbus RTU · LS Cnet · Mitsubishi MCImodbusRTU · ICnet · IMcProtocol
- Analog input · 4–20 mA correctionanalogRead2 · IanalogRead · IanalogFilter · ntcRead
- PWM · pulse · high-speed counterPWM · FDPWM · NPWM · TCNTSETUP · TCNTOUT
Using the Arduino IDE requires the ARDUINO SDK (the ILOGICS board package) to be installed. MPINO STUDIO2 can be used without installing it.
Download CableMP DOWNLOAD CABLE
Programming this board needs the dedicated download cable
The upload port on this board is a mini 5P USB socket, but the USB-to-serial conversion lives in the CABLE, not on the board. Plug in an off-the-shelf mini 5P USB cable and the PC never enumerates a port, so nothing uploads. The MP download cable is one we build ourselves — buy one and keep using it.
USB-TTL converter inside
The conversion IC sits in the connector housing
Generic mini 5P cannot be used
An ordinary cable enumerates no port and cannot upload
USB-A to mini 5P
Connects the PC's USB port to the board's upload port.
Made by ILOGICS
A dedicated cable for use with ILOGICS products.
What the cable is
* Having the conversion IC inside the housing is what sets this apart from an ordinary cable. Board end is mini 5P, PC end is USB-A, and the cable is 1 m long.
Sold separately — order it with the board under Add-on products.
Cable specification
| Item | Detail |
|---|---|
| PC end | USB-A plug |
| Conversion | USB-TTL converter inside the cable |
| Board end | USB mini 5P plug |
| Length | 1 m |
| Driver | FTDI |
Installing the driver
- Connect the MP download cable between the PC's USB port and the board's upload port.
- Open Device Manager and check whether USB Serial Port (COMx) appears under Ports (COM & LPT).
- If it does not appear, install the FTDI driver from the resources section and reconnect the cable.
- In your development tool, select the same COM number Device Manager shows, then upload.
Expansion ConnectorsEXPANSION CONNECTORS
The expansion functions are fitted on Molex connectors
I²C, PWM, pulse/encoder input and the 7-segment (FND) link are fitted on Molex 5267-04 4-pin connectors; analog input and NTC temperature input on a Molex 5267-09 9-pin connector. The cables that plug into them are made up with the mating Molex 5264-04 and Molex 5264-09 housings, and 3 four-pin cables and 1 nine-pin cable are included with the board.
4-pin — 5267-04
I²C, PWM, pulse/encoder input and the 7-segment (FND) link
9-pin — 5267-09
Analog input and NTC temperature share one connector
Mating 5264 half
The cable end uses 5264-04 and 5264-09 housings
Cables included
3 four-pin cables and 1 nine-pin cable ship with the board
Connection diagram
Connector by function
| Function | Board-side connector |
|---|---|
| I²C | Molex 5267-04 (4-pin) |
| PWM output | Molex 5267-04 (4-pin) |
| Pulse / encoder input | Molex 5267-04 (4-pin) |
| 7-segment (FND) | Molex 5267-04 (4-pin) |
| Analog input | Molex 5267-09 (9-pin) |
| NTC temperature input | Molex 5267-09 (9-pin) |
Connectivity
PC / HMI / Mobile
RS-232 serial talks to a PC or a touch HMI directly. Add the M-ETHER Ethernet converter and Modbus TCP opens the same data up remotely — from a PC, a touch HMI or a phone.
01Direct serial link

MPINO-8A4R-S
RS-232 (Serial1)
PC
SCADA / monitoring
Touch HMI
Operator panel
RS-232Modbus RTULS Cnet
02Via the M-ETHER Ethernet converter

MPINO-8A4R-S
RS-232 (Serial1)
M-ETHER
Ethernet-to-serial converter
Sold separatelyMobile
Plant network / Wi-Fi
RS-232EthernetModbus TCP
Note: the MPINO-8A4R-S provides one RS-232 channel (Serial1) plus I²C; it has no built-in Ethernet port. Ethernet is available through the M-ETHER Ethernet converter. RS-485 is available by ordering the option that converts the RS-232 channel to RS-485.
Digital input
8 isolated digital input channels
Eight digital input channels read external switches and sensors reliably, straight from the terminal block.
D0–D7 inputs
Eight digital input points in total
COM0 / COM1 common
All 8 points share ONE common (COM0 / COM1 terminals)
Optocoupler isolation
Control circuit protected from field noise
NPN / PNP sensors
Works with either sensor wiring convention
Input channel layout
* Example wiring for external switches or sensors (NPN/PNP shared)
Optocoupler isolation
The digital inputs use a bidirectional optocoupler stage (anti-parallel LEDs), so either NPN or PNP signals are read reliably, with all 8 channels referenced to COM0 / COM1.
Example sketch — reading an input
void setup() {
// Digital inputs need no pinMode() - read them straight with digitalRead()
// (the pull-up / pull-down is on the board, so INPUT_PULLUP is not needed)
}
void loop() {
if (digitalRead(0) == HIGH) {
// P0 input is ON
}
}Relay output
4 relay output channels (1a1c)
4 relay output channels control external loads running on AC or DC, reliably.
D32–D35 outputs
4 relay contact output points
4 × 1a1c relays
Each output is an independent relay contact
1 output per COM
Each output has its own COM terminal
Electrical isolation
Control and output sides separated by the relay
Output channel layout
* Example wiring for external loads (relay contact output)
Relay output structure
Each relay output is a 1a1c relay that mechanically separates the control side from the output side, and each output has its own dedicated COM terminal. Being a volt-free contact, it switches both AC and DC loads.
Example sketch — driving a relay output
void setup() {
for (int k = 32; k <= 35; k++) {
pinMode(k, OUTPUT); // relay outputs MUST be set to OUTPUT
digitalWrite(k, LOW); // start OFF
}
}
void loop() {
// map digital inputs P0~P3 onto relay outputs P32~P35
for (int k = 0; k <= 3; k++) {
if (digitalRead(k) == HIGH) {
digitalWrite(32 + k, HIGH); // relay ON
} else {
digitalWrite(32 + k, LOW); // relay OFF
}
}
}Analog inputAnalog Input
6 analog input channels + 2 NTC temperature channels on one Molex 9-pin connector
Six analog input channels — 0–5 V, 4–20 mA and 0–10 V, fixed per channel — plus two NTC temperature channels, all on a single Molex 9-pin connector.
A0–A5 · 6 channels
Six 10-bit (0–1023) analog input points
Multiple input modes
0–5 V · 4–20 mA · 0–10 V per channel
2 NTC temperature ch.
A6 / A7 NTC 10 kΩ, −40 to 120 °C
External reference
A stabilised 5 V supplied on the AREF pin
Molex 9-pin connector
* Pins 1–6 A0–A5, pins 7–8 the NTC temperature channels A6 · A7, pin 9 GND
Per-channel input specs
| Channel | Input spec | Input resistance |
|---|---|---|
| A0 · A1 | DC 0~5V | 100 MΩ |
| A2 · A3 | 0~20mA / 4~20mA | 250 Ω |
| A4 · A5 | DC 0~10V | 200 kΩ |
| A6 · A7 | NTC 10kΩ · −40–120°C | — |
Every channel is 10-bit (0–1023)
Example sketch — reading an analog input
unsigned int ADC0;
void setup() {
Serial.begin(9600);
}
void loop() {
ADC0 = analogRead(A0); // 0 ~ 1023
Serial.println(ADC0);
delay(500);
}High-speed pulse outputPWM Output
3 PWM output points on one 4-pin header, driven by Timer3
D21, D22 and D23 come out on a single 4-pin header — three outputs plus a GND. The output swings LOW DC 0 V to HIGH DC 5 V at up to 30 mA per point, and analogWrite() takes a duty of 0–255 that extends to 0–65535 once the Timer3 registers are changed.
3 PWM points
One 4-pin header · three outputs + GND
Timer3
D21, D22 and D23 all share the Timer3 resource
8-bit → 16-bit duty
0–255 by default, 0–65535 after the register change
DC 5 V · 30 mA
LOW 0 V / HIGH 5 V · up to 30 mA per point
Pulse output pins
| Pin | Silkscreen | Use |
|---|---|---|
| D21 | 0 | analogWrite(21, 0–255) |
| D22 | 1 | analogWrite(22, 0–255) |
| D23 | 2 | analogWrite(23, 0–255) |
| GND | GND | Reference for the pulse output |
The output is LOW DC 0 V / HIGH DC 5 V at up to 30 mA per point. All three points run on Timer3, and duty is set with analogWrite(pin, value) over 0–255; for 16-bit duty, set TCCR3A=0xAA; TCCR3B=0x1A; ICR3=65535; in setup() and then write 0–65535.
Pulse output header and duty
* One 4-pin header at the board's right edge, silkscreened PWM over 0 · 1 · 2 · GND. Those three numbers are D21, D22 and D23 in code, and the fourth pin is the ground the pulse output is referenced to.
Before you wire it
- All three pulse outputs run on Timer3. The high-speed counter's timer-counter mode uses the same resource, so pulse output and that counting mode cannot be used at the same time.
- Each point supplies up to 30 mA. Drive anything larger through a driver stage rather than straight off the header.
- Writing the Timer3 registers directly affects all three pulse outputs, not just the pin you are changing.
- After the 16-bit change, analogWrite() takes 0–65535 on these pins — a value written for the 0–255 range then produces a duty close to zero.
Example sketch — PWM output
void setup() {
// PWM needs no pinMode() - analogWrite() handles it
}
void loop() {
if (digitalRead(0) == HIGH) {
analogWrite(21, 127); // Duty 50%
} else {
analogWrite(21, 0); // OFF
}
}External interruptInterrupt
Count high-speed pulses and read a rotary encoder from the interrupt inputs
CLK (D24), DIO (D25), SCL (D18) and SDA (D19) are the four interrupt inputs, with a built-in pull-up on each — 4.7 kΩ on SCL and SDA, 10 kΩ on CLK and DIO. attachInterrupt() catches the edge, so the same inputs count high-speed pulses or read a rotary encoder's rotation and direction, at 50 kHz and above. The counter also has a hardware mode that runs Timer3 straight off the CLK input.
4 interrupt inputs
CLK (D24) · DIO (D25) · SCL (D18) · SDA (D19)
High-speed pulse counting
In the ISR, or in Timer3 counter mode · 50 kHz and above
Rotary encoder input
Open-collector on SCL / SDA, totem-pole on CLK / DIO
Pull-ups built in
SCL · SDA 4.7 kΩ, CLK · DIO 10 kΩ · DC 0–5 V · HIGH from 3 V
Interrupt pin mapping
| Pin | INT | Built-in resistor · shared with |
|---|---|---|
| D18 | INT0 | 4.7 kΩ pull-up · I²C SCL |
| D19 | INT1 | 4.7 kΩ pull-up · I²C SDA |
| D24 | INT6 | 10 kΩ pull-up · CLK · FND / encoder |
| D25 | INT7 | 10 kΩ pull-up · DIO · FND / encoder |
Input is DC 0–5 V, with HIGH recognised from 3 V, and at least 50 kHz. If a pin is used as an interrupt, the function sharing it (I²C, FND) cannot be used. High-speed counting works two ways: attachInterrupt() adds to a variable in the ISR, or Timer3 is put into counter mode and counts the CLK input in hardware — that second mode uses the same resource as pulse output, so the two cannot run together. The frequency actually handled in the ISR depends on the length of that routine and the load of the whole program, so it is not guaranteed as a fixed figure.
What the interrupts are for
* On the left the pulse source's output goes to the CLK terminal and its ground to GND, and every rising edge adds one in the interrupt service routine. On the right the encoder's two phases sit 90° apart, so the level of DIO at a rising CLK edge is the direction of rotation.
Interrupt connectors
* Two 4-pin connectors on the board's right edge, drawn in the order the pins are silkscreened. CLK is D24 (INT6), DIO is D25 (INT7), SCL is D18 (INT0) and SDA is D19 (INT1). The FND (7-segment) accessory and I²C use the same pins, so they cannot be used if those pins serve as interrupts.
Before you wire it
- The interrupt inputs accept DC 0–5 V only. Connecting a 24 V signal directly will destroy the MCU.
- An encoder goes on different terminals depending on its output stage: open-collector on SCL (D18) and SDA (D19), totem-pole or push-pull on CLK (D24) and DIO (D25).
- Using D24 and D25 as interrupts means the FND (7-segment) accessory on the same connector cannot be used at the same time.
- Using D18 and D19 as interrupts means I²C cannot be used at the same time.
- Counting in Timer3 counter mode shares its resource with the pulse outputs D21–D23, so the two cannot be used together.
- Inside the ISR, only increment the count — do not call Serial, delay() or floating-point maths.
- Changing the built-in resistor configuration on CLK and DIO is SMD rework. Please ask us rather than modifying the board yourself.
Example sketch — pulse counting (interrupt)
unsigned int count = 0;
void setup() {
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(CLK), countFunc, RISING);
}
void loop() {
Serial.println(count);
}
void countFunc() { count++; }Example sketch — rotary encoder
volatile long encoderValue = 0;
void setup() {
Serial.begin(115200);
attachInterrupt(digitalPinToInterrupt(CLK), updateEncoder, RISING);
}
void loop() {
Serial.print("Encoder: ");
Serial.println(encoderValue);
delay(500);
}
void updateEncoder() {
if (digitalRead(DIO)) { encoderValue++; }
else { encoderValue--; }
}Example sketch — counting in Timer3 counter mode
unsigned int HCNT3;
void setup() {
TIMSK = 0x00;
TCCR3A = 0x00;
TCCR3B = 0x07;
TCNT3 = 0x00;
}
void loop() {
HCNT3 = TCNT3;
}
void hcntReset() {
TCNT3 = 0;
}CommunicationRS-232 · I²C
RS-232, I²C and a USB serial port
RS-232 is Serial1, brought out on a screw terminal as TX, RX and GND for a 1:1 link to a PC or an operator panel, and Modbus RTU works as either master or slave. I²C brings its own 4.7 kΩ pull-ups for a DS3231 RTC or a character LCD, and the USB port handles upload and debugging.
RS-232 · 1 channel
Serial1 · 1:1 link on the TX / RX / GND terminals
Modbus RTU
Works as master or slave
I²C · 1 channel
4.7 kΩ pull-ups built in · 1:N · RTC, character LCD
USB serial
Upload and debug over the USB port
RS-485 as an order option
A standard board ships as RS-232. Select the communication-change option when ordering to have it built as RS-485, or use an external converter module.
I²C · USB connectors
* The I²C connector is silkscreened I2C and reads GND · +5V · SDA · SCL; it doubles as an interrupt input. The upload port is the mini USB-B connector silkscreened DOWNLOAD at the board's upper right.
RS-232 link
* The 4-pole screw block standing at the board's right edge, in the order TX(+) · RX(−) · GND · +5V from the top. RS-232 is a 1:1 link, so TX goes to the other device's RX and RX to its TX. The (+) and (−) marks are the A / B labels those two poles take when the board is ordered with the communication-change option.
Communication ports
| Port | Pins | Use |
|---|---|---|
| Serial | USB mini 5P | Upload and debug over the download port |
| Serial1 | TX · RX · GND terminals | RS-232, 1:1 · Modbus RTU master or slave |
| Wire (I²C) | SCL = D18 · SDA = D19 | 4-pin connector · 4.7 kΩ pull-ups built in |
RS-232 is reached as Serial1 and is a 1:1 link; Modbus RTU works as either master or slave. I²C supports 1:N connections and takes accessories such as the DS3231 RTC and 1602 / 2004 character LCDs. This board has no Serial2 or Serial3.
Before you wire it
- A standard board is RS-232. If you need RS-485, select the communication-change option when ordering or use an external converter module — changing the IC in the field is not recommended.
- The +5V pole of the terminal block is a supply OUTPUT rated 0.5 A or less. A supercapacitor connected there holds the internal 5 V up through a power cut — see Power · Data retention below.
- Using D18 and D19 as external interrupts means I²C cannot be used at the same time.
- Uploading requires the MP download cable, which has the USB-TTL converter built in. An off-the-shelf mini 5P cable cannot upload.
- This board has no Serial2 or Serial3 — only Serial and Serial1 exist.
Example sketch — serial send and receive
void setup() {
Serial.begin(9600); // debug
Serial1.begin(9600); // RS-232
}
void loop() {
if (Serial1.available()) {
int c = Serial1.read();
Serial.write(c); // echo what arrived out over USB
}
}Display connectionLCD · FND
Show status on a character LCD or a 7-segment display — four wires either way
A character LCD goes on the I²C 4-pin connector and a 7-segment (FND) display on the ENC/FND 4-pin connector. Both connectors bring out +5V and GND beside the two signal lines, so the whole run is four wires, and the I²C pull-ups are already on the board.
Character LCD 1602 · 2004
16 × 2 or 20 × 4 characters over I²C
7-segment (FND)
CLK and DIO on the ENC/FND connector · up to 2
4.7 kΩ pull-ups built in
No external resistors to add for I²C
1:N on I²C
Shares the bus with accessories such as the DS3231 RTC
Character LCD on I²C
* The I²C connector is silkscreened I2C and reads GND · +5V · SDA · SCL. SDA is D19 and SCL is D18, both with a 4.7 kΩ pull-up on the board. The 1602 shows 16 characters over 2 lines and the 2004 shows 20 over 4. For a richer display than a character LCD, a touch HMI connects over the serial port instead.
7-segment (FND) on ENC/FND
* The connector is silkscreened FND/ENCO and reads CLK · DIO · GND · +5V. CLK is D24 and DIO is D25. One display goes on this connector, and using the PWM connector as well takes the total to 2. The display comes in a decimal-point form and a time-displaying form.
Before you wire it
- Using D18 and D19 as external interrupts means I²C — and with it the character LCD — cannot be used at the same time.
- Using D24 and D25 as external interrupts or as an encoder input means the 7-segment (FND) display cannot be used at the same time.
- The signal pins on both connectors are DC 0–5 V inputs. Applying more than 5 V destroys the MCU.
- The character LCD and the 7-segment display are accessories sold separately — neither is included with the board.
Displays and their connectors
| Display | Connector | Signals |
|---|---|---|
| Character LCD 1602 | I²C 4-pin | 16 characters × 2 lines · SDA = D19 · SCL = D18 |
| Character LCD 2004 | I²C 4-pin | 20 characters × 4 lines · SDA = D19 · SCL = D18 |
| 7-segment (FND) | ENC/FND 4-pin | CLK = D24 · DIO = D25 |
| I²C pull-ups | On the board | 4.7 kΩ · 1:N connection supported |
Both connectors carry +5V and GND alongside the two signal lines, so a display needs no supply of its own. I²C has its 4.7 kΩ pull-ups fitted on the board and supports 1:N, so a character LCD can share the bus with another I²C accessory such as the DS3231 RTC. Character LCDs and 7-segment displays are sold separately.
Example sketch — talking to an I²C device
#include <Wire.h>
void setup() {
Serial.begin(9600);
Wire.begin();
}
byte bcdToDec(byte val) { return (val / 16 * 10) + (val % 16); }
void loop() {
Wire.beginTransmission(0x68); // DS3231 address
Wire.write(0x00); // first register: seconds
Wire.endTransmission();
Wire.requestFrom(0x68, 7);
byte sec = bcdToDec(Wire.read() & 0x7F);
byte min = bcdToDec(Wire.read());
byte hour = bcdToDec(Wire.read() & 0x3F);
Serial.print(hour); Serial.print(':');
Serial.print(min); Serial.print(':');
Serial.println(sec);
delay(1000);
}Power · Data retentionPower · Backup
DC 12V ~ 24V in, 5 V out — and your data survives the blackout
The controller takes DC 12V ~ 24V and converts it to 5 V internally with a TPS5430 regulator. Size the supply for at least 24V 0.5A.
DC 12V ~ 24V
Size the supply for 24V 0.5A or more
5 V internal
TPS5430 DC-DC conversion
+5 V out 0.5A
From the +5 V pole of the RS-232 terminal block
Supercapacitor hold-up
About ten seconds on the +5 V pole
Before wiring the supply
- EEPROM cells last about 100,000 writes. Keep fast-changing values in RAM and write them only when the mains drops — see the two methods below — not every loop.
- Running on USB alone makes the USB 5 V the analog reference, so readings can wander. Use the external supply for precise measurement.
Where the power goes
* Either source runs the board: the external supply through the regulator, or the download port's 5 V directly. The supercapacitor sits on the same 5 V node and keeps it alive when both go away.
Power and data retention
| Input voltage | DC 12V ~ 24V |
|---|---|
| Recommended supply | 24V 0.5A or more |
| Internal conversion | TPS5430 DC-DC to 5 V |
| +5 V output | 0.5A max, from the +5 V pole of the RS-232 terminal block |
| USB-powered operation | Runs on the PC's 5 V through the download port |
| Non-volatile memory | EEPROM 4 KB, about 100,000 writes |
| Hold-up on a power cut | Supercapacitor on the +5 V pole, about ten seconds |
| Blackouts retained | More than 100,000, writing only when the mains drops |
Size the supply for 24V 0.5A or more, plus whatever the +5 V pole is feeding (up to 0.5A).
Two ways to keep data through a blackout
Which one you want depends on how often the value changes. They are meant to be combined.
EEPROM — values that change occasionally
The on-board EEPROM holds 4 KB with no power at all and is written a byte at a time, but the same cell survives only about 100,000 writes. That makes it right for setpoints, calibration data and machine configuration — and wrong for anything the loop updates.
Supercapacitor — values that change constantly
Fit a supercapacitor to the +5 V pole and the internal 5 V stays up for about ten seconds after the main supply is cut. Wire the main supply into a digital input, and the moment digitalRead() sees that input go off, write the value to EEPROM; when power comes back, setup() reads the stored value out of EEPROM and puts it into memory. Because the EEPROM is written only at the instant of a blackout, it survives more than 100,000 of them.
MPINO STUDIO2 — done for you
MPINO STUDIO2 offers supercapacitor-based retention as an option, so the sequence above can be set up in the tool instead of being coded by hand.
Mounting · DIN railDIN Rail
Clips onto a 35 mm DIN rail, or screws down through the PCB's own holes
Inside a control panel the board clips onto a 35 mm DIN rail; built into a machine it screws down through the Ø3.2 mounting holes in the PCB. The board measures 77.0 × 100.0 mm without the rail clip, and stands 114.16 mm high once the clip is closed on the rail.
35 mm DIN rail
Clips onto the rail in a control panel
Direct PCB mounting
Screws through the Ø3.2 mounting holes
77.0 × 100.0 mm
PCB outline with no rail clip fitted
114.16 mm engaged
119.42 mm with the clip open, 114.16 mm closed
Mounting and dimensions
| Mounting | 35 mm DIN rail, or direct to PCB (Ø3.2 holes) |
|---|---|
| DIN rail | 35 mm |
| PCB alone (no clip) | 77.0 × 100.0 mm |
| Mounting holes | Ø3.2 mm · 60.2 × 90.0 mm apart |
| Clip open (before engaging) | approx. 119.42 mm |
| Clip closed (engaged) | approx. 114.16 mm |
Where no DIN rail is used, the board screws down through the Ø3.2 mounting holes in the PCB; on a rail, the clip closes over a 35 mm profile and the assembly stands 114.16 mm high.
Mounting on a 35 mm DIN rail
* The clip hooks over a 35 mm DIN rail. Overall height is 119.42 mm with the clip open and 114.16 mm once it is closed and engaged. The drawing shows the mounting method rather than the clip's own shape.
Outline and mounting holes
* The outline and mounting holes with no rail clip fitted. All dimensions in millimetres.
Installation notes
- Indoor use only. Do not install where there is rain, dust, frost, direct sunlight or condensation.
- Do not install in an atmosphere containing flammable or explosive gas.
- Do not install where there is heavy vibration or shock.
- Where the equipment affects life or property (nuclear, medical, marine, vehicle, aviation and the like), a secondary safety device must be fitted.
FAQ
How many I/O points does the MPINO-8A4R-S have?▾
The MPINO-8A4R-S provides 8 isolated digital inputs and 4 relay outputs, with onboard RS-232, I²C communication. See the specification table for the full breakdown.
Does the MPINO-8A4R-S support Modbus RTU?▾
Yes. The MPINO-8A4R-S supports Modbus RTU — master and slave alike — over its serial interface.



