Window IoT Core on DragonBoard 410c – Update tool fails?

A los mas tequis nos cuesta poco caer cautivados ante los encantos de los increíbles “cacharritos” que a modo de “y yo mas” un fabricante a otro va lanzando al mercado para arrebatar el protagonismo del anterior, asombrándonos en cada nuevo diseño dejándonos absortos de hasta donde puede llegar la tecnología.

Desde el lanzamiento de la DragonBoard con sus Qualcomm’s estuve dudando si me gastaba o no los 75$ que tiene de coste y si tal capricho valía la pena. No se si consumista pero algo en mi interior me dijo : cómpralo! provablemente pensando en los buenos ratos que me proporcionaría poder disponer en mi casa de tal maravilla “technologica” 🙂

Entonces tome la decisión de comprar 2 DragonB 410, 2 cajas y una fuente de alimentación, Total 189,41$

Los mas sabios explican que para pasar de la ilusión a la decepción solo tenemos que cruzar una pequeña línea… y el siguiente relato explica como pasar del WOW al arrepentimiento.

Inicie mi viaje comprando en dólares directamente a Arrow USA, el seguimiento por DHL fue vertiginoso : en dos días mi pedido había llegado a territorio Europeo… luego empezaron a pasar los días sin que no ocurriera nada, excepto :

ítem on – Clearance event & Customs status updated

Después de cinco días… un correo me alerta que para liberar el paquete de aduanas debería autenticarme y aceptar el pago de unos cien euros!! Los cuales correspondían a 52€ por el IVA i el resto tramites aduaneros. Echando cuentas, los 189’41$ en aduana (180€ aproe al cambio) se convirtieron según cánones difíciles de entender por los no juristas en nada menos que en 260€ valorados (desconozco si este cargo tiene algo que ver con lo del tratado del atlántico norte). En cualquier caso el resumen es que a los 189$ finalmente tuve que sumarle 92€ mas!

Cuando finalmente al sexto día intercambio de correos declaraciones, aceptaciones y pagos arancelarios recibimos las grandes DragonBoard 410c, aunque por esos días ya se me habían pasado la ganas 🙁

Después del sufrimiento anterior, intente sacar fuerzas para quitarme el mal sabor de boca y poco podía imaginar que continuaría padeciendo mas que disfrutando.

Una vez desempaquetada según las instrucciones solo tenia que conectarla al HDMI del monitor dar alimentación y … tenia que producirse la magia. PUES NO! La dragon board viene pre-configurada con una versión de Android para video HDMI 1080! … pero para poder verla funcionando en la primera conexión en NINGUN lugar especifica que sea un requerimiento!.

Desgraciadamente ninguno de mis monitores ni TV’s dispone de tal resolución… probé con conversores HDMI a VGA y tampoco 🙂

Al final pensé que lo mejor seria seguir el sencillo tutorial para descargar mi querido Windows 10 IoT Core y así evitar seguir caminos desconocidos para mi. Uno de los primeros requerimientos es descárgate la “Windows 10 IOT Update Tool for DragonBoard 410c x86/x64” de la pagina del Qualcomm (Después de registrarte, ofcourse).

Llegando al final de instalar los drivers, app, etc. y cuando casi esperas que todo este correcto para ver de una vez por todas que tu Dragon Board funciona, te encuentras con que la tool para descargar la imagen ffu de Windows 10 NO funciona!!!
(Ni con privilegios de administrador, ni la versión x86, ni la x64… ni con na…)

MOTIVO : tool error code 00

Apunto de tirar la toalla con antipatía, nuestra querida inteligencia en red me dio la solución … descargar la imagen manualmente desde el prompt de sistema :

Conecta el microUSB de tu dragon board y anota el puerto serie del sistema que corresponda a tu placa… en el ejemplo el COM3. Navega al directorio donde se han instalado las dragon board tools típicamente :

C:\Program Files (x86)\Qualcomm\DragonBoardUpdateTool>

 y desde el prompt del cmd teclea :

