miércoles, agosto 21, 2013

Ping por Packet AX25

Así me está funcionando el ping por AX25, nada mal!
# ping -i 15 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_req=1 ttl=64 time=4002 ms
64 bytes from 10.0.0.1: icmp_req=2 ttl=64 time=2689 ms
64 bytes from 10.0.0.1: icmp_req=4 ttl=64 time=2851 ms
64 bytes from 10.0.0.1: icmp_req=5 ttl=64 time=3382 ms
64 bytes from 10.0.0.1: icmp_req=7 ttl=64 time=3258 ms
64 bytes from 10.0.0.1: icmp_req=9 ttl=64 time=2753 ms
64 bytes from 10.0.0.1: icmp_req=12 ttl=64 time=4070 ms
64 bytes from 10.0.0.1: icmp_req=13 ttl=64 time=3859 ms
64 bytes from 10.0.0.1: icmp_req=15 ttl=64 time=4178 ms
64 bytes from 10.0.0.1: icmp_req=17 ttl=64 time=4264 ms
64 bytes from 10.0.0.1: icmp_req=18 ttl=64 time=3541 ms
64 bytes from 10.0.0.1: icmp_req=20 ttl=64 time=4856 ms
64 bytes from 10.0.0.1: icmp_req=22 ttl=64 time=4018 ms
64 bytes from 10.0.0.1: icmp_req=23 ttl=64 time=5313 ms
64 bytes from 10.0.0.1: icmp_req=25 ttl=64 time=3723 ms
64 bytes from 10.0.0.1: icmp_req=27 ttl=64 time=2809 ms
64 bytes from 10.0.0.1: icmp_req=28 ttl=64 time=4391 ms
64 bytes from 10.0.0.1: icmp_req=29 ttl=64 time=6268 ms
64 bytes from 10.0.0.1: icmp_req=30 ttl=64 time=6058 ms
64 bytes from 10.0.0.1: icmp_req=31 ttl=64 time=4279 ms
64 bytes from 10.0.0.1: icmp_req=32 ttl=64 time=5625 ms
64 bytes from 10.0.0.1: icmp_req=33 ttl=64 time=3763 ms
64 bytes from 10.0.0.1: icmp_req=34 ttl=64 time=2911 ms
64 bytes from 10.0.0.1: icmp_req=35 ttl=64 time=2853 ms
64 bytes from 10.0.0.1: icmp_req=36 ttl=64 time=2718 ms
64 bytes from 10.0.0.1: icmp_req=37 ttl=64 time=2789 ms
64 bytes from 10.0.0.1: icmp_req=38 ttl=64 time=2944 ms
64 bytes from 10.0.0.1: icmp_req=39 ttl=64 time=3699 ms
64 bytes from 10.0.0.1: icmp_req=41 ttl=64 time=3798 ms
64 bytes from 10.0.0.1: icmp_req=44 ttl=64 time=2918 ms
^C
--- 10.0.0.1 ping statistics ---
44 packets transmitted, 30 received, 31% packet loss, time 645337ms
rtt min/avg/max/mdev = 2689.509/3819.856/6268.794/986.186 ms

viernes, agosto 16, 2013

Medidor de ROE digital con Arduino

Arduino SWR Meter

Tal como adelanté en mi anterior entrada, una mejora al puente de ROE de XQ2FOD que le hice fue la de reemplazar los medidores analógicos por un display LCD controlado con un Arduino (ATmega328p).

Arduino SWR Meter

El circuito es demasiado simple como para dibujarlo, la idea es usar la librería LiquidCristal de Arduino y reemplazar en el circuito de XQ2FOD la entrada a los medidores analógicos por las entradas Analog0 y Analog1 en el Arduino. Se pueden ver más fotos en mi galería de Flickr.

El código fuente del programa cargado en el Arduino se puede encontrar acá. En programa se encarga de leer constantemente las entradas 0 y 1 analógicas, y hacer los cálculos de SWR (sacados del capítulo de Lineas de Transmisión del ARRL Handbook 2010).

p = sqrt(Pr/Pf);
SWR = (1+p) / (1-p);

Además como se puede ver en el codigo fuente, se calcula el promedio de los datos leídos para evitar que el display LCD parpadee cuando los datos de entrada fluctúen en el tiempo.

LU4EXT



martes, agosto 13, 2013

Arduino Due ARM

Arduino Due ARM

El nuevo integrante de la familia de Arduinos.

La historia del puente de ROE XQ2FOD


Hace algunos años buscando cómo armar mi propio medidor de ROE me encontré este excelente circuito de XQ2FOD (link acá), donde el autor asegura que funciona en todas las bandas populares de Radio Aficionados, desde 80 metros hasta 1.3 Ghz. Sucede que para que funcione en frecuencias altas (y no tan altas también) debe estar bien construido, ya que cualquier error mecánico afecta la lectura del instrumento.

DSC01047b

Este fue la primer versión que armé, hace casi 20 meses, ignorando toda advertencia de XQ2FOD en el artículo inicial. El primer comentario que tuve fue que debía armarlo con los alambres lo más cortitos que se puedan, hasta el punto de que se le podían limar la pintura a las resistencias para no tener los alambres. En efecto, este medidor no servía y marcaba cualquier cosa en el instrumento.

