Conversión Anytone AT-D868UV en AT-D878UV

En esta guía vamos a explicar cómo se puede convertir un walkie talkie Anytone AT-D868UV en el nuevo modelo AT-D878UV, ya que sólo existen diferencias de software entre ambos, siendo el hardware el mismo.

Aunque para hacer honor a la verdad, esta última afirmación no es estrictamente cierta. Existen tres versiones diferentes del Anytone AT-D868UV en cuanto a hardware:

  • V1: Lleva un microcontrolador modelo GD32F303VE de 512 KB de Flash. Utiliza el firmware V1 (v1.xx).
  • V2 «inicial»: Tiene varios cambios de diseño y mejoras en el PCB, pero sigue utilizando el GD32F303VE de 512 KB de Flash y firmware V1 (v1.xx). Sí, un tanto confuso.
  • V2 «final»: Es como la V2 «inicial», pero lleva un microcontrolador modelo GD32F303VG con 1 MB de Flash y utiliza el firmware V2 (v2.xx).

En España este walkie llegó un año tarde y aparentemente todas las unidades se corresponden con la versión V2 «final», por lo que potencialmente todos son convertibles al AT-D878UV, con el que comparte hardware.

¿Cómo saber si tu unidad lleva el GD32F303VE o el GD32F303VG? Muy fácil, ábrelo. Es la manera más fiable. En el momento de escribir este artículo no se ha encontrado aún una correspondencia entre versiones de hardware y números de serie, por lo que la única manera es abrirlo. Más adelante te explico cómo. Recuerda que la versión convertible lleva el GD32F303VG.

Mejoras

¿Qué características y funcionalidades ganaremos con la conversión?

  • APRS por FM («analógico»)
  • APRS configurable vía menú desde el walkie
  • Roaming (cambio automático entre repetidores DMR)
  • Soporte para Talker Alias
  • Nuevo esquema de colores de alto contraste
  • Y futuras mejoras del AT-D878UV, ya que el desarrollo del AT-D868UV parece estar paralizado desde la salida al mercado del nuevo modelo

Descarga de responsabilidad

Esto es un procedimiento experimental que anula completamente la garantía y puede dañar el aparato de forma irreversible.

Personalmente he podido convertir varias unidades de forma satisfactoria, y ninguna ha sufrido ningún tipo de daño. Sin embargo, no puedo garantizar que estos pasos sirvan para tu unidad, ni me hago responsable de los daños que puedas causar. Si sigues adelante, es bajo tu entera responsabilidad.

Material necesario

Para la operación se ha utilizado el siguiente material:

Software necesario

Necesitamos un sistema Windows donde tengamos descargado todo lo siguiente:

1. Pasos previos

1.1. Exportar nuestro actual codeplug desde el CPS que corresponda a la versión de firmware que tengamos en nuestro AT-D868UV.

1.2. Anotar el Serial Number y la fecha de fabricación del equipo que aparece en el apartado «Local Information», ya que se corrompe durante el proceso y hay que restaurarlo al final.

Ojo, que el número de serie que figura en esta ventana es diferente al que aparece en la pegatina trasera del equipo, bajo la bateria.

Modal de «Local Information» con el número de serie y la fecha de fabricación

1.3. Hacer un MCU Reset. Para ello, hay que encenderlo manteniendo PTT + PF1.

MCU Reset de la radio

2. Desmontaje

2.1. Retirar la antena y la batería.

2.2. Quitar los dos tornillos Torx que se alojan en la parte inferior del walkie, bajo la batería.

Retirada de los dos tornillos Torx bajo la batería

2.3. Quitar las dos ruedas superiores (volumen y canales). Salen simplemente tirando con firmeza.

2.4 Desenroscar la pieza metálica del conector de antena. Para ello, nos podemos ayudar de una pinza o un destornillador de punta plana.

Retirada de la pieza metálica del conector de antena (I)
Retirada de la pieza metálica del conector de antena (II)

2.5. Retirar la goma que se aloja en el hueco de la antena con la ayuda de unas pinzas.

