miércoles, 28 de abril de 2010

Versión de software V10

Me han reportado un problema en uno de los kits que consistía en que después de la calibración el analizador mostraba lecturas incoherentes. Después de verificar que no había ninguna avería en el hardware he comprobado que la causa del problema estaba originada por la influencia de la dispersión de características del PSoC de esa unidad en el funcionamiento del firmware, en concreto en el error de desplazamiento (offset) del convertidor analógico digital.

Para las medidas de las cuatro ramas del puente de medición del analizador se utiliza un convertidor analógico digital, de 12-bits en este caso. Estos convertidores no son ideales y tienen errores de linealidad, offset, etc; y además son sensibles al ruido. Para minimizar los efectos de ruido y de offset se utiliza una técnica que se llama “doble muestreo correlado” que consiste en tomar una medida con la entrada en cortocircuito y posteriormente tomar la medida con la entrada conectada. El valor de la lectura real será el valor con la entrada conectada menos el valor de la entrada en cortocircuito, por lo que se descuenta el efecto del offset. Esto es bastante efectivo pero limita un poco el margen dinámico.

El primer paso del proceso de calibración es ajustar el nivel de la señal para las diferentes bandas con el objetivo de tener un nivel constante. Una característica del DDS es que la amplitud disminuye con la frecuencia por lo que en el SARK100 se compenso por software. En este paso del proceso de calibración se va incrementando el nivel de la señal y se va midiendo hasta que llegue a un umbral, muy cerca del fondo de escala para aprovechar el máximo de la resolución del convertidor.

En esta caso concreto, el nivel de offset era un poco mayor (pero dentro de la normalidad) que en otras unidades, por lo cual se reducía ligeramente el valor del fondo de escala. Esto se traducía en que el nivel de fondo de escala era ligeramente inferior al valor del umbral por lo que durante la calibración, el analizador se ajustaba el valor máximo de ganancia ya que nunca alcanzaba el valor umbral. Esto se traducía en un efecto de recorte en las medidas y por tanto una pérdida de exactitud después de la calibración.

La nueva versión del software tiene en cuenta esta dispersión y por tanto ajusta el nivel de umbral teniendo en cuenta el offset del convertidor. Solamente será necesario actualizar el firmware si has observado el mismo problema en tu analizador.
 
El firmware y el código fuente están disponibles en los siguientes enlaces:
http://www.ea4frb.eu/SwrAnalyzer/sw/SARK100_SwrAnalyzer_BL_V10.hex
https://sourceforge.net/projects/sark100swranaly/

© EA4FRB - Melchor Varela 2010, All rights reserved

jueves, 22 de abril de 2010

BootLoader_PSoC.exe y números altos de puerto COM

Parece ser que la herramienta de actualización de software del PSoC -BootLoader_PSoC.exe- no funciona cuando el puerto COM asignado por Windows para el controlador USB es igual o superior a COM20. Al intentar conectar el programa muestra un cuadro de diálogo indicando que el puerto está ocupado y no se puede abrir:

La solución consiste en modificar la asignación por defecto de Windows, para lo que se puede seguir el siguiente procedimiento:

Primeramente asegurarse que el SARK100 esté conectado al puerto USB del PC y puesto en marcha.

Ya desde el PC, abrir el Panel de Control de Windows y hacer doble click sobre el icono Sistema.

Seleccionar la pestaña Hardware y dentro de esa pestaña hacer doble click sobre el botón Administrador de Dispositivos.

Buscar dentro de la pestaña Puertos (COM&LPT) el puerto asignado al SARK100. En caso de duda se puede desconectar y conectar de nuevo el cable USB del analizador y se verá que uno de los iconos de los puertos COM desaparecerá y volverá a aparecer dependiendo si está desconectado o conectado. Este icono se corresponderá al puerto asignado al SARK100.

Hacer click en el icono del puerto y con el botón derecho del ratón seleccionar propiedades y entrar en la pestaña Configuración de Puerto y posteriormente en  Opciones Avanzadas.

Llegado a ese punto se podrá cambiar la asignación del número de puerto, en la casilla de selección Número de Puerto COM. Se podrá seleccionar un puerto con número más bajo y que no esté en uso.
 
Esto es todo, no hay más que anotar el número del nuevo puerto COM y utilizarlo en el programa de carga.

