Programando el bluetooth HC-06 y HC-05

En el mundo de la electrónica que han vuelto muy populares los Bluetooth HC-06 y HC-05 estos bluetooth “chinos” de muy bajo costo han acercado a cualquier aficionado a las tecnologías inalambricas de una forma fácil.

No daré mas detalles sobre este bluetooth ya que hay mucha información sobre sus características en internet. Este post es para mostrar una forma de poder actualizar o cambiar el firmware de este bluetooth

¿Por qué cambiar el firmware de este dispositivo?

Físicamente son idénticas todas las versiones, pero la versión HC-05 tiene algunas características adicionales entre ellas poder elegir entre el modo “esclavo” (modo default) y el modo “maestro” que nos permite que el bluetooth se conecte a un dispositivo y pueda ordenarle a ese dispositivo esclavo.

Programación del firmware

Hay dos formas de programar este dispositivo:

  1. Es por medio de puerto paralelo (LTP) que describe en el blog Byron76
  2. Es por medio de un Stellaris Launch Pad o Stellaris Launch Pad Tiva emulando un programador USB.

NOTA: Antes de comenzar por favor visitar el blog de Byron76 para entender todos los conceptos básicos de la programación, ya que en este post no se abordara la programación por LTP.

Requisitos:

  • Stellaris Launch Pad o Stellaris Launch Pad Tiva
  • 2 Cables micro USB
  • Cables
  • Soldadura
  • Cautin
  • Protoboard
  • Code Composer 5.0 (en mi caso es la versión que yo use)
  • StellarisWare (Recomendable descargar toda la paqueteria que viene con tu Stellaris Launch Pad)
  • CSR Bluesuite 2.4 (en el blog de Byron76 se menciona como conseguirlo)
  • Descargar el código de  de su GitHub, para Stellaris Tiva es del GitHub de Richard Aplin

Pasos:

  • Importar el proyecto a Code Composer de la manera normal.

importacion

  • Asegurar  que SW_ROOT se establece en su directorio StellarisWare en ambas de estas ubicaciones:
  1. Project -> Properties -> Resource -> Linked Resources -> Path Variables -> SW_ROOT

importacionvariable1

  1. Window -> Preferences -> C/C++ -> Build -> Environment -> SW_ROOT.importacionvariable2
  • Borrar la carpeta debug del proyecto (en mi caso me causo problemas, soporte de Texas Instrument lo recomiendan)

importaciondelete

  • Construir el proyecto -> Build Project

importacionbuild

  • Conectar al modulo BlueCore.

3.3v -> 3.3v,
GND -> GND,
PC4 -> SPI_CSB,
PC5 -> SPI_MOSI,
PC6 -> SPI_MISO,
PC7 -> SPI_CLK.

(PC4 – PC7 están localizados en la segunda fila de la derecha)

IMG_20140103_214511 IMG_20140103_214517 IMG_20140103_215623 IMG_20140103_215630 IMG_20140103_215636

  • Conectar tu Stellaris Launchpad con el cable microUSB puerto de arriba (DEBUG) , y seleccionar la alimentación con el interruptor para que sea por DEBUG.

IMG_20140103_210127

  • Debug para correr -> Debug
  • Cuando este pausado hacerlo ejecutar de forma continua–> Resume (botón verde play)
  • Conectar el otro puerto microUSB a su computadora.
  • El dispositivo puede ser reconocido. Los drivers puedes encontrarlos en csrsupport.com (requiere registro), si ya tienes instalado el BlueSuite deben esta en la carpeta donde se instalo el programa. Bluetooth PC Software/Tools -> USB-SPI Converter.
  • Puedes usar BlueSuite o BlueLabs tools, en este caso yo use Blue Suite.
  • Elegir USB—->SPI
  • Led Verde durante la lectura, led rojo durante la escritura, azul cuando usas BCCMD
  • Con PStool puedes ver toda la configuraciónPSTool1
  • Leer configuración del dispositivo con PStool

PSTool2

  • Guardar configuración con DUMP (MAC, nombre…)

PSTool3

  • Con Blue Test podemos también ver algunas características del Bluetooth

Bluesuite1

  • Para hacer un backup del firmware de nuestro dispositivo tenemos que entrar a Blue Flash, con el cual podemos ver el actual firmware presionando Firmware ID

Blueflash1

  • Hagamos un backup de nuestro firmware presionando el botón dump y guardamos los archivos en un lugar seguro por si algo sale mal.

Blueflash2

  • Después podemos instalar el firmware que se encuentra en el blog de Byron76 con en el boton —> Download

Blueflash3

  • Después de cargar el firmware del HC5 podemos restrablecer la configuración que guardamos con PStool

Con eso debería quedar programado su bluetooth para funcionar como HC-05, eso es todo por mi parte inventores, espero ver pronto sus proyectos con bluetooth.

Saludos

Agradezco a Byron76 por la información encontrada en su blog http://byron76.blogspot.mx/

 por toda la ingenieria inversa realizada al programador USB

Así como a Frans-Willem que realizo el emulador del Stellaris Launch Pad

7 opiniones en “Programando el bluetooth HC-06 y HC-05”

  1. HOLA amigo felicidades quisiera saber si se puede hacer con arduino la programaciond e un hc06 a hc05 por que me interesa espero me ayudes amigo gracias

  2. genial 😀 y tengo 2 de esas launchpad para hacerlo, por lo que dicen de si se puede con Arduino, esté firmware usa ingeniería inversa para replicar en el Stellaris la operación del programador de CSR, en teoría si te lees el código fuente, copias los descriptores de hardware y replicas el funcionamiento, se puede hacer con cualquier MCU, pero, no será con el Arduino, sí con el chip del Leonardo (que tiene USB nativo), solo que eso dependerá de que tanto código sea al momento de pasarlo y no será programado al estilo Arduino sino en C con las librerías USB de Atmel.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *