particle-iot / core

Hardware design files for the Spark Core, a tiny Wi-Fi development kit.
https://www.spark.io/
Creative Commons Attribution Share Alike 4.0 International
367 stars 56 forks source link

Replace one LED with an RGB LED #6

Closed zsup closed 11 years ago

zsup commented 11 years ago

It's getting complicated to try and present the status of the Core's internet connection on two LEDs, so I'm going to attempt to replace one of the LEDs with an RGB LED that can be used for Core status. The second LED should be user-controlled. The constraint here will be making room for the additional traces necessary for the RGB.

zsup commented 11 years ago

I'm thinking this will be a 3528 RGB LED - very common (and therefore inexpensive), but smaller than the more traditional 5050 footprint.

zsup commented 11 years ago

A few things to note here: 1) All 3 pins for this LED should be controlled on the same timer. 2) We should leave one remaining standard 0603 LED, which would be user-controlled. The RGB would signify the Core's connection status, and the stand-alone LED would be great for the user so they can have something to test the API with immediately. However, these LEDs don't necessarily have to be next to one another anymore, since they'll serve very different purposes.

zsup commented 11 years ago

One suggestion here: because the spacing on the resistors for the LEDs is tight, we might want to consider using a resistor array instead of 3 separate resistors. That would allow us to keep the total resistor footprint very small while avoiding manufacturability issues of resistors that like to drift into one another

andyw-lala commented 11 years ago

Note that you may have to doctor the relative duty cycles for each colour since the I and V (fwd) will likely differ between the colours. Since most resistor arrays are single value times

On Wed, Jun 26, 2013 at 11:17 PM, cazzo notifications@github.com wrote:

One suggestion here: because the spacing on the resistors for the LEDs is tight, we might want to consider using a resistor array instead of 3 separate resistors. That would allow us to keep the total resistor footprint very small while avoiding manufacturability issues of resistors that like to drift into one another

— Reply to this email directly or view it on GitHubhttps://github.com/sprk/core/issues/6#issuecomment-20096458 .

Andy

satishgn commented 11 years ago

Apart from different value resistors for each color, don't we need to install additional transistor to make the "Charlieplexing" possible using 1 microcontroller pin. I guess this would need board space and circuit/firmware complexity.

andyw-lala commented 11 years ago

Don't understand. 3 PWM pins from the same timer, 3 LEDs, 3 resistors. Should be simple. On 27 Jun 2013 07:57, "Satish Nair" notifications@github.com wrote:

Apart from different value resistors for each color, don't we need to install additional transistor to make the "Charlieplexing" possible using 1 microcontroller pin. I guess this would increase the board space and circuit/firmware complexity.

— Reply to this email directly or view it on GitHubhttps://github.com/sprk/core/issues/6#issuecomment-20116594 .

satishgn commented 11 years ago

But we don't have 3 extra pins to control the RGB Led.

My current understanding surrounding the issue is: 1)Remove power LED (Seems fine) 2)LED1 stays on pin PA8 (Ok) 3)LED2 goes and its place we connect RGB Led using Charlieplexing technique using PA9

Zach, did I get the above requirement right?

3 different pins controlling RGB is simple. We have just one unused PC13 remaining and which cannot be used because it cannot sink/source > 3mA

Else do we share few pins from the Header I/Os and the RGB.

zsup commented 11 years ago

Final solution here is to move LED1 (which will become the user pin) to PA13 (i.e. D7). This means that the LED will be wired in parallel to that digital pin. This is also what Arduino does on the Arduino Uno (they have an LED wired in parallel to pin 13 for the same purpose).

The RGB should be wired to PA8 through PA10 (all on the same timer), and BTN should be moved from PA10 to PB2 to make room.

After this we are seriously, seriously out of pins.

zsup commented 11 years ago

Here is the part: http://item.taobao.com/item.htm?spm=a230r.1.14.9.mEBM1M&id=16216736476

Looking for a better datasheet.

zsup commented 11 years ago

After a bit of digging, it looks like that footprint is commonly called 4-PLCC. And here's a better view of the footprint: http://img01.taobaocdn.com/imgextra/i1/12762090/T2A.aOXlVbXXXXXXXX_!!12762090.jpg