Free tools Windows power users keep installed
One-click scans. No signup required.
Sí: SimulIDE puede comunicarse con un programa Python. La configuración habitual ejecuta Python fuera de SimulIDE y conecta ambos mediante la UART del microcontrolador, el componente Serial Port y un puerto serie real o virtual. No significa que SimulIDE ejecute archivos Python dentro del circuito o de su editor.
Qué aporta Python a un circuito simulado
SimulIDE permite simular circuitos y microcontroladores como Arduino y AVR, y ofrece herramientas como monitor serie y conexión a puertos serie (descripción de SimulIDE). Python puede actuar como el programa externo al que el circuito envía datos o del que recibe comandos.
- Leer valores que el firmware envía por UART y guardarlos en un archivo o una base de datos.
- Enviar comandos para automatizar una prueba o controlar una salida.
- Graficar o procesar datos con bibliotecas de Python, o crear una interfaz de control externa.
- Representar un periférico externo que intercambia mensajes por UART.
El puente no convierte automáticamente SimulIDE en un simulador de sensores físicos, cámaras, redes o sistemas operativos embebidos. Solo se puede interactuar con las señales y los componentes que el circuito simulado exponga por una interfaz disponible.
Cómo se conectan SimulIDE y Python
La ruta habitual es:
Firmware del microcontrolador simulado
│
UART
│
Serial Port de SimulIDE
│
Puerto serie real o extremo virtual B
│
Enlace virtual
│
Extremo virtual A
│
Python con pySerial
El componente Serial Port puede conectarse a un puerto serie real o virtual. Sus valores predeterminados documentados son 9600 baudios, 8 bits de datos y 1 bit de parada; configura explícitamente ambos extremos para que coincidan (documentación del componente Serial Port).
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →#1 Best Overall
- !!Please NOTE: this is MALE RS232 to DB9 SERIAL CABLE ,Not VGA!!!It is 9 pin, NOT 15 pin!! Look carefully of the Pin is match with your device. Before ordering , please confirm the interface gender is waht you need. After receiving ,please read user manual /instruction at first and download the Driver at first from FT232 Official website or Cisco website . Customer service always online.
- Wide range of applications: USB to RS232 DB9 male serial adapter can work with your Windows (10 / 8.1 / 8 / 7 / Vista / XP), MAC or Linux system and other platforms. USB adapter is designed to connect to serial devices, such as serial modem with DB9, ISDN terminal adapter, digital camera, label writer, palm computer, barcode scanner, PDA, cash register, CNC, PLC controller, tax printer, POS, bar code scanner, label printer, etc
- High quality: ftdi usb serial,the latest ftdi chip set ensures more reliable and faster operation. USB 2.0 to RS232 male DB9 console cable will support 1Mbps date transfer rate.
- Most convenient: rs232 to usb simple installation, plug and play, COM port creation, baud rate can be changed to the required settings. USB power supply - no external power supply required.
- Exquisite design: usb-to-serial,Gold Plated USB RS232 connector and PVC cable ensure high performance and extra durability. Powered by USB port, this USB to DB9 series RS232 adapter cable is designed to fit easily into your handbag.
Si SimulIDE y Python están en el mismo ordenador, normalmente se crea un par de puertos virtuales: un programa abre un extremo y el otro programa abre el segundo. No configures ambos programas para abrir el mismo extremo.
Serial Port no es lo mismo que Serial Terminal
Serial Port conecta la UART del circuito con un puerto del ordenador. Serial Terminal es el monitor interno para observar o interactuar con datos UART durante la depuración (documentación del monitor serie). El monitor es útil para comprobar el firmware, pero no es en sí mismo el puente que conecta Python con el circuito.
Qué necesitas
- SimulIDE y un microcontrolador compatible con UART, por ejemplo un Arduino.
- Firmware cargado en el microcontrolador simulado.
- El componente Serial Port conectado a la UART.
- Python 3 y la biblioteca pySerial. La documentación está en pyserial.readthedocs.io.
- Un puerto serie real o un par de puertos virtuales si los dos programas corren en el mismo equipo.
La versión oficial identificada en las fuentes disponibles a 18 de agosto de 2026 es SimulIDE 1.1.0-SR2, anunciada el 12 de marzo de 2026 (anuncio de SimulIDE). Los nombres de paquetes y algunos detalles de interfaz pueden cambiar entre versiones. La guía básica indica que las descargas suelen ser paquetes extraíbles, aunque el paquete concreto depende de la plataforma (uso básico de SimulIDE).
Instalar pySerial en un entorno virtual
En una terminal, crea y activa un entorno virtual para mantener las dependencias del proyecto separadas:
Recommended Free Tools
Rank #2
- [ USB to RS-232 Serial Adapter ] : 5ft Cable Length - Easily connect legacy DB-9 serial devices to modern USB-equipped computers. Uses include industrial, lab, and point-of-sale applications.
- [ Easy Testing ] : Built-in signal tester features full LED indicators with dual-color display for quick and easy testing of RS-232 host-to-device connections.
- [ Wide Compatibility ] : Built with an FTDI Chipset. Works seamlessly with Windows 7, 8, 10, 11, Linux, and macOS 10.X, making it a highly versatile solution across platforms.
- [ Why Gearmo? ] : Your trusted partner based in the USA, providing advanced engineering, highly reliable and superior built products to handle the most demanding industries for over 10 years.
- [ Engineering Support ] : Need specs? Contact us for CAD files, mechanical drawings, or datasheets to support your integration or project needs.
python -m venv .venv
Actívalo en Windows:
.venvScriptsactivate
En Linux o macOS:
source .venv/bin/activate
Instala pySerial:
python -m pip install pyserial
Conectar un Arduino simulado a Python paso a paso
1. Monta el circuito y carga el firmware
Inserta el microcontrolador y el componente Serial Port en el circuito. Conecta la UART en cruz: TX del microcontrolador a RX del canal serie, y RX del microcontrolador a TX. Conecta la referencia de tierra común cuando el montaje lo requiera. Carga el firmware y deja la simulación en marcha.
Este firmware mínimo espera comandos terminados en salto de línea y responde a PING:
void setup() {
Serial.begin(9600);
Serial.println("READY");
}
void loop() {
if (Serial.available() > 0) {
String command = Serial.readStringUntil('n');
command.trim();
if (command == "PING") {
Serial.println("PONG");
} else if (command == "LED_ON") {
Serial.println("LED=ON");
} else if (command == "LED_OFF") {
Serial.println("LED=OFF");
} else {
Serial.print("UNKNOWN:");
Serial.println(command);
}
}
}
Serial.readStringUntil('n') no termina la lectura hasta recibir el delimitador o vencer el tiempo de espera de lectura del entorno. Por eso Python debe enviar n. El uso de String mantiene el ejemplo sencillo; en microcontroladores con poca memoria o requisitos temporales estrictos conviene valorar un analizador que no dependa de asignaciones dinámicas.
2. Crea un par de puertos virtuales si no usas hardware serie
En Linux, una opción documentada por el foro de SimulIDE es socat. Instálalo con el gestor de paquetes de tu distribución y ejecuta el enlace en una terminal que permanezca abierta:
Rank #3
- Serial adapter allows a serial device to be connected to a USB computer
- Plug and play convenience:DB9 serial port is seen as a COM port by your computer, and is available for use by any program that accesses COM ports
- No need for an external power adapter:draws power directly from your computer via the USB connection
- DB9 serial port supports data transfer rates up to 230 Kbps:twice the speed of a standard built in serial port
- LED shows adapter status and data activity at a glance
sudo socat PTY,link=/dev/ttyS1,mode=0666
PTY,link=/dev/ttyS2,mode=0666
En este ejemplo, asigna /dev/ttyS2 a SimulIDE y /dev/ttyS1 a Python. Son nombres de ejemplo: según el sistema, los extremos pueden aparecer como rutas /dev/pts/.... Consulta los nombres que se hayan creado realmente. La explicación del foro oficial describe el enlace entre extremos y advierte que cada aplicación debe usar uno distinto (foro de SimulIDE sobre puertos virtuales).
En Windows, una herramienta como com0com puede crear pares virtuales, pero la disponibilidad y compatibilidad del controlador varían. Sigue la documentación vigente de la herramienta que elijas, verifica los nombres COM asignados y cierra cualquier otro programa que esté usando esos puertos.
3. Configura el componente serie en SimulIDE
Abre las propiedades de Serial Port y establece el puerto que corresponde al extremo de SimulIDE, además de los parámetros serie. Por ejemplo:
Port Name: /dev/ttyS2
Baudrate: 9600
Data Bits: 8
Stop Bits: 1
Abre el puerto con el control Open. El puerto debe existir y el usuario debe tener permisos de lectura y escritura, según la documentación del componente. En este ejemplo, configura Python en el otro extremo, /dev/ttyS1, con los mismos parámetros.
Rank #4
- √USB to 9-pin serial cable Product features: easy installation, no external power supply, and physical drive required
- √Applicable scope: This product can easily realize the conversion between the USB interface of the computer and the universal serial port, providing a fast channel for the computer without a serial port, and using this product is equivalent to turning the traditional serial port device into a plug-and-play USB device.
- √ Supports various models of MCU, MCU STC download, LED screen control card, MODEM, and ISDN terminal adapter communication is suitable for computers or notebooks with USB ports.
- √Application platform: Support USB1.0/1.1 specification, compatible with USB2.0 specification, support full-speed transfer mode 12MBPS, support Win98, 98SE, Me, 2000, XP, Mac OS8.6, vista, win7-32, 64-bit.
- √Installation Instructions: 1. Run the driver CH340.EXE file to install 2. Connect the USB serial cable to the USB interface of the computer, and automatically install the driver 3. After the installation is successful, the COM port appears in the device manager
4. Envía un comando desde Python y lee la respuesta
import time
import serial
PORT = "/dev/ttyS1" # En Windows, usa el COM que realmente se haya creado
with serial.Serial(
port=PORT,
baudrate=9600,
bytesize=serial.EIGHTBITS,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
timeout=1,
) as ser:
# Puede hacer falta esperar si abrir el puerto reinicia el microcontrolador.
time.sleep(2)
ser.reset_input_buffer()
ser.write(b"PINGn")
ser.flush()
response = ser.readline().decode("utf-8", errors="replace").strip()
print("Respuesta:", response)
Con el firmware anterior, la respuesta esperada al comando es PONG. El firmware también imprime READY al iniciar; el vaciado del búfer evita que ese mensaje inicial se confunda con la respuesta al comando.
Probar que los datos también van del circuito a Python
Para emitir una muestra periódica por UART, sustituye el firmware de ejemplo por este fragmento:
unsigned long lastReport = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if (millis() - lastReport >= 1000) {
lastReport = millis();
int value = analogRead(A0);
Serial.print("A0=");
Serial.println(value);
}
}
En Python, lee las líneas conforme llegan:
import serial
with serial.Serial("/dev/ttyS1", 9600, timeout=2) as ser:
while True:
line = ser.readline().decode("ascii", errors="replace").strip()
if line:
print(line)
Verás líneas con el formato A0=...; el valor depende de cómo estimules A0 en el circuito de SimulIDE. Si pruebas este ejemplo, detén el bucle de Python con Ctrl+C.
Elegir un formato de mensajes
Empieza con mensajes de texto terminados en salto de línea: por ejemplo, TEMP=23.5n, LED=ONn o MOTOR=120n. Son fáciles de leer en un monitor serie y sencillos de implementar; acuerda qué significa cada campo y qué delimitador termina el mensaje.
Best Value
- Gold Plated USB 2.0 to RS232 Female DB9 Serial Cable connects serial DB9 (9 PIN) devices such as modems to standard computer USB ports, supporting up to 1Mbps data transfer rate. [ IMPORTANT NOTE ]: This USB to RS232 adapter features a female RS232 connector, NOT male — please confirm your device’s serial port type before purchase
- Adopted with latest Prolific PL2303 chipset, this USB to RS232 adapter supports Windows 11/10/8.1/8/7, Linux and Mac OS. Windows 11/10/8.1/8/7 is plug-and-play and will be automatically identified as COM port. Windows built-in drivers match most USB-to-serial chips; it will automatically download and install the matched driver under network environment. For offline Windows, Mac OS and most Linux systems, please download and install the official driver from CableCreation official website. Ubuntu Linux supports plug and play without driver installation
- Widely compatible with modems, ISDN terminal adapters, digital cameras, label writers, palm PCs, PDAs, cash registers, CNC, PLC controllers, tax printers, POS machines, barcode scanners, and other devices with standard DB9 serial ports. Please be noted this USB to RS232 female DB9 serial converter cable is NOT compatible with cutting plotter and SCM equipment. Kindly confirm your device interface and model before placing an order
- Features tinned copper conductor and triple shielding to ensure stable and high-quality data transmission. USB bus-powered design requires no external power adapter. If your computer cannot recognize the cable normally, please match it with a null modem adapter for normal use
- CableCreation provides 24-month warranty and lifetime professional customer service. This 6.6ft USB 2.0 to RS232 Female DB9 serial converter cable follows standard pin definition, suitable for the device requiring female RS232 interface. If you encounter any problems of driver installation or device compatibility, please contact our customer service at any time, and we will assist you within 24 hours
| Formato | Cuándo conviene | Coste o cuidado |
|---|---|---|
| Texto delimitado | Primeras pruebas y protocolos pequeños que se depuran a mano. | Hay que definir delimitadores y tratar mensajes incompletos o separadores dentro de los datos. |
| CSV | Registro sencillo de varias columnas, como 23.5,512,1n. |
Es compacto y fácil de volcar, pero los campos no se explican por sí solos. |
| JSON por línea | Mensajes extensibles que Python procesa con facilidad, por ejemplo {"temperature":23.5,"adc":512}. |
Consume más bytes y analizar JSON puede ser costoso para un microcontrolador pequeño. |
| Paquetes binarios | Cuando el volumen de datos, la velocidad o el tamaño del mensaje lo justifican. | Hay que definir encuadre, longitud, validación y recuperación si se pierde o corrompe un byte; es menos legible durante la depuración. |
Si el proyecto crece, añade confirmaciones, manejo de comandos desconocidos y límites de espera. En un protocolo binario también se suele necesitar una forma de detectar errores, como una suma de comprobación. No añadas esa complejidad antes de que haya una necesidad concreta.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Solucionar problemas de conexión
| Síntoma | Causa probable | Qué comprobar |
|---|---|---|
| Python no encuentra o no abre el puerto. | Nombre incorrecto, puerto no creado, permisos insuficientes o puerto ocupado. | Verifica el nombre asignado, que el enlace virtual siga activo y que ninguna otra aplicación tenga abierto ese extremo. En Linux puedes revisar rutas con ls -l /dev/ttyS* y ls -l /dev/pts/*. En Python, serial.tools.list_ports.comports() enumera puertos detectables. |
| SimulIDE abre el puerto, pero Python no recibe datos. | La simulación o el firmware no están activos, TX/RX no están cruzados o Python usa el extremo equivocado. | Comprueba TX→RX y RX→TX, enciende la simulación y confirma que cada programa usa un extremo distinto del par. |
readline() espera o devuelve una línea vacía. |
No llega un salto de línea, el tiempo de espera es corto o todavía no se ha emitido el mensaje. | Haz que el firmware termine el mensaje con Serial.println(), envía n desde Python y configura un timeout adecuado. Si abrir el puerto reinicia el microcontrolador, espera uno o dos segundos antes de leer. |
| Los datos aparecen como caracteres extraños. | Baud rate, bits, paridad, bits de parada o decodificación no coinciden; quizá el dato sea binario. | Iguala ambos extremos, empezando por 9600 baudios y 8N1 si ese es el ajuste del firmware. Comprueba también si el terminador es n, rn o r. |
| Solo funciona una dirección. | UART mal conectada, mismo extremo asignado a ambos programas o expectativa incorrecta sobre el componente. | Prueba primero el firmware con Serial Terminal; después verifica que Serial Port conecta la UART del circuito al puerto del ordenador. El componente no es un terminal autónomo que por sí solo genere mensajes hacia el circuito (aclaración en el foro de SimulIDE). |
| Funciona con Serial Terminal, pero no con Python. | El problema está probablemente en el enlace virtual, los permisos, el puerto seleccionado o el script. | Aísla por etapas: confirma la salida en Serial Terminal, revisa la conexión UART al componente, verifica cada extremo con una terminal externa y añade registros antes y después de cada lectura y escritura en Python. |
| El script falla al cerrar el puerto. | Una excepción o cierre interrumpido dejó el recurso abierto. | Usa with serial.Serial(...), que cierra el puerto al salir del bloque, y captura serial.SerialException para mostrar errores de conexión. |
Un ejemplo de manejo de error es:
import serial
try:
with serial.Serial("/dev/ttyS1", 9600, timeout=1) as ser:
ser.write(b"PINGn")
print(ser.readline().decode(errors="replace").strip())
except serial.SerialException as exc:
print(f"Error de puerto serie: {exc}")
Cuándo usar otras opciones y qué no valida la simulación
Serial Terminal para depuración manual
Úsalo para confirmar que el firmware transmite y recibe antes de añadir un proceso Python. No ofrece la automatización ni las bibliotecas externas de Python (monitor serie).
Scripts internos de SimulIDE para componentes personalizados
SimulIDE también permite crear componentes basados en scripts con módulos de comunicación como UART, SPI y TWI (documentación de scripting). Es un mecanismo propio de SimulIDE, no un intérprete Python integrado; resulta útil para modelar periféricos, pero no sustituye el ecosistema Python si necesitas, por ejemplo, OpenCV o Pandas.
TCP es una opción menos directa
Hay una discusión del foro sobre plantillas TCP para intercambiar datos con Python, pero describe una alternativa dependiente de la versión y menciona dificultades de recepción y cierres (discusión sobre TCP). Para una primera integración, UART con Serial Port y pySerial es una ruta más clara.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsLa simulación no sustituye la validación en hardware
SimulIDE prioriza velocidad y facilidad de uso frente al análisis eléctrico de alta precisión (proyecto SimulIDE en GitHub). Una comunicación serie funcional en el circuito simulado no valida por sí sola ruido, niveles eléctricos, tolerancias de reloj, latencia de un adaptador USB-UART, alimentación ni el comportamiento exacto del dispositivo físico. Prueba el diseño final en el hardware previsto.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