Retirada de la goma estanca del conector de antena

2.3. Desenroscar las piezas metálicas de las ruedas superiores. De nuevo con la ayuda de una pinza o destornillador de punta plana.

Retirada de piezas metálicas de las ruedas
Elementos retirados hasta ahora

2.4. Separar el chasis metálico de la carcasa plástica con la ayuda de un objeto plano. Hay que realizar un poco de palanca con cuidado en una de las esquinas.

Apertura del equipo

2.5. Desconectar las cintas flex. Hay dos cintas, una gruesa para la pantalla, y una más fina para el GPS. Debemos empujar el mecanismo con la ayuda de unas pinzas curvas para liberar las cintas. Esta operación debe hacerse con cuidado, ya que tanto los conectores como las cintas son muy delicados.

2.6. Separar la placa del frontal. Ojo, que en este paso se caerán dos gomas negras alojadas en el hueco de las ruedas de canales y volumen. No hay que perderlas.

2.7. Comprobar el modelo de MCU que tenemos. Si es el GD32F303VG entonces estamos de enhorabuena. El chip es el que aparece en la esquina inferior derecha, el más grande de la placa.

Debemos comprobar el modelo de la MCU, abajo a la derecha

3. Preparación del ST-Link

3.1. Conectar el ST-Link con los cables de la breadboard. Los tres pines del ST-Link que necesitamos son:

  • SWCLK (señal de reloj)
  • SWDIO (datos)
  • GND (masa)

Cuidado, porque hay modelos de ST-Link que tienen los pines en distinto orden. Fijaos en la serigrafía del vuestro.

3.2. Construir un conector que encaje en los agujeros de la placa. En mi caso he utilizado un poco de cinta de carrocero para mantener los pines unidos, y he doblado las patillas para que tengan la distancia correcta entre ellas.

El sentido de los terminales según está orientado el walkie en las imágenes es:

  • Clock – Ground – Data

4. Sustitución del bootloader

Aquí es donde realizamos la transformación del AT-D868UV en AT-D878UV. Vamos a cambiar el bootloader escribiendo directamente en la memoria flash del MCU, lo que hará que el CPS reconozca la unidad como un AT-D878UV genuino y nos permita cargar su firmware.

4.1. Colocar la batería. Yo la he sujetado con un alambre plastificado. Se pueden usar también bridas, gomas, o incluso nada si tenemos cuidado. La batería apoya bastante bien por sí sola.

Batería sujeta con un alambre plastificado

4.2. Configurar el STM32 ST-Link Utility. Para ello debemos ir a «Settings», establecer el tipo de conexión en modo SWD a 4,0 MHz, y modo de conexión «Normal».

Configuración ST-Link

4.3. Copia de seguridad completa de la flash del MCU. Con el fin de poder revertir la conversión, o de recuperar el walkie en caso de que algo haya salido mal, haremos una copia de seguridad completa del chip. Para ello, configuraremos la siguiente dirección de memoria y tamaño de volcado:

  • Address: 0x08000000
  • Size: 0x100000
Copia de seguridad del contenido original de la MCU

Una vez establecidos los parámetros haremos lo siguiente:

  1. «Target / Connect»
  2. «File / Save», y ponedle preferentemente extensión «.hex»

Este archivo es muy importante porque nos permitirá volver atrás en caso de que queramos revertir la conversión o que surjan problemas, así que debemos guardarlo en un lugar seguro y que podamos recordar.

4.4. Sustitución del bootloader. Aquí es donde ocurre la conversión. Necesitaremos este archivo:

A continuación, vamos a escribirlo en el walkie. Para ello, realizaremos los siguientes pasos:

  1. Con el walkie apagado, lo encenderemos en modo actualización de firmware manteniendo pulsados PTT + PF3 (botón naranja). El led parpadeará en rojo.
  2. Conectamos el cable del ST-Link a la placa del walkie.
  3. Vamos a «Target / Program & Verify» en el menú.
  4. Seleccionamos el archivo «878MCU_bootloader.hex» descargado antes.
  5. Marcamos «Verify while programming».
  6. A continuación pulsamos «Start».
  7. La programación del bootloader se completa en menos de 1 segundo.
