Variable High-Voltage High-Frequency System with Embedded Real-Time Control
2021
Supervisor: Dr. Borhan Beigzadeh – Head of Biomechatronics and Cognitive Engineering Lab (BACE), Iran University of Science and Technology
Lead Designer: A. Bagheri (B.Sc. Mechanical Engineering & Computer Engineering)
A fully custom-designed cold atmospheric plasma device capable of delivering high-frequency (≈100 kHz) and high-voltage (up to 40 kV) output for antibacterial and experimental applications.
The system integrates power electronics, embedded control, sensing, and safety mechanisms into a single platform, fully designed, built, and tested from scratch.
- Variable output: ~100 kHz / up to 40 kV
- Full custom power chain:
- Function generator
- Pre-driver stage
- MOSFET full-bridge
- Ferrite transformer
- High-voltage output stage
- Embedded real-time monitoring:
- Temperature (MOSFETs & transformer)
- Frequency & duty-cycle feedback
- Arc and abnormal condition detection
- Safety-first architecture:
- Isolated feedback paths
- Over-temperature protection
- Automatic shutdown & restart logic
- Fully custom hardware:
- PCB design (Altium)
- Transformer winding
- Assembly & testing
The control unit is implemented using an Arduino Nano (ATmega328P) and demonstrates a modular embedded C-style architecture using the Arduino C++ framework.
- Startup UI (OLED):
"Cold Plasma" - Real-time display:
- Frequency (Hz)
- Duty cycle (%)
- Temperature (°C)
- Thermal management:
- PWM fan control based on temperature
- State machine control:
- Adjusting → Running → Overheat → Restart
- Stopwatch timing (using
micros()) during operation phase - Safety signaling:
- Buzzer + LED warning before critical conditions
- Relay control:
- Normally-closed relay for protection and system control
- Overheat handling:
- Forced cooling
- Controlled restart behavior
This repository includes a public demo firmware designed to showcase code quality and system architecture without exposing sensitive implementation details.
cold_plasma_controller_demo.ino # main entry point
config.h # pins, thresholds, timing constants
system_types.h # shared data structures & state definitions
sensors.h / sensors.cpp # measurement layer
control.h / control.cpp # state machine & control logic
display_ui.h / display_ui.cpp # OLED interface
- Modular layered architecture
- Clear separation of:
- sensing
- control logic
- hardware outputs
- user interface
- State-machine driven system behavior
- Non-blocking timing using
millis()/micros()
This demo firmware intentionally:
- Uses placeholder calibration values
- Simplifies measurement and protection logic
- Omits hardware-specific tuning and proprietary algorithms
Its purpose is to demonstrate:
Code structure, embedded design thinking, and system-level architecture
—not to replicate the full production system.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- High-frequency high-voltage power electronics
- Ferrite transformer design & winding
- Full-bridge MOSFET drivers with dead-time control
- Embedded firmware design (ATmega328P)
- Real-time monitoring and protection systems
- PCB design (Altium Designer)
- EMI & safety considerations
A. Bagheri
B.Sc. Mechanical Engineering & Computer Engineering – IUST (2021)
GitHub: https://github.com/aibgr
LinkedIn: https://www.linkedin.com/in/aibgr
If you find this project interesting or useful, consider giving it a star.
Schematics and full firmware may be shared under collaboration or agreement.
One of my earliest full-stack hardware projects — still one of my favorites!