© EA4FRB - Melchor Varela 2010, All rights reserved

viernes, 16 de abril de 2010

Mecanización alternativa del SARK100 por Luis - EA5DOM

Primeramente quisiera agradecer al amigo Luis - EA5DOM por sus valiosos comentarios y propuestas sobre el kit y por permitirme publicar su excelente trabajo de mecanización del SARK100.

Uno de los principales comentarios de Luis, es que el display y los pulsadores sobresalgan de la superficie de la carcasa, por lo que propone un método para que queden "enrasados" y por tanto mejorar la estética y robustez de la unidad.

Lo que se ha hecho es añadir unos separadores, dos tuercas M5 y una arandela de aislante, para cada una de las torretas de sujección de la PCB y cambiar los tornillos de anclaje por unos de métrica M3. De esta manera la placa se ajusta dejando el LCD enrasado en la placa. Destacar que todavía queda suficiente espacio para los soportes de las baterías, ver imágenes a continuación:
Nota: una alternativa podría ser utilizar unos tornillos como los que se entregan con el kit pero de mayor longitud, por ejemplo, tornillos de rosca #6 y longitud 12.7mm (código DigiKey: H804-ND); y varios separadores de nylon para obtener 5.7mm de separación (por ejemplo 4x código DigiKey: 3155K-ND por torreta). No Probado!

Los pulsadores quedarán hundidos, por lo cual será necesario añadir unos suplementos. Para suplementar las teclas se han utilizado arandelas de aislante pegadas a las mismas y sobre ellas trozos sobrantes de PCB. De esta manera al presionar sobre las carátulas se actúa sobre las teclas.

Las carátulas se han realizado imprimiendo el diseño disponible en la página web del proyecto con una impresora laser de color utilizando papel fotográfico autoadhesivo. Luego se ha recortado la carátula y el rectángulo del LCD, de tal forma que quede un marco blanco alrededor del display.

Nota: se puede realizar también con impresora de inyección de tinta. En el caso de no disponer de impresora también se puede realizar la impresión en cualquier imprenta digital del barrio.

Con cinta tipo celo de la ancha de 50mm se han pegado tres bandas horizontalmente para cubrir toda la caratula. Con el cutter se ha recortado el celo sobrante por los lados y también por dentro de la ventana del LCD, dejandola abierta.

Se ha quitado el protector del papel adhesivo y se ha pegado sobre la caja. Como se ha dejado un poco de celo por los lados esto ayuda al pegado y evita que el papel se "pele" facilmente. El problema es que la ventana del LCD esta abierta y por ahí entra la suciedad, etc. Para taparla se le da la vuelta a la caja y por la parte interior, como la ventana es mas grande que la de serigrafía, se colocará un trozo de lamina transparente que queda sujeta por el adhesivo del papel de la caratula. La lamina procede de separadores de carpetas y es ideal para esta tarea. El resultado es el siguiente:

Otro detalle más es que se ha instalado un conector para la conexión de las baterías. También se puede observar detalles de la calidad del trabajo, como la fijación del cable de conexión a la tapa con adhesivo termofundente.
Díficil de mejorar, ¿verdad?

© EA4FRB - Melchor Varela 2010, All rights reserved

Versión de software V09

Anunciar que está disponible una nueva beta del software del analizador SARK100. Esta nueva beta mejora el esquema para la selección de la frecuencia:

En las versiones anteriores del software del SAR100 no estaba del todo satisfecho con el método de selección de la frecuencia ya que estaba limitado a incrementar o decrementar el valor de frecuencia dependiendo del valor de STEP programado. Este método era por un lado poco eficiente al necesitar realizar cambios en el valor de STEP en el menú de configuración en el caso de necesitar cambiar la granularidad de la exploración y por otra parte no era del todo flexible al no ser posible elegir valores de incremento, por ejemplo, de hasta un hertzio.

El firmware y el código fuente están disponibles en los siguientes enlaces:
http://www.ea4frb.eu/SwrAnalyzer/sw/SARK100_SwrAnalyzer_BL_V09.hex
https://sourceforge.net/projects/sark100swranaly/

El manual de usuario no está actualizado de momento por lo que describiré a continuación el nuevo funcionamiento:

Selección de la Frecuencia
La frecuencia se selecciona mediante el ajuste del dígito indicado en la posición donde aparece el cursor ‘_’. El valor por defecto en la puesta en marcha del analizador es el dígito de 10 Khz tal como se muestra a continuación:
SWR 14,100.000
1.02 Z = 40Ω

Al pulsar el botón de subida de frecuencia, se incrementará el valor del dígito y de la misma forma la señal generada por el analizador. Al pulsar el botón de bajada de frecuencia se producirá el efecto contrario, y por tanto se decrementará el valor del dígito y por tanto el valor de frecuencia. Cuando el valor del dígito suba por encima de nueve o debajo de cero, los dígitos por encima del punto de ajuste se subirán o bajarán, respectivamente.

Para cambiar la posición del cursor, primeramente pulsa simultáneamente los botones de subida y bajada de frecuencia. Se mostrará un cursor parpadeante para mostrar que se está seleccionando la posición del dígito de ajuste:

SWR 14,10.000
1.02 Z = 40Ω

La posición del cursor se cambiará a continuación pulsando el botón de bajada de frecuencia para moverlo a la derecha y el de subida de frecuencia para moverlo a la izquierda. Para volver al modo de selección de frecuencia no hay más que pulsar simultáneamente los botones de subida y bajada de frecuencia.

Utilizando este esquema de ajuste de frecuencia, el usuario puede elegir cómodamente un dígito de "incremento" y explorar manualmente con la granularidad deseada. Se pueden realizar búsquedas aproximadas en un amplio rango de frecuencias posicionando el cursor en el marco del dígito de 100 kHz o en el dígito de 1 MHz. La frecuencia de la señal puede ser ajustada en el área de interés y posicionar el cursor en un dígito de menor granularidad (por ejemplo, 10 Khz o 1 Khz) para llevar a cabo un análisis detallado de forma manual mientras se muestran los valores de ROE, impedancia y reactancia.

© EA4FRB - Melchor Varela 2010, All rights reserved

viernes, 9 de abril de 2010

Preparación de los Kit

Este blog-reportaje muestra el proceso de preparación de los Kits del SARK100. Esta información puede ser interesante tanto para futuros usuarios del Kit como para los que tengan en mente la posibilidad de embarcarse en una aventura similar. En futuras entradas en el Blog describiré con detalle "The Making of" del SARK100 desde su concepción.

La primera consideración es que el proceso es totalmente "artesanal" y realizado por el que les escribe y con algo de ayuda de mi familia. Afortunadamente el servicio que proporcionan los proveedores globales de componentes, en este caso DigiKey, facilita la labor en gran medida.

El proceso lleva varias etapas que iremos describiendo a continuación:

1) Pedido de los componentes
Uno de los condicionantes del diseño ha sido que todos los componentes estuvieran fácilmente disponibles en proveedores en el que aceptaran pedidos con cantidades unitarias de componentes y los gastos de envío fueran lo menores posibles o incluso inexistentes; y por supuesto minimizar el número de proveedores.

Después de una selección entre los diferentes proveedores globales: Farnell, DigiKey, y Mouser; mi elección ha sido DigiKey. Tienen un stock y variedad de componentes increible, la mayoría de componentes se pueden comprar en cantidades unitarias, no cobran gastos de envio para pedidos por encima de 65€, y son muy rápidos -en el caso de que tengan los componentes en stock, suelen tardar dos o tres dias máximo. Los componentes se entregan en bolsas individuales, perfectamente marcadas, y con las referencias suministradas por lo que no será necesario etiquetar las bolsas de componentes del kit.

El único problema que me he encontrado con DigiKey es que a veces se quedan sin stock, que aún reponiendo en tiempos más o menos razonables de hasta dos o tres semanas, para mi modelo de ventas es a veces un problema. Esto lógicamente sucede con todos los proveedores y probablemente que no sean peor que otros.

Todos los componentes del SARK100 están disponibles (excepto la PCB por supuesto) y los compro en DigiKey y únicamente el PSoC lo compro directamente a Cypress ya que es significativamente más barato. Para realizar los pedidos, DigiKey ofrece una herramienta web muy útil que es el BOM Manager. Primeramente te creas la lista de componentes, por ejemplo, en una hoja de Excel siguiendo la plantilla que te proporcionan y a partir de ahí puedes realizar los pedidos, crear Kits de componentes con diferentes modalidades posibles, etc. Además almacenan todo el historial de pedidos, listas de materiales, etc; lo que facilita la gestión y trazabilidad. Para acceder a todos estos servicios no hay más que registrarse sin coste alguno en el sitio web de DigiKey.

