S-Meter Externo para Radios Icom usando CI-V y Arduino
Componentes y materiales
- 1x Arduino UNO (o Nano)
- 1x Potenciómetro mono-vuelta 10k Ω
- 1x Resistencia 10k Ω
- 1x Resistencia 4.75k Ω
- 1x Diodo 1N4148
- 1x Condensador 10 µF
- 2x Núcleo de ferrita para cable redondo
- 1x Conector Jack 3.5 mm (1/8")
- 1x Conector sintonizador Icom (conector fuente PC)
Sobre el proyecto
Este circuito usa un Arduino Uno o Nano para enviar un comando CI-V a una radio Icom solicitando información de señal, leer la respuesta, convertirla y mostrarla en una salida analógica donde conectar un S-meter analógico (de bobina móvil, tipo Arsonval).
Se alimenta desde el puerto de Sintonizador de Antena de la radio Icom. Si tu Icom no tiene puerto de sintonizador, puedes usar cualquier otro puerto o conector que proporcione +12V (al menos 200 mA). También sirve una fuente DC externa.
Si no tienes conector de Sintonizador de Antena, puedes usar un conector de fuente de alimentación de PC y recortarlo con cortadores para que encaje en el conector de sintonizador Icom.
El proyecto está diseñado para un transceptor Icom IC-7000, pero se adapta a cualquier radio Icom con puerto CI-V.
Puedes usar la dirección universal CI-V "00" en algunas radios Icom, haciendo este conversor compatible con cualquier Icom sin cambiar la dirección CI-V en el código.
Se instalan ferritas en cables de entrada y salida para eliminar inducción RF. El +12V CC al S-meter no es necesario; podría usarse para iluminar el medidor u otras funciones opcionales.
El potenciómetro de 10k Ω atenúa la señal de salida (demasiado alta para la mayoría de medidores analógicos) y calibra el medidor para obtener lectura a fondo de escala con una señal local potente (+60 dB).
Otros proyectos similares usando Arduino como interfaz CI-V:
Código
Icom CI-V S-meter (C/C++):
// IC7300 Testbed for S-meter readout and other functions
// by Luc Decroos - ON7DQ/KF0CR
// modified & adapted by Daniel VE2BAP, 2018-12-01
#include <SoftwareSerial.h> // para comunicación con IC7000
#define BAUD_RATE 19200 // Velocidad CI-V
#define TRX_address (0x70) // HEX $70 = Icom IC-7000
//#define TRX_address ((byte)00) // $00: dirección universal Icom (funciona en todas las radios).
// Conexión serie
// RX = Radio Icom a Arduino: pin 2 vía resistencia 4k7
// TX = Arduino a Radio Icom: pin 7 vía diodo 1N4148, con pull-up 10k a Vcc (5V) en punta jack 3.5mm
SoftwareSerial mySerial = SoftwareSerial(2, 7); // (RX, TX)
int readCounter;
int sMeterVal1; // Byte BCD más significativo con info de señal
int sMeterVal2; // Byte BCD menos significativo con info de señal
int sMeterOut = 11; // S-meter analógico externo en pin 11
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, LOW); // apaga LED pin 13
pinMode(2, INPUT); // CI-V serie desde IC7000
pinMode(7, OUTPUT); // CI-V serie hacia IC7000
pinMode(sMeterOut, OUTPUT); // pin S-meter como salida
mySerial.begin(BAUD_RATE);
mySerial.listen(); // solo un puerto puede escuchar con SoftwareSerial
while (mySerial.available()) mySerial.read(); // limpia buffer
}
void loop() {
// Leer y mostrar valor S-meter
mySerial.flush();
// Secuencia inicio: enviar comando "read S meter" a la radio
mySerial.write(0xFE);
mySerial.write(0xFE);
mySerial.write(TRX_address);
mySerial.write(0xE0);
mySerial.write(0x15);
mySerial.write(0x02); // Leer S-meter, comando 15 02
mySerial.write(0xFD); // Secuencia fin
delay(20);
// Leer info de la radio
int nbChar = mySerial.available();
if (nbChar > 0) {
for (int readCounter = 0; readCounter < nbChar; readCounter++) {
byte byteRead = mySerial.read();
if (readCounter == 6) {
sMeterVal1 = ((byteRead / 16 * 10) + (byteRead % 16)); // Primer byte: BCD a decimal
}
if (readCounter == 7) {
sMeterVal2 = ((byteRead / 16 * 10) + (byteRead % 16)); // Segundo byte: BCD a decimal
analogWrite(sMeterOut, ((sMeterVal1 * 100) + sMeterVal2)); // Calcular y escribir valor S-meter
delay(20);
}
}
}
}
Piezas personalizadas y cajas
Fotos del montaje y carcasa impresa en 3D (ver imágenes adjuntas en el proyecto original).
Esquemáticos
Esquema de conexiones disponible en la documentación del proyecto.
Proceso de manufactura
- Desfibrilador externo: Historia, diseño y fabricación
- La Evolución e Ingeniería de la Tecnología de Radio
- Suavizado de tejidos: Cómo la loción mejora confort y rendimiento
- Monitorización precisa de temperatura en armario de servidores con Raspberry Pi
- Persianas Inteligentes: Control Automático de Luz con Arduino y Energía Solar
- Sensor de obstáculos IR casero con Arduino – Tutorial fácil con LED IR y fotodiodo
- Kit de Batería MIDI Compacto con Impresión 3D y Arduino
- E3.Series: Agilice la documentación del proyecto usando PDFs externos con hipervínculos
- Xilinx lanza Zynq RFSoC DFE: IP duro de alto rendimiento y eficiencia energética para radios 5G
- Renesas y eProsima Lanzan Port de micro‑ROS para MCUs RA, Habilitando Robótica Basada en ROS 2
- Acceed IGS-9822DGP: Switch Gigabit 12 Puertos con 4 SFP – Solución Industrial de Alto Rendimiento