Carga Fantasma 50 Ohm

Luego de armar una versión un poco más compacta (no mucho más), decidí que necesitaba una carga fantasma para poder medir el propio instrumento y ver si efectivamente marcaba 1:1 de ROE con 50 Ohm de carga. La anterior foto fue uno de los intentos de carga, donde la aguja se disparaba marcando bastante ROE. En efecto, la carga estaba muy mal hecha.

Carga Fantasma 50 Ohm - N

Luego de varios intentos, terminé con una carga como la que se puede ver en la foto. Ya con esta carga, la actual versión del puente de ROE hacía que el instrumento marque 1.0 de ROE, ¡todo un avance! Hace algunos meses encontré el blog de LU1AR donde describe una carga fantasma de baja potencia, de muy fácil construcción, que bien armada puede llegar hasta 1.3 Ghz sin problemas (ver acá). Tengo pendiente armar una de estas ya que no tengo una buena carga fantasma.

Puente de ROE XQ2FOD versión 2

Siguiendo con la idea de mantener las distancias de los alambres lo más cortas posible, terminé con un puente como en la imagen anterior. En este caso, el puente marcaba menos de 1.1 de ROE con mi carga artesanal en VHF.

Puente de ROE XQ2FOD versión 2

Además, la siguiente mejora fue, por un lado, reemplazar los diodos 1N34 originales por diodos 1N5711 (azules en la foto), cortesía de un colega Radio Aficionado. En teoría, estos dioditos deberían funcionar bien y sin problemas hasta UHF.

Arduino SWR Meter

Por el otro, otra mejora que le hice al circuito fue reemplazar los medidores de aguja analógicos originales por un microcontrolador (Arduino Atmega328), mostrando el valor del ROE (SWR en inglés) en un display de LCD. Pueden ver detalles de este proyecto acá.

 Esta última fue la versión que tuve armada durante casi un año, hasta que hace unos días decidí armar una mejor, que pueda llegar hasta microondas.

Puente de ROE XQ2FOD versión 3

Tal como comenta XQ2FOD en su artículo, utilizando componentes SMT se puede lograr un puente de ROE que permita medir hasta muy altas frecuencias. Es por esto que decidí armarlo de esta manera, llegando al primer prototipo que se puede ver en la imagen anterior. Usé los mismos diodos de siempre, y las resistencias son seis de 100 Ohm SMT apareadas en paralelo, obtenidas de un viejo circuito de impresora rota. La placa es Epoxy de 1.5mm, y del otro lado (donde no se ven en la foto) es puro cobre de plano a tierra, conectado también al chasis de los conectores.

En la foto se puede ver una linea de transmisión de casi 4 cm, esto fue la primer prueba, me sobró bastante circuito ya que los componentes son pocos, y decidí dejarla ya que me pareció que no iba a molestar. En la práctica esto no es cierto, el circuito debe ser del menor tamaño posible, y a menos que esté muy bien construido recién ahí la línea no debería molestar. Este no fue mi caso, no está bien construido, por lo que el siguiente paso fue reducir el tamaño del circuito. Midiéndolo con un analizador de antenas MFJ prestado de otro colega, el anterior puente marcaba 1.5 de ROE en VHF, un valor bastante alto para lo que debería ser el puente. Es por esto que decidí construirlo nuevamente utilizando la porción del circuito libre.

Puente de ROE XQ2FOD versión 4

En esta nueva versión usé resistencias nuevas (sin reciclar de otro aparato), donde además las resistencias son de mayor tamaño mecánico, permitiendo disipar más calor. Además, en vez de soldarle una carga fantasma de dudoso valor (en la foto anterior se pueden ver dos resistencias normales de 100 Ohm en paralelo en la punta), decidí usar una carga de 50 Ohm profesional. Esta carga de 50 Ohm que me prestaron fue medida profesionalmente y que mostró llegar con un ROE (casi) plano hasta 3 Ghz. Con la carga fantasma profesional, y el medidor de antenas MFJ de siempre, pude ver que mi puente de ROE tiene 1.1 de ROE en VHF. Un dato importante es que al medir el ROE de la carga directamente, el MFJ también marcaba 1.1 de ROE en VHF, por lo que es muy posible y probable que cualquier error que marque el MFJ en mi puente pueda también deberse a la falta de precisión del MFJ en altas frecuencias. Para estar seguro debo conseguir un segundo medidor que me permita medir en UHF, ya que esta versión del medidor MFJ solo llega hasta VHF. Además, le tengo infinita más confianza a la carga de 50 Ohm profesional que al MFJ.

Puente de ROE XQ2FOD versión 4.1

Arriba se puede ver la última versión del puente, donde el único cambio es el recorte del PCB al mínimo tamaño posible.

Puente de ROE XQ2FOD versión 4