Para el SARK100 gestiono varias listas. Los componentes pasivos, condensadores y resistencias, y tornillería variada; en la mayoría de los casos necesitan cantidades mínimas no unitarias. Para ello realizo pedidos en lotes, que luego procesaré manualmente como se verá posteriormente. Hay otros componentes como el jack y el interruptor de alimentación, las cajas, etc; en los que compro varias unidades para tener un pequeño buffer en el caso de se queden sin stock. Para el resto de componentes tengo una lista en la que el pedido lo realizo bajo demanda, es decir, cuando recibo el pago immediatamente creo el pedido. Como tengo un "buffer" de varias unidades puedo realizar casi un "just in time" en la mayoría de los casos. Tal como comentaba anteriormente, el PSoC lo compro directamente en la web de Cypress, aunque también está disponible en DigiKey.

El resto de material necesario es del tipico de oficina, sobres acolchados, papel normal, papel autoadhesivo, cartulinas, bolsitas con autocierre, etc; que se pueden encontrar en cualquier suministrador de material de oficina.

2) Preparación de los componentes pasivos
Los componentes pasivos: condensadores, resistencias, e inductores; los entrego en unas cartulinas con los valores y referencias de los componentes marcados. El proceso de preparación es totalmente artesanal y es aquí donde se necesita algo de ayuda para ir más rapidamente. Basicamente consiste en extraer los componentes de las bolsas, cortar los reel en las unidades necesarias, y pegarlos con cinta adhesiva a la cartulina.


Posteriormente la cartulina se cortará en cuatro partes para poder introducirla en el sobre.



3) Plantillas para la mecanización de la caja
Las plantillas de guía para la mecanización de la caja se imprimen con la impresora de inyección de tinta sobre papel autoadhesivo. Posteriormente se realiza el corte del contorno con un cutter y una regla.
A continuación se introducen en los sobre acolchados los componentes pasivos, las plantillas y la PCB:

4) Tornillería y útiles de soldadura
Los tornillos de sujección de la PCB a la caja y el juego de tornillo/arandela/tuerca para los disipadores de los reguladores se guardan en una bolsa con autocierre. Se sigue el mismo proceso para los útiles de soldadura:


5) Grabación del PSoC
La grabación de los PSoC la realizo utilizando un kit de desarrollo del PSoC que además tiene capacidad de programar el micro. Los pedidos del PSoC los realizo directamente a Cypress y cuando los recibo realizo la grabación del lote con la última versión de software disponible.


6) Empaquetado final y envío
El proceso final consiste en juntar el sobre preparado en los pasos 2) y 3), la tornilleria y útiles de soldadura del paso 4), el PSoC del paso 5), y el resto de componentes. Antes de cerrarlo y prepararlo para el envío se incluye en el sobre una carta personalizada para el usuario incluyendo información de identificación del kit: revisión de firmware y de placa, número de serie, y fecha.


Ya no tengo más que cerrar y acercarme a la oficina de correos para realizar la entrega.

© EA4FRB - Melchor Varela 2010, All rights reserved

jueves, 8 de abril de 2010

Restablecida la normalidad en las entregas

Ya están disponibles los componentes faltantes por lo que se reanudarán las entregas pendientes entre esta semana y la siguiente.

Se aceptan ya nuevos pedidos.

miércoles, 7 de abril de 2010

Orientación D1 a D4, U3, D5 a D7, y C38

He tenido algunos comentarios de que la orientación de estos componentes no son lo suficientemente claras. He añadido al manual de usuario algunas imágenes para aclararlo, pero en cualquier caso las comento en este blog.

Otra cosilla más, recordar que los siguientes componentes no se suministran en el kit y no necesitan ser montados: JP3, R42, R48, R49, R50, y R51
  • Diodos D1 a D4:

 

  • Oscilador U3:
  • Diodos D5, D6, y D7:

 
 
 
 
 
 
  • Condensador C38


© EA4FRB - Melchor Varela 2010, All rights reserved

lunes, 5 de abril de 2010

Programar valores de calibración por defecto en el firmware

