lunes, 8 de julio de 2013

TinyVar Firmware 2.1c

Nueva version alpha con cambios interesantes. Entre ellos el control por software del encendido/apagado de la retroiluminacion y el audio. Ver modificacion necesaria.

Es muy probable que en esta version aparezcan algunos fallos, ya que se ha modificado bastante codigo.

Cuando esto ocurra, aparecera un codigo de error en pantalla. Es de vital importancia que sea reportado a villamany@gmail.com indicando todos los detalles posibles sobre las condiciones en las que fue obtenido.
Una forma rapida de anotar el codigo es tirarle una foto a la pantalla directamente y enviarmela.

Para ignorar el error y continuar con la ejecucion normal del programa, basta con accionar el pulsador arriba.

Como siempre disponible en la seccion de Descargas.
 

Cambios:

v2.1c (ALPHA STATE) (Jul-2013) (v2.1c vs v2.01)

-Corregido fallo ocasional en la medicion inicial de bateria (la que aparecia en la pantalla de presentacion).
-Eliminada la fluctiacion que existia en la velocidad vertical tanto al encender el vario como al volver del menu.
-Añadida opcion para configurar el contraste del LCD.
-Añadida opcion hardReset (reestablecimiento de fabrica). Encender TinyVar con el pulsador izq accionado, tras una advertencia visual y acústica, la configuracon sera reestablecida.
-Añadida opcion para activar/desactivar el audio por software, accionando el pulsador izq en la pantalla principal. (no montar el interruptor de audio y conectar el buzzer directamente a los pines 8-9 del panel)
-Añadida opcion en la configuracion para determinar si el audio estara activado o no tras el encendido.
-Añadida opcion para controlar el backLight por software, accionando el pulsador abajo en la pantalla principal. (no montar el interruptor de backLight y hacer el puente indicado en la PCB).
-Añadida opcion en la configuracion para determinar si el audio estara activado o no tras el encendido.
-Añadida opcion para la simulacion de audio. Ahora se puede comprobar la acustica desde el propio menu, simulando la velocidad vertical deseada.
-Rediseñadas por completo las funciones internas que controlan el menu, dando mayor fluidez en la navegacion, ademas, ahora se pueden mantener presionadas la teclas subir/+ y bajar/- para incrementar/decrementar valores de forma continua.
-Mejorado el consumo de bateria al apagar el ADC entre mediciones de bateria (cada 2 minutos se toma una medida)
-Otros cambios menores.
-Añadida opcion para depurar posibles errores. En caso de aparecer en pantalla alguno, se puede presionar arriba para ignorarlo y continuar



Desaparecen los interruptores de Audio y BackLight

A partir de la version 2.1, tanto el audio como la retroiluminacion se controlaran por software. Ya no sera necesario instalar los 2 interruptores fisicos que venian realizando esta tarea.

De esta forma se simplifica el montaje del panel de control, dando a su vez mayor simplicidad al diseño de una carcasa.

Para que estas funciones trabajen, sera necesario hacer una pequeña modificacion en la PCB.

-Para el audio, basta con no instalar el interruptor, conectando directamente el buzzer a los pines 8-9 de panel.

-Para la retroiluminacion, es necesario no instalar el interruptor y ademas hacer un puente entre el PIN_5 del microcontrolador y el PIN_3 del panel.

Ver las imagenes:
backLight & audioOn/off Software controlled mod

Software controlled BackLight jumper view

martes, 18 de junio de 2013

TinyVar+ firmware2.1a (alpha)

En la sección de descargas hay disponible una alpha con algunas de las novedades previstas para la proxima 2.1.

Además he agregado un cuadro explicativo sobre las opciones del menu, que a partir de ahora estara incluido en el mismo archivo de firmware.

Cambios 2.1a:
-Añadida opcion para configurar el contraste del LCD.
-Añadida opcion para reestablecer la configuración por defecto. Mantener el pulsador izquierdo
 accionado mientras se enciende TinyVar+. Comenzara una cuenta atras, si se libera el pulsador
 antes de finalizar, se cancelara el reestablecimiento.
 Este metodo, al igual que el que aparece en el menu, reestablece todos los valores configurables.
