BlinkyTile Programming

edited December 2014 in BlinkyTile
Hi, I just received my BlinkyTile kit today, got it assembled, and it's working great. Thanks!

Now I'm ready to start writing my own light patterns and have a few questions, if/when you get a chance, no rush:

* Should there be a new forum category for BlinkyTile?
* I assume I can use Arduino/Teensyduino?
* What board should I select?
* Is this the default program, if/when I want to revert back? https://github.com/Blinkinlabs/BlinkyTile/blob/master/bin/lightbuddy-firmware-v100.hex
* What LEDs are used, are they NeoPixel compatible?
* Can I use the fantastic FastLED library?

Again, no rush, just wanted to get this started.

Thanks!

Jason
«1

Comments

  • Hi Jason,

    Awesome, glad to hear you're up and running!

    *I just created the forum category - thanks.
    *So - we're still working on the details for programming the board itself. It's not directly Arduino-compatible. I believe it is the same chip as the Teensy, but I believe that we've been working with bare tools (compiling via command line, and using command line tools for upload.)
    *However - the boards can be addressed just like a BlinkyTape via serial, so all of our Processing examples will work: http://wordpress.blinkinlabs.com/blinkytape/processing
    *That does look like the proper firmware (I'll confirm with Matt.)
    *The LEDs are actually a new type with a more advanced microprocessor on them - they actually have a DMX-compatible layer which could also be used for control.

    So...yeah there are a good number of details to come, so stay tuned to the BlinkyTile pages, and please keep putting up questions here!

    And thanks again for backing!

    -Ethan

  • Hey Ethan,

    Thanks for the response!

    * I moved this discussion to the new BlinkyTile category, thanks.
    * I totally understand that you're just getting the hardware out and are still working on guides and documentation, no problem, and no rush.
    * I'm able to create my own patterns with Processing over Serial, it works great.
    * I really hope to be able to use Arduino/Teensyduino and FastLED to create my own embedded apps, if possible.
    * If/when this is possible, I plan to order another kit or two for a battery-powered, interactive project idea I have. :)

    Thanks again!

    Jason
  • Awesome. Things should be coming along and I believe that it should be possible to use FastLED - we'll just have to work out the details.

    We'll also have additional kits available soon - we'll be making announcements when that happens.

    Thanks for you patience!
  • Jasoncoon, can you post some example code you used to communicate over serial? I'm new to processing and (using a windows machine) can't figure out how to make serial to the Blinkytile work. I realize I'm computer-impaired, but appreciate any help. Thanks!
  • Sure, no problem. I started with "The Simplest BlinkyTape Program" here: http://blinkinlabs.com/blinkytape/processing/

    I slightly modified it for the BlinkyTile (since mine has only 12 LEDs): https://gist.github.com/pup05/42dc985a6dbf166dd203

    Please note the delay(8) towards the end. This is necessary to keep from locking up the BlinkyTile controller. Delays smaller than 7 locked mine up.
  • Thanks!

    I looked at the code, and the example makes sense just walking through it on screen, however, I can't get it to work.

    I used println(Serial.list()) to confirm that COM1 was the only active port (at least COM1 was the only output from println and is the only port that shows up in Device Manager). I've plugged the controller board into a USB port directly on the computer (a USB 1.0 port, no hub) and matched the baud rate of the constructor call to the rate set in the device manager (9600). I can't seem to get even this simple program though to create any behavior on the tiles themselves. I can get some output on the computer using fill and draw calls (so the program is working) but the controller doesn't seem to change at all, it still has the 4 basic programs on it and the behavior of the two push buttons and the attached tiles doesn't change.

    I'm sure I'm missing something simple. I'm coming from a very basic Arduino experience and expecting a 'write to the board' type command, but it seems that doesn't exist in Processing other than as 'run'. Is there something I should be doing for the controller board aside from pushing bytes?

    Thanks again for, hope you can help.
  • Hey Avatar, I believe that we need a driver for Windows systems. Can you have a look in the Device Manager while the tape is plugged in and see if there's an unrecognized device?

    Also, I don't think that baud rate is right - I believe that it's 115200.
  • Hi Avatar,

    I believe the issue is that you need a driver. We're working on a new version of PatternPaint that will automatically install the driver, however I just made a testing version:
    http://blinkinlabs.com/wp-content/uploads/2014/12/BlinkyTile-Driver-beta.zip

    You'll need to use the Device Manager to install it- Ethan might be able to help out here- and I'll continue to work on getting the automatic one finished.

    The baud rate setting shouldn't have any effect on this, the BlinkyTile controller ignores it.
  • jasoncoon- Sweet work! Noted about the delay locking up the device- we should be able to fix that, it's on my radar. The firmware is supposed to let the computer know to stop transmitting more data once it doesn't have room, however I think it runs out of memory instead and crashes. The delay should be a good workaround for now.
  • Thanks Matt, the beta driver worked. I was able to get the computer to recognize the "Blinklabs Light Buddy" as a device over serial and write to it with Processing. I got some weird behavior on the tiles, but that's probably just me not understanding Processing well, the communications seems to have worked out. At least until my next set of questions. ;-)
  • Cross-post from another discussion: http://forums.blinkinlabs.com/index.php?p=/discussion/comment/477/#Comment_477

    I wired my BlinkyTiles up to a Teensy 3.1 (also tested and worked fine on an Arduino Uno) and got the ColorPalette example by Mark Kriegsman running, it looks fantastic! https://github.com/pup05/BlinkyTileFastLED
  • I purchased a Blinkytile and I am integrating it into a wall art project. This requires some custom light sequences. The Blinkytile webpage says "Make patterns easily with the graphical pattern editor" which I assumed referred to Pattern Paint. Hooking up the Lightbuddy to Pattern Paint allows for the live preview just fine, but when attempting to upload to the board, all I get is the error "Pattern upload not currently supported for Lightbuddy!" Am I missing something? Or is my only option to learn Processing?

  • Thanks for getting a BlinkyTile kit! It does refer to PatternPaint, and we're just now getting support for them working. Do you use OS X or Windows? I'll put out a build this afternoon that has upload support.

  • Here is the new version of PatternPaint, that should save to BlinkyTile- let me know how it works:
    https://github.com/Blinkinlabs/PatternPaint/releases/tag/2.0.2

  • Ok! Here is a release version of PatternPaint, it includes the above BlinkyTile support, as well as some other polishing: https://github.com/Blinkinlabs/PatternPaint/releases

  • edited January 2016

    Hi all. I'm trying to figure out how to program my BlinkyTile. So far:

    1. When I first plugged it in, I got the default blue/pink flashing sequence.
    2. I installed Processing and ran the program at http://blinkinlabs.com/blinkytape/processing/.
    3. When that runs, it displays some random assortments of colors for a few seconds, then goes back to the default sequence.

    Any idea what I might be doing wrong? Thanks.

  • Hi dbtleonia- have you had any luck with this? We need to rewrite that example, it unfortunately doesn't work with newer versions of Processing :neutral:

  • No luck yet. This was using Processing 2.2.1. Are there any examples of working code I can copy? Thanks.

  • Sure- the examples in the BlinkyTape processing library should work (I totally forgot the ones that were written out in the website). ColorChooser is probably a good place to start: https://github.com/Blinkinlabs/BlinkyTape_Processing/tree/master/examples/ColorChooser

  • And I think we wrote the examples for Processing 2.0!

  • Yes, ColorChooser works, thanks very much!

  • edited June 2018

    Just got through re-programming an address on one of my BlinkyTiles (http://blinkinlabs.com/blinkytile/changing-addresses-on-your-tiles/).

    好玩儿!

    I need this because I'm planning to cobble together some of my left-over BlinkyTiles to make a extra dodecahedron (to maybe decorate a robot, or take to Burning Man, or something).

    Thanks to Matt, Honghong, and the rest of the Blinkinlabs team for creating something great. Hope to see you out on the playa this year. I'll be looking for the Blinkinlabs Camp.

    Cheers,

    -Jack

  • edited June 2018

    BTW - I've managed to get my BlinkyTile dodecahedron working very nicely with both the Arduino Leonardo and Adafruit Metro Mini, using Arduino IDE 1.8.5 and Ubuntu 14.04.

    Daniel Garcia and Mark Kriegsman's FastLED site (http://fastled.io/) is a great resource, and where I mostly learned how to program these things. I've posted a few notes about how I prepared Ubuntu for the Leonardo (https://symbolicdomain.wordpress.com/2018/06/24/leonardo/), as I had read that the Leonardo could sometimes be a little glitchy with Ubuntu. So far no problems.

    谢谢!

    -Jack

  • That's awesome! Glad you were able to get the programming going, and thanks for sharing your instructions.

  • edited July 2018

    FYI, just finished programming the Leonardo and Metro Mini to control BlinkyTiles using an ir receiver and remote.

    In case anyone is interested, I explain more, and provide links to code and resources here (along with a comment or two about how great Team Blinky and their products are):

    https://symbolicdomain.wordpress.com/2018/07/02/arduino/

    Cheers,

    -Jack

  • Is there an easy way to restore/update the BlinkyTile's Light Buddy firmware?

    I'm asking because one of my Light Buddies is acting kind of quirky. Specifically, it doesn't light up the LED the way it's supposed to when you re-program the BlinkyTile address, although it seems to do everything else OK. I have another one that does everything (addressidentify.py, addessprogrammer.py) just fine. I'm thinking maybe there is a glitch in the python interpreter on the Light Buddy, but that's just a guess.

    I know there is a way to compile and install everything, but that seems like a real bear.

  • Checking back on our repository, it seems that we only actually released one version (v100) of the LightBuddy firmware, so they should be the same. Does the LED on the other board work otherwise?

    There are pre-compiled versions of the firmware here, that you could upload using dfu-util (easy on Linux, slightly more complicated on macOS and windows):
    https://github.com/Blinkinlabs/BlinkyTile/tree/master/bin

    Note that the v100 version is what shipped; the v200 version had some major bugs and was never released.

  • The quirky LightBuddy runs it's pre-loaded LED programs fine. It even seems to run python programs like "green.py" and "shimmer.py" OK.

    "addressprogrammer.py" doesn't work - doesn't flash the LED and doesn't set addresses.

    This is what I get when I try to download firmware to LightBuddy:

    foustja@foustja:~$ dfu-util -a 0 -D ~/Downloads/lightbuddy-firmware-v100.dfu
    dfu-util 0.5

    (C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
    (C) 2010-2011 Tormod Volden (DfuSe support)
    This program is Free Software and has ABSOLUTELY NO WARRANTY

    dfu-util does currently only support DFU version 1.0

    Cannot open device
    Opening DFU USB device... foustja@foustja:~$

    Doesn't seem like it's doing anything; are my dfu options wrong?

  • BTW - good LightBuddy doesn't seem to have any problems, except that is doesn't light up the LED on the tile that is attached to the address programming cable when I run addressidentify.py and enter its address. Other tiles can be ID'd, but for some reason the cable blocks the LED from flashing on the one it's attached to. I don't know if that's normal or not.

  • Try this:
    dfu-util -d 1d50 -D ~/Downloads/lightbuddy-firmware-v100.dfu

    Depending on the dfu-util version, it might help to start the LightBuddy in bootloader mode instead of relying on dfu to do it in software. To do that, unplug the LightBuddy from the computer, then hold down both of the buttons on the lightbuddy while plugging it back in. The computer should recognize it as a 'lightbuddy bootloader'.

Sign In or Register to comment.