Una de las características del SARK100 es la capacidad de permitir la personalización completa del firmware por el usuario y de ser actualizado fácilmente por USB. Como la capacidad de la memoria flash del microcontrolador es limitada, en algunos casos puede ser necesario liberar algo de código para tener suficiente espacio para implementar otras funcionalidades.

Una de las posibilidades para disponer de más espacio, es prescindir de la porción de código utilizado para la calibración y programar los valores de calibración por defecto directamente en el firmware. Como valor añadido, al disponer de los valores de calibración de tu SARK100 en el firmware, no será necesario recalibrar el instrumento después de una actualización de firmware.

Antes de ponerte manos a la obra deberás conocer los procedimientos básicos para desarrollar en el PSoC,  conocer la teoría básica de funcionamiento del software del SARK100, y el procedimiento de actualización del software (descritos en las Secciones 12, 15, y Apéndice F del Manual de Usuario). Adenás deberás tener a mano un programa de comunicaciones, HyperTerminal por ejemplo, configurado a 57600, 8 , n, 1; y el puerto COM del SARK100.

El procedimiento consiste en varios pasos: primeramente configurar el firmware del SARK100 para enviar los valores de calibración por el puerto USB y actualizar el firmware, realizar la calibración y volcar los valores de calibración, modificar el firmware para incluir los nuevos datos de calibración, y opcionalmente comentar las rutinas de calibración.

Vamos paso por paso:

1) Configurar firmware para enviar valores de calibración

- Entra en PSoC Designer y abre el proyecto del firmware del SARK100: "SARK100_SwrAnalyzer_BL"
- Abre el fichero "calibrate_reflectometer.c".
- Cerca de la línea 55 encontrarás la siguiente sentencia:

//#define DEBUG 1 // Uncomment to debug calibration results on USB


- Quita el comentario:

#define DEBUG 1 // Uncomment to debug calibration results on USB

- Salva el archivo y construye (Build) el proyecto tecleando F7 por ejemplo.
- Actualiza el firmware por USB

2) Obtener los valores de calibración

- Con el nuevo firmware y el SARK100 conectado al PC por el puerto USB invoca el programa de terminal (HyperTerminal)
- Realiza la calibración siguiendo el procedimiento descrito en el Apéndice G del Manual de Usuario
- Una vez terminada la calibración los valores de calibración deberán aparecer en la ventana del HyperTerminal. El resultado debería ser similar al siguiente:

Band:0 G=4 VR.S=-80 VR.O=1041 VZ.S=-182 VZ.O=1054 VA.S=102 VA.O=1005
Band:1 G=4 VR.S=-115 VR.O=1049 VZ.S=-175 VZ.O=1054 VA.S=73 VA.O=1011
Band:2 G=4 VR.S=-116 VR.O=1051 VZ.S=-168 VZ.O=1053 VA.S=119 VA.O=1005
Band:3 G=5 VR.S=-103 VR.O=1049 VZ.S=-167 VZ.O=1053 VA.S=208 VA.O=991
Band:4 G=5 VR.S=-150 VR.O=1060 VZ.S=-162 VZ.O=1054 VA.S=256 VA.O=985
Band:5 G=5 VR.S=-118 VR.O=1054 VZ.S=-155 VZ.O=1051 VA.S=356 VA.O=973
Band:6 G=5 VR.S=-123 VR.O=1056 VZ.S=-143 VZ.O=1050 VA.S=534 VA.O=949
Band:7 G=6 VR.S=-119 VR.O=1056 VZ.S=-113 VZ.O=1044 VA.S=732 VA.O=917
Band:8 G=7 VR.S=-95 VR.O=1051 VZ.S=-96 VZ.O=1040 VA.S=1009 VA.O=875
Band:9 G=7 VR.S=-97 VR.O=1051 VZ.S=-80 VZ.O=1037 VA.S=1191 VA.O=851
Band:10 G=7 VR.S=-111 VR.O=1055 VZ.S=-72 VZ.O=1036 VA.S=1398 VA.O=825
Band:11 G=9 VR.S=-48 VR.O=1038 VZ.S=0 VZ.O=1020 VA.S=2584 VA.O=639
Band:12 G=11 VR.S=-549 VR.O=1131 VZ.S=205 VZ.O=975 VA.S=3987 VA.O=384

- Copia estos valores en el portapapeles y pégalos en un archivo de texto para su uso posterior

3) Modificar el firmware para incluir los datos de calibración