-Otros cambios menores y optimizacion de codigo.

Cuadro:

martes, 4 de junio de 2013

Firmware TinyVar 2.0.1

Nueva versión 2.0.1 con cambios menores frente a la anterior (2.0(final)). Lanzada mayormente para corregir un bug.

Bajo determinadas circunstancias las 4 entradas dejaban de responder, quedando los pulsadores inoperativos. Corregido :)

Disponible en la sección Descargas.

viernes, 24 de mayo de 2013

Ultimas PCBs disponibles

Nota: Sin placas disponibles.
A la venta las ultimas PCBs que me quedan parcialmente montadas, a falta de algunos componentes. Mas info aqui.

miércoles, 22 de mayo de 2013

TinyVar+ Joystick

Aqui otro vario, esta vez utilizando como panel de mando un mini joystick en lugar de pulsadores.
Mas fotos en la seccion Media.


viernes, 12 de abril de 2013

Algunas PCBs que me sobran / Some extra PCBs


Para recuperar parte de lo invertido y continuar experimentando he decidido poner a la venta algunas PCB "TinyVarPlus rev.A" ya montadas que me sobran.
To recover some of the investment and continue experimenting I decided to sell some extra "TinyVarPlus rev.A" PCB units already mounted. 






 Mas info aqui / More info here:
Nota: Sin placas disponibles. 
Note: No more PCB available.


miércoles, 27 de marzo de 2013

TinyVar+. Esquema, nuevo firmware y más

Ya está lista la versión 2.0 final para TinyVar/TinyVar+. Aprovecho para publicar el esquema electrónico de la PCB TinyVar+.

Ambos disponibles en la sección de Descargas.

Funcionalmente es muy parecido al esquema anterior, al cual sólo habría que añadirle 4 pulsadores en los pines correspondientes del PIC para transformarlo.

Las mejoras han sido sustanciales, desde la adición física de los pulsadores hasta la optimización y depuración de cálculos, ofreciendo ahora, valores mas precisos, estables y configurables mediante un menú.

Asimismo, estoy planteándome montar y ofrecer algunas PCBs extra que tengo y recuperar parte de lo invertido. No se aun el precio que rondaría, pero podrían andar sobre los 70-80€. Estoy a la espera de los componentes que me faltan. Publicare una entrada cuanto tenga novedades.

Esquema TinyVar+:
Click aqui para descargar
Novedades firmware 2.0 final vs 1.1:

-Se añade menú de confliguración mediante los cuatro pulsadores de TinyVar+.
-Mejorada notablemente la estabilidad y precisión en la velocidad vertical.
-Mejorada la precisión del cronometro.
-Añadido nuevo perfil de audio (AudioSmooth).
-BaudRate de la UART subido de 9600 a 57600bps.
-Modificado valores de configuración por defecto.
-Cambios menores en la pantalla de presentación.
-Optimización de código.

Vídeo del proto3 con el nuevo firmware: 


domingo, 10 de marzo de 2013

Test de la nueva PCB

Aquí un pequeño vídeo de la nueva PCB funcionando, se utiliza el nuevo perfil de audio que mencione en una entrada anterior "audioSmooth". Personalmente me inclino mas por este.

sábado, 9 de marzo de 2013

Llegaron las PCBs de TinyVar+

Bueno pues hoy me han llegado las placas de circuito impreso, ya he montado una de ellas y funciona perfectamente. Ahora a pulir el nuevo firm para que pronto esten operativas.

PCBs recien llegadas
Montaje componentes frontal


Montaje componentes trasera
Examinando con microscopio
Prueba de funcionamiento

sábado, 2 de marzo de 2013

Firmware 2.0b (alpha).

Nuevo firmware 2.0b, también en versión Alpha. Configurable modificando el archivo .hex. Disponible en la sección de descargas.

Novedades:
-Se añade posibilidad de configuración modificando el archivo hex.
-Modificada configuración por defecto.
-Optimización de código.

Parámetros configurables tinyVar 2.0b:

Este es el nombre y la descripción de cada parámetro. Entre paréntesis esta el valor por
defecto que tiene en este firmware.

