Difference between revisions of "Adafruit: Bicolor LED Square Pixel Matrix"

From eLinux.org
Jump to: navigation, search
(Current Status)
m
 
(12 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
<pre style="color:red">
 
<pre style="color:red">
 
Overview: 2
 
Overview: 2
Wiring:  0
+
Wiring:  1
Code:    1
+
Code:    1, should have called ioctl directly
git/Compiles with make: 0
+
git/Compiles with make: 2
Demo:    0
+
Demo:    2
Total:    3
+
Total:    8-1(late) = 7
Comments: I have a level converter you can try, or
+
Comments: It works, but it isn't pretty.
let's switch you to another device so you can have some success.
 
 
 
What do you prefer?
 
 
</pre>
 
</pre>
  
 
{{YoderHead}}
 
{{YoderHead}}
 
Page by Alex Drane, Peter Ngo
 
Page by Alex Drane, Peter Ngo
=Summary=
+
== Summary ==
This page details project work done while working on the 8x8 Bicolor LED Pixel Matrix from Adafruit found here: [https://www.adafruit.com/products/902 Store Link]  
+
This page details project work done while working on the 8x8 Bicolor LED Pixel Matrix from Adafruit found here: [https://www.adafruit.com/products/902 Store Link]
__TOC__
 
  
=Current Status=
+
This device responds to standard I2C write and Read commands on the 3rd I2C Device at 0x70 device address.
The current LED Matrix is fully functional except for a minor issue with alignment of the rows. It is shifted up by one LED and puts the top row at the bottom. The former issues encountered with the device was due to a miss-wiring of the matrix to the I2C Part.
 
  
=Means of Making "Something" Visible=
 
While we cannot currently turn on an individual pixel we were able to establish that the device was responding to I2C input. Directions:
 
<pre>
 
i2cset -y 3 0x70 0x21
 
i2cset -y 3 0x70 0x81
 
i2cset -y 3 0x70 0xA1
 
</pre>
 
The bottom row should be visible, barely. What you have done is turn on the devices oscillator, turn on the LED screen, and set it to INT active low control. No other combination currently makes the device do anything. Brightness control does not effect the row. We did show that we were turning the oscillator on and off by using:
 
<pre>
 
i2cset 3 0x70 0x20
 
</pre>
 
To turn off the row. Currently I have no explanation for why it does not work.
 
  
I am able to program the 0x00-0x0f memory address range with values that I can read back and that should control the LED matrix when the  
+
IMPORTANT!!! When soldering the led matrix to the controller make sure that it is placed correctly. If it is not, then the device will still communicate but the LED Matrix will not turn on.
<pre>
+
 
i2cset -y 3 0x70 0xA0
+
== Wiring Information ==
</pre>
+
The device relies on the 5V source on the board and to insure functionality an I2C voltage
Command is used. This does nothing. Brightness was checked at 0xEF and 0xE0 to make sure that brightness was not being misunderstood. This has no effect.
+
level converter is used to boost the 3.3V I2C voltage to 5V. The voltage
 +
level converter is hooked up according to the photo. Starting from the top left of the device: SCL 5V, 5V Rail, Reset(Pulled up to 3.3V), SCL 3.3V In. Bottom Left: SDA 5V, Ground, 3.3V, SDA 3.3V.
 +
 
 +
The LED Matrix is wired from left to right: 5V, Ground, SDA, SCL.
 +
 
 +
The tenth pin from the Right on row 1 of the P9 IO Rail on the Beagle (Count from the 5V Line in) is the SCL pin and the pin on row 2 is the SDA pin. Starting from the right on P9 top row is: Ground, 3.3V, Skip, 5V.  
 +
 
 +
<span style="color:red">The wiring instructions are hard to follow. Which header on the bone are you using?  P9?</span>
 +
 
 +
[[File:MiniProject2WiringDiagram.png|200px|thumb|left|Wiring Diagram]]
  
Setting the display to blinking (0x83, 0x85) also did nothing.
+
== Code ==
 +
The code is hosted on github here: [https://github.com/draneaw/MiniProject2 8x8 Led Grid Basic Code]
  
Code provided by Adafruit was for the Adrino board and using it as a guide I established that it should be possible to control the screen manually. I acquired the data sheet for the HT16k33 and that was how I was able to experiment as I did above.
+
<span style="color:red">You should have called iotcl directly rather than using i2cset</span>
  
{{YoderFoot}}
+
This is a very simple code implementation that is only to verify that the matrix works. For a further implementation of the 8x8 Matrix see the Mini Project 4 project here: [https://github.com/draneaw/MiniProject4.git Node.js Advanced Implementation]

Latest revision as of 12:09, 14 November 2012


Overview: 2
Wiring:   1
Code:     1, should have called ioctl directly
git/Compiles with make: 2
Demo:     2
Total:    8-1(late) = 7
Comments: It works, but it isn't pretty.

thumb‎ Embedded Linux Class by Mark A. Yoder


Page by Alex Drane, Peter Ngo

Summary

This page details project work done while working on the 8x8 Bicolor LED Pixel Matrix from Adafruit found here: Store Link

This device responds to standard I2C write and Read commands on the 3rd I2C Device at 0x70 device address.


IMPORTANT!!! When soldering the led matrix to the controller make sure that it is placed correctly. If it is not, then the device will still communicate but the LED Matrix will not turn on.

Wiring Information

The device relies on the 5V source on the board and to insure functionality an I2C voltage level converter is used to boost the 3.3V I2C voltage to 5V. The voltage level converter is hooked up according to the photo. Starting from the top left of the device: SCL 5V, 5V Rail, Reset(Pulled up to 3.3V), SCL 3.3V In. Bottom Left: SDA 5V, Ground, 3.3V, SDA 3.3V.

The LED Matrix is wired from left to right: 5V, Ground, SDA, SCL.

The tenth pin from the Right on row 1 of the P9 IO Rail on the Beagle (Count from the 5V Line in) is the SCL pin and the pin on row 2 is the SDA pin. Starting from the right on P9 top row is: Ground, 3.3V, Skip, 5V.

The wiring instructions are hard to follow. Which header on the bone are you using? P9?

Wiring Diagram

Code

The code is hosted on github here: 8x8 Led Grid Basic Code

You should have called iotcl directly rather than using i2cset

This is a very simple code implementation that is only to verify that the matrix works. For a further implementation of the 8x8 Matrix see the Mini Project 4 project here: Node.js Advanced Implementation