/**
 * Linkit 7688 範例
 * 使用 GPIO 控制 8x8 LED Matrix (共陽)
 * 
 * @author Abola Lee 
 * @version 1.0
 * @since 2016-01-10
 * 
 * @link http://www.gibar.co/2016/01/linkit-7688-duo-74hc595-led.html
 */
var mraa = require('mraa');

// 腳位命名參考
//       _______
//  Q1[1|   U   |16]Vcc
//  Q2[2|       |15]Q0
//  Q3[3|       |14]DS
//  Q4[4|  595  |13]OE
//  Q5[5|       |12]STCP
//  Q6[6|       |11]SHCP
//  Q7[7|       |10]MR
// GND[8|_______| 9]Q7s
//     

// 設定GPIO 接腳
var col1 = new mraa.Gpio(2),
    col2 = new mraa.Gpio(16),
    col3 = new mraa.Gpio(17),
    col4 = new mraa.Gpio(44),
    col5 = new mraa.Gpio(5),
    col6 = new mraa.Gpio(46),
    col7 = new mraa.Gpio(0),
    col8 = new mraa.Gpio(1),
    row1 = new mraa.Gpio(37),
    row2 = new mraa.Gpio(3),
    row3 = new mraa.Gpio(13),
    row4 = new mraa.Gpio(45),
    row5 = new mraa.Gpio(14),
    row6 = new mraa.Gpio(12),
    row7 = new mraa.Gpio(15),
    row8 = new mraa.Gpio(4);
    
// 預設全亮測試
col1.dir(mraa.DIR_OUT_HIGH);
col2.dir(mraa.DIR_OUT_HIGH);
col3.dir(mraa.DIR_OUT_HIGH);
col4.dir(mraa.DIR_OUT_HIGH);
col5.dir(mraa.DIR_OUT_HIGH);
col6.dir(mraa.DIR_OUT_HIGH);
col7.dir(mraa.DIR_OUT_HIGH);
col8.dir(mraa.DIR_OUT_HIGH);

row1.dir(mraa.DIR_OUT_LOW);
row2.dir(mraa.DIR_OUT_LOW);
row3.dir(mraa.DIR_OUT_LOW);
row4.dir(mraa.DIR_OUT_LOW);
row5.dir(mraa.DIR_OUT_LOW);
row6.dir(mraa.DIR_OUT_LOW);
row7.dir(mraa.DIR_OUT_LOW);
row8.dir(mraa.DIR_OUT_LOW);
    

@@ -465,19 +465,26 @@
 %0Avar col
-1
  =
+ %5B%0A     
  new mra
@@ -502,14 +502,11 @@
     
-col2 =
+  ,
  new
@@ -523,20 +523,16 @@
 (16)
-,
 %0A    
-col3 =
+  ,
  new
@@ -549,20 +549,16 @@
 (17)
-,
 %0A    
-col4 =
+  ,
  new
@@ -575,20 +575,16 @@
 (44)
-,
 %0A    
-col5 =
+  ,
  new
@@ -600,20 +600,16 @@
 o(5)
-,
 %0A    
-col6 =
+  ,
  new
@@ -626,20 +626,16 @@
 (46)
-,
 %0A    
-col7 =
+  ,
  new
@@ -651,20 +651,16 @@
 o(0)
-,
 %0A    
-col8 =
+  ,
  new
@@ -672,16 +672,23 @@
 .Gpio(1)
+ %0A    %5D
 ,%0A    ro
@@ -692,11 +692,18 @@
  row
-1
  =
+ %5B%0A     
  new
@@ -726,14 +726,11 @@
     
-row2 =
+  ,
  new
@@ -752,14 +752,11 @@
     
-row3 =
+  ,
  new
@@ -779,14 +779,11 @@
     
-row4 =
+  ,
  new
@@ -806,14 +806,11 @@
     
-row5 =
+  ,
  new
@@ -833,14 +833,11 @@
     
-row6 =
+  ,
  new
@@ -860,14 +860,11 @@
     
-row7 =
+  ,
  new
@@ -887,14 +887,11 @@
     
-row8 =
+  ,
  new
@@ -903,16 +903,28 @@
 .Gpio(4)
+      %0A    %5D
 ;%0A    %0A/
@@ -936,466 +936,219 @@
 %E4%BA%AE%E6%B8%AC%E8%A9%A6%0A
-col1.dir(mraa.DIR_OUT_HIGH);%0Acol2.dir(mraa.DIR_OUT_HIGH);%0Acol3.dir(mraa.DIR_OUT_HIGH);%0Acol4.dir(mraa.DIR_OUT_HIGH);%0Acol5.dir(mraa.DIR_OUT_HIGH);%0Acol6.dir(mraa.DIR_OUT_HIGH);%0Acol7.dir(mraa.DIR_OUT_HIGH);%0Acol8.dir(mraa.DIR_OUT_HIGH);%0A%0Arow1.dir(mraa.DIR_OUT_LOW);%0Arow2.dir(mraa.DIR_OUT_LOW);%0Arow3.dir(mraa.DIR_OUT_LOW);%0Arow4.dir(mraa.DIR_OUT_LOW);%0Arow5.dir(mraa.DIR_OUT_LOW);%0Arow6.dir(mraa.DIR_OUT_LOW);%0Arow7.dir(mraa.DIR_OUT_LOW);%0Arow8.dir(mraa.DIR_OUT_LOW);%0A    
+for(var idx=0; idx%3C8; idx++) col%5Bidx%5D.dir(mraa.DIR_OUT_HIGH);%0Afor(var idx=0; idx%3C8; idx++) row%5Bidx%5D.dir(mraa.DIR_OUT_LOW);%0A%0Avar offIndex=0;%0AsetInterval(function()%7B%0A  if( offIndex%3C8 ) row%5BoffIndex%5D.write(1);%0A%7D,250);
 %0A

Update 8x8_led_matrix.js