Tetris multijugador para Raspberry Pi escrito en ensamblador

Hace unos días publicamos un video de un proyecto tributo a Starfox corriendo sin sistema operativo en una Raspberry Pi, desarrollado directamente en ensamblador para ARM. Ahora, de alumnos de la la misma institución (Imperial College London), tenemos Tetris Duel, un juego multijugador para Raspberry Pi, también desarrollado en ensamblador para ARM.

Este proyecto creado en tres semanas por Han Qiao, Piotr Chabierski, Michał Sienkiewicz y Utsav Tiwary, como una extensión a su proyecto de computación de primer año, cuenta con las siguientes características:

  • 4000 líneas de código fuente en ensamblador para ARM.
  • Controlador optimizado para controles de NES vía GPIO.
  • Red asíncrona para dos Raspbery Pis conectadas vía GPIO.
  • Renderizado con doble búfer para la salida HDMI.
  • Ensamblador personalizado para ARMv6 escrito en lenguaje C (liberado sólo el binario).

El código fuente y más información los pueden encontrar en Github: https://github.com/Tetris-Duel-Team/Tetris-Duel.
Continúa leyendo Tetris multijugador para Raspberry Pi escrito en ensamblador

Tributo a Starfox desarrollado en ensamblador, corriendo en una Raspberry Pi

Como parte de su proyecto de computación de primer año en la Escuela Imperial de Londres (Imperial College London), Nandor Licker, Ilija Radosavovic, David Avedissian y Nic Prettejohn desarrollaron un impresionante tributo a Starfox, entre varios de los aspectos interesantes de su proyecto, es que no corre en un sistema operativo, sino que está desarrollado directamente en ensamblador para ARM (“bare metal assembly”).

Pueden obtener el código en Github: https://github.com/ICTeam28/PiFox.

Inclusive, también escribieron un emulador en C para ejecutar el juego (sin sonido): https://github.com/ICTeam28/PiEmu.


Continúa leyendo Tributo a Starfox desarrollado en ensamblador, corriendo en una Raspberry Pi

Cómo se fabrica la Raspberry Pi en Reino Unido


El día de ayer, Electronics Weekly publicó el video arriba mostrado, donde se puede apreciar desde inicio a fin el proceso de fabricación de la Raspberry Pi en la fábrica de Sony ubicada en Gales del Sur: ensamblado, inspección y pruebas. Muy interesante, no se lo pierdan.
Continúa leyendo Cómo se fabrica la Raspberry Pi en Reino Unido

Se anuncia la versión 2.0 de Raspberry Pi

Actualización de Eben Upton en RaspberryPi.org:

Mucha gente está preguntando cuándo estarán disponibles las tarjetas revisión 2.0. Estarán apareciendo a partir del próximo mes conforme se terminen los stocks disponibles de la revisión 1.0 de cada distribuidor en cada ubicación geográfica. Estoy enterado de al menos una persona que ya recibió una tarjeta revisión 2.0 (de Farnel, en Gran Bretaña).

No creemos que los cambios sean lo suficientemente importantes como para que valga la pena esperarse a la revisión 2.0, a menos que se tenga un requerimiento en específico para agregar un códec de audio o que se necesiten los agujeros de montaje para alguna aplicación industrial.


El día de hoy, Eben Upton de la fundación Raspberry, ha anunciado la disponibilidad de la versión 2.0 de la PCB de la Raspberry Pi, la cual incorpora algunas de las sugerencias más populares realizadas por los usuarios. Para determinar qué versión se tiene se puede teclear cat /proc/cpuinfo en la línea de comandos y buscar el código de revisión de hardware en la siguiente tabla:

MODELO Y REVISIÓN CÓDIGO(S)
Modelo B REvisión 1.0 2
Modelo B REvisión 1.0 + ECN0001 (sin fusibles, D14 removido) 3
Modelo B REvisión 2.0 4, 5, 6


Se ha realizado un pequeño cambio al conector GPIO de la revisión 2.0 para agregar soporte para ARM JTAG y para poner disponible un periférico I2C diferente al que se utiliza por la interfaz de la cámara.

Reset

Se implementó un circuito de reset, aunque el conector no está colocado. Los usuarios que deseen hacer uso de este circuito deben agregar el conector adecuado a P6. Cortocircuitar el pin 1 de P6 al pin 2 de P6 hará que se reinicie el BCM2835.

USB Output Power

Se han removido los fusibles que protegían las salidas USB.

Soporte de depuración JTAG

Dos pines GPIO han sido intercambiados para agregar una señal de depuración que no estaba presente (ARM_TMS) al pin 13 de P1.

Soporte I2C en P1/P6

Los canales I2C primario y secundario han sido intercambiados.

Pines de identificación de versión

Las cuatro señales GPIO originalmente utilizadas para identificar versiones han sido removidos. No eran leídos por el software del sistema y resultaban redundantes.

E/S adicionales

Para hacer uso de las señales GPIO liberadas al eliminar los pones de identificación de versión, se agregó lugar para un nuevo conector P5. Este conector contiene las cuatro señales GPIO junto a +5V0, +3v3 y dos 0V. Actualmente este conector no se encuentra colocado.

Fuga de +5V0 del HDMI

Algunos usuarios han encontrado que al conectar una Raspberry Pi sin alimentación a una televisión HDMI interfiere con la operación del canal CEC (Consumer Electronics Control) de otros dispositivos conectados. Esto se solucionó en algunas de las últimas revisiones de las PCBs 1.0 removiendo el diodo de protección ESD D14; la revisión 2.0 corrige este problema conectando el lado superior del diodo a +5V0_HDMI.

SMSC +1V8

La alimentación SMSC 1V8 se ha desconectado de la alimentación del sistema.

¡Agujeros de montaje!

Se agregaron dos agujeros de 2.5mm para ayudar con las pruebas con equipo automatizado (ATE, Automatic Test Equipment). Advertencia: si se desea montar de forma permanente la PCB – no apretar demasiado los tornillos ya que podría ocasionar daños a la PCB.

Leyendas de LEDs

Se realizaron dos pequeños cambios a la serigrafía de componentes:

D9 (LED amarillo) se cambió del incorrecto 10M a 100
D5 (LED verde) se cambió de OK a ACT (actividad)

Vía: @Raspberry_Pi