emmcdl -p COM3 -f mbns\8916\prog_emmc_firehose_8916_ddr.mbn -ffu d:\temp\flash.ffu

Si aun te quedas ganas… en segundos tendrás tu Dragon rodando el IoT Core, visualizando el logo de Windows en tu monitor o Tv aunque no sea 1080.

Espero que esto ayude a esquivar o despejar dudas a todos los que como yo sucumben a la tentación de adquirir una dragon board y puedan disfrutarla sin tropiezos desde el primer momento.

Va por las buenas experiencias!! <Happy’s hacks>

Last four and most important meetings before summer :-)

Os vais a perder los meetups mas importantes antes del verano? … continua leyendo…

windows-10-ninja-cat-trex_360.png

#All You Need Is Ten : jump start #07 – We don’t need DHCP

Uno de los aspectos engorrosos cuando empezamos ha trabajar con pequeños dispositivos que tienen conectividad por cable, es la necesidad de conectarnos a través de un ‘router’ que de forma directa o indirecta nos permita alcanzar a un DHCP que nos asigne la correspondiente IP y/o nos resuelva la misma por nombre.

No es que sea un impedimento grave, no por la distancia… pues siempre podemos optar por la opción sin hilos ‘dongle wifi’, si no porque cuando estamos en ciertos hacks nos gusta tener nuestra Rasp lo mas cerca posible de nuestra estación para poder operar sin obstáculos.

… una cosa tan simple de conseguir y que a menudo se termina con una guerra para hacerse con los routers :-), y todo por la simple pereza de fijar una ip estática a nuestro dispositivo.
IP que nos permitirá unir con un solo cable los dos extremos “sin mas routers, alimentadores, etc.”

Tal y como explicamos en el jump start #6 :
después de iniciar ‘powershell’>Click remote Access ico>
– Introducir las credenciales según la siguiente figura.

Nota : La ejecución tarda unos segundos… no impacientes y espera a que finalice 🙂
AYNIT_P06_F04

Una vez logeados, desde el prompt o bien creando un nuevo script introducir el siguiente comando :

  • netsh interface ip set address “Ethernet” static 192.168.1.192 255.255.255.0 192.168.1.1

si quieres fijar la ip para el adaptador wifi deberás hacerlo según sigue :

  • netsh interface ip set address “Wi-Fi” static 192.168.192 255.255.255.0 192.168.1.1
una vez introducido :
AYNIT_P07_F01

A partir de ahora cada vez que reiniciemos “piñón fijo!” 192.168.1.192

Con esto conseguiremos no depender del DNS y el DHCP, pudiendo conectar nuestro Win10 directamente a nuestro portátil! lo único que necesitaremos es un cable.

toBe Continued.

 

#All You Need Is Ten : jump start #06 – Remote Access from Powershell

Uno de los fuertes de IoT core es el control remoto a través de powershell, con la ventaja de que podemos automatizarnos script’s para las tareas repetitivas con el lujo de disponer de la version ISE.
A titulo de ejemplo empezaremos aplicando el script que nos permitirá conectarnos remotamente a la Rasp que acabamos de configurar.

– Iniciaremos nuestra tarea el la barra de texto de cortana
>Escribiremos>powershell ise>
>Click botón derecho ratón>Ejecutar como administrador>

AYNIT_P06_F01
– copiar las siguientes líneas de script

  • net start WinRM
  • Set-Item WSMan:\localhost\Client\TrustedHosts -Value PepLluis_Box
  • Enter-PsSession -ComputerName peplluis_box -Credential peplluis_box\Administrator

>Click icono Run o pulsar F5>Introducir credenciales>AYNIT_P06_F02

– y… Ya estamos dentro :
AYNIT_P06_F03
después de la primera conexión, podremos acceder directamente desde el icono de acceso remoto según la siguiente figura :
AYNIT_P06_F04

Ya tenemos otro punto de entrada mas 🙂 para gobernar sin limites nuestra Rasp!

#AYNIT LAB01 – Universal Serial Port

Uno de los interfaces nativos de todos los tiempos más utilizados para la comunicación entre dispositivos y microcontroladores ha sido sin duda el puerto serie.

Con este laboratorio podremos ver como el paso de los años no deja en desuso nuestro viejo Serial Port, así que vamos a comprobar que continúa siendo un potente instrumento incluso si hablamos de aplicaciones universales donde el mismo código nos va a funcionar tanto en una raspberry como en nuestro portátil.

sorprendente?

El mismo código, en diferentes plataformas y diferentes electrónicas.

Pues empecemos:

AYNIT_LAB01_F00AYNIT_LAB01_F01 AYNIT_LAB01_F03 AYNIT_LAB01_F02

Tan pronto tengamos todos los Lab’s y Hack’s listos y probados los compartiremos con vosotros en github.

#AYNIT HACK01 – Pwm Car Motion

Continuamos trabajando para el ultimo de Hack de nuestro LAB, la idea es irlo compartiendo con vosotros a medida que vayamos avanzando.

Al terminar sabremos de:
–        Control dispositivo por pulsos con modulación
–        Motores paso a paso
–        Controladores de motores
–        Integración de sensores por ultrasonidos
–        Utilizar servicios de Azure para controlar nuestros vehículos.

Este es nuestro vehículo:

Este nuestro módulo de potencia para controlar el desplazamiento.

Estamos utilizando una sencilla plataforma donde mecanizamos dos motores, el objetivo de la experiencia es afianzar nuestros conocimientos en el control de motores, efectuaremos dos puestas en escena, la primera con servos y la segunda con motores convencionales.

En la segunda etapa, dotaremos a nuestro vehículo de un sensor de ultrasonidos para detectar obstáculos.

Finalmente armaremos un pequeño protocolo de comunicaciones para poderlo gobernar de forma remota nuestro particular cacharro viendo que posibilidades tenemos para monitorizarlo desde Azure.

Controlando motores con : Pulsos Con Modulación (pwm)

El espacio ‘Windows.Devices.Pwm’ contiene todos los objetos necesarios para administrar una señal modulada por pulsos, sin embargo necesitaremos disponer de un ‘provider’ para unir nuestra lógica con el manejo y mapeo del controlador, nos será necesario utilizar la referencia al proyecto : pwmSoftware, que encontraremos guithub.

Nuestro ejercicio inicial será bastante simple y lo encapsularemos en una aplicación universal probándola contra unos pequeños servo motores

Como he dicho vamos a compartir el código que estamos trabajando en grupo, pero que presumiblemente no tendremos disponible hasta después de nuestro segundo lab del 18/03.

Disponemos de cuatro apartados:

1)     Variables
2)     Funciones Inicialización
3)     Inicialización área de entrada / salidas
4)     Funciones de control de los motores

AYNIT_HAK01_F01

Variables
AYNIT_HAK01_F06

Funciones Inicialización

AYNIT_HAK01_F03

AYNIT_HAK01_F04

Inicialización área de entrada / salidas

AYNIT_HAK01_F05

Funciones de control de los motores

AYNIT_HAK01_F02

#All You Need Is Ten : jump start #04 – First task’s, set our own name & password

Cambiar el nombre de equipo y ajustar la nueva clave de acceso

Esta tarea es fácil y obvia 🙂

Por defecto después de configurar nuestro sistema, a diferencia de sus hermanos mayores, IoT Core fija el nombre de equipo a ‘minwinpc’ y el usuario ‘Administrator’ y la Password ‘p@ssw0rd’ como credenciales por defecto al acceder al sistema. En la mayoría de casos no importara y podremos dejar nuestra raspberry abierta para poder trastear todos con ella, sobre todo cuando realizamos laboratorios con varias raspberry’s, pues nos ahorrara un montón de tiempo intentando averiguar que password tiene cada una de ellas.

Sin embargo, cambiar la clave de acceso por defecto es un requerimiento de seguridad cuando queramos proteger nuestra raspberry contra quien quiera hacerse con ella, aunque sea en broma.

Un detalle importante es cambiar el nombre por defecto de la raspberry “minwinpc’ pues será la única vía para conectar con desde los exploradores y nos evitará tener que recordar IP’s.

