Coder Social home page Coder Social logo

bportaluri / ala Goto Github PK

View Code? Open in Web Editor NEW
140.0 140.0 36.0 1.43 MB

Arduino Light Animation (ALA) is a library for Arduino boards to simplify the development of light animations using LEDs and LED strips.

License: GNU General Public License v3.0

C++ 83.82% C 16.18%

ala's People

Contributors

bportaluri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ala's Issues

Start sequence over?

Im running the rgbstripsequence but it goes thru the sequence one time and then stops for about 2 minutes, how can I get the sequence to run continuously?

ALA_STOPSEQ

Bruno,

Thank you for implementing ALA_STOPSEQ in the master. It seems to work ok.

However, I have a couple of comments.

runAnimation()
This returns a boolean but you have placed a simple return with no value at the beginning when testing for ALA_STOPSEQ in both AlaLed and AlaLedRgb . Surely there should be an explicit false returned? I understand the default return will probably be a zero value int (=false) but isn't that, possibly, compiler dependent?

ALA_STOPSEQ
I'm guessing that if the caller does not call getAnimation() ALA_STOPSEQ will just time out and the animation sequence will just loop again.

Example
// 24 leds driven by pin 11 <---- this might confuse newbies as you used 10 leds on pin 6 below
rgbStrip.initWS2812(10, 6);

Regards
Brian

Driving over 150 LEDS

Hello, I am new to the Arduino world and am attempting a project for kitchen lighting. I have 261 WS2128b's wired up with a 5v 12amp power supply, injecting power every few feet of strips. Using the basic setup and connecting to Raspberry pi to control over internet. I cannot get the program to run with over 150 pixels, even on a test strip of 50 pixels, no commands will work after changing the pixel number over 150, could it be a memory issue? The board I am using is the Elegoo Uno R3

Smooth On and Off

The FADEIN effect will switch the LED off after fade in and start over.
It would be nice to switch on a LED smoothly and switch off smoothly independend.
The smoothness with the parameter like in FADEIN.

led sequence running with if statement

basically i have a sketch with 5 leds and 9 button pushes. each push has a different effect and was wondering how to use the sequence in the example inside my sketch..
here is a small piece of it. ive used the functions as in the example but they dont seem to light up
if (count == 4) {player.playSpecified(5);
fadeon();
}

if (count == 5) {player.playSpecified(3);
                combo();
}

if (count == 6) {player.playSpecified(6);
               chase();
                                
               breathe2();                 
         
               
}

if (count == 7) { player.playSpecified(8);
                   fadeoff(); 
}

if (count == 8) { player.playSpecified(4);
    powerUp();
}

if (count == 9 ) {


}

SAMD21 Cortex-M0+ Board Support Integration?

Greetings, ๐Ÿž๏ธ

I've run into a problem on a project I was hoping to finish up shortly that involves the use of the ALA Library. As my feature list grew and supporting hardware came together, the libraries required to power the solution no longer fit within the SRAM on the Arduino Nano. I've now upgraded to the MKR Zero instead which boasts a luxurious expansion of SRAM to support all sorts of fun animations and palettes within the ALA Library! Sweet! Right!?

Well, as I try to re-compile my sketches, all of my other libraries port over just fine, but within the ALA Library, I'm seeing the dreaded do-not-pass-go before my eyes. Ugh! ๐Ÿ‘€

compilation error

I want to help! โ›๏ธ

SAMD21 Cortex-M0+ Board Background

Links to the SAMD core (MKR Zero variant) documentation and source can be found here.

The pinout description lives within the "variant.h" file within the source tree.

The more general support info can be found here (store.arduino.cc page)

Initial ALA compilation issue

I've tracked down the initial compilation error to line 114 of the "chip_includes.h" file. The "#if defined" commands are doing their job and trapping me within the [=[-[ #error "Unknown Chip!" ]-]=] state.

I see within this area of the ALA code that there are a few pinout mapping files supporting some of the most prominent chipsets for various Arduino packages. There seem to be minor variations within these files to support the various chip constraints, but I can't specifically attack this without a considerable amount of reverse-engineering and guesswork that I'm hoping someone might be able to help guide me on.

Is there some place within the documentation, or can I help write some?, that might help me understand specifically how to encode a new hypothetical "SAMD_MKR_Zero.h" pinout file to test out whether or not the ALA Library can be easily ported?

Sadly, my initial attempts have thus far been in vain to try and mimic the functional mapping files to the SAMD platform in order to tickle the right configuration parameters and get through compilation.

mapping comparison of existing boards

I presume it is also a safe bet that, once through these initial pin mappings, there may also be some some additional (deeper under the hood) incompatibilities that I'd need to then start tracking down after taking my first best guess at mimicking the other pinout diagrams.

A few questions come to mind when considering trying to contribute here or instead seeking out an alternative library to re-learn and re-integrate ... please advise:

  1. Any pointers on how specifically I might start in crafting the requisite ".h" files to support this SAMD platform?
  2. Do you have a checklist of some sort that you might use or be able to share with contributors as to what to be aware of when navigating the codebase?
  3. Perhaps there's a few noteworthy documentation breadcrumbs within the code that I've not yet uncovered that might help guide me through?
  4. Perhaps you might also have some sort of visualization or tech-spec drawings that you might be able to share that might logically arrange the functional components and notable hardware dependencies that the ALA Library relies upon?
  5. In addition to the ALA specific code, what other logical hierarchies are involved and how entangled with the board pinout mapping files might they be? For instance, the AdaFruit library integration points seem like they shouldn't be show-stoppers in supporting a new board, but perhaps I'm mistaken?

Any info that might be worthwhile in hacking together a bridge to the SAMD21 board would be appreciated!

๐ŸŒŸ Many thanks! ๐ŸŒŸ

Pull requests

I'm not sure how to feed fixes back as I haven't collaborated on a github project before.

I have forked this project to https://github.com/BNNorman/ALA and I've uploaded a fix to AlaLed and enhanced both Alaled and AlaLedRgb so that animation sequences can be stopped/started to allow for switching animation sequences.

I don't want to mess anything up on the master here so my question is "Do I just create a pull request from my forked repository?"

Thanks for any help.

Execute once?

I'd like to use this library to animate some LEDs for a 'power up' sequence and a 'power down' sequence of an installation I'm doing.

Is there a way to:

  • Run a sequence once
  • Then continue other code once the sequence is complete.

Example

  • "power up" sequence.
  • "Steady" sequence (until a button is pressed)
  • "power down sequence

Creating different animations on different sections of one strip plus APA102 Leds.

I have modified the ALA library to 1) add the ability to drive the APA102 ledstrip using the APA102 library 2) include a modified FastGPIO to drive mega2560 digital pins 3) ability use different animation sequences on different sections of the same strip. The latter is useful if you have a long strip (memory permitting, hence the 2560) and want different animations on different sections.
I've also included a Colours.h file to define a shed load of standard colour names. Changed files are AlaLedRgb - now called ExtAlaLedRgb - lives in the sketch folder since I'm using it instead of the standard AlaLedRgb. And ExtFastGPIO - which now has pin definitions for the mega2560 . Read the header regarding which pins because some don't work with fastGPIO.

I am only able to test with WS2812B and APA102 - so am unable to test that my changes work with the other supported LEDs. Feedback would be helpful.

This is a zip of my sketch folder:-
ALA_DEV_1.6.zip

There may be some Serial.print's in ExtAlaLedRgb.cpp left over from debugging so it isn't really suitable for general use, just yet.

Note that this sketch requires the memory capacity of a mega2560 - the 2K devices just aren't big enough to drive my 144 led APA102 strip although the code compiles to under the 32K Flash size. I'm not sure how I can optimise the memory usage. (Any advice gratefully accepted)

You can view my video of two animations running on my APA102 led strip on YouTube here:-

https://youtu.be/hsvYEGXiAFw

Hope you like it.

Compilation errors

When I'm trying to launch RgbLedSequence example I'm getting compilation errors:

RgbLedSequence.ino:22:28: error: 'colors_' was not declared in this scope

RgbLedSequence.ino:35:1: error: cannot convert 'AlaPalette' to 'AlaColor*' in initialization

RgbLedSequence.ino:35:1: error: cannot convert 'AlaPalette' to 'AlaColor*' in initialization

RgbLedSequence.ino:35:1: error: cannot convert 'AlaPalette' to 'AlaColor*' in initialization

RgbLedSequence.ino:35:1: error: cannot convert 'AlaPalette' to 'AlaColor*' in initialization

Animation Sequence Freezes and All LEDs Turn White

I'm running this Neopixel sketch from the examples: RgbStripSequence.ino

What I've noticed is that after several cycles (it seems to vary) all the LEDs will turn white, and the program freezes and stops changing the animation. Sometimes there is a faint colored sparkle effect superimposed on the white.

I thought it was a power supply problem, but it happens with multiple different supplies.

I thought it was the WS2812 strip - but it happens with two different strips.

Any suggestions? Is this a hardware problem I can't see?

I've now used two different Arduinos (both Leonardo), three different power supplies, and two different WS2812 strips - and the same thing happens. The program loops through the animation sequence for some period of time, then the whole string turns white.

Unless I'm missing something, could this suggest a problem with the software - memory leak, millis() timing, too many animation sequences?

Common anode RGBs

Could you add option for common anode RGBs? Value has to be inverted for those LEDs and using provided palletes is impossible with such LEDs.

analogWrite(pins[j],   255 - (leds[i].r*maxOut.r)>>8);

Attiny support?

I'm using an Attiny85 in a simple project to control 6 RGB LEDs. I'd like to use this library with it, but it doesn't seem to support it. I'm using the method described here to program the Attiny85 using my Arduino UNO as isp: http://highlowtech.org/?p=1695. When I try it with the SimpleRgbLed sketch it says: E:\Arduino\libraries\ALA\src\pinouts/chip_includes.h:114:2: error: #error "Unknown Chip!"

Rotary Encoder

Hi ,
I'm new in programing and a want to implement a rotary encoder to set brightness
if i try to implement with this

rgbStrip.setBrightness(EncoderValue)

then this work but in all animation this sets color in strip to green and i don't know how this add to work this

And i want to change the favorite animation with push-button in rotary encoder

#Sorry for my bad english i'm still learning it

Potentiometer controls brightness

Hi, is it possible to make a potentiometer control the brightness in an animation?

also @bportaluri please tell me if you still work on the project, have the blogspot and will do any updates in the future

ALA library (with wheels)

Hi there, just a video of a modified version of the ALA library driving some lights on a truck project i have been working on.

Thought it might be interesting to show some of the uses of this library (which is very handy code).

https://youtu.be/oQdsesSV4lE

Teensy 3.2 Support

Do you think it's relatively straightforward to add support for the Teensy 3.2?

I see this library supports Teensy 2.0 and Teensy ++2.0 already. What did you need to know about the boards in order to add support for those? Perhaps I can add support for 3.2 if I knew more about what you did with the other boards. Thanks!

Drive SK6812 RGBW - Strip

Hi

Is there a possibility to drive a SK6812 stripe? The Neopixel library seems to support now this Chip, with the standard ALA-Library the stripe didn't work.

How can I modify the code? I 'll use the ALA with the Ala-Web, this is an excellent application for my case.

thanks NEo

my config: 4m SK6812 RGBW stripe, 5V 20A powersource, Arduino MEGA, RASPI2 | ALA-WebIf and Ala-Arduino serial sketch installed and working

Adafruit Trinket

Sorry I'm a Noob to most of this please bear with me.
I was trying to use this Library with the Adafruit trinket.
But I get and #error "Unknown Chip!". I figured out this is because the chip on the trinket is not included In the Library. My question is would/could support for the trinket be add?

Using NeoPixel Library and ALA Library in the same sketch

When using both libraries upon compiling the following errors occur:

Arduino: 1.6.5 (Windows 8.1), Board: "Arduino Uno"

ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:38: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::~Adafruit_NeoPixel()'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::~Adafruit_NeoPixel()'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::begin()'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::show()'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::setPin(unsigned char)'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::setPixelColor(unsigned int, unsigned char, unsigned char, unsigned char)'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::setPixelColor(unsigned int, unsigned long)'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::Color(unsigned char, unsigned char, unsigned char)'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::getPixelColor(unsigned int) const'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::getPixels() const'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::numPixels() const'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::setBrightness(unsigned char)'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::getBrightness() const'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
ALA\ExtNeoPixel.cpp.o: In function Adafruit_NeoPixel::Adafruit_NeoPixel(unsigned int, unsigned char, unsigned char)': C:\Users\School\Documents\Arduino\libraries\ALA-master\src/ExtNeoPixel.cpp:36: multiple definition ofAdafruit_NeoPixel::clear()'
Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o:C:\Users\School\Documents\Arduino\libraries\Adafruit_NeoPixel-master/Adafruit_NeoPixel.cpp:51: first defined here
collect2.exe: error: ld returned 1 exit status

Error compiling.

Tried tweaking the .cpp file my self, but I never got it to compile without errors.

file corrupted ?

Hi,
The library manager tells "CRC doesn't match. File is corrupted"
And even dl the zip file was not easy.

Flash footprint

i compiled the SimpleRgbLed on an UNO and it use 22KB of flash memory.

Is it absolutely necessary all this space ?
On .cpp i view that you include neopixel code and tc code, but if an user need only use a single simple RGB led he do not need neopixel or other code.

Maybe it is possible write some ifndef for dinamically reduce code usage ?

Freeze

After some time of run 2-3 hours the animation freeze and I need to reset Arduino :(

Update library to work on ESP8266 & 32

Hi,
I keep getting an error for missing the "#include <avr/io.h>" from "chip_includes.h" when trying to use it on an 8266. Is there a way to convert this library to run on ESPs?

bug with rgb strip sequence demo on UNO and 150 leds

Hi

My setup is an arduino uno driving a led strip of 150 ws2812b. (arduino v1.0.5)
It works nice at the begining, but during the demo sequence, something goes wrong, and it looks like some memory corruption occurs because of one of the animations.
Sometime, the number of led changes, sometime, the whole animation speed changes.

I suspect fire, or bubbles animation to cause corruption.
When I remove a these, everything seems to work ok.

[Solved] Multiple Strips with different led count

Hi there,
Thanks for the wonderful library, i was wondering if i could drive three or four WS2812 strip with different led counts on every strip, like can i use four different pwm pins on arduino to control those 4 led strips ?
i was looking into multiled sequence but seems like thats not actually suitable

anything you suggest ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.