Escritura del bootloader en la MCU

5. Carga del firmware del AT-D878UV

5.1. Carga del firmware. Bajaremos el último CPS correspondiente al modelo AT-D878UV y cargaremos su firmware siguiendo las intrucciones del fabricante como con cualquier otra actualización al uso. En esencia sería:

  1. Encender en modo actualización de firmware manteniendo pulsados PTT + PF3 (botón naranja). El led parpadeará en rojo.
  2. Utilizar el CPS para escribir el firmware en el walkie.
  3. Encender en modo factory reset manteniendo pulsados PTT + PF1. Nos preguntará si queremos reinicializar el walkie. Decimos que sí.
MCU Reset de la radio

5.2. Actualización de iconos. De nuevo, siguiendo las intrucciones del fabricante, cargaremos la actualización de iconos en el walkie.

  1. Encender en modo actualización de iconos manteniendo pulsados PTT + PF2.
  2. Utilizar el CPS para escribir la actualización de iconos en el walkie.
Modo de actualización de iconos

6. Restaurar el número de serie

6.1. Descargar y descomprimir el siguiente ZIP:

6.2. Abrir el archivo «normaltestmode.CDD» con un editor hexadecimal. Por ejemplo, para Windows podemos usar HxD.

6.3. Buscar la posición en el archivo donde se encuentra el número de serie y escribir el nuestro encima. Es muy importante no borrar nada de lo que hay, ya que en ese caso desplazaremos el contenido del archivo. Debemos pinchar en el primer dígito y a continuación escribir los dígitos de nuestro número de serie, sobreescribiendo los existentes.

Modificación de «normaltestmode.CDD» con un editor hexadecimal

6.4. Podemos hacer lo mismo con la fecha de fabricación si la tenemos previamente anotada.

6.5. Modo actualización de iconos. Debemos encender en modo actualización de iconos manteniendo pulsados PTT + PF2.

Modo de actualización de iconos

6.6. Escribir el archivo en el walkie. Vamos al CPS, elegimos «Tool / Firmware Upgrade» en el menú, y escribimos el archivo «normaltestmode.spi» en el walkie como si fuese una actualización de firmware al uso.

7. Restaurar el codeplug

7.1. Restaurar el codeplug desde el CPS.

7.2. Actualizar la BBDD de contactos. Podemos aprovechar el momento para cargar en el walkie la base de datos más reciente.

7.3. Revisar la configuración del walkie. El AT-D878UV tiene nuevas opciones de configuración. Echa un vistazo en el CPS para dejarlo a tu gusto.

Fin

Y ya está. Llegados a este punto deberíamos tener un walkie AT-D878UV completamente funcional en el que tenemos disponibles todas las nuevas características de este modelo, y actualizaciones estándar desde CPS.

Ahora a disfrutarlo.

Referencias

Esta guía se basa en una recopilación de información de diferentes fuentes, ordenada y organizada convenientemente para proporcionar un procedimiento claro y sencillo de seguir.

La información ha sido obtenida de:

Soluciona los problemas de conectividad WiFi/3G en HTC Desire

A estas alturas pocas HTC Desire seguirán en uso, ya que es un modelo de segunda generación que lleva tiempo en el mercado, y que ha sido ampliamente superado por la avalancha de dispositivos Android que ha venido después.

Si como yo aun conservas una HTC Desire, es muy probable que hayas probado ROMs cocinadas para tratar de estirarla en el tiempo. Si has instalado alguna ROM basada en Ice Cream Sandwich o Jelly Bean, o te has decantado por una ROM estable y limpia como CyanogenMod 7, es posible que estés sufriendo problemas de conectividad 3G después de estar mucho tiempo conectado por WiFi.

Los foros están llenos de gente comentando el mismo problema. Estás en tu casa conectado por WiFi y todo va bien, pero cuando sales a la calle, a la Desire le cuesta varios minutos darse cuenta de que ya no tiene la WiFi a su alcance, y no conmuta a 3G. En el indicador de cobertura se indica que tienes señal, pero en pantalla no aparece el símbolo de conexión G, E o H, y al abrir un navegador se comprueba que efectivamente no hay conectividad.

En algunas ocasiones es suficiente con desactivar y reactivar los datos, o con entrar y salir  del modo avión. Pero la mayor parte de las veces es necesario reiniciar el teléfono.

Si has instalado Chromium, ICS for Desire, o simplemente la CyanogenMod 7.2.0.1, habrás notado este molesto problema. ¿Qué es lo que ocurre? Ocurre que el RIL es incorrecto.

El RIL es el Radio Interface Layer. Es decir, es un componente software que hace de intermediario entre Android y el hardware de radio del teléfono, encargado de controlar todas las comunicaciones de radio: GSM, WCDMA, WiFi, Bluetooth, GPS.

Si el RIL es incorrecto, la gestión del hardware de radio no funcionará bien y nos provocará problemas. ¿Cómo lo solucionamos? Instalando un RIL correcto en nuestra ROM.

Enlace: Listado de RILs para HTC Desire en XDA

En el enlace indicado tenemos el listado completo de RILs para nuestra Desire. La CyanogenMod 7.1 viene con el HTC-RIL 1.6.1062G (Apr 23 2010,17:35:06) y funciona bastante bien, aunque de vez en cuando sufre algún corte. La CyanogenMod 7.2.0.1 en cambio incluye el HTC-RIL 2.2.0028HM (Sep 20 2010,22:33:44) y sufre muchísimos problemas de conectividad.

¿Cómo puedo saber qué versión de RIL tengo en mi ROM? Lanza Terminal en el teléfono y ejecuta lo siguiente:

$ su
# getprop «gsm.version.ril-impl»

El RIL recomendado para no tener problemas con CyanogenMod 7.2.0.1 es el HTC-RIL 2.2.1003G (Nov 2 2010,17:17:45). Varios usuarios en diversos foros han declarado haber solucionado el problema al flashear el teléfono con este RIL.

El procedimiento para flashear el RIL es el siguiente:

  1. Copiar el RIL sin descomprimir (formato ZIP) en la raíz de la tarjeta SD
  2. Reiniciar en modo Recovery
  3. Si queremos poder volver atrás, este es el momento de hacer un Nandroid Backup
  4. Montar «/system»
  5. Elegir «Flash from SD» y elegir el archivo del RIL
  6. Esperar a que termine y reiniciar

(Se asume que se tiene el teléfono rooteado y con un custom recovery. Si no es así, aconsejamos leer otras guías para conocer el procedimiento. Aprender a rootear el teléfono queda fuera del alcance de esta guía.)

El RIL forma parte de la ROM, por lo que si flasheamos otra ROM deberemos repetir el proceso. El flasheo del RIL no es un procedimiento crítico como sí lo es flashear el firmware de la radio, que puede dañar el teléfono. Si ocurre algún problema con el flasheo del RIL, podemos volver a probar de nuevo con el mismo archivo, probar con otro RIL, o flashear directamente otra ROM.

Con este nuevo RIL, mi HTC Desire conecta en modo HDPA nada más encender, y conmuta entre WiFi y 3G al instante. No he vuelto a sufrir problemas de conectividad 3G desde que hice el cambio. Si lo probáis, espero que os funcione tan bien como a mí.

[HOWTO] Tethering automático por Bluetooth mediante Tasker

Hola a todos,

Aquí os presento un tutorial para tener tethering automático entre una tablet WiFi y nuestro móvil, de tal forma que cuando la tablet no tenga conectividad WiFi se conecte automáticamente al móvil, y cuando vuelva a tener WiFi se desconecte del móvil y deje de gastar 3G. Útil para tener conectividad en todo momento y sin hacer absolutamente nada.

¿Por qué por Bluetooth? Porque consume muchísima menos batería, porque no exponemos una WiFi a todo el mundo, y porque nuestro móvil no puede tener el tethering WiFi activado y a la vez ser cliente de otras WiFis.

¿Por qué con Tasker? Porque nos va a permitir que la tablet conmute a tethering automáticamente cuando no tengamos una WiFi a mano, sin que tengamos que hacer una sola acción ni en el teléfono ni en la tablet.

Ingredientes:

Tasker es una aplicación realmente potente que permite definir acciones a partir de todo tipo de condiciones. Por ejemplo podemos definir que ponga el móvil en modo vibración al llegar al trabajo, que pase a 2G cuando estemos conectados a una WiFi, que geoposicione cuando nos desconectemos del manos libres del coche, etc. En este caso lo vamos a usar junto con Bluetooth Auto Connect para conectar a un dispositivo bajo demanda, concretamente a nuestro móvil, cuando se cumplan ciertas condiciones sobre la WiFi.

La pantalla de Tasker es un poco árida por la cantidad de operaciones que se pueden hacer, pero el proceso es sencillo. Veamos la idea intuitiva.

Hay que hacer dos cosas:

  1. Crear un perfil «Autotethering On» que se conecte al móvil cuando no haya conexión WiFi
  2. Crear una condición de salida que desconecte del móvil cuando haya conexión WiFi

Aunque yo, para ahorrar batería, lo he definido así:

  1. Crear un perfil «Autotethering On» que active el Bluetooth y se conecte al móvil cuando no haya conexión WiFi
  2. Crear una condición de salida que desactive el Bluetooth cuando haya conexión WiFi

Veamos los pasos que debemos dar en Tasker, aunque antes de nada debemos emparejar la tablet con nuestro móvil por Bluetooth.

Autotethering

  1. Ejecutamos Tasker
  2. Pulsamos el botón «+» de la parte inferior
  3. Asignamos un nombre del tipo «Autotethering On»
  4. En «Contexto» elegimos «Estado»
  5. En «Categoría» elegimos «Red»
  6. En «Acciones de red» elegimos «Conectado a Wifi»
  7. En «Conectado a Wifi» seleccionamos «Invertir» y aceptamos
  8. En «Seleccionar tarea» elegimos «Nueva tarea»
  9. Le ponemos un nombre del tipo «Conectar al móvil»
  10. En «Editar tarea» pulsamos «+»
  11. En «Categoría de la acción» elegimos «Red»
  12. En «Acciones de Red» elegimos «Bluetooth»
  13. En «Bluetooth» elegimos «Establecer Encendido»
  14. Aceptamos hasta volver al paso de «Editar tarea»
  15. En «Editar tarea» pulsamos «+»
  16. En «Categoría de la acción» elegimos «Plugin»
  17. En «Acciones de Plugin» elegimos «Bluetooth Auto Connect»
  18. En «Bluetooth Auto Connect» pulsamos en «Editar»
  19. En la ventana de configuración que aparece elegimos nuestro móvil (¡debe estar previamente emparejado!)
  20. Aceptamos todo hasta volver a la pantalla principal de Tasker
  21. Hacemos pulsación larga sobre la tarea «Conectar al móvil» y elegimos «Añadir tarea de salida»
  22. En «Seleccionar tarea» elegimos «Nueva tarea»
  23. Le ponemos un nombre del tipo «Desconectar Bluetooth»
  24. En «Editar tarea» pulsamos «+»
  25. En «Categoría de la acción» elegimos «Red»
  26. En «Acciones de Red» elegimos «Bluetooth»
  27. En «Bluetooth» elegimos «Establecer Apagado»
  28. Aceptamos todo hasta volver a la pantalla principal de Tasker
  29. Pulsamos en el tick verde para activar el perfil (se cerrará Tasker)


Os tiene que quedar algo así:

Teléfono previamente emparejado:

Configuración de Tasker:

Cuando salgáis de casa y dejéis de tener WiFi, veréis lo siguiente en vuestro teléfono y estaréis compartiendo la conexión con la tablet sin tocar un botón:

¡Feliz navegación! 😉