Disponemos de diversos modos para realizar esta tarea, dos de ellos muy fáciles a través de una UI muy amigable, y un tercero desde línea de comandos con ‘powershell’

1) Windows 10 IoT Core Dashboard
2) Windows Device Porta
3) PowerShell

1 – IoT Core Dashboard

Desde el menú de inicio arranca el IoT Core Dashboard

>Mis Dispositivos>Configurar>

AYNIT_P04_F01

>Cambiar nombre del dispositivo>AYNIT_P04_F02

>Cambiar contraseña del dispositivo>

AYNIT_P04_F03

2 – Windows Device Portal

Abrir el explorador>url=http://minwinpc:8080>
AYNIT_P04_F04>Modificar/Aplicar cambio de nombre y Contraseña>

AYNIT_P04_F05

Después de los cambios el dispositivo necesitara ser reiniciado.

3 – PowerShell

Para cambio de nombre de equipo y password, así como para realizar el resto de operaciones de sistema que nos tenemos disponibles a través del ‘Device Portal’ lo realizaremos desde el ‘prompt’ de powershell. En posteriores entradas os enseñare como conectaros remotamente a vuestra raspberry con poweshell.

De momento lo interesante es conocer los mandatos utilizados para realizar esta tarea:

  • Cambiar la password:
    >net user [NombreUsuario] [NuevaPassword]
  • Obtener o Cambiar el nombre del Equipo :
    >SetComputerName [NuevoNombre].

… Ya puedes pasar a la siguiente tarea… la #5!!

 

#All You Need Is Ten : jump start #03 – Connect & Control your Device

IoT core no dispone de terminal remoto ni del explorador de Windows, la herramienta para controlar, configurar, diagnosticar, desplegar y/o realizar todas las tareas básicas necesarias en cualquier sistema las encontraremos en el Windows Device Portal. Efectivamente se trata de un portal al que nos conectaremos desde nuestro explorador.

Después de la configuración inicial dejamos nuestro Rasp, conectado al router por lo que la resolución de nombres nos debería llevar hasta el.

– Abrir un explorador
>Introducir>http://minwinpc:8080AYNIT_P03_F01
IoT Core nos pedirá nuestra autentificación, en nuestra primera conexión introduciremos las credenciales por defecto
Usuario : Administrator, p@ssw0rd
AYNIT_P03_F02
>Enter>
AYNIT_P03_F03
– Sin hacer caso omiso (recordaremos que debemos cambiarla)
>Aceptar>

Windows Device Portal

AYNIT_P03_F04
En el menú de la izquierda dispones de todos los apartados del sistema.
La barra superior contiene un acceso rápido para:
– Detener el sistema
– Reiniciar
– Obtener ayuda
En realidad la interfaz es lo suficientemente amigable para que en poco tiempo te hagas con el control de tu Core :-), os aconsejo os toméis tranquilamente unos minutos extras para curiosear y poder familiarizaros.

#All You Need Is Ten : jump start #02 – Install IoT Core on device

Configurar un nuevo Dispositivo

Deberemos completar los siguientes pasos:

1) Iniciar Windows 10 IoT Core Dashboard
2) Flash la microSD Card
3) Preparar el primer Boot de la Raspberry
4) Configurar Idioma / WiFi

1 – Iniciar Windows IoT Core Dashboard

AYNIT_P02_F01

– Insertar la microSd Car
>Seleccionar>

AYNIT_P02_F02>Descargar e Instalar>

AYNIT_P02_F03

2 – Flash la microSD Card

– Finalizada la descarga, confirmar que vamos a grabar

AYNIT_P02_F04>Continuar>Solicitud permiso administrador>Si>

AYNIT_P02_F05

AYNIT_P02_F06

3 – Primer boot de la Raspberry

– Insertar la microSD en nuestra Raspberry
– Conectar el cable HDMI (Pantalla/Rasp)
– Conectar cable Ethernet al Router o Enchufar Dongle Wifi
– Conectar un teclado/ratón USB
– Conectar la alimentación al conector MicroUSB

