Skip to main content

Autoflo Technology

Controllers | Autoflo Technology /* ===== SHARED DESIGN SYSTEM (loaded once via Hero; cascades to all sections on this page) ===== */ :root { --accent: #800059; --accent-dk: #5A003E; --accent-tint: #FAEEF5; --cta-bg: #FEBE4F; --cta-text: #331A00; --dark-bg: #2A001D; --bg: #FFFFFF; --bg-section: #F8F9FA; --bg-alt: #F3F4F6; --text: #111827; --muted: #4B5563; --border: #E5E7EB; --container: 1240px; --ease: cubic-bezier(0.22, 1, 0.36, 1); } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; overflow-x: clip; width: 100%; margin: 0; padding: 0; } body { font-family: 'Inter', system-ui, sans-serif; background: var(--bg); color: var(--text); -webkit-font-smoothing: antialiased; overflow-x: clip; line-height: 1.7; } a { color: inherit; text-decoration: none; } img { display: block; max-width: 100%; } ul { list-style: none; } button { font-family: inherit; cursor: pointer; border: none; background: none; } .container { max-width: var(--container); margin: 0 auto; padding: 0 40px; } .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-size: 14px; font-weight: 600; border-radius: 4px; padding: 13px 28px; transition: all 0.3s var(--ease); white-space: nowrap; cursor: pointer; position: relative; overflow: hidden; font-family: inherit; border: none; } .btn::after { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.2) 50%, rgba(255,255,255,0) 100%); transform: skewX(-25deg); transition: left 0.6s var(--ease); pointer-events: none; } .btn:hover::after { left: 150%; } .btn-accent { background: linear-gradient(135deg, #ffd080 0%, #FEBE4F 100%); color: var(--cta-text); box-shadow: 0 4px 12px rgba(254,190,79,0.2); border: 1px solid rgba(255,255,255,0.3); } .btn-accent:hover { background: linear-gradient(135deg, #ffe9a8 0%, #ffd080 100%); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(254,190,79,0.3); } .btn-outline-dark { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.35); } .btn-outline-dark:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.6); transform: translateY(-2px); } .reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.65s ease, transform 0.65s ease; } .reveal.is-visible { opacity: 1; transform: none; } .stagger > * { opacity: 0; transform: translateY(16px); transition: opacity 0.5s ease, transform 0.5s ease; } .stagger.is-visible > *:nth-child(1) { opacity:1; transform:none; transition-delay:0.04s; } .stagger.is-visible > *:nth-child(2) { opacity:1; transform:none; transition-delay:0.08s; } .stagger.is-visible > *:nth-child(3) { opacity:1; transform:none; transition-delay:0.12s; } .stagger.is-visible > *:nth-child(4) { opacity:1; transform:none; transition-delay:0.16s; } @media (max-width: 1024px) { .container { padding: 0 24px; } } /* ===== HERO-SPECIFIC ===== */ .page-hero { background: var(--dark-bg); padding: 130px 0 0; position: relative; overflow: hidden; min-height: 550px; } .page-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(42,0,29,0.95) 0%, rgba(128,0,89,0.75) 100%); } .page-hero-inner { position: relative; z-index: 2; padding-bottom: 0; } .breadcrumb { display: flex; align-items: center; gap: 8px; margin-bottom: 20px; font-size: 13px; color: rgba(255,255,255,0.45); flex-wrap: wrap; } .breadcrumb a { color: rgba(255,255,255,0.45); transition: color 0.2s; } .breadcrumb a:hover { color: var(--cta-bg); } .breadcrumb-sep { color: rgba(255,255,255,0.25); } .page-hero-label { display: block; color: var(--cta-bg); font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 16px; } .page-hero h1 { font-family: 'Outfit', sans-serif; font-size: 56px; font-weight: 700; color: #fff; letter-spacing: -0.02em; line-height: 1.08; margin-bottom: 20px; } .page-hero-desc { font-size: 17px; color: rgba(255,255,255,0.7); line-height: 1.65; max-width: 620px; margin-bottom: 40px; } @media (max-width: 767px) { .page-hero h1 { font-size: 40px; } }
Control Technologies · Injecta · Aquarius · Pyxis

Controllers

From single-parameter readouts to Modbus-connected controllers that adapt to almost any probe — single, dual and multiparameter control instruments for water treatment sites across Malaysia.

(function () { const obs = new IntersectionObserver(entries => { entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('is-visible'); obs.unobserve(e.target); } }); }, { threshold: 0.08 }); document.querySelectorAll('.reveal, .stagger').forEach(el => obs.observe(el)); })();
Controllers | Autoflo Technology /* Section-specific only — shared reset, fonts, :root tokens, .btn, .container, .reveal/.stagger are loaded once via the Hero section and cascade here. */ .cat-intro { padding: 100px 0; background: var(--bg); border-bottom: 1px solid var(--border); } .cat-intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; } .cat-intro-image { position: relative; border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 5; background: var(--bg-alt); box-shadow: 0 24px 48px rgba(0,0,0,0.08); } .cat-intro-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; } .cat-intro-image:hover img { transform: scale(1.03); } .cat-intro-badge { position: absolute; top: 16px; left: 16px; background: var(--dark-bg); color: #fff; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 5px 12px; border-radius: 4px; border: 1px solid rgba(255,255,255,0.15); } .cat-intro-label { font-size: 14px; font-weight: 600; letter-spacing: 0.05em; color: var(--accent); text-transform: uppercase; display: inline-block; margin-bottom: 8px; } .cat-intro-title { font-family: 'Outfit', system-ui, sans-serif; font-size: clamp(32px, 4vw, 40px); font-weight: 600; color: var(--text); letter-spacing: -0.02em; line-height: 1.15; margin-top: 4px; } .cat-intro-desc { font-size: 17px; color: var(--muted); line-height: 1.7; margin-bottom: 24px; } .feature-list { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; } .feature-item { display: flex; align-items: flex-start; gap: 12px; } .feature-check { width: 20px; height: 20px; border-radius: 50%; background: var(--accent-tint); border: 1px solid rgba(128,0,89,0.2); flex-shrink: 0; margin-top: 1px; display: flex; align-items: center; justify-content: center; } .feature-check svg { width: 11px; height: 11px; color: var(--accent); } .feature-item p { font-size: 15px; color: var(--muted); line-height: 1.6; } .feature-item strong { color: var(--text); font-weight: 600; } @media (max-width: 900px) { .cat-intro-grid { grid-template-columns: 1fr; gap: 40px; } }
Controllers
Multi-Brand Controller Range
Controllers

From One Parameter to Any Parameter

The controller range spans four tiers of capability. Injecta Nexus single-parameter controllers (NX2000, Nexus 6000, Nexus 7000) read one value at a time — pH, ORP, conductivity, chlorine, flow, temperature, turbidity or oxygen. Injecta Nexus dual-parameter controllers (NX2500, Nexus 6500, Nexus 7000 dual) display two parameters simultaneously on a single unit, such as pH/CD or pH/Cl. Aquarius Ultima multiparameter controllers go further, monitoring pH, ORP, conductivity and temperature at once on a 7-inch touchscreen with built-in data logging. And the Pyxis UC series connects over RS485 Modbus RTU to almost any compatible probe — each unit is factory-preconfigured to the specific parameter confirmed at the time of order, so the correct probe type must be specified before shipping. Water treatment sites across Malaysia are matched to the tier that fits their process, from a single pH loop to a fully networked multi-probe system.

Single, dual or multiparameter — choose the read-out that matches your process, from one channel to simultaneous multi-sensor monitoring

RS485 Modbus connectivity — every controller line here reports over Modbus RTU, with Modbus TCP, 4G and WiFi available on select Pyxis models

Guided calibration and alarms — password-protected menus, electrode quality checks and programmable alarm/dosing relay outputs

Data logging and remote access — Aquarius AquaReporter and Injecta Remote platforms bring cloud dashboards, trend charts and SMS/email alerts

Request Engineering Quote
(function () { const obs = new IntersectionObserver(entries => { entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('is-visible'); obs.unobserve(e.target); } }); }, { threshold: 0.08 }); document.querySelectorAll('.reveal, .stagger').forEach(el => obs.observe(el)); })();
Controllers | Autoflo Technology /* Section-specific only — shared reset, fonts, :root tokens, .btn, .container are loaded once via the Hero section and cascade here. */ .context-strip { background: var(--dark-bg); padding: 0; border-bottom: 1px solid rgba(255,255,255,0.06); } .context-strip-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 0; flex-wrap: wrap; } .context-strip-left { display: flex; align-items: center; gap: 16px; } .context-count { font-family: 'Outfit', sans-serif; font-size: 28px; font-weight: 800; color: #fff; line-height: 1; } .context-label { font-size: 13px; color: rgba(255,255,255,0.5); font-weight: 500; } .context-divider { width: 1px; height: 32px; background: rgba(255,255,255,0.15); } .context-cats { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .context-cat-badge { font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--cta-bg); background: rgba(254,190,79,0.1); border: 1px solid rgba(254,190,79,0.2); padding: 4px 10px; border-radius: 3px; } @media (max-width: 900px) { .context-strip-inner { flex-direction: column; align-items: flex-start; gap: 12px; } }
4
Controller Categories
Single Parameter Dual Parameter Multiparameter Pyxis (Modbus)
Request Engineering Quote
Controllers | Autoflo Technology /* Section-specific only — shared reset, fonts, :root tokens, .btn, .container, .reveal/.stagger are loaded once via the Hero section and cascade here. */ .product-grid-section { padding: 64px 0 100px; background: var(--bg-section); } .grid-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 32px; } .grid-label { font-size: 14px; font-weight: 600; letter-spacing: 0.05em; color: var(--accent); text-transform: uppercase; display: inline-block; margin-bottom: 8px; } .grid-title { font-family: 'Outfit', sans-serif; font-size: 32px; font-weight: 700; color: var(--text); letter-spacing: -0.02em; } .grid-count-badge { font-size: 13px; font-weight: 700; color: var(--accent); background: var(--accent-tint); border: 1px solid rgba(128,0,89,0.15); padding: 6px 14px; border-radius: 4px; white-space: nowrap; } .filter-bar { display: flex; gap: 8px; margin-bottom: 40px; flex-wrap: wrap; align-items: center; } .product-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; } .product-card { background: var(--bg); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s; position: relative; } .product-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(to right, var(--accent), var(--accent-dk)); opacity: 0; transition: opacity 0.3s; z-index: 1; } .product-card:hover { border-color: rgba(128,0,89,0.25); box-shadow: 0 12px 32px rgba(0,0,0,0.08); transform: translateY(-4px); } .product-card:hover::before { opacity: 1; } .product-card-image { aspect-ratio: 4/3; overflow: hidden; background: var(--bg-alt); position: relative; } .product-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; } .product-card:hover .product-card-image img { transform: scale(1.06); } .product-card-body { padding: 18px 18px 0; flex: 1; display: flex; flex-direction: column; gap: 6px; } .product-card-tag { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); } .product-card-name { font-family: 'Outfit', sans-serif; font-size: 15px; font-weight: 700; color: var(--text); line-height: 1.3; letter-spacing: -0.01em; } .product-card-models { font-size: 11.5px; color: var(--accent); font-weight: 600; margin-top: 2px; } .product-card-desc { font-size: 12px; color: var(--muted); line-height: 1.6; flex: 1; margin-top: 4px; } .product-card-footer { padding: 14px 18px 18px; border-top: 1px solid var(--border); margin-top: 14px; } .product-card-cta { display: flex; align-items: center; justify-content: space-between; } .product-card-cta span { font-size: 13px; font-weight: 600; color: var(--accent); display: inline-flex; align-items: center; gap: 5px; transition: gap 0.2s; cursor: pointer; } .product-card:hover .product-card-cta span { gap: 9px; } .product-card-cta svg { width: 13px; height: 13px; } @media (max-width: 1024px) { .product-cards { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 767px) { .product-cards { grid-template-columns: 1fr; gap: 12px; } .grid-header { flex-direction: column; align-items: flex-start; } }
Browse by Parameter Count

All Controllers

4 Categories
Injecta Nexus Single Parameter
Single Parameter Controller
Injecta Nexus Series
NX2000 · Nexus 6000 · Nexus 7000

Reads one parameter at a time — pH, ORP, conductivity, chlorine, flow, temperature, turbidity or oxygen — with guided calibration, alarm relays and RS485 Modbus output.

Injecta Nexus Dual Parameter
Dual Parameter Controller
Injecta Nexus Series
NX2500 · Nexus 6500 · Nexus 7000 (PH-CL)

Monitors two parameters simultaneously on one display — pH/CD, pH/CL, pH/Rx, pH/OX and more — with independent relay outputs for each channel.

Aquarius Ultima Multiparameter
Multiparameter Controller
Aquarius Ultima Series
ULTIMA · ULTIMA2P · ULTIMA2P2S · ULTIMA3P

7-inch touchscreen controller reading pH, ORP, conductivity and temperature simultaneously, with 1-minute data logging and AquaReporter remote access.

Pyxis UC Series
Modbus Multi-Probe Controller
Pyxis UC Series
UC-10 · UC-20 · UC-50 · UC-80 · UC-100

Connects to almost any parameter over RS485 Modbus RTU, auto-adapting to compatible Pyxis probes. Each unit is factory-preconfigured to the parameter confirmed at order — let us know what you're measuring before shipping.

(function () { const obs = new IntersectionObserver(entries => { entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('is-visible'); obs.unobserve(e.target); } }); }, { threshold: 0.08 }); document.querySelectorAll('.reveal, .stagger').forEach(el => obs.observe(el)); })();
Controllers | Autoflo Technology /* Section-specific only — shared reset, fonts, :root tokens, .btn/.btn-accent/.btn-outline-dark, .container are loaded once via the Hero section and cascade here. */ .footer-cta { background: var(--dark-bg); padding: 60px 0; position: relative; overflow: hidden; } .footer-cta::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 50% 100% at 20% 50%, rgba(128,0,89,0.45) 0%, transparent 70%); pointer-events: none; } .footer-cta-box { display: flex; align-items: center; justify-content: space-between; gap: 48px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 16px; padding: 48px 56px; position: relative; z-index: 2; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } .footer-cta-label { font-size: 13px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cta-bg); margin-bottom: 14px; display: block; } .footer-cta h2 { font-family: 'Outfit', sans-serif; font-size: clamp(22px, 3vw, 34px); font-weight: 700; color: #fff; line-height: 1.25; } .footer-cta p { font-size: 15px; color: rgba(255,255,255,0.55); margin-top: 8px; } .footer-cta-btns { display: flex; gap: 12px; flex-shrink: 0; } @media (max-width: 900px) { .footer-cta-box { flex-direction: column; align-items: flex-start; padding: 32px 28px; } .footer-cta-btns { flex-direction: column; width: 100%; } }