
Quote from Kriscall on January 29, 2026, 1:25 amArduinoPlugin for VisualNEO Win
Serial Communication & Microcontroller Control Made Easy
Version: 1.5
Author: Kriscall Software Labs
License: Free for the VisualNEO CommunityIntroduction
Hey Guys, me again lol !! this is another NEW!!! Arduino Plugin brings powerful serial communication capabilities to VisualNEO Win, enabling you to connect your applications directly to Arduino boards, ESP32, ESP8266, Raspberry Pi Pico, and virtually any microcontroller with a serial interface. Apologies I could not provided a pub sample as the only working pub sample I have a personal robotics project, but the plugin has pretty good help tip guides. I made this as I have a love for robotics for a hobby. I'm using VisualNeoWin as my development platform so prepare yourself for more advanced robotic plugins. We can take VisualNeowin to a robotics IDE for hobbyist. Robotics and Automation is a new growing hot topic and these tools allow integration.
Whether you're building a home automation dashboard, a robotics control panel, a data logger, or an interactive exhibit, this plugin gives you all the tools you need to communicate bidirectionally with your hardware projects.
Key Features
Smart Connection Management
- Auto-Detection of COM Ports - Lists all available serial ports with friendly device names (e.g., "COM3 - Arduino Uno")
- Full Serial Configuration - Set baud rate, parity, data bits, and stop bits
- Multiple Simultaneous Connections - Connect to up to 16 devices at once
- Auto-Reconnect - Automatically reconnects if a device is unplugged and reconnected
- DTR Control - Reset Arduino boards programmatically
Flexible Data Transmission
- Send Text - Send strings with or without line endings
- Send Raw Bytes - Send individual bytes (0-255) or byte arrays
- Command/Response - Send a command and wait for a response in one action
Comprehensive Data Reception
- Read All Available Data - Grab everything in the buffer
- Read Lines - Read until newline character
- Read Specific Bytes - Read exact number of bytes
- Read Until Delimiter - Read until a specific character
- Buffer Management - Check bytes available, clear buffers
Timing & Synchronization
- Configurable Timeouts - Set read timeout in milliseconds
- Wait for Data - Block until data arrives or timeout
🖥️ Built-in Serial Monitor
A professional serial monitor window featuring:
- Real-time RX/TX display with timestamps
- Color-coded sent vs received data
- Multiple baud rate support (300 to 921600)
- Auto-scroll option
- Line ending selection (None, \n, \r, \r\n)
- Data logging to file
- Byte counters for debugging
Firmata Protocol Support
Direct hardware control without writing Arduino code:
- Digital Write - Set pins HIGH or LOW
- Digital Read - Read pin states
- Analog Read - Read analog values (0-1023)
- PWM Output - Control LEDs, motors with PWM (0-255)
- Pin Mode Configuration - Set pins as INPUT, OUTPUT, PWM, SERVO, or I2C
I2C Communication
Talk directly to I2C sensors and devices:
- I2C Configuration - Set up the I2C bus
- I2C Write - Send data to any I2C address
- I2C Read - Read bytes from I2C devices
- I2C Register Read - Read from specific device registers
Quick Start Examples
Example 1: Basic LED Control
Arduino Sketch:
cpp
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available()) {
String cmd = Serial.readStringUntil('\n');
cmd.trim();
if (cmd == "ON") {
digitalWrite(13, HIGH);
Serial.println("LED ON");
}
else if (cmd == "OFF") {
digitalWrite(13, LOW);
Serial.println("LED OFF");
}
}
}
VisualNEO Win Script:
ArduinoConnect "COM3" "9600" "None" "8" "1" "[Result]"
If "[Result]" "=" "True"
Delay "2000"
ArduinoSendLine "COM3" "ON"
ArduinoReadLine "COM3" "[Response]"
AlertBox "Arduino" "[Response]"
EndIf
Example 2: Reading a Sensor
VisualNEO Win Script:
ArduinoConnect "COM3" "9600" "None" "8" "1" "[Result]"
Delay "2000"
ArduinoSendLine "COM3" "READ_TEMP"
ArduinoWaitForData "COM3" "1000" "[Ready]"
If "[Ready]" "=" "True"
ArduinoReadLine "COM3" "[Temperature]"
SetVar "[DisplayTemp]" "Temperature: [Temperature]°C"
EndIf
Example 3: Direct Pin Control with Firmata
Upload StandardFirmata to your Arduino, then:
ArduinoConnect "COM3" "57600" "None" "8" "1" "[Result]"
Delay "3000"
ArduinoFirmataInit "COM3" "[Ready]"
If "[Ready]" "=" "True"
ArduinoPinMode "COM3" "13" "OUTPUT"
ArduinoDigitalWrite "COM3" "13" "HIGH"
Delay "1000"
ArduinoDigitalWrite "COM3" "13" "LOW"
EndIf
Example 4: Reading I2C Sensor (e.g., MPU6050)
ArduinoFirmataInit "COM3" "[Ready]"
ArduinoI2CConfig "COM3" "0"
ArduinoI2CReadRegister "COM3" "104" "59" "6" "[AccelData]"
// [AccelData] contains 6 bytes: AccelX(2), AccelY(2), AccelZ(2)
Supported Hardware
Tested Boards
- Arduino Uno, Nano, Mega, Leonardo
- Arduino Due
- ESP32 / ESP8266
- Raspberry Pi Pico
- STM32 boards
- Any board with USB-Serial capability
Supported Baud Rates
300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600
Serial Settings
- Parity: None, Even, Odd, Mark, Space
- Data Bits: 7, 8
- Stop Bits: 1, 1.5, 2
Installation
- Download ArduinoPlugin.nbp
- Copy to your VisualNEO Win PlugIns folder:
- Typically: C:\Program Files (x86)\VisualNEO Win\PlugIns\
- Restart VisualNEO Win
- Find "Arduino" actions in the Action list
Tips & Best Practices
- Always add a delay after connecting - Arduino boards reset when a serial connection opens. Wait 2-3 seconds before sending commands.
- Clear buffers after connecting - Use ArduinoClearBuffer to remove any startup messages.
- Use the Serial Monitor for debugging - The built-in monitor is invaluable for testing communication.
- Match baud rates - Ensure your Arduino sketch and VisualNEO connection use the same baud rate.
- Use variables for port names - Store the COM port in a variable so users can configure it.
- Handle disconnections gracefully - Use ArduinoIsConnected to check before sending commands, or enable ArduinoAutoReconnect.
Technical Notes
- 32-bit Plugin - Compatible with VisualNEO Win (32-bit)
- Static Linking - No external DLL dependencies; works on any Windows system
- Thread-Safe - Serial Monitor runs in its own thread
- Memory Efficient - Supports up to 16 simultaneous connections
Support & Feedback
This plugin is donated freely to the VisualNEO community. If you find it useful, please share your projects and feedback!
For issues or feature requests, just hit me up below.
Happy Making! 🚀
Kriscall Software Labs
Connecting Software to Hardware
ArduinoPlugin for VisualNEO Win
Serial Communication & Microcontroller Control Made Easy
Version: 1.5
Author: Kriscall Software Labs
License: Free for the VisualNEO Community
Introduction
Hey Guys, me again lol !! this is another NEW!!! Arduino Plugin brings powerful serial communication capabilities to VisualNEO Win, enabling you to connect your applications directly to Arduino boards, ESP32, ESP8266, Raspberry Pi Pico, and virtually any microcontroller with a serial interface. Apologies I could not provided a pub sample as the only working pub sample I have a personal robotics project, but the plugin has pretty good help tip guides. I made this as I have a love for robotics for a hobby. I'm using VisualNeoWin as my development platform so prepare yourself for more advanced robotic plugins. We can take VisualNeowin to a robotics IDE for hobbyist. Robotics and Automation is a new growing hot topic and these tools allow integration.
Whether you're building a home automation dashboard, a robotics control panel, a data logger, or an interactive exhibit, this plugin gives you all the tools you need to communicate bidirectionally with your hardware projects.
Key Features
Smart Connection Management
Flexible Data Transmission
Comprehensive Data Reception
Timing & Synchronization
🖥️ Built-in Serial Monitor
A professional serial monitor window featuring:
Firmata Protocol Support
Direct hardware control without writing Arduino code:
I2C Communication
Talk directly to I2C sensors and devices:
Quick Start Examples
Example 1: Basic LED Control
Arduino Sketch:
cpp
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available()) {
String cmd = Serial.readStringUntil('\n');
cmd.trim();
if (cmd == "ON") {
digitalWrite(13, HIGH);
Serial.println("LED ON");
}
else if (cmd == "OFF") {
digitalWrite(13, LOW);
Serial.println("LED OFF");
}
}
}
VisualNEO Win Script:
ArduinoConnect "COM3" "9600" "None" "8" "1" "[Result]"
If "[Result]" "=" "True"
Delay "2000"
ArduinoSendLine "COM3" "ON"
ArduinoReadLine "COM3" "[Response]"
AlertBox "Arduino" "[Response]"
EndIf
Example 2: Reading a Sensor
VisualNEO Win Script:
ArduinoConnect "COM3" "9600" "None" "8" "1" "[Result]"
Delay "2000"
ArduinoSendLine "COM3" "READ_TEMP"
ArduinoWaitForData "COM3" "1000" "[Ready]"
If "[Ready]" "=" "True"
ArduinoReadLine "COM3" "[Temperature]"
SetVar "[DisplayTemp]" "Temperature: [Temperature]°C"
EndIf
Example 3: Direct Pin Control with Firmata
Upload StandardFirmata to your Arduino, then:
ArduinoConnect "COM3" "57600" "None" "8" "1" "[Result]"
Delay "3000"
ArduinoFirmataInit "COM3" "[Ready]"
If "[Ready]" "=" "True"
ArduinoPinMode "COM3" "13" "OUTPUT"
ArduinoDigitalWrite "COM3" "13" "HIGH"
Delay "1000"
ArduinoDigitalWrite "COM3" "13" "LOW"
EndIf
Example 4: Reading I2C Sensor (e.g., MPU6050)
ArduinoFirmataInit "COM3" "[Ready]"
ArduinoI2CConfig "COM3" "0"
ArduinoI2CReadRegister "COM3" "104" "59" "6" "[AccelData]"
// [AccelData] contains 6 bytes: AccelX(2), AccelY(2), AccelZ(2)
Supported Hardware
Tested Boards
Supported Baud Rates
300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600
Serial Settings
Installation
Tips & Best Practices
Technical Notes
Support & Feedback
This plugin is donated freely to the VisualNEO community. If you find it useful, please share your projects and feedback!
For issues or feature requests, just hit me up below.
Happy Making! 🚀
Kriscall Software Labs
Connecting Software to Hardware
Uploaded files: