googlecreativelab / anypixel

A web-friendly way for anyone to build unusual displays
Apache License 2.0
6.44k stars 517 forks source link

Could I use Espruino to build a prototype? #12

Closed FernandoNaz closed 8 years ago

FernandoNaz commented 8 years ago

Hello! Firstly, I must say, you folks are amazing! This is an incredible technology you developed, and the best part, is that is an open library! Really, you guys are amazing. My friends and I are little hackers when come to new technology of this type and we wanted to build an inexpensive prototype for fun. We were thinking in buying an Espruino Board with and RGB-123 LED Matrix to prototype. You probably know what an Espruino Board is, but just in case, I will put the site (http://www.espruino.com/EspruinoBoard) and the specifications here:

Thank you for all your time and knowledge, You are truly incredible, Fernando Nazário and Friends

P.S: sorry if I made any english mistakes. I am from Brazil and probably there will be few (euphemism) errors here.

ryburke commented 8 years ago

Hi @FernandoNaz - thank you for the kind words! We love that you're excited about AnyPixel.js.

To answer your question... You'll have to add an Ethernet (or WiFi) interface to accept packets from the Chrome app. Once you can read and write packets on your micro controller it is just a matter of controlling your LEDs (or other display mechanism) and reading your buttons. The packet structure you need to work with is outlined in the protocol document of the firmware folder.

We used a similar set of micro controllers. The Espruino has an STM32F103 and we used an STM32F030 on the display board (5 of them actually!) to handle the LED control and button monitoring. You'll need to write your own code to handle the display and buttons since the hardware is different.

Our controller board is based on the STM32F407 as it handles the network layers and TCP/IP packets from the app. For the data link layer we used a KSZ8863MLL which is an ethernet transceiver from Microchip with an integrated PHY (some hardware options for the Espruino are listed here: http://www.espruino.com/Internet, and some of these handle the network layer for you too!). Again you'll need to write the code to interface these parts since the hardware is all different.

In addition to all of this you'll need a machine running the server and Chrome app too, you can't do this on an Espruino.

There's definitely some work involved in doing all of that, but it sounds like a fun project and the Espruino looks like a prototype platform that you could use to do it. Let us know how it goes!