Un experimento que decidí hacer fue conectar un acoplador direccional al puente de ROE. En teoría, el acoplador debería generar por la línea acoplada una señal en caso de que haya ROE en lo que esté conectado (el puente en este caso). Mediante mi osciloscopio decidí medir qué llegaba desde esta línea acoplada, y hasta donde pude ver, la pantalla del osciloscopio no se movía, dando a entender que el puente debería estar bien construido. Con el acoplador también se puede construir un medidor de ROE en una antena, sin embargo esto queda para otro momento, ya que a mi me interesaba tener el puente de XQ2FOD funcionando. Si quieren ver la historia completa de construccion del puente de ROE de XQ2FOD, se puede ver la colección de fotos en mi cuenta de Flickr, acá.

73 LU4EXT, Alejandro.

jueves, agosto 01, 2013

Audio Amp con TDA2005

TDA2005 Audio Amp


Construido tal cual muestra el primer ejemplo de aplicación del datasheet TDA2005. Suena buenísimo.

domingo, julio 28, 2013

3er Torneo Argentino de Programación

(favor de difundir a posibles interesados)

3er TORNEO ARGENTINO DE PROGRAMACIÓN
5 de octubre de 2013

Sedes: Bahía Blanca (UNS), Buenos Aires (UBA), Córdoba (UNC), La Plata (UNLP), Neuquén (UNComa), Río Cuarto (UNRC), Río Turbio (UNPA) y Santa Fe (UNL)

El 5 de octubre se llevará a cabo la tercera edición del Torneo Argentino de Programación, en el que compiten equipos compuestos por 3 estudiantes de instituciones de educación superior de Argentina. Cada institución puede tener varios equipos que la representen, y cada equipo puede competir en la sede que le resulte más conveniente.

El torneo consiste en resolver un conjunto de problemas algorítmicos en un plazo de 5 horas. La solución a cada problema es un programa que se envía mediante un sistema especial al jurado. El jurado corrige en el momento mediante casos de prueba secretos (test de caja negra) y el equipo se entera al instante si la solución enviada es correcta, de manera que puede corregirla y reenviarla tantas veces como sea necesario.

Este torneo se enmarca dentro de la competencia ACM-ICPC (The ACM International Collegiate Programming Contest, auspiciada por IBM a nivel internacional, ver http://icpc.baylor.edu/). Se entregarán certificados oficiales de la ACM-ICPC, tanto de participación como de posición obtenida.

Las instituciones que así lo deseen (no es obligatorio) pueden usar el torneo para seleccionar sus equipos para la Competencia Regional Latinoamericana 2013. A partir de la competencia regional quedan seleccionados los equipos latinoamericanos que participarán en la final mundial en Ekaterinburgo, Rusia, en 2014. La sede Argentina de la regional contará este año con el apoyo de la Fundación Sadosky .

QUIÉNES PUEDEN PARTICIPAR

Las condiciones que deben cumplir los alumnos que quieran participar son las mismas de la Competencia Regional Latinoamericana.

Pueden encontrar información sobre las reglas, problemas de ediciones anteriores de la Competencia Regional y del Torneo Argentino, así como otros links de interés en la siguiente página:


INSCRIPCIÓN:

Los datos para la inscripión se enviarán más cerca de la fecha de la competencia.

ORGANIZACIÓN GENERAL:
  • Pablo Ariel Heiber (pheiber.at.dc.uba.ar)
ORGANIZADORES LOCALES:
  • Bahía Blanca: Nicolás Álvarez, UNS (naa.at.cs.uns.edu.ar)
  • Buenos Aires: Pablo Ariel Heiber, FCEyN, UBA (pheiber.at.dc.uba.ar)
  • Córdoba: Eric Destefanis, FaMAF, UNC (edestefanis.at.gmail.com)
  • La Plata: Alejandro Santos, FInfo, UNLP (alejolp.at.gmail.com)
  • Neuquén: Lidia López, FaI, UNComa (lidia.lopez.at.fi.uncoma.edu.ar)
  • Río Cuarto: Francisco Bavera, FCEFQyN, UNRC (pancho.at.dc.exa.unrc.edu.ar)
  • Río Turbio: Diana Cruz, UART, UNPA (dianalrcruz.at.gmail.com)
  • Santa Fe: Emmanuel Rojas Fredini, FICH, UNL (erojasfredini.at.gmail.com)

sábado, abril 06, 2013

Regular expressions

Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems. -- Jamie Zawinski

Shipping products

“At the end of the day, ship the fucking thing! It’s great to rewrite your code and make it cleaner and by the third time it’ll actually be pretty. But that’s not the point—you’re not here to write code; you’re here to ship products.” -- Jamie Zawinski

viernes, marzo 08, 2013

Plano vertical de irradiación de cuarto de onda 100 Mhz a 40 Mts SNM


Plano vertical de irradiación de cuarto de onda 100 Mhz a 40 Mts SNM, calculado por Miguel.

miércoles, febrero 06, 2013

Calor de verano


Porque la falta de stock de las bases de refrigeración de computadoras portátiles no me va a impedir jugar al Age of Empires.

lunes, enero 14, 2013

Threads

A programmer had a problem. He thought to himself, "I know, I'll solve it with threads!". has Now problems. two he --@davidlohr

jueves, enero 10, 2013

APRS Digipeater


Publiqué el código de mi repetidor de paquetes APRS.