.. highlight:: sh .. _maple-quickstart: ======================== Maple Quickstart Guide ======================== .. TODO update the images since we changed "to FLASH" -> "to Flash" You'll need a `Maple board <http://leaflabs.com/store/>`_, a `Mini-B USB cable <http://www.google.com/products?q=mini-b+usb+cable>`_, a functional computer, and possibly root (or "administrator") access to that computer. If you have trouble along the way, try the :ref:`troubleshooting page <troubleshooting>` for help with some common problems. If all else fails, try our `forum`_, or `contact`_ us directly! .. contents:: Contents :local: .. _maple-quickstart-get-ide: Install and run the IDE ----------------------- See the :ref:`IDE installation page <maple-ide-install>` for instructions. .. _maple-quickstart-compile-blinky: Compile a program! ------------------ Let's load up a simple example program that blinks the status LED. From the File menu, select Examples > Digital > Blink: .. image:: /_static/img/blinky.png :align: center :alt: Click "Blink" Next, select Tools > Board > "LeafLabs Maple ... to FLASH": .. image:: /_static/img/blinky-to-flash.png :align: center :alt: Upload to FLASH .. note:: You have the option between RAM and FLASH programming: FLASH saves the program into permanent memory so the program will be run every time the Maple is reset, while RAM simply injects the compiled program into the processor's memory. Programming to RAM is faster to upload and a buggy program can be wiped away with a simple reset, while FLASH memory is larger and is the only option for permanently uploading a program. .. image:: /_static/img/verify_button.png :align: left :alt: Verify button Now press the "Verify" button (the "play" symbol; see image at left) to compile the code. Some output should scroll by in the bottom window, and then a confirmation message will appear: .. image:: /_static/img/verify-success.png :align: center :alt: Code verified successfully. .. _maple-quickstart-upload: Upload that program! -------------------- Now it's time to plug in your Maple. Use a Mini-B cable, making sure that the :ref:`power source jumper <hardware-maple-powering>` is on the USB header first. We ship the Maple with the power source jumper configured that way, so you shouldn't have to do anything. For reference, it should look like this (don't worry if a jumper is hanging half off of the CHRG header): .. image:: /_static/img/plugged-in-maple.png :align: center :alt: Correctly plugged in Maple .. note:: On OS X, a network interface dialog will pop up every time you plug in the Maple. .. image:: /_static/img/osx-unconfigured-popup.png :align: center :alt: Unconfigured modem popup If you click "Network Preferences..." and accept the default ("Not Configured"), the dialog won't pop up and everything will work fine. That is, from this window, click "Apply": .. image:: /_static/img/osx-network-prefs-unconfigured.png :align: center :scale: 75% :alt: Click "Apply" The Maple should blink a short pattern on the blue status LED every time it is plugged in, reset, or reprogrammed, just to let you know it's there. If it ever starts throbbing in a slow, smooth pattern, then you've got a problem: see the :ref:`troubleshooting <troubleshooting>` page for help. If all systems are go, select the Maple's serial port in the Tools > Serial Port menu. The Maple will appear as something like :file:`COMx`, :file:`/dev/ttyACMx`, or :file:`/dev/tty.usbmodemxxxxx`, depending on your platform, like so: Windows XP: .. image:: /_static/img/serial-port-win.png :align: center :alt: Board type and serial port for Windows XP Linux: .. image:: /_static/img/serial-port-ubuntu.png :align: center :alt: Board type and serial port for Linux OS X: .. image:: /_static/img/serial-port-mac.png :align: center :alt: Board type and serial port for the OS X Then press the "Upload" button to upload your program to the Maple. .. image:: /_static/img/upload-button.png :align: center :alt: Click the "Upload" button You should see some text and a progress bar flash by in the status window of the IDE, then some blinky patterns on the Maple, and then a constant blinking on and off. Congratulations! You've successfully uploaded your first program to the Maple. Next, go ahead and modify the file a little bit. If you change the ``delay(1000);`` lines to a different value, the speed of the blink will change. The value is a time in milliseconds to pause before continuing with the program, so by default, the LED will be on for 1 second, then off for 1 second, etc. Any time you make any changes, go through the same Verify and Upload process to upload the new version of your program to your Maple. .. warning:: The uploading step is the most common source of problems, especially on Windows. The situation is much improved over the past, but if you have trouble, try doing things again, unplugging your Maple and plugging it back in, using :ref:`perpetual bootloader mode <troubleshooting-perpetual-bootloader>`, or restarting the IDE. If nothing works, please report the problem in the `forum`_. .. _maple-quickstart-serial-port: Use the serial port monitor! ---------------------------- As a last step to make sure everything has been configured correctly, let's upload a "Hello, world!" program that will send text from the Maple back to the IDE over the USB connection. From the File menu, select Examples > Stubs > HelloWorld (similarly to when you selected the Blink program), and make sure the correct board and serial port targets are selected from the Tools menu. Open the Serial Monitor window (on the far right of the toolbar) and make sure the 9600 baud speed is selected. Then go back to the code editing window and upload your program (Upload will recompile your code automatically if there's been any change since the last Verify). You should get text spit at you over the serial monitor right after the program is uploaded. Shout back! We can hear you! Go forth exuberantly! --------------------- We really hope you got this far and didn't frown or make a bitter lemon face getting here. Where you go now is up to you: perhaps you've got some crazy project cooking, or a longer tutorial to work through, or maybe now is a good time for a trip to the kitchen for a delicious `sandwich <http://everything2.com/title/Velvet+Elvis>`_. If you blew through this guide and are the kind of person who drinks their coffee straight, has more than a 100 lines of vim or emacs customization, and doesn't even have a mouse plugged into their computer, you may want to look at the :ref:`Unix toolchain quickstart <unix-toolchain>` guide. It's the tutorial for getting working with your old friends :command:`make`, :command:`gcc`, and :command:`jtag`. Let us know what you come up with! Tag us with #leaflabs on Twitter, post in the `forum`_, post on `our wiki's Projects page <http://wiki.leaflabs.com/index.php?title=Projects>`_, track us down in the real world, whatever. We love projects!