vref_real(3300); //para la medición del porcentaje de batería, tensiones en milivoltios.
        tensión de referencia real (entre vdd y vss del PIC medida con un
        polímetro) (Sirve para calibrar la medición de la batería correctamente).
vBat_high(1550); //tension de una bateria nueva (pila alcalina nueva da 1.6v
        en vacío y en carga con el vario 1.57v)
vBat_low(1100); //tensión de una batería agotada, el regulador funciona a partir de 0,8v
        según datasheet.

dampFactor(2);//relación estabilidad/sensibilidad del vario. factor de filtro (de 0 a 100)
        5=5% de la ultima medida y 95% de la anterior) (valor alto=vario muy sensible
        pero poco estable y viceversa)

grafEscala_x(3);//segundos por pixel en el eje x de la gráfica
grafEscala_y(4);//metros por pixel en el eje y de la gráfica

acusticVentanaHi(1);//sonido a partir del cual el vario empieza a sonar en ascenso (valor
        incluido), en decímetros por segundo.
acusticVentanaLo(-1);//ídem pero en descenso.

pulsosParaSilencio(100);//numero de pulsos que recibe el buzzer para alternar entre
        sonido-silencio en ascenso (depende de la frecuencia del sonido). Valor
        ajustable de 0 a 1000 en incrementos de 20, (20 mas rápido,1000 mas lento,
        0 audio continuo sin silencios).

duracion_rotativo(4);//duración del campo multifunción que va rotando. valor ajustable de 1
        a 20 en incrementos de 1. 1 equivale a 0,5s, 2 equivale a 1s...

audioSmooth(1);//Al darle el valor 1 el cambio de frecuencia en el audio se hace
        progresivo, al darle el valor 0 el cambio es escalonado.

measureBatPresset(240); //Tiempo entre mediciones de batería de 500 en 500ms (1=500ms, 2=1s,
        240=2min...)



Como cambiar la configuracion modificando el archivo .hex:


Abrir el .hex con un editor de textos p.e el bloc de notas.
Localizar las lineas de la imagen adjunta (están al final del archivo .hex).
Cada recuadro de la imagen corresponde a un parámetro configurable, están en
    el mismo orden en que aparecen mas arriba (tal como leemos de izq a
    dcha, luego la siguiente linea...).

Por ejemplo, vamos a buscar el valor de vBat_low que es 1100 en decimal:
    pasamos el valor 1100 a hexadecimal, que es 44C, lo representamos
    con 4 bytes añadiéndole ceros a la izq: 0000044C.
    Finalmente invertimos el orden de cada byte y quedaría 4C 04 00 00
   
    Localizamos el tercer recuadro y vemos como coincide. Si quisieramos
    cambiar este valor para que marque batería agotada con 1,3 voltios por
    ejemplo, haríamos 1300 en hexadecimal es 00000514, invertimos los bytes
    14 05 00 00, este es el valor por el que habría que sustituirlo.

jueves, 28 de febrero de 2013

Nuevo TinyVar+ y nuevo firmware 2.0 (alpha)

A la espera de las PCBs para el nuevo TinyVar Plus.

A parte de los cambios en el trazado de la PCB, se han añadido 4 entradas , casi con total seguridad servirán para añadir 4 pulsadores. De esta forma se podrán implementar nuevas funciones como la de poder configurar el vario sin necesidad de reprogramarlo.

El firmware es compatible con la anterior versión de la PCB, la cual también podrá actualizarse fácilmente para añadir los pulsadores, los detalles tendrán que esperar a que lo depure.

De momento, dejo un avance de los cambios que llevo en el firmware. Funcionalmente es igual que el anterior pero el código se ha reestructurado para adaptarlo la nueva PCB.

La principal diferencia de esta alpha radica en el audio, ahora la transición de una frecuencia de audio a otra se hace de forma gradual (lo he llamado audioSmooth), personalmente me gusta mas esta configuración en el sonido, aunque en futuras versiones podrá elegirse entre uno u otro.

También se ha aumentado el filtrado en la velocidad vertical, de forma que es mas estable que antes (obiamente también un poco mas lenta en apreciar los cambios). También será configurable en un futuro.

El firmware está disponible en la sección de descargas.

