Esta herramienta maneja los datos de los módulos de sonido Azul Build-A-Bear. Puede extraer sonidos de volcados o generar datos a partir de archivos de sonido.
Estos módulos y su sistema de programación están hechos por Voice Express Corp. y cubiertos por la patente de EE. UU. 8675908 .
Su método de programación "Propietario NFC" es bastante ingenioso: se hace mediante un acoplamiento inductivo a través del altavoz del módulo. El MCU lo usa como antena para recoger datos y lo escribe a un chip de flash serial 512KIB. Según los esquemas de la patente, el módulo también puede responder al programador (ver líneas "RCRV").
Voice Express menciona que algunos de sus otros módulos pueden impulsar LED o motores sincronizados con la voz de la música, por lo que probablemente sean lo suficientemente inteligentes como para interpretar alguna forma de scripts mínimos.
Requerido:
Abra el módulo con un destornillador de cabeza plana. Retire el chip de flash 25x40 de la placa. Programa un Arduino de 3.3V con dump.ino . Conéctelo al chip como este:
| 25x40 | Arduino |
|---|---|
| 1 | 9 |
| 2 | 12 |
| 3 | 3.3V |
| 4 | Gnd |
| 5 | 11 |
| 6 | 13 |
| 7 | 3.3V |
| 8 | 3.3V |
Abra un terminal en serie y conéctese a su Arduino programado al 115200 8N1, habilite el registro para archivar, presione una tecla y espere. Una vez que su archivo de registro tiene exactamente 512KIB en tamaño, ha terminado.
¡Esta información aún no está verificada!
0x05 NN : ¿Llame indirecto?0x02 NN :?0x04 NN : ¿Empiece a reproducir sonido desde nn?0x10 NN : establecer el siguiente script nn?0x00 0x15 : ¿Te vas a dormir?Las muestras son crudas sin firmar de 4 bits que se reproducen alrededor de 11025Hz. Los sonidos parecen estar acolchados a bloques de 512 bytes. Se desconoce si esta es una limitación de formato o algo decidido por el software de la cabina de programación.
Vea bab_toothless_dump.bin para el volcado de memoria flash completa.
0x14 : 0x001400x15 : 0x001500x16 : 0x001600x17 : 0x001700x18 : 0x001800x19 : 0x001900xB0 0x00 0x03 : sonido #0 al 0x003000xB0 0x00 0x36 : sonido #1 en 0x036000xB0 0x00 0x6F : sonido #2 a 0x06f000xB0 0x00 0xAC : sonido #3 a 0x0ac000xB0 0x00 0xD6 : sonido #4 en 0x0d6000xB0 0x00 0xF1 : sonido #5 a 0x0f1000x04 0x00 : Reproducir sonido #00x10 0x01 : el siguiente script será #10x02 0x01 : ???0x00 0x15 : Vete a dormir0x04 0x01 : Reproducir el sonido #10x10 0x02 : el siguiente script será #20x02 0x01 : ???0x00 0x15 : Vete a dormir