NEW! ArduinoPlugin - Available - 🚀 - Powerful Arduino and other Logic boards control for VisualNeo Win! - Forum

Forum Navigation
You need to log in to create posts and topics.

NEW! ArduinoPlugin - Available - 🚀 - Powerful Arduino and other Logic boards control for VisualNeo Win!

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

  • 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

  1. Download ArduinoPlugin.nbp
  2. Copy to your VisualNEO Win PlugIns folder:
    • Typically: C:\Program Files (x86)\VisualNEO Win\PlugIns\
  3. Restart VisualNEO Win
  4. Find "Arduino" actions in the Action list

Tips & Best Practices

  1. Always add a delay after connecting - Arduino boards reset when a serial connection opens. Wait 2-3 seconds before sending commands.
  2. Clear buffers after connecting - Use ArduinoClearBuffer to remove any startup messages.
  3. Use the Serial Monitor for debugging - The built-in monitor is invaluable for testing communication.
  4. Match baud rates - Ensure your Arduino sketch and VisualNEO connection use the same baud rate.
  5. Use variables for port names - Store the COM port in a variable so users can configure it.
  6. 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

 

Uploaded files:
  • You need to login to have access to uploads.
luishp, alangonzalez91 and 3 other users have reacted to this post.
luishpalangonzalez91CDY@44raslAnthony LaTorre