4 – Configurar idioma / WiFi

Al recibir alimentación en el monitor aparecerán los típicos mensajes conforme el sistema se está inicializando por primera vez.

Si hemos conectado la rasp por ethernet el DHCP del router deberá habernos asignado una IP que visualizaremos debajo de la imagen de la tarjeta.

– Al finalizar nos mostrara una pantalla de selección de idioma

AYNIT_P02_F07

– Si dispones de un ‘dongle’ wifi haz Click en Configuracion >Seleccionar wifi de la Lista>Entrar codigo>

En la parte inferior podremos visualizar los dispositivos conectados a nuestros USB’s así como las IP asignadas a cada adaptador.

… Ya puedes pasar a la siguiente tarea!!

 

(*) Algunas tarjetas pueden no ser compatibles con IoT Core, revisa la Lista de compatibles.

#All You Need Is Ten : jump start #01 – get your system ready

Windows 10 IoT Core Lab’s.

Visual Studio es la única plataforma de desarrollo que permitirá a tus aplicaciones rodar en casi cualquier sistema y dispositivo.

A pesar de nuestra amistad con las retrospectivas cuando iniciamos una tanda de Lab’s siempre nos ocurre lo mismo 🙂 los iniciamos a tiempo y en escasas ocasiones terminamos completándolos por falta de ese tiempo 🙁 ya que nos pasamos la mayor parte del dichoso tiempo preparando el entorno. Esta primera entrada es la guía de preparación para tenerlo todo listo antes de empezar y poner a trabajar nuestros hack’s desde el minuto cero!

Necesitaremos:

  1. Windows 10 v10586
  2. Activar el modo programador de Windows 10
  3. Disponer de Visual Studio 2015 Update 1
  4. Instalar el IoT Core DashBoard
  5. Instalar las Plantillas de IoT Core
  6. Verificar que todo está apunto

1 – Tener instalado Windows 10 (Windows 10 compilación 10586 and up)

Verifícalo invocando:

>prompt
>winver
AYNIT_P01_F01

2 – Activar el modo programador en Windows 10 Comprobar que tu sistema está en modo desarrollador. Haz clic en el icono de notificaciones (barra tareas, inferior Derecho “lateral fecha/hora”)

>Todas las configuraciones
>Actualización y Seguridad
>Para Programadores
AYNIT_P01_F02

>Seleccionar Modo Programador

3 – Instalar Visual Studio 2015 Update 1. Con las universal tools y Windows SDK para 10586. Verifica si lo tienes disponible:
>Ayuda
>Acerca de Microsoft Visual Studio.
AYNIT_P01_F03

>Panel de Control
>Programas y Características
AYNIT_P01_F04

En otro caso si no dispones de alguno de ellos puedes instalarlo descargándote el SDK desde:  SDK Windows 10 o bien seleccionándolo desde el instalador:
AYNIT_P01_F05

4 – Instalar el IoT Core DashBoard. Nos permitirá obtener las imágenes correspondientes a las diferentes electrónicas y preparar la SD de sistema para la Raspberry/Minnowboard/DragonBoard, etc.)

Para iniciar la instalación haz clic en: IoT Core Dashboard

5 – Instalar el IoT Core Project Templates. Nos permitirá disponer de las plantillas que utilizaremos en las aplicaciones ‘background’ para la Raspberry, Minnowboard..etc.

Para iniciar la instalación haz clic en: IoT Core Templates

6 – Verificar que todo está apunto.

Finalmente comprobaremos que todo es correcto y que dispones de todo lo necesario deberás iniciar Visual Studio 2015, y crear tu primer proyecto universal :
>Archivo
>Nuevo
>Proyecto
>Plantillas
>Visual C# o VB
>Universal
> Aplicación Vacía (Windows Universal)

Una vez – Creado -> desde el explorador de soluciones

>Propiedades
>Aplicación

AYNIT_P01_F06

Ya estas a punto para empezar? Ahora ya no tienes excusas!