- Antes de que no se nos olvide, volvemos a comentar la línea 55 de "calibrate_reflectometer.c".

//#define DEBUG 1 // Uncomment to debug calibration results on USB

- Abre el fichero "glb_data.c". Aproximadamente la línea 113 encontrarás la siguiente inicialización del arreglo:
                                // Default band settings

const BRIDGE_CORRECT_DEFAULTS g_xDefBandSettings[BAND_MAX] =
{
// Gain, VR.Slope, VR.Offset, VZ.Slope, VZ.Offset, VA.Slope, VA.Offset,
{2 , {{-346, 1138}, {-239, 1069}, {-925, 1176}} }, //BAND_160M
{3 , {{-353, 1141}, {-213, 1064}, {-859, 1170}} }, //BAND_80M
{3 , {{-356, 1143}, {-215, 1066}, {-782, 1158}} }, //BAND_40M
{4 , {{-297, 1128}, {-174, 1056}, {-600, 1130}} }, //BAND_30M
{4 , {{-324, 1135}, {-168, 1056}, {-589, 1129}} }, //BAND_25M
{4 , {{-318, 1135}, {-171, 1056}, {-527, 1120}} }, //BAND_20M
{5 , {{-308, 1133}, {-146, 1052}, {-327, 1092}} }, //BAND_17M
{5 , {{-328, 1140}, {-150, 1054}, {-107, 1063}} }, //BAND_15M
{6 , {{-296, 1130}, {-112, 1045}, {123 , 1025}} }, //BAND_12M
{7 , {{-258, 1119}, {-119, 1046}, {265 , 1003}} }, //BAND_11M
{7 , {{-273, 1124}, {-95 , 1041}, {430 , 981}} }, //BAND_10M
{8 , {{-230, 1108}, {-63 , 1036}, {1600, 820}} }, //BAND_8M
{11 , {{-103, 1064}, {25 , 1012}, {2606, 644}} } //BAND_6M
};

- A partir de aquí te recomiendo utilizar un editor de textos que permita seleccionar bloques, ya que te será más fácil copiar y pegar los nuevos valores en el arreglo. Utilizando el botón derecho del ratón en TextPad selecciona "Block Select Mode".
- Primeramente borra los valores anteriores. Tendrás que ir columna por columna, teniendo cuidado de no borrar ninguna llave o coma. El resultado será el siguiente:

const BRIDGE_CORRECT_DEFAULTS g_xDefBandSettings[BAND_MAX] =
{
// Gain, VR.Slope, VR.Offset, VZ.Slope, VZ.Offset, VA.Slope, VA.Offset,
{ , {{, }, {, }, {, }} }, //BAND_160M
{ , {{, }, {, }, {, }} }, //BAND_80M
{ , {{, }, {, }, {, }} }, //BAND_40M
{ , {{, }, {, }, {, }} }, //BAND_30M
{ , {{, }, {, }, {, }} }, //BAND_25M
{ , {{, }, {, }, {, }} }, //BAND_20M
{ , {{, }, {, }, {, }} }, //BAND_17M
{ , {{, }, {, }, {, }} }, //BAND_15M
{ , {{, }, {, }, {, }} }, //BAND_12M
{ , {{, }, {, }, {, }} }, //BAND_11M
{ , {{, }, {, }, {, }} }, //BAND_10M
{ , {{, }, {, }, {, }} }, //BAND_8M
{ , {{, }, {, }, {, }} } //BAND_6M
};

- Copia y pega los valores de calibración que deberás tener guardados en un archivo de texto. Tendrás que ir columna por columna. El resultado final será:
const BRIDGE_CORRECT_DEFAULTS g_xDefBandSettings[BAND_MAX] =
{
// Gain, VR.Slope, VR.Offset, VZ.Slope, VZ.Offset, VA.Slope, VA.Offset,
{4 , {{-80 , 1041}, {-182, 1054}, {102 , 1005}} }, //BAND_160M
{4 , {{-115, 1049}, {-175, 1054}, {73 , 1011}} }, //BAND_80M
{4 , {{-116, 1051}, {-168, 1053}, {119 , 1005}} }, //BAND_40M
{5 , {{-103, 1049}, {-167, 1053}, {208 , 991}} }, //BAND_30M
{5 , {{-150, 1060}, {-162, 1054}, {256 , 985}} }, //BAND_25M
{5 , {{-118, 1054}, {-155, 1051}, {356 , 973}} }, //BAND_20M
{5 , {{-123, 1056}, {-143, 1050}, {534 , 949}} }, //BAND_17M
{6 , {{-119, 1056}, {-113, 1044}, {732 , 917}} }, //BAND_15M
{7 , {{-95 , 1051}, {-96 , 1040}, {1009, 875}} }, //BAND_12M
{7 , {{-97 , 1051}, {-80 , 1037}, {1191, 851}} }, //BAND_11M
{7 , {{-111, 1055}, {-72 , 1036}, {1398, 825}} }, //BAND_10M
{9 , {{-48 , 1038}, {0 , 1020}, {2584, 639}} }, //BAND_8M
{11 , {{-549, 1131}, {205 , 975 }, {3987, 384}} } //BAND_6M
};
 
- Salva el archivo y construye (Build) el proyecto tecleando F7 por ejemplo.

- Actualiza el firmware por USB
- A partir de aquí tendrás los valores de calibración por defecto ajustados para tu instrumento

4) Opcionalmente comentar las rutinas de calibración.
- Abre el archivo "calibrate_reflectometer.c"
- Comenta la rutina Calibrate_Reflectometer(), por ejemplo con compilación condicional:

void Calibrate_Reflectometer (void)

{
#if 0  // Comentado código de calibración
     ...
     ...

#endif
}

- Abre el archivo "main.c"
- Aproximadamente en la línea 140 comenta el siguiente bloque de código. El resultado será el siguiente:

#if 0
if (g_bIsCalibrated == FALSE) // If not calibrated presents warning text

{
    BUZZ_BeepError();
    DISP_Clear();
    LCD_Position(0, 0);
    LCD_PrCString(gErrorUncalibratedStr);
    LCD_Position(1, 0);
    LCD_PrCString(gPressAnyKeyStr);
    // Wait key press
    KEYPAD_WaitKey(TIME_DELAY_TEXT);
    DISP_Clear();
}
#endif

- Salva los archivos y construye (Build) el proyecto tecleando F7 por ejemplo.
- El nuevo firmware ocupará 2900 bytes menos de flash, lo que será siempre de agradecer para tener espacio extra para nuevas funcionalidades

viernes, 2 de abril de 2010

Versión de software V08

Los primeros kits que se han entregado y los que se entregarán en durante el mes de Abril llevan la version V08 de software. Respecto a la versión V06 incorpora las siguientes mejoras:

  • Implementado un sistema de calibración multipunto para mejorar la exactitud de las medidas
  • Reducido el consumo en el modo suspensión
Nota: La versión V07 tiene la misma funcionalidad que la V08 pero se han corregido los valores de calibración por defecto.

Espero los comentarios de los usuarios del kit para poder realizar mejoras para una próxima versión.

Procesamiento de los pedidos del kit

Debido al tema del retraso de las entregas del kit me gustaría explicar como se gestionan para clarificar un poco más el tema:

Hay un grupo de componentes que tengo en stock, tales como las PCB, el micro, los pasivos (condensadores, resistencias, inductores), y el interruptor de encendido.

Para el resto de componentes tengo un stock reducido (buffer), y en este momento al ser las primeras entregas, agotado. Los componentes los pido al proveedor y normalmente los tengo en dos dias por lo que puedo hacer gestión just-in-time, es decir pedirlos bajo demanda cuando recibo el pago. Si dispongo de buffer enviaré una unidad del buffer y lo repondré con un nuevo pedido al proveedor y en caso contrario haré un pedido para el buffer y otro para la necesidad inmediata.

Normalmente compruebo el stock del proveedor y si hay pocas unidades, hago unos pedidos para evitar problemas, pero en este caso me he encontrado sin stock en el jack de alimentación y no he encontrado productos compatibles.

A partir de ahora consideraré este componente como crítico y he realizado un pedido suficiente para que no haya problemas de stock y se puedan atender los pedidos en el plazo esperado.

Esta gestión es necesaria ya que por un lado no puedo permitirme el riesgo de tener un stock grande en casa, ya que sale de mi bolsillo al hacerse todo esto a nivel particular, y por otro lado no quiero que transcurran más de diez días entre el pago y la entrega.

Espero haber clarificado el tema.

© EA4FRB - Melchor Varela 2010, All rights reserved