10 abril 2018

La primera FPGA con soporte Open-Source - Parte 3


Sin embargo, aún no hemos revisado a detalle: ¿Qué hace o cómo funciona el código de ejemplo? ¡Y justo eso es lo que haremos en esta entrada!

Si han estado atentos, en el paso anterior ejecutamos las tres etapas de preparación que incluyen la síntesis, el ruteo y la generación del bitstream de forma automática.

En esta entrada vamos a seguir el diagrama completo del flujo de desarrollo con FPGA que mostrabamos en la primera entrada para entender mejor el funcionamiento de estas herramientas de desarrollo electrónico.

¡Comencemos!

09 abril 2018

La primera FPGA con soporte Open-Source - Parte 2

En nuestra entrada anterior hablamos sobre como el proyecto IceStorm ahora permite desarrollar soluciones con las FPGA ICE40 con herramientas 100% Open-Source.

En esta entrada vamos a preparar nuestro entorno de desarrollo para sintetizar nuestro primer circuito en la FPGA ICE40.

Preparando el Entorno de Desarrollo

Para esta entrada requerimos que utilices una distribución de Linux, es importante que te asegures que tu distribución tenga instaladas las herramientas de desarrollo. La forma en que se instalan las herramientas de desarrollo varía de distribución en distribución, si obtienes errores al momento de instalar puede deberse a que alguna biblioteca de desarrollo no está instalada en tu sistema. Las herramientas que vamos a mostrar ahora aún son relativamente "recientes" por lo que es probable que no exista un paquete pre-compilado para tu distribucipon, por lo que la solución es compilarlos desde cero.

Asegurate que tu distribución incluya al menos los siguientes paquetes de desarrollo:
  • GNU GCC
  • GNU Make
  • Python3
Las herramientas deben instalarse en el orden especificado, el no hacerlo podría provocar errores en el proceso de compilación.

Nota: Es posible que tu distribución ya incluya los paquetes que vamos a utilizar. Si no deseas compilar todo desde cero, intenta buscar los siguientes paquetes utilizando la herramienta de gestión de paquetes incluída en tu distribución:
  • icestorm
  • yosys
  • arachne-pnr
  • icarus-verilog (o iverilog)
  • gtkwave
Si decides seguir este camino, puedes ir directamente a la tercera entrada de esta serie de blog.

08 abril 2018

La primera FPGA con soporte Open-Source - Parte 1

Antes de comenzar hablemos un poco de ¿Qué son las FPGA?

Las FPGA son las siglas en inglés de "Field Programmable Gate Array" o mejor en español: "Arreglo de compuertas programables en terreno". Aunque esto pueda sonar un poco de otro mundo, estos chips son literalmente eso: Un conjunto de bloques que realizan funciones lógicas que se pueden reprogramar (O mejor dicho reconfigurar) en el lugar donde se encuentre el chip.

Por ejemplo en la foto que pueden ver al inicio de la entrada de este blog pueden ver una FPGA controlando una matriz de LEDs. De seguro has visto muchas FGPAs controlando pantallas LED gigantescas ya que es uno de los casos de uso más comunes.

05 abril 2018

Guía de Conexión Transmisores IEEE 802.15.4 y LoRa

Al inicio de esta semana compartimos los resultados de prueba de conectividad de los radios amplificados IEEE802.15.4 y los radios LoRa que adquirimos hace algunos días.

Sin embargo, quedamos pendientes de explicar un poco más a detalle como realizar las conexiones y configuraciones de los equipos utilizados en las pruebas.

Así que esta entrada está dedicada a explicar cómo utilizar, programar y poner en funcionamiento los dos "rigs" de pruebas que utilizamos para las pruebas.



02 abril 2018

Transmitiendo datos con IEEE 802.15.4 y LoRa

¡Hola a todos! Los que están pendientes de nuestro Instagram y Facebook se habrán dado cuenta que casi desde hace como año y medio estamos metidos de cabeza en el desarrollo de soluciones IoT utilizando el estándar para telecomunicaciones inalámbricas IEEE 802.15.4 (Que no es lo mismo que WiFi/IEEE802.11).

¿Por qué no usar WiFi?

La razón es simple: El estándar IEEE 802.15.4 permite comunicar dispositivos utilizando muy poca energía a cambio de ofrecer menos ancho de banda comparado con redes de alta velocidad como WiFi o la red de datos móviles.

En un mundo donde cada día buscamos conexiones más rápidas esto podría parecer un retroceso, sin embargo, en el mundo del Internet de las Cosas se requiere que los dispositivos consuman muy poca energía o que incluso puedan ser capaces de funcionar durante meses con pequeñas baterías. Esto último es imposible de lograr con estándares como WiFi o redes de datos móviles así que 802.15.4 trata de llenar ese vacío.

El problema es que este estándar tiene una pequeña limitante y es que el rango normalmente es bastante "corto" (Unos 100m en condiciones ideales). ¿Pero que pasa  si quieres superar la bandera de los cientos de metros o incluso quieres controlar y transmitir a dispositivos que se encuentran a kilómetros de distancia?

31 marzo 2018

Hablando de Blockchain... y Errores Humanos

Ok, lo siento, tenía que escribir un poco sobre esto. Algunos habrán visto nuestro video en YouTube donde explicabamos algunos de los fundamentos técnicos que permiten a la criptomoneda y al blockchain funcionar.

En los últimos meses casi que todo el mundo habla de cripto-moneda pero lástimosamente muy poca gente conoce los principios que le permiten funcionar y las limitantes en el mundo real que puede tener esta tecnología (Refiriéndome a comó funcionan las personas, las economías y las sociedades).

Creo que el comediante John Olivier  en un reciente video no pudo haberlo explicado mejor: La discusión de criptomoneda actual es la combinación de "todo lo que la gente no entiende sobre dinero combinado con todo lo que la gente no entiende sobre computadoras" (en inglés).

04 febrero 2018

Programando la STM32 LoRa Discovery Board con OpenOCD

¡Hola a todos!

Comenzamos el 2018 comprando algunas tarjetas electrónicas nuevas para poder experimentar y hacer proyectos en el Hackerspace San Salvador. Durante el 2017 nos enfocamos mucho en proyectos que utilizan el estándar IEEE 802.15.4 para conectividad inalámbrica al Internet de las Cosas.

Explorando otros protocolos decidimos que sería interesante trabajar un poco más con LoRa y LoRaWAN así que adquirimos la tarjeta B-L072Z-LRWAN1 para poder tener una plataforma de desarrollo que combinara un microcontrolador + un radio LoRa para comenzar a "jugar".

Lástimosamente aunque la tableta resultó muy prometedora nos desencantó un poco el entorno de desarrollo. En esta entrada de blog voy a explicar las cosas buenas y malas de esta tableta de desarrollo y voy a explicar rápidamente como lograrla hacer funcionar con la herramienta de depuración OpenOCD que les permitirá programarla como consideren más conveniente.

¡Comencemos!