Cambios respecto a la versión anterior:

-Cambios menores en pantalla de presentación.
-Aumentado el filtro de velocidad vertical (ahora es mas estable).
-Modificaciones en el audio, ahora cambia aumenta/disminuye la frecuencia de forma
 gradual (audioSmooth).
-Cambios menores en el código fuente, adaptándolo al nuevo "tinyVar Plus" (en desarrollo).

Error detectado en el esquema electrónico

(ene-2013)
Error detectado en el esquema electrónico de la primera entrada (ya esta corregido).

Nuevo firmware TinyVar v1.1

(nov-2012)
Nuevo firmware TinyVar v1.1 en la sección de descargas.

Cambios:
-Se pasa del compilador PCWHD v4.104 al PCWHDv 4.128

-Modificaciones en el campo de datos rotativo:
 *Aumentado tiempo que se muestra en pantalla cada dato de 1 a 2 s.
 *Corregida duracion del ultimo dato (duraba la mitad que el resto).
 *Han sido eliminados los campos poco utiles para una mayor simplicidad.
  Campos matenidos:P,T,FL,FLMax,FLmin,VrMin,VrMax,AltRMin,AltRMax
  Campos suprimidos:Pmin,PMax,Tmin,Tmax.
 *Modificado el orden en que aparecen estos a un orden mas logico.

-La lectura del nivel de bateria pasa a realizarse cada 2 minutos en lugar de cada 500ms.

-Modificaciones UART:
 *Corregida definicion de pines TX/RX (estaban invertidos).
 *Se añade envio de datos al exterior via UART, cada 500ms se envian los valores de presion
  y temperatura actuales.
 *Añadido comando reset, al recibir el caracter 'r' o 'R' por la UART TinyVar se resetea.

-Modificada escala de la grafica a 3s/pixel eje X y 4m/pixel eje Y (anteriormente estaban ambos a 1).

-Cambios menores en la interfaz de usuario.

-Corregido bug que provocaba lecturas inestables y desmesuradas por debajo de unos 20ºC.

-Se aumenta la "ventana muda", antes el beep sonaba a partir de +0,1m/s y -0,1m/s, ahora
 suena a partir de +0,2m/s y -2,5m/s.

-Optimizacion de codigo.

TinyVar. Un vario a medida

(sep-2012)

INTRO

El concepto:
Llevaba ya mucho tiempo con la idea en la cabeza de construir un altivario adaptado a mis necesidades y que encajara con mi concepto de aparato simple y eficaz :
Debería ofrecer datos básicos y precisos sobre la ganancia/perdida de altitud en el tiempo e ir en el cockpit porta-instrumentos, junto a la cámara, el teléfono y el GPS. Ya puestos a pedir, ser rápido y simple de encender, para minimizar el “nervio-fatiguismo” producido por la puesta en marcha de tantos aparatos antes de despegar.

Lo vivido:
El diseño y construcción desde cero de este vario me ha llevado muchas horas de trabajo y de sueño, así como una pequeña inversión. He tenido que comprar, quemar, probar, pisotear...  varios  modelos de PICs, LCDs y sensores.  No voy a entrar en detalles para no extenderme demasiado, pero son muchos los imprevistos que van surgiendo  (tensiones de funcionamiento, capacidad de proceso, encapsulado, disponibilidad, funcionamiento no deseado…). Como todo, tiene su parte buena, he aprendido mucho y me llevo la satisfacción de haber terminado un “proyecto útil” y propio.

El resultado:
El resultado ha sido un vario con un mejor tiempo de respuesta, mayor precisión y menor ruido (falsas fluctuaciones de medidas) que mi actual vario comercial (Digifly Flyer II). Objetivo superado!!.
No obstante, tengo pensado continuar trabajando en el firmware para añadirle mejoras y nuevas funciones.

AL GRANO:

El listado que dejo a continuación ha sido la selección final de componentes que por una u otra razón he considerado mas oportuno para este proyecto.

