Allow the software to download and install, then close the boards manager. Your Arduino IDE can now program Flutter hardware, but you'll need two libraries before you can use Flutter.

2) Install the required libraries

Choose the Flutter Library

It is very important that you use the correct Flutter library for your region. Using the wrong library may cause your flutter board to transmit on critical safety channels in violation of local laws. There is no performance difference between library versions.

AUS/NZ Users:

Install the zip file

Once the library is downloaded, add it to your IDE by going to Sketch->Include Library->Add ZIP library in the Arduino menu.

Install an additional required library

Next, add the extEEPROM library by going to Sketch->Include Library->Library Manager and searching for extEEPROM.

You're done!

Make sure to select the Flutter Basic from the IDE menu (even for the Flutter Pro).

Running Your First Program

1) Prepare new boards for programming

The Flutter boards come with a test program that prevents the USB from working, so the first thing you need to do is erase that. Use the following hard erase procedure to clear new boards for programming:

The board should now be erased. You can use this procedure to erase your board at any time, even if the software is locked up. Under normal use you can also put an erase routine in your program to erase the board with a single button press. In time boards will auto-erase when programming, but that functionality is still in development.

2) Load and Program RangeTest example

a) Open RangeTest ExampleOnce you have the board erased and the software opened, go to File->Examples->Flutter and select "RangeTest", as shown here:

NOTE: if Flutter examples are not visible, you may first need to select the Flutter Basic from the board menu under Tools->Board->Flutter Basic

b) Select your board from the Port menuIf you erased your board properly, the computer should automatically install the drivers for your Flutter hardware when it is plugged in. The Windows editor files from Step 1 also contain a folder called "drivers" that may be needed for manual driver installation.

In the Arduino editor's menu, go to Tools->Port and select your Flutter Board.

NOTE: The Linux view is shown above and Mac would be similar. Windows uses a different port naming scheme so the name would be something like "COM1".

c) Program the example into the board by pressing the "Upload" button (the right arrow in a circle) or go to File->UploadIf the board was successfully programmed, the LED should begin rapidly blinking.NOTE: Currently the software does not consistently start the program after it has been uploaded to the board. To run the program, unplug the board from USB and plug it back in.

3) Program a second board as a receiver

a) Change the program for receiversFollow the same procedure as above using a second board, but before programming the board, change the following line from this:to this:

b) Program the receiverUse the "Upload" button to program the second board. If the first board is still running, the second board should synchronize within two seconds and start blinking in step with the first board. If the first board is not plugged in, do that now and the second board should synchronize within two seconds.

4) Go test the range!

Once you've programmed the Range Test program into two boards, find a USB battery or two distant outlets and see how much range you can get! You should be able to get several hundred meters through buildings, and up to one kilometer when you have a line of sight connection and the boards are held at least 2.5 meters above the ground.

d) Now close the Arduino IDE and re-open it. If you configured everything correctly, you should be able to go to File->Examples and see an option for "Flutter".

e) If you try to compile an example now, you will see an error. The last thing you need to do before you use Flutter is to configure your region in the code. Inside of the Flutter library, open file "Flutter/src/Network.cpp" in any text editor, and set your region by uncommenting one of the lines for the BAND, as shown in the following screen shot:

In regards to d), I did not see any examples for Flutter after doing this.You mention later that this might be because a board hasn't been selected. Referencing that here might be useful, as I spent some time trying to figure out where I had gone wrong since no 'Flutter' folder was showing up. Also, in the latest version you no longer have 'blink' as an example program, wasn't sure if that was intentional.

Awesome, thanks for the tips! I fixed the error and updated step 1d to include the note about selecting the board. I haven't done this "for the first time" in a long time, so I knew I'd be missing something.

Are you a developer who only got one board? I still have a couple developer boards, I could send you one more.

I haven't done this "for the first time" in a long time, so I knew I'd be missing something.

I figured as much so thought I'd provide what feedback I could.

I am a developer, assigned to Team Library, but I've never programmed/worked with Arduino before. To top that off, I've spent the last 2 months without internet after I moved into a house that had to get cable run to it. Got back online yesterday and am super excited to start working with Flutter. If you'd send me another board I'll keep working at it as much as I can.... Otherwise when the first shipment of basic boards arrive I'll keep working with those. Either way. Thanks for asking.

edit or, I won't get anything from the first shipment... disappointing, but I guess I understand. Frankly I don't see any way I'm getting product before the end of the year then, if you aren't planning on double shipping anything..... as to my knowledge the network board hasn't even been finished yet, has it?

I got my basic boards several weeks ago, then went on vacation for three weeks. Just got back and finally have some time to play with these!

I'm an experienced developer, but this is my first experience with Arduino. Instructions mostly got me here, although it surprised me some that I had to do the hard reset thing to be able to re-program a board.

Got the range test working - I lengthened the delay to 1000 ms to slow things down enough to see what was happening. after programming both boards, they seemed to be communicating but the colors were not in sync. I changed line 85 from this:

switch ((mydata - 1) % 3)

to this:

switch ((mydata) % 3)

Now my boards are color-synced and changing every second. Cool! Looking forward to some API documentation!

OK now another question so y'all don't get off completely - there's a note to the effect of 'you can have functionality in your program to erase by pushing a button'. This would be cool as opposed to in/out with the USB cable, but how would I do that.

In response to the first post, I believe USB serial support was one thing they were working on in the code, and I thought had gotten working.... Not sure though. I'm trying to figure out how to integrate the code from Github into my Window environment for testing.

As for the second, I believe RST (next to D0) is used to reset the board.... maybe that is just 'restart' though. I'm new to Arduino..... In theory even if it is just a 'reset', then the Flutter will be rebooting and will think it had it's power just plugged in, so if you hold B1 and then press the reset, that should effectively wipe the board.... right? Let me know if that works for you.