I've been playing for a while with the max7221/7219 and finally I came out with a decent software, basically I've built a processing control panel for cubes with 5 8x8 matrix panel (one for each side, except for the top). I'm using the serial communication to send bytes to arduino, due to the 8bit serial restriction I split each byte in two nibbles to use other characters to handle the communication. Arduino use just a serial parser to parse incoming data and rebuild the original byte to send to the max7221. It seems working pretty good except for when numbers get bigger. The weird thing is that i always send the same number of data, I mean doesn;t matter if the value is 0 or 255, i always send that value. I've been try to figure it our for a week but I still don't get it. I've already checked that all values are changes between 0 and 255, then i suppose nothing wrong is sent to the max7219.
Processing Control Panel: ArduinoDevice http://pastie.org/500844