Sensor:
El sensor barométrico utilizado es el MS5611-01BA01 de MEAS Company, encontrado en el gran buscador de chismes “Ebay”. Viene montado en una break-out board con las ventajas que conlleva a la hora de pincharlo en la protoboard.
Microprocesador:
El elegido ha sido un micro controlador PIC24FJ64GA002 de Microchip (16 bits) con encapsulado SPDIP para pinchar en la protoboard. Comprado también a través de Ebay.
Pantalla:
Es un display LCD monocromático de 84x48 pixeles (utilizado por los viejos NOKIA 5110), su uso esta bastante extendido por los hobbistas, por lo que es económico y está bien documentado. También proviene de Ebay  con su correspondiente break-out board.


Alimentación:
Se ha optado por un modulo Step-Up de Sparkfun basado en el integrado NCP1402.
Este módulo nos permite alimentarlo con una única batería de 1,5v ofreciéndonos 3,3v regulados a su salida. Igualmente en su correspondiente break-out board.


A continuación un reportaje fotográfico sobre su evolución:
Primer circuito en la protoboard
Jugando con los sensores
Creando la interfaz
El primer proto
Pruebas en vuelo proto1
PCB casera para proto2
Proto2
Diseñando carcasa para el proto2 con mi fresadora CNC
Carcasa proto2, ensamblado
Carcasa proto2, terminada
Proto1 vs Proto2
Depuración y correcciónde de errores del firm

 

Vídeo

 


Algunos vídeos  mas (clic para verlos):

FUNCIONAMIENTO  

 


TinyVar Descripción de la pantalla: (basado en el firmware v1.1) 
 
1-Velocidad vertical (m/s) (actualizado cada 0,5s con los datos del ultimo segundo).
2-Altitud relativa ("altura sobre el despegue") (m) (se resetea a 0 al encenderlo).
3-Crono hh:mm:ss (se resetea a 0 al encenderlo).
4-Campo de datos variable. Rota cada 2s ofreciendo los siguientes valores:
-P.: Presión atmosférica (mb).
-T.: Temperatura(° C)
-FL.: Altitud FL (m)  (Altura sobre el nivel del mar considerando que hay 1013,25mb a 0 metros).
-FL.M: Máxima altitud FL alcanzada (m) (se resetea al encenderlo).
-FL.m: Mínima altitud FL alcanzada (m) (se resetea al encenderlo). 
-AltR.M: Máxima altitud relativa alcanzada (m) (se resetea al encenderlo).
-AltR.m: Mínima altitud relativa alcanzada (m) (se resetea al encenderlo). 
-Vr.M: Máxima velocidad vertical de alcanzada (m/s) (se resetea al encenderlo).
-Vr.m: Mínima velocidad vertical alcanzada (m/s) (se resetea al encenderlo). 
5-Gráfica de Altura-Tiempo (muy útil en paramotor, con un simple vistazo comprobamos si vamos en crucero, subiendo o bajando). Actualmente la escala es de 3s/pixel para el eje X y 4m/pixel para el eje Y.
6-Porcentaje de batería (10 niveles). Actualizado cada 2 minutos.





Acústica:
 

Actualmente el sonido de ascenso comienza a +0,2m/s y el de descenso a -2,5m/s (entre -2,4 y +0.1 no hay sonido)

El sonido de ascenso es intermitente y de frecuencia y duración proporcional a la tasa de ascenso.
El sonido de descenso es continuo y de frecuencia inversamente proporcional a la tasa de descenso.

Otros:


Internamente tiene el pinout de salida para una UART (niveles TTL 3.3v), trabaja a 9600baud 8bits sin paridad 1bit de stop. 

Por el momento lo único que hace es enviar de forma continuada los valores de presión y temperatura actuales cada 500ms. Además si le enviamos el carácter 'r' o 'R' el vario se reseteara.

Actualmente tengo montado un pequeño altavoz en lugar del piezo-buzzer, tiene un sonido más limpio y bonito, pero por contra consume un poco más (para el próximo dejare el piezo).


Manejo:
Poco que argumentar, tiene 3 interruptores: uno de encendido general (no consume energía alguna en estado apagado), otro para activar/desactivar la iluminación de fondo (lo habitual es llevarla apagada) y otro para activar/desactiva el sonido.

FIRMWARE

Puedes descargar los archivos en la sección de descargas.