diff --git a/HISTORY.rst b/HISTORY.rst index cd912885..aa9550ef 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,6 +1,27 @@ Release History =============== +1.3.0 (2015-03-27) +------------------ + +* Moved PlatformIO source code and repositories from `Ivan Kravets `_ + account to `PlatformIO Organisation `_ + (`issue #138 `_) +* Added support for new Arduino based boards by *SparkFun, RepRap, Sanguino* to + `atmelavr `__ + platform + (`issue #127 `_, + `issue #131 `_) +* Added integration instructions for `Visual Studio `_ + and `Sublime Text `_ IDEs +* Improved handling of multi-file ``*.ino/pde`` sketches + (`issue #130 `_) +* Fixed wrong insertion of function prototypes converting ``*.ino/pde`` + (`issue #137 `_, + `issue #140 `_) + + + 1.2.0 (2015-03-20) ------------------ @@ -20,10 +41,10 @@ Release History development platform * Created new `Frameworks `__ page in documentation and added to `PlatformIO Web Site `_ - (`issue #115 `_) + (`issue #115 `_) * Introduced online `Embedded Boards Explorer `_ * Automatically append define ``-DPLATFORMIO=%version%`` to - builder (`issue #105 `_) + builder (`issue #105 `_) * Renamed ``stm32`` development platform to `ststm32 `__ * Renamed ``opencm3`` framework to @@ -31,13 +52,13 @@ Release History * Fixed uploading for `atmelsam `__ development platform * Fixed re-arranging the ``*.ino/pde`` files when converting to ``*.cpp`` - (`issue #100 `_) + (`issue #100 `_) 1.1.0 (2015-03-05) ------------------ * Implemented ``PLATFORMIO_*`` environment variables - (`issue #102 `_) + (`issue #102 `_) * Added support for *SainSmart* boards to `atmelsam `__ development platform @@ -45,11 +66,11 @@ Release History `Project Configuration `__ option named `envs_dir `__ * Disabled "prompts" automatically for *Continuous Integration* systems - (`issue #103 `_) + (`issue #103 `_) * Fixed firmware uploading for `atmelavr `__ boards which work within ``usbtiny`` protocol -* Fixed uploading for *Digispark* board (`issue #106 `_) +* Fixed uploading for *Digispark* board (`issue #106 `_) 1.0.1 (2015-02-27) ------------------ @@ -62,14 +83,14 @@ Release History `BeagleBone `_ and `CubieBoard `_ * Added `atmelsam `__ development platform with supported boards: *Arduino Due and Digistump DigiX* - (`issue #71 `_) + (`issue #71 `_) * Added `ststm32 `__ development platform with supported boards: *Discovery kit for STM32L151/152, STM32F303xx, STM32F407/417 lines* and `libOpenCM3 Framework `_ - (`issue #73 `_) + (`issue #73 `_) * Added `teensy `_ development platform with supported boards: *Teensy 2.x & 3.x* - (`issue #72 `_) + (`issue #72 `_) * Added new *Arduino* boards to `atmelavr `__ platform: *Arduino NG, Arduino BT, Arduino Esplora, Arduino Ethernet, @@ -77,46 +98,46 @@ Release History * Added support for *Adafruit* boards to `atmelavr `__ platform: *Adafruit Flora and Adafruit Trinkets* - (`issue #65 `_) + (`issue #65 `_) * Added support for *Digispark* boards to `atmelavr `__ platform: *Digispark USB Development Board and Digispark Pro* - (`issue #47 `_) -* Covered code with tests (`issue #2 `_) + (`issue #47 `_) +* Covered code with tests (`issue #2 `_) * Refactored *Library Dependency Finder* (issues - `#48 `_, - `#50 `_, - `#55 `_) + `#48 `_, + `#50 `_, + `#55 `_) * Added `src_dir `__ option to ``[platformio]`` section of `platformio.ini `__ which allows to redefine location to project's source directory - (`issue #83 `_) + (`issue #83 `_) * Added ``--json-output`` option to `platformio boards `__ and `platformio search `__ commands which allows to return the output in `JSON `_ format - (`issue #42 `_) + (`issue #42 `_) * Allowed to ignore some libs from *Library Dependency Finder* via `ignore_libs `_ option * Improved `platformio run `__ command: asynchronous output for build process, timing and detailed information about environment configuration - (`issue #74 `_) + (`issue #74 `_) * Output compiled size and static memory usage with `platformio run `__ - command (`issue #59 `_) + command (`issue #59 `_) * Updated `framework-arduino` AVR & SAM to 1.6 stable version * Fixed an issue with the libraries that are git repositories - (`issue #49 `_) + (`issue #49 `_) * Fixed handling of assembly files - (`issue #58 `_) + (`issue #58 `_) * Fixed compiling error if space is in user's folder - (`issue #56 `_) + (`issue #56 `_) * Fixed `AttributeError: 'module' object has no attribute 'disable_warnings'` when a version of `requests` package is less then 2.4.0 * Fixed bug with invalid process's "return code" when PlatformIO has internal - error (`issue #81 `_) + error (`issue #81 `_) * Several bug fixes, increased stability and performance improvements @@ -124,10 +145,10 @@ Release History ------------------- * Fixed an issue with ``--json-output`` - (`issue #42 `_) + (`issue #42 `_) * Fixed an exception during `platformio upgrade `__ - under Windows OS (`issue #45 `_) + under Windows OS (`issue #45 `_) 0.10.1 (2015-01-02) ------------------- @@ -137,7 +158,7 @@ Release History `platformio serialports list `__ and `platformio lib list `__ commands which allows to return the output in `JSON `_ format - (`issue #42 `_) + (`issue #42 `_) * Fixed missing auto-uploading by default after `platformio init `__ command @@ -147,31 +168,31 @@ Release History **Happy New Year!** * Implemented `platformio boards `_ - command (`issue #11 `_) + command (`issue #11 `_) * Added support of *Engduino* boards for `atmelavr `__ - platform (`issue #38 `_) + platform (`issue #38 `_) * Added ``--board`` option to `platformio init `__ command which allows to initialise project with the specified embedded boards - (`issue #21 `_) + (`issue #21 `_) * Added `example with uploading firmware `_ via USB programmer (USBasp) for `atmelavr `_ - *MCUs* (`issue #35 `_) + *MCUs* (`issue #35 `_) * Automatic detection of port on `platformio serialports monitor `_ - (`issue #37 `_) -* Allowed auto-installation of platforms when prompts are disabled (`issue #43 `_) -* Fixed urllib3's *SSL* warning under Python <= 2.7.2 (`issue #39 `_) -* Fixed bug with *Arduino USB* boards (`issue #40 `_) + (`issue #37 `_) +* Allowed auto-installation of platforms when prompts are disabled (`issue #43 `_) +* Fixed urllib3's *SSL* warning under Python <= 2.7.2 (`issue #39 `_) +* Fixed bug with *Arduino USB* boards (`issue #40 `_) 0.9.2 (2014-12-10) ------------------ -* Replaced "dark blue" by "cyan" colour for the texts (`issue #33 `_) +* Replaced "dark blue" by "cyan" colour for the texts (`issue #33 `_) * Added new setting `enable_prompts `_ and allowed to disable all *PlatformIO* prompts (useful for cloud compilers) - (`issue #34 `_) -* Fixed compilation bug on *Windows* with installed *MSVC* (`issue #18 `_) + (`issue #34 `_) +* Fixed compilation bug on *Windows* with installed *MSVC* (`issue #18 `_) 0.9.1 (2014-12-05) ------------------ @@ -183,9 +204,9 @@ Release History * Fixed "*OSError: [Errno 2] No such file or directory*" within `platformio run `__ command when PlatformIO isn't installed properly -* Fixed example for `Eclipse IDE with Tiva board `_ - (`issue #32 `_) -* Upgraded `Eclipse Project Examples `_ +* Fixed example for `Eclipse IDE with Tiva board `_ + (`issue #32 `_) +* Upgraded `Eclipse Project Examples `_ to latest *Luna* and *PlatformIO* releases 0.9.0 (2014-12-01) @@ -194,7 +215,7 @@ Release History * Implemented `platformio settings `_ command * Improved `platformio init `_ command. Added new option ``--project-dir`` where you can specify another path to - directory where new project will be initialized (`issue #31 `_) + directory where new project will be initialized (`issue #31 `_) * Added *Migration Manager* which simplifies process with upgrading to a major release * Added *Telemetry Service* which should help us make *PlatformIO* better @@ -202,9 +223,9 @@ Release History ``.platformio`` states. * Refactored *Package Manager* * Download Manager: fixed SHA1 verification within *Cygwin Environment* - (`issue #26 `_) + (`issue #26 `_) * Fixed bug with code builder and built-in Arduino libraries - (`issue #28 `_) + (`issue #28 `_) 0.8.0 (2014-10-19) ------------------ @@ -213,7 +234,7 @@ Release History with the new fields: `frameworks `_, `platforms `_ and `dependencies `_ - (`issue #17 `_) + (`issue #17 `_) * Switched logic from "Library Name" to "Library Registry ID" for all `platformio lib `_ commands (install, uninstall, update and etc.) @@ -227,8 +248,8 @@ Release History ------------------ * Fixed bug with order for includes in conversation from INO/PDE to CPP -* Automatic detection of port on upload (`issue #15 `_) -* Fixed lib update crashing when no libs are installed (`issue #19 `_) +* Automatic detection of port on upload (`issue #15 `_) +* Fixed lib update crashing when no libs are installed (`issue #19 `_) 0.7.0 (2014-09-24) @@ -236,14 +257,14 @@ Release History * Implemented new `[platformio] `_ section for Configuration File with `home_dir `_ - option (`issue #14 `_) -* Implemented *Library Manager* (`issue #6 `_) + option (`issue #14 `_) +* Implemented *Library Manager* (`issue #6 `_) 0.6.0 (2014-08-09) ------------------ -* Implemented `platformio serialports monitor `_ (`issue #10 `_) -* Fixed an issue ``ImportError: No module named platformio.util`` (`issue #9 `_) +* Implemented `platformio serialports monitor `_ (`issue #10 `_) +* Fixed an issue ``ImportError: No module named platformio.util`` (`issue #9 `_) * Fixed bug with auto-conversation from Arduino \*.ino to \*.cpp 0.5.0 (2014-08-04) @@ -252,12 +273,12 @@ Release History * Improved nested lookups for libraries * Disabled default warning flag "-Wall" * Added auto-conversation from \*.ino to valid \*.cpp for Arduino/Energia - frameworks (`issue #7 `_) -* Added `Arduino example `_ + frameworks (`issue #7 `_) +* Added `Arduino example `_ with external library (*Adafruit CC3000*) * Implemented `platformio upgrade `_ command and "auto-check" for the latest - version (`issue #8 `_) + version (`issue #8 `_) * Fixed an issue with "auto-reset" for *Raspduino* board * Fixed a bug with nested libs building @@ -292,17 +313,17 @@ Release History * Allowed to pass multiple "SomePlatform" to install/uninstall commands * Added "IDE Integration" section to README with Eclipse project examples -* Created auto installer script for *PlatformIO* (`issue #3 `_) +* Created auto installer script for *PlatformIO* (`issue #3 `_) * Added "Super-Quick" way to Installation section (README) -* Implemented "build_flags" option for environments (`issue #4 `_) +* Implemented "build_flags" option for environments (`issue #4 `_) 0.2.0 (2014-06-15) ------------------ -* Resolved `issue #1 "Build referred libraries" `_ +* Resolved `issue #1 "Build referred libraries" `_ * Renamed project's "libs" directory to "lib" -* Added `arduino-internal-library `_ example +* Added `arduino-internal-library `_ example * Changed to beta status diff --git a/README.rst b/README.rst index cde9bb2e..516606ed 100644 --- a/README.rst +++ b/README.rst @@ -1,8 +1,8 @@ PlatformIO ========== -.. image:: https://travis-ci.org/ivankravets/platformio.svg?branch=develop - :target: https://travis-ci.org/ivankravets/platformio +.. image:: https://travis-ci.org/platformio/platformio.svg?branch=develop + :target: https://travis-ci.org/profile/platformio :alt: Build Status .. image:: https://gemnasium.com/ivankravets/platformio.png :target: https://gemnasium.com/ivankravets/platformio @@ -19,11 +19,14 @@ PlatformIO `Website + Library Search `_ | `Documentation `_ | -`Project Examples `_ | +`Project Examples `_ | `Blog `_ | `Twitter `_ -.. image:: https://raw.githubusercontent.com/ivankravets/platformio/develop/docs/_static/platformio-logo.png +*Atmel AVR & SAM, Freescale Kinetis, Nordic nRF51, NXP LPC, ST STM32, +TI MSP430 & Tiva, Teensy, Arduino, mbed, libOpenCM3, etc.* + +.. image:: https://raw.githubusercontent.com/platformio/platformio/develop/docs/_static/platformio-logo.png :target: http://platformio.org `PlatformIO `_ is a cross-platform code builder @@ -33,10 +36,11 @@ and the missing library manager. * `Web 2.0 Library Search `_ * `Development Platforms `_ * `Frameworks `_ -* `Embedded Boards `_ +* `Embedded Boards Explorer `_ * `Library Manager `_ * `User Guide `_ * `IDE Integration `_ +* `Articles about us `_ * `Release History `_ You have **no need** to install any *IDE* or compile any tool chains. *PlatformIO* @@ -57,7 +61,7 @@ Embedded Development. *Easier Than Ever.* *PlatformIO* is well suited for embedded development and has pre-configured settings for most popular `Embedded Boards `_. -* Colourful `command-line output `_ +* Colourful `command-line output `_ * Built-in `Serial Port Monitor `_ * Configurable `build -flags/-options `_ * Automatic **firmware uploading** @@ -65,7 +69,7 @@ settings for most popular `Embedded Boards `_. * Ready for **Cloud Compiling** and **Continuous Integration** * Pre-built tool chains, frameworks for the popular `Hardware Platforms `_ -.. image:: https://raw.githubusercontent.com/ivankravets/platformio-web/develop/app/images/platformio-embedded-development.png +.. image:: https://raw.githubusercontent.com/platformio/platformio-web/develop/app/images/platformio-embedded-development.png :target: http://platformio.org :alt: PlatformIO Embedded Development Process @@ -76,13 +80,13 @@ platforms which allows you to organize and have up-to-date external libraries. * Friendly `Command-Line Interface `_ * Modern `Web 2.0 Library Search `_ -* Open Source `Library Registry API `_ +* Open Source `Library Registry API `_ * Library Crawler based on `library.json `_ specification * Library **dependency management** * Automatic library updating -.. image:: https://raw.githubusercontent.com/ivankravets/platformio-web/develop/app/images/platformio-library-manager.png +.. image:: https://raw.githubusercontent.com/platformio/platformio-web/develop/app/images/platformio-library-manager.png :target: http://platformio.org :alt: PlatformIO Library Manager Architecture @@ -98,7 +102,7 @@ cross-platform substitute for the classic *Make* utility. * Ability to share *built files in a cache* * Lookup for external libraries which are installed via `Library Manager `_ -.. image:: https://raw.githubusercontent.com/ivankravets/platformio-web/develop/app/images/platformio-scons-builder.png +.. image:: https://raw.githubusercontent.com/platformio/platformio-web/develop/app/images/platformio-scons-builder.png :target: http://platformio.org :alt: PlatformIO Code Builder Architecture diff --git a/docs/_static/ide-sublime-text-platformio-newproject-1.png b/docs/_static/ide-sublime-text-platformio-newproject-1.png new file mode 100644 index 00000000..6432124e Binary files /dev/null and b/docs/_static/ide-sublime-text-platformio-newproject-1.png differ diff --git a/docs/_static/ide-sublime-text-platformio-newproject-2.png b/docs/_static/ide-sublime-text-platformio-newproject-2.png new file mode 100644 index 00000000..45188c04 Binary files /dev/null and b/docs/_static/ide-sublime-text-platformio-newproject-2.png differ diff --git a/docs/_static/ide-sublime-text-platformio-newproject-3.png b/docs/_static/ide-sublime-text-platformio-newproject-3.png new file mode 100644 index 00000000..6f980c0f Binary files /dev/null and b/docs/_static/ide-sublime-text-platformio-newproject-3.png differ diff --git a/docs/_static/ide-sublime-text-platformio-newproject-4.png b/docs/_static/ide-sublime-text-platformio-newproject-4.png new file mode 100644 index 00000000..aaee5561 Binary files /dev/null and b/docs/_static/ide-sublime-text-platformio-newproject-4.png differ diff --git a/docs/_static/ide-sublime-text-platformio-newproject-5.png b/docs/_static/ide-sublime-text-platformio-newproject-5.png new file mode 100644 index 00000000..8cffe145 Binary files /dev/null and b/docs/_static/ide-sublime-text-platformio-newproject-5.png differ diff --git a/docs/_static/ide-vs-platformio-newproject-2-1.png b/docs/_static/ide-vs-platformio-newproject-2-1.png new file mode 100644 index 00000000..f00196f1 Binary files /dev/null and b/docs/_static/ide-vs-platformio-newproject-2-1.png differ diff --git a/docs/_static/ide-vs-platformio-newproject-2.png b/docs/_static/ide-vs-platformio-newproject-2.png new file mode 100644 index 00000000..3ccf136c Binary files /dev/null and b/docs/_static/ide-vs-platformio-newproject-2.png differ diff --git a/docs/_static/ide-vs-platformio-newproject-3.png b/docs/_static/ide-vs-platformio-newproject-3.png new file mode 100644 index 00000000..763f8e05 Binary files /dev/null and b/docs/_static/ide-vs-platformio-newproject-3.png differ diff --git a/docs/_static/ide-vs-platformio-newproject-4.png b/docs/_static/ide-vs-platformio-newproject-4.png new file mode 100644 index 00000000..78ebc601 Binary files /dev/null and b/docs/_static/ide-vs-platformio-newproject-4.png differ diff --git a/docs/_static/ide-vs-platformio-newproject-5.png b/docs/_static/ide-vs-platformio-newproject-5.png new file mode 100644 index 00000000..bcae88e1 Binary files /dev/null and b/docs/_static/ide-vs-platformio-newproject-5.png differ diff --git a/docs/_static/ide-vs-platformio-newproject-6.png b/docs/_static/ide-vs-platformio-newproject-6.png new file mode 100644 index 00000000..fb51d40f Binary files /dev/null and b/docs/_static/ide-vs-platformio-newproject-6.png differ diff --git a/docs/_static/ide-vs-platformio-newproject-7.png b/docs/_static/ide-vs-platformio-newproject-7.png new file mode 100644 index 00000000..e5112405 Binary files /dev/null and b/docs/_static/ide-vs-platformio-newproject-7.png differ diff --git a/docs/_static/ide-vs-platformio-newproject-8.png b/docs/_static/ide-vs-platformio-newproject-8.png new file mode 100644 index 00000000..708269ba Binary files /dev/null and b/docs/_static/ide-vs-platformio-newproject-8.png differ diff --git a/docs/_static/ide-vs-platformio-newproject.png b/docs/_static/ide-vs-platformio-newproject.png new file mode 100644 index 00000000..a7279a54 Binary files /dev/null and b/docs/_static/ide-vs-platformio-newproject.png differ diff --git a/docs/articles.rst b/docs/articles.rst new file mode 100644 index 00000000..de800f62 --- /dev/null +++ b/docs/articles.rst @@ -0,0 +1,16 @@ +.. _articles: + +Articles about us +================= + +.. note:: + If you've writeen article about PlatformIO and would like it listed on + this page, `please edit this page `_. + +Here are recent articles about PlatformIO: + +* March 23, 2015 - **Atmel** - `Cross-board and cross-vendor embedded development with PlatformIO `_ +* March 22, 2015 - **Mark VandeWettering** - `Discovered a new tool for embedded development: PlatformIO `_ +* October 7, 2014 - **Ivan Kravets** - `Integration of PlatformIO library manager to Arduino and Energia IDEs `_ +* June 20, 2014 - **Ivan Kravets** - `Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO `_ +* June 17, 2014 - **Ivan Kravets** - `How was PlatformIO born or why I love Python World `_ \ No newline at end of file diff --git a/docs/frameworks/arduino.rst b/docs/frameworks/arduino.rst index 6215048c..1b4610b6 100644 --- a/docs/frameworks/arduino.rst +++ b/docs/frameworks/arduino.rst @@ -57,28 +57,28 @@ Adafruit - 2.5 Kb * - ``protrinket3`` - - `Pro Trinket 3V/12MHz (USB) `_ + - `Adafruit Pro Trinket 3V/12MHz (USB) `_ - ATMEGA328P - 12 MHz - 32 Kb - 2 Kb * - ``protrinket3ftdi`` - - `Pro Trinket 3V/12MHz (FTDI) `_ + - `Adafruit Pro Trinket 3V/12MHz (FTDI) `_ - ATMEGA328P - 16 MHz - 32 Kb - 2 Kb * - ``protrinket5`` - - `Pro Trinket 5V/16MHz (USB) `_ + - `Adafruit Pro Trinket 5V/16MHz (USB) `_ - ATMEGA328P - 16 MHz - 32 Kb - 2 Kb * - ``protrinket5ftdi`` - - `Pro Trinket 5V/16MHz (USB) `_ + - `Adafruit Pro Trinket 5V/16MHz (USB) `_ - ATMEGA328P - 16 MHz - 32 Kb @@ -112,7 +112,7 @@ Arduino - RAM * - ``LilyPadUSB`` - - `LilyPad Arduino USB `_ + - `Arduino LilyPad USB `_ - ATMEGA32U4 - 8 MHz - 32 Kb @@ -203,14 +203,14 @@ Arduino - 2.5 Kb * - ``lilypadatmega168`` - - `LilyPad Arduino ATmega168 `_ + - `Arduino LilyPad ATmega168 `_ - ATMEGA168 - 8 MHz - 16 Kb - 1 Kb * - ``lilypadatmega328`` - - `LilyPad Arduino ATmega328 `_ + - `Arduino LilyPad ATmega328 `_ - ATMEGA328P - 8 MHz - 32 Kb @@ -342,7 +342,7 @@ BitWizard - RAM * - ``raspduino`` - - `Raspduino `_ + - `BitWizard Raspduino `_ - ATMEGA328P - 16 MHz - 32 Kb @@ -362,28 +362,28 @@ Digistump - RAM * - ``digispark-pro`` - - `Digispark Pro (Default 16 MHz) `_ + - `Digistump Digispark Pro (Default 16 MHz) `_ - ATTINY167 - 16 MHz - 16 Kb - 0.5 Kb * - ``digispark-pro32`` - - `Digispark Pro (16 MHz) (32 byte buffer) `_ + - `Digistump Digispark Pro (16 MHz) (32 byte buffer) `_ - ATTINY167 - 16 MHz - 16 Kb - 0.5 Kb * - ``digispark-pro64`` - - `Digispark Pro (16 MHz) (64 byte buffer) `_ + - `Digistump Digispark Pro (16 MHz) (64 byte buffer) `_ - ATTINY167 - 16 MHz - 16 Kb - 0.5 Kb * - ``digispark-tiny`` - - `Digispark (Default - 16 MHz) `_ + - `Digistump Digispark (Default - 16 MHz) `_ - ATTINY85 - 16 MHz - 8 Kb @@ -533,6 +533,26 @@ PanStamp - 32 Kb - 4 Kb +RepRap +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``reprap_rambo`` + - `RepRap RAMBo `_ + - ATMEGA2560 + - 16 MHz + - 256 Kb + - 8 Kb + SainSmart ~~~~~~~~~ @@ -560,6 +580,116 @@ SainSmart - 512 Kb - 32 Kb +Sanguino +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``sanguino_atmega12848m`` + - `Sanguino ATmega1284p (8MHz) `_ + - ATMEGA1284P + - 8 MHz + - 128 Kb + - 16 Kb + + * - ``sanguino_atmega1284m`` + - `Sanguino ATmega1284p (20MHz) `_ + - ATMEGA1284P + - 20 MHz + - 128 Kb + - 16 Kb + + * - ``sanguino_atmega1284p`` + - `Sanguino ATmega1284p (16MHz) `_ + - ATMEGA1284P + - 16 MHz + - 128 Kb + - 16 Kb + + * - ``sanguino_atmega644p`` + - `Sanguino ATmega644P `_ + - ATMEGA644P + - 16 MHz + - 64 Kb + - 4 Kb + +SparkFun +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``sparkfun_fiov3`` + - `SparkFun Fio V3 3.3V/8MHz `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_makeymakey`` + - `SparkFun Makey Makey `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_megamini`` + - `SparkFun Mega Pro Mini 3.3V `_ + - ATMEGA2560 + - 8 MHz + - 256 Kb + - 8 Kb + + * - ``sparkfun_megapro16MHz`` + - `SparkFun Mega Pro 5V/16MHz `_ + - ATMEGA2560 + - 16 MHz + - 256 Kb + - 8 Kb + + * - ``sparkfun_megapro8MHz`` + - `SparkFun Mega Pro 3.3V/8MHz `_ + - ATMEGA2560 + - 8 MHz + - 256 Kb + - 8 Kb + + * - ``sparkfun_promicro16`` + - `SparkFun Pro Micro 5V/16MHz `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_promicro8`` + - `SparkFun Pro Micro 3.3V/8MHz `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_redboard`` + - `SparkFun RedBoard `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + Teensy ~~~~~~ diff --git a/docs/frameworks/cmsis.rst b/docs/frameworks/cmsis.rst index 2bdf474e..7824155e 100644 --- a/docs/frameworks/cmsis.rst +++ b/docs/frameworks/cmsis.rst @@ -41,21 +41,21 @@ ST - RAM * - ``disco_f303vc`` - - `STM32F3DISCOVERY `_ + - `ST STM32F3DISCOVERY `_ - STM32F303VCT6 - 72 MHz - 256 Kb - 48 Kb * - ``disco_f407vg`` - - `STM32F4DISCOVERY `_ + - `ST STM32F4DISCOVERY `_ - STM32F407VGT6 - 168 MHz - 1024 Kb - 128 Kb * - ``disco_l152rb`` - - `STM32LDISCOVERY `_ + - `ST STM32LDISCOVERY `_ - STM32L152RBT6 - 32 MHz - 128 Kb diff --git a/docs/frameworks/energia.rst b/docs/frameworks/energia.rst index 56826b10..0f2b4397 100644 --- a/docs/frameworks/energia.rst +++ b/docs/frameworks/energia.rst @@ -44,70 +44,70 @@ TI - RAM * - ``lplm4f120h5qr`` - - `LaunchPad (Stellaris) w/ lm4f120 (80MHz) `_ + - `TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) `_ - LPLM4F120H5QR - 80 MHz - 256 Kb - 32 Kb * - ``lpmsp430f5529`` - - `LaunchPad w/ msp430f5529 (16MHz) `_ + - `TI LaunchPad w/ msp430f5529 (16MHz) `_ - MSP430F5529 - 16 MHz - 128 Kb - 1 Kb * - ``lpmsp430f5529_25`` - - `LaunchPad w/ msp430f5529 (25MHz) `_ + - `TI LaunchPad w/ msp430f5529 (25MHz) `_ - MSP430F5529 - 25 MHz - 128 Kb - 1 Kb * - ``lpmsp430fr5739`` - - `FraunchPad w/ msp430fr5739 `_ + - `TI FraunchPad w/ msp430fr5739 `_ - MSP430FR5739 - 16 MHz - 16 Kb - 1 Kb * - ``lpmsp430fr5969`` - - `LaunchPad w/ msp430fr5969 `_ + - `TI LaunchPad w/ msp430fr5969 `_ - MSP430FR5969 - 8 MHz - 64 Kb - 1 Kb * - ``lpmsp430g2231`` - - `LaunchPad w/ msp430g2231 (1 MHz) `_ + - `TI LaunchPad w/ msp430g2231 (1 MHz) `_ - MSP430G2231 - 1 MHz - 2 Kb - 0.125 Kb * - ``lpmsp430g2452`` - - `LaunchPad w/ msp430g2452 (16MHz) `_ + - `TI LaunchPad w/ msp430g2452 (16MHz) `_ - MSP430G2452 - 16 MHz - 8 Kb - 0.25 Kb * - ``lpmsp430g2553`` - - `LaunchPad w/ msp430g2553 (16MHz) `_ + - `TI LaunchPad w/ msp430g2553 (16MHz) `_ - MSP430G2553 - 16 MHz - 16 Kb - 0.5 Kb * - ``lptm4c1230c3pm`` - - `LaunchPad (Tiva C) w/ tm4c123 (80MHz) `_ + - `TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) `_ - LPTM4C1230C3PM - 80 MHz - 256 Kb - 32 Kb * - ``lptm4c1294ncpdt`` - - `LaunchPad (Tiva C) w/ tm4c129 (120MHz) `_ + - `TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) `_ - LPTM4C1294NCPDT - 120 MHz - 1024 Kb diff --git a/docs/frameworks/libopencm3.rst b/docs/frameworks/libopencm3.rst index be36dbd9..dfde004a 100644 --- a/docs/frameworks/libopencm3.rst +++ b/docs/frameworks/libopencm3.rst @@ -44,21 +44,21 @@ ST - RAM * - ``disco_f303vc`` - - `STM32F3DISCOVERY `_ + - `ST STM32F3DISCOVERY `_ - STM32F303VCT6 - 72 MHz - 256 Kb - 48 Kb * - ``disco_f407vg`` - - `STM32F4DISCOVERY `_ + - `ST STM32F4DISCOVERY `_ - STM32F407VGT6 - 168 MHz - 1024 Kb - 128 Kb * - ``disco_l152rb`` - - `STM32LDISCOVERY `_ + - `ST STM32LDISCOVERY `_ - STM32L152RBT6 - 32 MHz - 128 Kb @@ -78,21 +78,21 @@ TI - RAM * - ``lplm4f120h5qr`` - - `LaunchPad (Stellaris) w/ lm4f120 (80MHz) `_ + - `TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) `_ - LPLM4F120H5QR - 80 MHz - 256 Kb - 32 Kb * - ``lptm4c1230c3pm`` - - `LaunchPad (Tiva C) w/ tm4c123 (80MHz) `_ + - `TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) `_ - LPTM4C1230C3PM - 80 MHz - 256 Kb - 32 Kb * - ``lptm4c1294ncpdt`` - - `LaunchPad (Tiva C) w/ tm4c129 (120MHz) `_ + - `TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) `_ - LPTM4C1294NCPDT - 120 MHz - 1024 Kb diff --git a/docs/frameworks/mbed.rst b/docs/frameworks/mbed.rst index 98436f12..3bea58b5 100644 --- a/docs/frameworks/mbed.rst +++ b/docs/frameworks/mbed.rst @@ -50,7 +50,7 @@ CQ Publishing - RAM * - ``lpc11u35_501`` - - `TG-LPC11U35-501 `_ + - `CQ Publishing TG-LPC11U35-501 `_ - LPC11U35 - 48 MHz - 64 Kb @@ -70,21 +70,21 @@ Embedded Artists - RAM * - ``lpc11u35`` - - `EA LPC11U35 QuickStart Board `_ + - `Embedded Artists LPC11U35 QuickStart Board `_ - LPC11U35 - 48 MHz - 64 Kb - 10 Kb * - ``lpc4088`` - - `EA LPC4088 QuickStart Board `_ + - `Embedded Artists LPC4088 QuickStart Board `_ - LPC4088 - 120 MHz - 512 Kb - 96 Kb * - ``lpc4088_dm`` - - `EA LPC4088 Display Module `_ + - `Embedded Artists LPC4088 Display Module `_ - LPC4088 - 120 MHz - 512 Kb @@ -186,7 +186,7 @@ NGX Technologies - RAM * - ``blueboard_lpc11u24`` - - `BlueBoard-LPC11U24 `_ + - `NGX Technologies BlueBoard-LPC11U24 `_ - LPC11U24 - 48 MHz - 32 Kb @@ -206,21 +206,21 @@ NXP - RAM * - ``lpc11u24`` - - `mbed LPC11U24 `_ + - `NXP mbed LPC11U24 `_ - LPC11U24 - 48 MHz - 32 Kb - 8 Kb * - ``lpc1549`` - - `LPCXpresso1549 `_ + - `NXP LPCXpresso1549 `_ - LPC1549 - 72 MHz - 256 Kb - 36 Kb * - ``lpc1768`` - - `mbed LPC1768 `_ + - `NXP mbed LPC1768 `_ - LPC1768 - 96 MHz - 512 Kb @@ -321,49 +321,49 @@ ST - RAM * - ``disco_f051r8`` - - `STM32F0DISCOVERY `_ + - `ST STM32F0DISCOVERY `_ - STM32F051R8T6 - 48 MHz - 64 Kb - 8 Kb * - ``disco_f100rb`` - - `STM32VLDISCOVERY `_ + - `ST STM32VLDISCOVERY `_ - STM32F100RBT6 - 24 MHz - 128 Kb - 8 Kb * - ``disco_f303vc`` - - `STM32F3DISCOVERY `_ + - `ST STM32F3DISCOVERY `_ - STM32F303VCT6 - 72 MHz - 256 Kb - 48 Kb * - ``disco_f334c8`` - - `32F3348DISCOVERY `_ + - `ST 32F3348DISCOVERY `_ - STM32F334C8T6 - 72 MHz - 64 Kb - 16 Kb * - ``disco_f401vc`` - - `32F401CDISCOVERY `_ + - `ST 32F401CDISCOVERY `_ - STM32F401VCT6 - 84 MHz - 256 Kb - 64 Kb * - ``disco_f407vg`` - - `STM32F4DISCOVERY `_ + - `ST STM32F4DISCOVERY `_ - STM32F407VGT6 - 168 MHz - 1024 Kb - 128 Kb * - ``disco_f429zi`` - - `32F429IDISCOVERY `_ + - `ST 32F429IDISCOVERY `_ - STM32F429ZIT6 - 180 MHz - 2048 Kb @@ -467,14 +467,14 @@ SeeedStudio - RAM * - ``seeedTinyBLE`` - - `Seeed Tiny BLE `_ + - `SeeedStudio Seeed Tiny BLE `_ - NRF51822 - 16 MHz - 256 Kb - 16 Kb * - ``seeeduinoArchPro`` - - `Seeeduino-Arch-Pro `_ + - `SeeedStudio Seeeduino-Arch-Pro `_ - LPC1768 - 96 MHz - 512 Kb @@ -494,7 +494,7 @@ Solder Splash Labs - RAM * - ``dipcortexm0`` - - `DipCortex M0 `_ + - `Solder Splash Labs DipCortex M0 `_ - LPC11U24 - 50 MHz - 32 Kb @@ -521,7 +521,7 @@ Switch Science - 16 Kb * - ``lpc1114fn28`` - - `mbed LPC1114FN28 `_ + - `Switch Science mbed LPC1114FN28 `_ - LPC1114FN28 - 48 MHz - 32 Kb diff --git a/docs/frameworks/spl.rst b/docs/frameworks/spl.rst index fa4e9cdc..64d91979 100644 --- a/docs/frameworks/spl.rst +++ b/docs/frameworks/spl.rst @@ -41,21 +41,21 @@ ST - RAM * - ``disco_f303vc`` - - `STM32F3DISCOVERY `_ + - `ST STM32F3DISCOVERY `_ - STM32F303VCT6 - 72 MHz - 256 Kb - 48 Kb * - ``disco_f407vg`` - - `STM32F4DISCOVERY `_ + - `ST STM32F4DISCOVERY `_ - STM32F407VGT6 - 168 MHz - 1024 Kb - 128 Kb * - ``disco_l152rb`` - - `STM32LDISCOVERY `_ + - `ST STM32LDISCOVERY `_ - STM32L152RBT6 - 32 MHz - 128 Kb diff --git a/docs/ide.rst b/docs/ide.rst index a7dd0afc..ba74ee60 100644 --- a/docs/ide.rst +++ b/docs/ide.rst @@ -3,62 +3,12 @@ IDE Integration =============== -.. contents:: +.. toctree:: + :maxdepth: 2 -Arduino IDE ------------ - -.. image:: _static/ide-platformio-arduino.png - :target: http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides - -* `Integration of PlatformIO library manager to Arduino IDE `_ - -Eclipse -------- - - -.. image:: _static/ide-platformio-eclipse.png - :target: http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using-eclipse-ideplatformio - -* `Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO `_ -* `More examples (TI MSP430, TI TIVA and etc) `_ - -Energia IDE ------------ - -.. image:: _static/ide-platformio-energia.png - :target: http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides - -* `Integration of PlatformIO library manager to Energia IDE `_ - -VIM ---- - -.. image:: _static/ide-platformio-vim.png - -Recommended bundles: - -* Syntax highlight - `Arduino-syntax-file `_ -* Code Completion - `YouCompleteMe `_ (see configuration example by **Anthony Ford** `PlatformIO/YouCompleteMe Integration `_) -* Syntax checking - `Syntastic `_ - - - -Put to the project directory ``Makefile`` wrapper with contents: - -.. code-block:: make - - # Uncomment lines below if you have problems with $PATH - #SHELL := /bin/bash - #PATH := /usr/local/bin:$(PATH) - - all: - platformio run -t upload - - clean: - platformio run -t clean - - -Now, in VIM ``cd /path/to/this/project`` and press ``Ctrl+B`` or ``Cmd+B`` -(Mac). *PlatformIO* should compile your source code from the ``src`` directory, -make firmware and upload it. + ide/arduino + ide/eclipse + ide/energia + ide/sublimetext + ide/vim + ide/visualstudio diff --git a/docs/ide/arduino.rst b/docs/ide/arduino.rst new file mode 100644 index 00000000..7cd3b3a5 --- /dev/null +++ b/docs/ide/arduino.rst @@ -0,0 +1,31 @@ +.. _ide_arduino: + +Arduino +======= + +The open-source `Arduino Software (IDE) `_ +makes it easy to write code and upload it to the board. It runs on *Windows, +Mac OS X, and Linux*. The environment is written in *Java* and based on +*Processing* and other open-source software. + +This software can be used with: + +* :ref:`platform_atmelavr` +* :ref:`platform_atmelsam` +* :ref:`framework_arduino` + +Refer to the `Arduino Getting Started `_ +page for Installation instructions. + +Integration +----------- + +More detailed information is located in PlatformIO blog: +`Integration of PlatformIO library manager to Arduino IDE `_. + + +Screenshot +---------- + +.. image:: ../_static/ide-platformio-arduino.png + :target: http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides diff --git a/docs/ide/eclipse.rst b/docs/ide/eclipse.rst new file mode 100644 index 00000000..6fd8fae1 --- /dev/null +++ b/docs/ide/eclipse.rst @@ -0,0 +1,35 @@ +.. _ide_eclipse: + +Eclipse +======= + +The `Eclipse CDT (C/C++ Development Tooling) `_ +Project provides a fully functional C and C++ Integrated Development +Environment based on the Eclipse platform. Features include: support for +project creation and managed build for various toolchains, standard make +build, source navigation, various source knowledge tools, such as type +hierarchy, call graph, include browser, macro definition browser, code editor +with syntax highlighting, folding and hyperlink navigation, source code +refactoring and code generation, visual debugging tools, including memory, +registers, and disassembly viewers. + +This software can be used with: + +* all availalbe :ref:`platforms` +* all availalbe :ref:`frameworks` + +Refer to the `CDT Documentation `_ +page for more detailed information. + +Integration +----------- + +More detailed information is located in PlatformIO blog: `Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO `_. + +`More examples (TI MSP430, TI TIVA, etc.) `_ + +Screenshot +---------- + +.. image:: ../_static/ide-platformio-eclipse.png + :target: http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using- eclipse-ideplatformio diff --git a/docs/ide/energia.rst b/docs/ide/energia.rst new file mode 100644 index 00000000..d047e2d0 --- /dev/null +++ b/docs/ide/energia.rst @@ -0,0 +1,30 @@ +.. _ide_energia: + +Energia +======= + +The open-source `Energia Software (IDE) `_ +makes it easy to write code and upload it to the board. It runs on *Windows, +Mac OS X, and Linux*. The environment is written in *Java* and based on +*Processing* and other open-source software. + +This software can be used with: + +* :ref:`platform_timsp430` +* :ref:`platform_titiva` +* :ref:`framework_energia` + +Refer to the `Energia Getting Started `_ +page for Installation instructions. + +Integration +----------- + +More detailed information is located in PlatformIO blog: +`Integration of PlatformIO library manager to Energia IDE `_. + +Screenshot +----------- + +.. image:: ../_static/ide-platformio-energia.png + :target: http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides diff --git a/docs/ide/sublimetext.rst b/docs/ide/sublimetext.rst new file mode 100644 index 00000000..7e25f61c --- /dev/null +++ b/docs/ide/sublimetext.rst @@ -0,0 +1,129 @@ +.. _ide_sublimetext: + +Sublime Text +============ + +The `Sublime Text `_ is a cross-platform text and source code editor, with a Python application programming interface (API). Sublime Text is proprietary software. Its functionality is extendable with plugins. Most of the extending packages have free-software licenses and are community-built and maintained. Sublime Text lacks graphical setting dialogues and is entirely configured by editing text files. + +This software can be used with: + +* all availalbe :ref:`platforms` +* all availalbe :ref:`frameworks` + +Refer to the `Sublime Text Documentation `_ +page for more detailed information. + +.. contents:: + +Integration +----------- + +Initial configuration +^^^^^^^^^^^^^^^^^^^^^ + +First of all, we need to create "New Build System" with name "PlatformIO" +from ``Menu: Tools → Build System → New Build System`` and fill it like +described below: + +.. code-block:: bash + + { + "cmd": ["platformio", "run"], + "working_dir": "${project_path:${folder}}", + "variants": + [ + { + "name": "Clean", + "cmd": ["platformio", "run", "-t", "clean"] + }, + { + "name": "Upload", + "cmd": ["platformio", "run", "-t", "upload"] + } + ] + } + +Secondly, we need to select "PlatformIO" Build System from a list: + +.. image:: ../_static/ide-sublime-text-platformio-newproject-2.png + +After that, we can use the necessary commands from +``Menu: Tools → Command Palette`` or with ``Ctrl+Shift+P`` (Windows/Linux) +``Cmd+Shift+P`` (Mac) shortcut. + +.. image:: ../_static/ide-sublime-text-platformio-newproject-3.png + +Command Hotkeys +~~~~~~~~~~~~~~~ + +Sublime Text allows to bind own hotkey per command. Let's setup them +for PlatformIO commands using shortcut ``Menu: Preferences → Key-Bindings - User``: + +.. image:: ../_static/ide-sublime-text-platformio-newproject-4.png + +We are going to use these shortcuts: + +* ``F11`` for clean project +* ``F12`` for upload firmware to target device + +In this case, the final code will look like: + +.. code-block:: none + + [ + { "keys": ["f11"], "command": "build", "args": {"variant": "Clean"} }, + { "keys": ["f12"], "command": "build", "args": {"variant": "Upload"} } + ] + +First program in Sublime Text +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Simple "Blink" project will consist from two files: + +1. Main "C" source file named ``main.c`` must be located in the ``src`` directory. +Let's create new file named ``main.c`` using ``Menu: File → New File`` or shortcut ``Ctrl+N`` (Windows/Linux) ``Cmd+N`` (Mac) with the next contents: + +.. code-block:: c + + #include "Arduino.h" + #define WLED 13 // Most Arduino boards already have an LED attached to pin 13 on the board itself + + void setup() + { + pinMode(WLED, OUTPUT); // set pin as output + } + + void loop() + { + digitalWrite(WLED, HIGH); // set the LED on + delay(1000); // wait for a second + digitalWrite(WLED, LOW); // set the LED off + delay(1000); // wait for a second + } + +2. Project Configuration File named ``platformio.ini`` must be located in the project root directory. +Copy the source code which is described below to it. + +.. code-block:: none + + # + # Project Configuration File + # + # A detailed documentation with the EXAMPLES is located here: + # http://docs.platformio.org/en/latest/projectconf.html + # + + # A sign `#` at the beginning of the line indicates a comment + # Comment lines are ignored. + + [env:arduino_uno] + platform = atmelavr + framework = arduino + board = uno + +Conclusion +---------- + +Taking everything into account, we can open project directory in Sublime Text using ``Menu: File → Open Folder`` and build it with shortcut ``Ctrl+B`` (Windows/Linux) or ``Cmd+B`` (Mac), clean project with shortcut ``F11`` and upload firmware to target with shortcut ``F12``. + +.. image:: ../_static/ide-sublime-text-platformio-newproject-5.png diff --git a/docs/ide/vim.rst b/docs/ide/vim.rst new file mode 100644 index 00000000..1840e510 --- /dev/null +++ b/docs/ide/vim.rst @@ -0,0 +1,46 @@ +.. _ide_vim: + +VIM +=== + +`VIM `_ is an open-source, powerful and configurable text +editor. Vim is designed for use both from a command-line interface and as a +standalone application in a graphical user interface. + +This software can be used with: + +* all availalbe :ref:`platforms` +* all availalbe :ref:`frameworks` + +Integration +----------- + +Recommended bundles: + +* Syntax highlight - `Arduino-syntax-file `_ +* Code Completion - `YouCompleteMe `_ (see configuration example by **Anthony Ford** `PlatformIO/YouCompleteMe Integration `_) +* Syntax checking - `Syntastic `_ + +Put to the project directory ``Makefile`` wrapper with contents: + +.. code-block:: make + + # Uncomment lines below if you have problems with $PATH + #SHELL := /bin/bash + #PATH := /usr/local/bin:$(PATH) + + all: + platformio run -t upload + + clean: + platformio run -t clean + + +Now, in VIM ``cd /path/to/this/project`` and press ``Ctrl+B`` or ``Cmd+B`` +(Mac). *PlatformIO* should compile your source code from the ``src`` directory, +make firmware and upload it. + +Screenshot +---------- + +.. image:: ../_static/ide-platformio-vim.png diff --git a/docs/ide/visualstudio.rst b/docs/ide/visualstudio.rst new file mode 100644 index 00000000..385f91da --- /dev/null +++ b/docs/ide/visualstudio.rst @@ -0,0 +1,108 @@ +.. _ide_visualstudio: + +Visual Studio +============= + +The `Microsoft Visual Studio `_ is an integrated development environment (IDE) from Microsoft. Visual Studio includes a code editor supporting IntelliSense (the code completion component) as well as code refactoring. + +This software can be used with: + +* all availalbe :ref:`platforms` +* all availalbe :ref:`frameworks` + +Refer to the `Visual Studio Documentation `_ +page for more detailed information. + +.. contents:: + +Integration +----------- + +Setup New Project +^^^^^^^^^^^^^^^^^ + +First of all, let's create new project from Visual Studio Start Page: ``Start → New Project`` or using ``Menu: File → New → Project``, then select project with ``Makefile`` type (``Visual C++ → General → Makefile Project``), fill ``Project name``, ``Solution name``, ``Location`` fields and press OK button. + +.. image:: ../_static/ide-vs-platformio-newproject.png + +Secondly, we need to configure project with PlatformIO source code builder: + +.. image:: ../_static/ide-vs-platformio-newproject-2.png + +If we want to use native AVR programming, we have to specify additional preprocessor symbol ("Preprocessor definitions" field) about your MCU. For example, an Arduino Uno is based on the ATmega328 MCU. In this case We will add new definition ``__AVR_ATmega328__``. + +.. image:: ../_static/ide-vs-platformio-newproject-2-1.png + +Release Configuration is the same as Debug, so on the next step we check "Same as Debug Configuration" and click "Finish" button. + +.. image:: ../_static/ide-vs-platformio-newproject-3.png + +Thirdly, we need to add directories with header files using project properties (right click on the project name or ``Alt-Enter`` shortcut) and add two directories to ``Configuration Properties → NMake → Include Search Path``: + +.. code-block:: none + + $(HOMEDRIVE)$(HOMEPATH)\.platformio\packages\toolchain-atmelavr\avr\include + $(HOMEDRIVE)$(HOMEPATH)\.platformio\packages\framework-arduinoavr\cores\arduino + +.. image:: ../_static/ide-vs-platformio-newproject-5.png + +First program in Visual Studio +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Simple "Blink" project will consist from two files: + +1. Main "C" source file named ``main.c`` must be located in the ``src`` directory. +Let's create new file named ``main.c`` using ``Menu: File → New File`` or shortcut ``Ctrl+N``: + +.. image:: ../_static/ide-vs-platformio-newproject-6.png + +Copy the source code which is described below to file ``main.c``. + +.. code-block:: c + + #include "Arduino.h" + #define WLED 13 // Most Arduino boards already have an LED attached to pin 13 on the board itself + + void setup() + { + pinMode(WLED, OUTPUT); // set pin as output + } + + void loop() + { + digitalWrite(WLED, HIGH); // set the LED on + delay(1000); // wait for a second + digitalWrite(WLED, LOW); // set the LED off + delay(1000); // wait for a second + } + +2. Project Configuration File named ``platformio.ini`` must be located in the project root directory. + +.. image:: ../_static/ide-vs-platformio-newproject-7.png + +Copy the source code which is described below to it. + +.. code-block:: none + + # + # Project Configuration File + # + # A detailed documentation with the EXAMPLES is located here: + # http://docs.platformio.org/en/latest/projectconf.html + # + + # A sign `#` at the beginning of the line indicates a comment + # Comment lines are ignored. + + [env:arduino_uno] + platform = atmelavr + framework = arduino + board = uno + + +Conclusion +---------- + +Taking everything into account, we can build project with shortcut ``Ctrl+Shift+B`` or using ``Menu: Build → Build Solution``: + +.. image:: ../_static/ide-vs-platformio-newproject-8.png diff --git a/docs/index.rst b/docs/index.rst index 5cadf2bc..2f46d604 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,15 +1,20 @@ PlatformIO: A cross-platform code builder and the missing library manager ========================================================================= +*Atmel AVR & SAM, Freescale Kinetis, Nordic nRF51, NXP LPC, ST STM32, +TI MSP430 & Tiva, Teensy, Arduino, mbed, libOpenCM3, etc.* + .. image:: _static/platformio-logo.png :target: http://platformio.org -`Website + Library Search `_ | -`Project Examples `_ | -`Source Code `_ | -`Issues `_ | -`Blog `_ | -`Twitter `_ +* `Website `_ +* `Web 2.0 Library Search `_ | + `Embedded Boards Explorer `_ +* `Project Examples `_ +* `Source Code `_ | + `Issues `_ +* `Blog `_ | + `Twitter `_ You have no need to install any *IDE* or compile any tool chains. *PlatformIO* has pre-built different development platforms including: compiler, debugger, @@ -63,4 +68,5 @@ Contents librarymanager/index userguide/index ide + articles history diff --git a/docs/installation.rst b/docs/installation.rst index 88d0edd3..75e566a5 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -49,14 +49,14 @@ To install or upgrade *PlatformIO* paste that at a *Terminal* prompt .. code-block:: bash - python -c "$(curl -fsSL https://raw.githubusercontent.com/ivankravets/platformio/master/scripts/get-platformio.py)" + python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)" Installer Script (Mac / Linux / Windows) ---------------------------------------- To install or upgrade *PlatformIO*, download -`get-platformio.py `_ +`get-platformio.py `_ script. Then run the following (you might need to run ``sudo`` first): .. code-block:: bash @@ -136,8 +136,8 @@ Development Version .. code-block:: bash - $ pip install https://github.com/ivankravets/platformio/archive/develop.zip + $ pip install https://github.com/platformio/platformio/archive/develop.zip If you want to be up-to-date with the latest ``develop`` version of PlatformIO, then you need to perform step #2 each time if you see the new commits in -`PlatformIO GitHub repository `_. +`PlatformIO GitHub repository `_. diff --git a/docs/librarymanager/creating.rst b/docs/librarymanager/creating.rst index b72d8e70..1db24f56 100644 --- a/docs/librarymanager/creating.rst +++ b/docs/librarymanager/creating.rst @@ -15,7 +15,7 @@ Source Code Location -------------------- There are a several ways how to share your library with the whole world -(see `examples `_). +(see `examples `_). You can hold a lot of libraries (split into separated folders) inside one of the repository/archive. In this case please use :ref:`libjson_include` diff --git a/docs/platforms/atmelavr.rst b/docs/platforms/atmelavr.rst index bd8bcead..fbbf6cc0 100644 --- a/docs/platforms/atmelavr.rst +++ b/docs/platforms/atmelavr.rst @@ -31,7 +31,7 @@ Packages .. warning:: **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). + `99-platformio-udev.rules `_ (an instruction is located in the file). @@ -76,28 +76,28 @@ Adafruit - 2.5 Kb * - ``protrinket3`` - - `Pro Trinket 3V/12MHz (USB) `_ + - `Adafruit Pro Trinket 3V/12MHz (USB) `_ - ATMEGA328P - 12 MHz - 32 Kb - 2 Kb * - ``protrinket3ftdi`` - - `Pro Trinket 3V/12MHz (FTDI) `_ + - `Adafruit Pro Trinket 3V/12MHz (FTDI) `_ - ATMEGA328P - 16 MHz - 32 Kb - 2 Kb * - ``protrinket5`` - - `Pro Trinket 5V/16MHz (USB) `_ + - `Adafruit Pro Trinket 5V/16MHz (USB) `_ - ATMEGA328P - 16 MHz - 32 Kb - 2 Kb * - ``protrinket5ftdi`` - - `Pro Trinket 5V/16MHz (USB) `_ + - `Adafruit Pro Trinket 5V/16MHz (USB) `_ - ATMEGA328P - 16 MHz - 32 Kb @@ -131,7 +131,7 @@ Arduino - RAM * - ``LilyPadUSB`` - - `LilyPad Arduino USB `_ + - `Arduino LilyPad USB `_ - ATMEGA32U4 - 8 MHz - 32 Kb @@ -208,14 +208,14 @@ Arduino - 2.5 Kb * - ``lilypadatmega168`` - - `LilyPad Arduino ATmega168 `_ + - `Arduino LilyPad ATmega168 `_ - ATMEGA168 - 8 MHz - 16 Kb - 1 Kb * - ``lilypadatmega328`` - - `LilyPad Arduino ATmega328 `_ + - `Arduino LilyPad ATmega328 `_ - ATMEGA328P - 8 MHz - 32 Kb @@ -347,7 +347,7 @@ BitWizard - RAM * - ``raspduino`` - - `Raspduino `_ + - `BitWizard Raspduino `_ - ATMEGA328P - 16 MHz - 32 Kb @@ -367,28 +367,28 @@ Digistump - RAM * - ``digispark-pro`` - - `Digispark Pro (Default 16 MHz) `_ + - `Digistump Digispark Pro (Default 16 MHz) `_ - ATTINY167 - 16 MHz - 16 Kb - 0.5 Kb * - ``digispark-pro32`` - - `Digispark Pro (16 MHz) (32 byte buffer) `_ + - `Digistump Digispark Pro (16 MHz) (32 byte buffer) `_ - ATTINY167 - 16 MHz - 16 Kb - 0.5 Kb * - ``digispark-pro64`` - - `Digispark Pro (16 MHz) (64 byte buffer) `_ + - `Digistump Digispark Pro (16 MHz) (64 byte buffer) `_ - ATTINY167 - 16 MHz - 16 Kb - 0.5 Kb * - ``digispark-tiny`` - - `Digispark (Default - 16 MHz) `_ + - `Digistump Digispark (Default - 16 MHz) `_ - ATTINY85 - 16 MHz - 8 Kb @@ -523,3 +523,133 @@ PanStamp - 8 MHz - 32 Kb - 2 Kb + +RepRap +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``reprap_rambo`` + - `RepRap RAMBo `_ + - ATMEGA2560 + - 16 MHz + - 256 Kb + - 8 Kb + +Sanguino +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``sanguino_atmega12848m`` + - `Sanguino ATmega1284p (8MHz) `_ + - ATMEGA1284P + - 8 MHz + - 128 Kb + - 16 Kb + + * - ``sanguino_atmega1284m`` + - `Sanguino ATmega1284p (20MHz) `_ + - ATMEGA1284P + - 20 MHz + - 128 Kb + - 16 Kb + + * - ``sanguino_atmega1284p`` + - `Sanguino ATmega1284p (16MHz) `_ + - ATMEGA1284P + - 16 MHz + - 128 Kb + - 16 Kb + + * - ``sanguino_atmega644p`` + - `Sanguino ATmega644P `_ + - ATMEGA644P + - 16 MHz + - 64 Kb + - 4 Kb + +SparkFun +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``sparkfun_fiov3`` + - `SparkFun Fio V3 3.3V/8MHz `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_makeymakey`` + - `SparkFun Makey Makey `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_megamini`` + - `SparkFun Mega Pro Mini 3.3V `_ + - ATMEGA2560 + - 8 MHz + - 256 Kb + - 8 Kb + + * - ``sparkfun_megapro16MHz`` + - `SparkFun Mega Pro 5V/16MHz `_ + - ATMEGA2560 + - 16 MHz + - 256 Kb + - 8 Kb + + * - ``sparkfun_megapro8MHz`` + - `SparkFun Mega Pro 3.3V/8MHz `_ + - ATMEGA2560 + - 8 MHz + - 256 Kb + - 8 Kb + + * - ``sparkfun_promicro16`` + - `SparkFun Pro Micro 5V/16MHz `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_promicro8`` + - `SparkFun Pro Micro 3.3V/8MHz `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_redboard`` + - `SparkFun RedBoard `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb diff --git a/docs/platforms/atmelsam.rst b/docs/platforms/atmelsam.rst index a8e78bed..12b77aa8 100644 --- a/docs/platforms/atmelsam.rst +++ b/docs/platforms/atmelsam.rst @@ -31,7 +31,7 @@ Packages .. warning:: **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). + `99-platformio-udev.rules `_ (an instruction is located in the file). diff --git a/docs/platforms/creating_platform.rst b/docs/platforms/creating_platform.rst index 9865beec..42555ffd 100644 --- a/docs/platforms/creating_platform.rst +++ b/docs/platforms/creating_platform.rst @@ -40,67 +40,70 @@ Packages :header-rows: 1 * - Name - - Alias - Contents - * - ``toolchain-gccarmnoneeabi`` - - toolchain - - `gcc-arm-embedded `_, - `GDB `_ - * - ``toolchain-atmelavr`` - - toolchain - - `avr-gcc `_, - `GDB `_, - `AVaRICE `_, - `SimulAVR `_ - * - ``toolchain-timsp430`` - - toolchain - - `msp-gcc `_, - `GDB `_ - * - ``tool-avrdude`` - - uploader - - `AVRDUDE `_ - * - ``tool-bossac`` - - uploader - - `BOSSA CLI `_ - * - ``tool-micronucleus`` - - uploader - - `Micronucleus `_ - * - ``tool-mspdebug`` - - uploader - - `MSPDebug `_ - * - ``tool-lm4flash`` - - uploader - - `Flash Programmer `_ - * - ``tool-stlink`` - - uploader - - `STLink `_ - * - ``tool-teensy`` - - uploader - - `Teensy Loader `_ + * - ``framework-arduinoavr`` - - - - `Arduino Wiring-based Framework (AVR Core, 1.6 branch) `_ + - `Arduino Wiring-based Framework (AVR Core, 1.6) `_ + + * - ``framework-arduinomsp430`` + - `Arduino Wiring-based Framework (MSP430 Core) `_ + * - ``framework-arduinosam`` - - - - `Arduino Wiring-based Framework (SAM Core, 1.6 branch) `_ + - `Arduino Wiring-based Framework (SAM Core, 1.6) `_ + * - ``framework-arduinoteensy`` - - - `Arduino Wiring-based Framework `_ - * - ``framework-energiamsp430`` - - - - `Energia Wiring-based Framework (MSP430 Core) `_ - * - ``framework-energiativa`` - - - - `Energia Wiring-based Framework (LM4F Core) `_ + * - ``framework-cmsis`` - - - `Vendor-independent hardware abstraction layer for the Cortex-M processor series `_ + + * - ``framework-energiamsp430`` + - `Energia Wiring-based Framework (MSP430 Core) `_ + + * - ``framework-energiativa`` + - `Energia Wiring-based Framework (LM4F Core) `_ + + * - ``framework-libopencm3`` + - `libOpenCM3 Framework `_ + + * - ``framework-mbed`` + - `mbed Framework `_ + * - ``framework-spl`` - - - `Standard Peripheral Library for STM32 MCUs `_ - * - ``framework-opencm3`` - - - - `libOpenCM3 Framework `_ + + * - ``ldscripts`` + - `Linker Scripts `_ + + * - ``tool-avrdude`` + - `AVRDUDE `_ + + * - ``tool-bossac`` + - `BOSSA CLI `_ + + * - ``tool-lm4flash`` + - `Flash Programmer `_ + + * - ``tool-micronucleus`` + - `Micronucleus `_ + + * - ``tool-mspdebug`` + - `MSPDebug `_ + + * - ``tool-stlink`` + - `ST-Link `_ + + * - ``tool-teensy`` + - `Teensy Loader `_ + + * - ``toolchain-atmelavr`` + - `avr-gcc `_, `GDB `_, `AVaRICE `_, `SimulAVR `_ + + * - ``toolchain-gccarmnoneeabi`` + - `gcc-arm-embedded `_, `GDB `_ + + * - ``toolchain-timsp430`` + - `msp-gcc `_, `GDB `_ .. _platform_creating_manifest_file: @@ -238,7 +241,7 @@ base template of ``test-builder.py``. ) # The source code of "platformio-build-tool" is here - # https://github.com/ivankravets/platformio/blob/develop/platformio/builder/tools/platformio.py + # https://github.com/platformio/platformio/blob/develop/platformio/builder/tools/platformio.py # # Target: Build executable and linkable firmware @@ -265,9 +268,11 @@ base template of ``test-builder.py``. Please look into the examples with built-in scripts for the popular platforms: -* `atmelavr.py `_ -* `timsp430.py `_ -* `titiva.py `_ +* `baseavr.py `_ +* `basearm.py `_ +* `atmelavr.py `_ +* `timsp430.py `_ +* `ststm32.py `_ .. _platform_creating_installation: diff --git a/docs/platforms/freescalekinetis.rst b/docs/platforms/freescalekinetis.rst index 5f5eed08..3f8bbb03 100644 --- a/docs/platforms/freescalekinetis.rst +++ b/docs/platforms/freescalekinetis.rst @@ -25,7 +25,7 @@ Packages .. warning:: **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). + `99-platformio-udev.rules `_ (an instruction is located in the file). diff --git a/docs/platforms/nordicnrf51.rst b/docs/platforms/nordicnrf51.rst index 04ba9de2..6ae93a56 100644 --- a/docs/platforms/nordicnrf51.rst +++ b/docs/platforms/nordicnrf51.rst @@ -25,7 +25,7 @@ Packages .. warning:: **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). + `99-platformio-udev.rules `_ (an instruction is located in the file). @@ -144,7 +144,7 @@ SeeedStudio - RAM * - ``seeedTinyBLE`` - - `Seeed Tiny BLE `_ + - `SeeedStudio Seeed Tiny BLE `_ - NRF51822 - 16 MHz - 256 Kb diff --git a/docs/platforms/nxplpc.rst b/docs/platforms/nxplpc.rst index fd2ed5ff..1f2e402b 100644 --- a/docs/platforms/nxplpc.rst +++ b/docs/platforms/nxplpc.rst @@ -25,7 +25,7 @@ Packages .. warning:: **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). + `99-platformio-udev.rules `_ (an instruction is located in the file). @@ -63,7 +63,7 @@ CQ Publishing - RAM * - ``lpc11u35_501`` - - `TG-LPC11U35-501 `_ + - `CQ Publishing TG-LPC11U35-501 `_ - LPC11U35 - 48 MHz - 64 Kb @@ -83,21 +83,21 @@ Embedded Artists - RAM * - ``lpc11u35`` - - `EA LPC11U35 QuickStart Board `_ + - `Embedded Artists LPC11U35 QuickStart Board `_ - LPC11U35 - 48 MHz - 64 Kb - 10 Kb * - ``lpc4088`` - - `EA LPC4088 QuickStart Board `_ + - `Embedded Artists LPC4088 QuickStart Board `_ - LPC4088 - 120 MHz - 512 Kb - 96 Kb * - ``lpc4088_dm`` - - `EA LPC4088 Display Module `_ + - `Embedded Artists LPC4088 Display Module `_ - LPC4088 - 120 MHz - 512 Kb @@ -117,7 +117,7 @@ NGX Technologies - RAM * - ``blueboard_lpc11u24`` - - `BlueBoard-LPC11U24 `_ + - `NGX Technologies BlueBoard-LPC11U24 `_ - LPC11U24 - 48 MHz - 32 Kb @@ -137,21 +137,21 @@ NXP - RAM * - ``lpc11u24`` - - `mbed LPC11U24 `_ + - `NXP mbed LPC11U24 `_ - LPC11U24 - 48 MHz - 32 Kb - 8 Kb * - ``lpc1549`` - - `LPCXpresso1549 `_ + - `NXP LPCXpresso1549 `_ - LPC1549 - 72 MHz - 256 Kb - 36 Kb * - ``lpc1768`` - - `mbed LPC1768 `_ + - `NXP mbed LPC1768 `_ - LPC1768 - 96 MHz - 512 Kb @@ -191,7 +191,7 @@ SeeedStudio - RAM * - ``seeeduinoArchPro`` - - `Seeeduino-Arch-Pro `_ + - `SeeedStudio Seeeduino-Arch-Pro `_ - LPC1768 - 96 MHz - 512 Kb @@ -211,7 +211,7 @@ Solder Splash Labs - RAM * - ``dipcortexm0`` - - `DipCortex M0 `_ + - `Solder Splash Labs DipCortex M0 `_ - LPC11U24 - 50 MHz - 32 Kb @@ -231,7 +231,7 @@ Switch Science - RAM * - ``lpc1114fn28`` - - `mbed LPC1114FN28 `_ + - `Switch Science mbed LPC1114FN28 `_ - LPC1114FN28 - 48 MHz - 32 Kb diff --git a/docs/platforms/ststm32.rst b/docs/platforms/ststm32.rst index 78e3f43f..4f2c5e40 100644 --- a/docs/platforms/ststm32.rst +++ b/docs/platforms/ststm32.rst @@ -40,7 +40,7 @@ Packages .. warning:: **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). + `99-platformio-udev.rules `_ (an instruction is located in the file). @@ -87,56 +87,56 @@ ST - RAM * - ``disco_f051r8`` - - `STM32F0DISCOVERY `_ + - `ST STM32F0DISCOVERY `_ - STM32F051R8T6 - 48 MHz - 64 Kb - 8 Kb * - ``disco_f100rb`` - - `STM32VLDISCOVERY `_ + - `ST STM32VLDISCOVERY `_ - STM32F100RBT6 - 24 MHz - 128 Kb - 8 Kb * - ``disco_f303vc`` - - `STM32F3DISCOVERY `_ + - `ST STM32F3DISCOVERY `_ - STM32F303VCT6 - 72 MHz - 256 Kb - 48 Kb * - ``disco_f334c8`` - - `32F3348DISCOVERY `_ + - `ST 32F3348DISCOVERY `_ - STM32F334C8T6 - 72 MHz - 64 Kb - 16 Kb * - ``disco_f401vc`` - - `32F401CDISCOVERY `_ + - `ST 32F401CDISCOVERY `_ - STM32F401VCT6 - 84 MHz - 256 Kb - 64 Kb * - ``disco_f407vg`` - - `STM32F4DISCOVERY `_ + - `ST STM32F4DISCOVERY `_ - STM32F407VGT6 - 168 MHz - 1024 Kb - 128 Kb * - ``disco_f429zi`` - - `32F429IDISCOVERY `_ + - `ST 32F429IDISCOVERY `_ - STM32F429ZIT6 - 180 MHz - 2048 Kb - 256 Kb * - ``disco_l152rb`` - - `STM32LDISCOVERY `_ + - `ST STM32LDISCOVERY `_ - STM32L152RBT6 - 32 MHz - 128 Kb diff --git a/docs/platforms/teensy.rst b/docs/platforms/teensy.rst index 52c18e22..88b2fc05 100644 --- a/docs/platforms/teensy.rst +++ b/docs/platforms/teensy.rst @@ -34,7 +34,7 @@ Packages .. warning:: **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). + `99-platformio-udev.rules `_ (an instruction is located in the file). diff --git a/docs/platforms/timsp430.rst b/docs/platforms/timsp430.rst index b46b7219..913f1970 100644 --- a/docs/platforms/timsp430.rst +++ b/docs/platforms/timsp430.rst @@ -31,7 +31,7 @@ Packages .. warning:: **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). + `99-platformio-udev.rules `_ (an instruction is located in the file). @@ -92,49 +92,49 @@ TI - RAM * - ``lpmsp430f5529`` - - `LaunchPad w/ msp430f5529 (16MHz) `_ + - `TI LaunchPad w/ msp430f5529 (16MHz) `_ - MSP430F5529 - 16 MHz - 128 Kb - 1 Kb * - ``lpmsp430f5529_25`` - - `LaunchPad w/ msp430f5529 (25MHz) `_ + - `TI LaunchPad w/ msp430f5529 (25MHz) `_ - MSP430F5529 - 25 MHz - 128 Kb - 1 Kb * - ``lpmsp430fr5739`` - - `FraunchPad w/ msp430fr5739 `_ + - `TI FraunchPad w/ msp430fr5739 `_ - MSP430FR5739 - 16 MHz - 16 Kb - 1 Kb * - ``lpmsp430fr5969`` - - `LaunchPad w/ msp430fr5969 `_ + - `TI LaunchPad w/ msp430fr5969 `_ - MSP430FR5969 - 8 MHz - 64 Kb - 1 Kb * - ``lpmsp430g2231`` - - `LaunchPad w/ msp430g2231 (1 MHz) `_ + - `TI LaunchPad w/ msp430g2231 (1 MHz) `_ - MSP430G2231 - 1 MHz - 2 Kb - 0.125 Kb * - ``lpmsp430g2452`` - - `LaunchPad w/ msp430g2452 (16MHz) `_ + - `TI LaunchPad w/ msp430g2452 (16MHz) `_ - MSP430G2452 - 16 MHz - 8 Kb - 0.25 Kb * - ``lpmsp430g2553`` - - `LaunchPad w/ msp430g2553 (16MHz) `_ + - `TI LaunchPad w/ msp430g2553 (16MHz) `_ - MSP430G2553 - 16 MHz - 16 Kb diff --git a/docs/platforms/titiva.rst b/docs/platforms/titiva.rst index 5d172bc2..0f98f8d7 100644 --- a/docs/platforms/titiva.rst +++ b/docs/platforms/titiva.rst @@ -34,7 +34,7 @@ Packages .. warning:: **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). + `99-platformio-udev.rules `_ (an instruction is located in the file). @@ -75,21 +75,21 @@ TI - RAM * - ``lplm4f120h5qr`` - - `LaunchPad (Stellaris) w/ lm4f120 (80MHz) `_ + - `TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) `_ - LPLM4F120H5QR - 80 MHz - 256 Kb - 32 Kb * - ``lptm4c1230c3pm`` - - `LaunchPad (Tiva C) w/ tm4c123 (80MHz) `_ + - `TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) `_ - LPTM4C1230C3PM - 80 MHz - 256 Kb - 32 Kb * - ``lptm4c1294ncpdt`` - - `LaunchPad (Tiva C) w/ tm4c129 (120MHz) `_ + - `TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) `_ - LPTM4C1294NCPDT - 120 MHz - 1024 Kb diff --git a/docs/projectconf.rst b/docs/projectconf.rst index de21b0a6..df508ed5 100644 --- a/docs/projectconf.rst +++ b/docs/projectconf.rst @@ -73,7 +73,7 @@ This option can be overridden by global environment variable .. note:: This option is useful for people who migrate from Arduino/Energia IDEs where source directory should have the same name like the main source file. - See `example `__ project with own source directory. + See `example `__ project with own source directory. .. _projectconf_pio_envs_dir: @@ -329,7 +329,7 @@ Examples .. note:: A full list with project examples can be found in - `PlatformIO Repository `_. + `PlatformIO Repository `_. 1. :ref:`platform_atmelavr`: Arduino UNO board with auto pre-configured ``board_*`` and ``upload_*`` options (use only ``board`` option) and Arduino diff --git a/docs/quickstart.rst b/docs/quickstart.rst index 16e20e36..f9296061 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -58,7 +58,7 @@ Change working directory to the project's root where is located If you don't have installed required platforms, then *PlatformIO* will propose you to install them automatically. -Further examples can be found in `PlatformIO Repository `_. +Further examples can be found in `PlatformIO Repository `_. Also, for more detailed information as for commands please go to :ref:`userguide` sections. diff --git a/docs/userguide/cmd_list.rst b/docs/userguide/cmd_list.rst index 103c457b..1bc6b745 100644 --- a/docs/userguide/cmd_list.rst +++ b/docs/userguide/cmd_list.rst @@ -34,7 +34,10 @@ Examples $ platformio list atmelavr with packages: toolchain-atmelavr, tool-avrdude, framework-arduinoavr, tool-micronucleus atmelsam with packages: framework-arduinosam, ldscripts, toolchain-gccarmnoneeabi, tool-bossac - stm32 with packages: toolchain-gccarmnoneeabi, tool-stlink, framework-spl, framework-cmsis, framework-opencm3, ldscripts + freescalekinetis with packages: framework-mbed, toolchain-gccarmnoneeabi + nordicnrf51 with packages: framework-mbed, toolchain-gccarmnoneeabi + nxplpc with packages: framework-mbed, toolchain-gccarmnoneeabi + ststm32 with packages: framework-libopencm3, toolchain-gccarmnoneeabi, tool-stlink, framework-spl, framework-cmsis, framework-mbed, ldscripts teensy with packages: toolchain-atmelavr, ldscripts, framework-arduinoteensy, toolchain-gccarmnoneeabi, tool-teensy - timsp430 with packages: toolchain-timsp430, tool-mspdebug, framework-energiamsp430 - titiva with packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa + timsp430 with packages: toolchain-timsp430, tool-mspdebug, framework-energiamsp430, framework-arduinomsp430 + titiva with packages: ldscripts, framework-libopencm3, toolchain-gccarmnoneeabi, tool-lm4flash, framework-energiativa diff --git a/docs/userguide/cmd_run.rst b/docs/userguide/cmd_run.rst index 2f7345f0..2dc833f4 100644 --- a/docs/userguide/cmd_run.rst +++ b/docs/userguide/cmd_run.rst @@ -42,7 +42,7 @@ Upload port of embedded board. To print all available ports use Examples -------- -1. Process `Wiring Blink Example `_ +1. Process `Wiring Blink Example `_ .. code-block:: bash diff --git a/docs/userguide/lib/cmd_register.rst b/docs/userguide/lib/cmd_register.rst index fddb1478..1ba804f5 100644 --- a/docs/userguide/lib/cmd_register.rst +++ b/docs/userguide/lib/cmd_register.rst @@ -10,7 +10,7 @@ Usage .. code-block:: bash - platformio lib regiter [HTTP_URL_TO_LIBRARY.JSON] + platformio lib register [HTTP_URL_TO_LIBRARY.JSON] Description diff --git a/examples/atmelavr-and-arduino/adafruit-blink/README.rst b/examples/atmelavr-and-arduino/adafruit-blink/README.rst index ffccc76e..222ce460 100644 --- a/examples/atmelavr-and-arduino/adafruit-blink/README.rst +++ b/examples/atmelavr-and-arduino/adafruit-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/atmelavr-and-arduino/arduino-external-libs/README.rst b/examples/atmelavr-and-arduino/arduino-external-libs/README.rst index 634386f8..8a2d15fa 100644 --- a/examples/atmelavr-and-arduino/arduino-external-libs/README.rst +++ b/examples/atmelavr-and-arduino/arduino-external-libs/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library b/examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library index 32ca9ca7..23d30dc4 160000 --- a/examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library +++ b/examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library @@ -1 +1 @@ -Subproject commit 32ca9ca73942b67688ca6946bbc43b0a9729c4fc +Subproject commit 23d30dc48029a543918e5ecdff7c505558c313e3 diff --git a/examples/atmelavr-and-arduino/arduino-internal-libs/README.rst b/examples/atmelavr-and-arduino/arduino-internal-libs/README.rst index f510bf29..826cc34e 100644 --- a/examples/atmelavr-and-arduino/arduino-internal-libs/README.rst +++ b/examples/atmelavr-and-arduino/arduino-internal-libs/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/atmelavr-and-arduino/arduino-own-src_dir/README.rst b/examples/atmelavr-and-arduino/arduino-own-src_dir/README.rst index 8c5469cf..ec75a15c 100644 --- a/examples/atmelavr-and-arduino/arduino-own-src_dir/README.rst +++ b/examples/atmelavr-and-arduino/arduino-own-src_dir/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/atmelavr-and-arduino/atmelavr-native-blink/README.rst b/examples/atmelavr-and-arduino/atmelavr-native-blink/README.rst index 4edae991..7ba51060 100644 --- a/examples/atmelavr-and-arduino/atmelavr-native-blink/README.rst +++ b/examples/atmelavr-and-arduino/atmelavr-native-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/atmelavr-and-arduino/digitstump-mouse/README.rst b/examples/atmelavr-and-arduino/digitstump-mouse/README.rst index 0a7076bc..97b6e46d 100644 --- a/examples/atmelavr-and-arduino/digitstump-mouse/README.rst +++ b/examples/atmelavr-and-arduino/digitstump-mouse/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/atmelavr-and-arduino/engduino-magnetometer/README.rst b/examples/atmelavr-and-arduino/engduino-magnetometer/README.rst index 71ef0514..6639e20c 100644 --- a/examples/atmelavr-and-arduino/engduino-magnetometer/README.rst +++ b/examples/atmelavr-and-arduino/engduino-magnetometer/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/atmelavr-and-arduino/panstamp-blink/README.rst b/examples/atmelavr-and-arduino/panstamp-blink/README.rst index eb66f295..a3a0035f 100644 --- a/examples/atmelavr-and-arduino/panstamp-blink/README.rst +++ b/examples/atmelavr-and-arduino/panstamp-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/mbed/mbed-blink/README.rst b/examples/mbed/mbed-blink/README.rst index cc6c6377..50389eb4 100644 --- a/examples/mbed/mbed-blink/README.rst +++ b/examples/mbed/mbed-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/mbed/mbed-dsp/README.rst b/examples/mbed/mbed-dsp/README.rst index 557272de..70645910 100644 --- a/examples/mbed/mbed-dsp/README.rst +++ b/examples/mbed/mbed-dsp/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/mbed/mbed-http-client/README.rst b/examples/mbed/mbed-http-client/README.rst index c7f23685..b2aa2faf 100644 --- a/examples/mbed/mbed-http-client/README.rst +++ b/examples/mbed/mbed-http-client/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/mbed/mbed-rtos/README.rst b/examples/mbed/mbed-rtos/README.rst index 6411da4b..b2e6ff03 100644 --- a/examples/mbed/mbed-rtos/README.rst +++ b/examples/mbed/mbed-rtos/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ==================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/mbed/mbed-serial/README.rst b/examples/mbed/mbed-serial/README.rst index 7f1feb4a..11cc9a66 100644 --- a/examples/mbed/mbed-serial/README.rst +++ b/examples/mbed/mbed-serial/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/stm32/stm32-cmsis-blink/README.rst b/examples/stm32/stm32-cmsis-blink/README.rst index 0c1b987b..f02757ad 100644 --- a/examples/stm32/stm32-cmsis-blink/README.rst +++ b/examples/stm32/stm32-cmsis-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/stm32/stm32-opencm3-blink/README.rst b/examples/stm32/stm32-opencm3-blink/README.rst index b2df8478..32f77fe0 100644 --- a/examples/stm32/stm32-opencm3-blink/README.rst +++ b/examples/stm32/stm32-opencm3-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/stm32/stm32-spl-blink/README.rst b/examples/stm32/stm32-spl-blink/README.rst index 8ed58571..32ba57d8 100644 --- a/examples/stm32/stm32-spl-blink/README.rst +++ b/examples/stm32/stm32-spl-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/teensy/teensy-internal-libs/README.rst b/examples/teensy/teensy-internal-libs/README.rst index e1a1cc9a..58dccb21 100644 --- a/examples/teensy/teensy-internal-libs/README.rst +++ b/examples/teensy/teensy-internal-libs/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/timsp430/panstamp-blink/README.rst b/examples/timsp430/panstamp-blink/README.rst index 6e7c06b7..9a95c87d 100644 --- a/examples/timsp430/panstamp-blink/README.rst +++ b/examples/timsp430/panstamp-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/timsp430/timsp430-energia-blink/README.rst b/examples/timsp430/timsp430-energia-blink/README.rst index 7ad63a62..bd60b1cc 100644 --- a/examples/timsp430/timsp430-energia-blink/README.rst +++ b/examples/timsp430/timsp430-energia-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/timsp430/timsp430-native-blink/README.rst b/examples/timsp430/timsp430-native-blink/README.rst index 5014d0ce..b7e2c7f9 100644 --- a/examples/timsp430/timsp430-native-blink/README.rst +++ b/examples/timsp430/timsp430-native-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/titiva/titiva-energia-blink/README.rst b/examples/titiva/titiva-energia-blink/README.rst index 3f182624..3d49993d 100644 --- a/examples/titiva/titiva-energia-blink/README.rst +++ b/examples/titiva/titiva-energia-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/titiva/titiva-native-blink/README.rst b/examples/titiva/titiva-native-blink/README.rst index 109f2ebb..a97487da 100644 --- a/examples/titiva/titiva-native-blink/README.rst +++ b/examples/titiva/titiva-native-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/titiva/titiva-opencm3-blink/README.rst b/examples/titiva/titiva-opencm3-blink/README.rst index d3a83202..29e2d37f 100644 --- a/examples/titiva/titiva-opencm3-blink/README.rst +++ b/examples/titiva/titiva-opencm3-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/examples/wiring-blink/README.rst b/examples/wiring-blink/README.rst index 8dbda11e..22a843ac 100644 --- a/examples/wiring-blink/README.rst +++ b/examples/wiring-blink/README.rst @@ -2,7 +2,7 @@ How to build PlatformIO based project ===================================== 1. `Install PlatformIO `_ -2. Download `source code with examples `_ +2. Download `source code with examples `_ 3. Extract ZIP archive 4. Run these commands: diff --git a/platformio/__init__.py b/platformio/__init__.py index f40ab4c5..d8d3b7ba 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -1,7 +1,7 @@ # Copyright (C) Ivan Kravets # See LICENSE for details. -VERSION = (1, 2, 0) +VERSION = (1, 3, 0) __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/boards/adafruit.json b/platformio/boards/adafruit.json index aa2e4dfa..38ff5b4a 100644 --- a/platformio/boards/adafruit.json +++ b/platformio/boards/adafruit.json @@ -1,7 +1,7 @@ { "flora8": { "build": { - "core": ["arduino"], + "core": "arduino", "extra_flags": "-DARDUINO_ARCH_AVR", "f_cpu": "8000000L", "mcu": "atmega32u4", @@ -29,7 +29,7 @@ "trinket3": { "build": { - "core": ["arduino"], + "core": "arduino", "extra_flags": "-DARDUINO_ARCH_AVR", "f_cpu": "8000000L", "mcu": "attiny85", @@ -49,7 +49,7 @@ "trinket5": { "build": { - "core": ["arduino"], + "core": "arduino", "extra_flags": "-DARDUINO_ARCH_AVR", "f_cpu": "16000000L", "mcu": "attiny85", @@ -69,14 +69,14 @@ "protrinket3": { "build": { - "core": ["arduino"], + "core": "arduino", "extra_flags": "-DARDUINO_ARCH_AVR", "f_cpu": "12000000L", "mcu": "atmega328p", "variant": "eightanaloginputs" }, "frameworks": ["arduino"], - "name": "Pro Trinket 3V/12MHz (USB)", + "name": "Adafruit Pro Trinket 3V/12MHz (USB)", "platform": "atmelavr", "upload": { "maximum_ram_size": 2048, @@ -89,14 +89,14 @@ "protrinket5": { "build": { - "core": ["arduino"], + "core": "arduino", "extra_flags": "-DARDUINO_ARCH_AVR", "f_cpu": "16000000L", "mcu": "atmega328p", "variant": "eightanaloginputs" }, "frameworks": ["arduino"], - "name": "Pro Trinket 5V/16MHz (USB)", + "name": "Adafruit Pro Trinket 5V/16MHz (USB)", "platform": "atmelavr", "upload": { "maximum_ram_size": 2048, @@ -108,19 +108,19 @@ }, "protrinket3ftdi": { "build": { - "core": ["arduino"], + "core": "arduino", "extra_flags": "-DARDUINO_ARCH_AVR", "f_cpu": "16000000L", "mcu": "atmega328p", "variant": "eightanaloginputs" }, "frameworks": ["arduino"], - "name": "Pro Trinket 3V/12MHz (FTDI)", + "name": "Adafruit Pro Trinket 3V/12MHz (FTDI)", "platform": "atmelavr", "upload": { "maximum_ram_size": 2048, "maximum_size": 28672, - "protocol": ["arduino"], + "protocol": "arduino", "require_upload_port" : true, "speed": 115200 }, @@ -129,19 +129,19 @@ }, "protrinket5ftdi": { "build": { - "core": ["arduino"], + "core": "arduino", "extra_flags": "-DARDUINO_ARCH_AVR", "f_cpu": "16000000L", "mcu": "atmega328p", "variant": "eightanaloginputs" }, "frameworks": ["arduino"], - "name": "Pro Trinket 5V/16MHz (USB)", + "name": "Adafruit Pro Trinket 5V/16MHz (USB)", "platform": "atmelavr", "upload": { "maximum_ram_size": 2048, "maximum_size": 28672, - "protocol": ["arduino"], + "protocol": "arduino", "require_upload_port" : true, "speed": 115200 }, diff --git a/platformio/boards/arduino.json b/platformio/boards/arduino.json index 8d84f93e..a0203302 100644 --- a/platformio/boards/arduino.json +++ b/platformio/boards/arduino.json @@ -11,7 +11,7 @@ "vid": "0x1B4F" }, "frameworks": ["arduino"], - "name": "LilyPad Arduino USB", + "name": "Arduino LilyPad USB", "platform": "atmelavr", "upload": { "disable_flushing": true, @@ -259,7 +259,7 @@ "variant": "standard" }, "frameworks": ["arduino"], - "name": "LilyPad Arduino ATmega168", + "name": "Arduino LilyPad ATmega168", "platform": "atmelavr", "upload": { "maximum_ram_size": 1024, @@ -280,7 +280,7 @@ "variant": "standard" }, "frameworks": ["arduino"], - "name": "LilyPad Arduino ATmega328", + "name": "Arduino LilyPad ATmega328", "platform": "atmelavr", "upload": { "maximum_ram_size": 2048, diff --git a/platformio/boards/digistump.json b/platformio/boards/digistump.json index c03d3680..b367c5de 100644 --- a/platformio/boards/digistump.json +++ b/platformio/boards/digistump.json @@ -8,7 +8,7 @@ "variant": "digispark_tiny" }, "frameworks": ["arduino"], - "name": "Digispark (Default - 16 MHz)", + "name": "Digistump Digispark (Default - 16 MHz)", "platform": "atmelavr", "upload": { "maximum_ram_size": 512, @@ -27,7 +27,7 @@ "variant": "digispark_pro" }, "frameworks": ["arduino"], - "name": "Digispark Pro (Default 16 MHz)", + "name": "Digistump Digispark Pro (Default 16 MHz)", "platform": "atmelavr", "upload": { "maximum_ram_size": 512, @@ -46,7 +46,7 @@ "variant": "digispark_pro32" }, "frameworks": ["arduino"], - "name": "Digispark Pro (16 MHz) (32 byte buffer)", + "name": "Digistump Digispark Pro (16 MHz) (32 byte buffer)", "platform": "atmelavr", "upload": { "maximum_ram_size": 512, @@ -65,7 +65,7 @@ "variant": "digispark_pro64" }, "frameworks": ["arduino"], - "name": "Digispark Pro (16 MHz) (64 byte buffer)", + "name": "Digistump Digispark Pro (16 MHz) (64 byte buffer)", "platform": "atmelavr", "upload": { "maximum_ram_size": 512, diff --git a/platformio/boards/misc.json b/platformio/boards/misc.json index ac796695..495fa4ef 100644 --- a/platformio/boards/misc.json +++ b/platformio/boards/misc.json @@ -8,7 +8,7 @@ "variant": "standard" }, "frameworks": ["arduino"], - "name": "Raspduino", + "name": "BitWizard Raspduino", "platform": "atmelavr", "upload": { "maximum_ram_size": 2048, @@ -20,6 +20,7 @@ "url": "http://www.bitwizard.nl/wiki/index.php/Raspduino", "vendor": "BitWizard" }, + "sainSmartDue": { "build": { "core": "arduino", @@ -76,6 +77,7 @@ "url": "http://www.sainsmart.com/arduino/control-boards/sainsmart-due-atmel-sam3x8e-arm-cortex-m3-board-black.html", "vendor": "SainSmart" }, + "panStampAVR": { "build": { "core": "panstamp", @@ -97,6 +99,7 @@ "url": "http://www.panstamp.com/product/panstamp-avr/", "vendor": "PanStamp" }, + "panStampNRG": { "build": { "core": "panstamp", @@ -114,5 +117,114 @@ }, "url": "http://www.panstamp.com/product/197/", "vendor": "PanStamp" + }, + "reprap_rambo": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DAVR_RAMBO", + "f_cpu": "16000000L", + "mcu": "atmega2560", + "variant": "rambo" + }, + "frameworks": ["arduino"], + "name": "RepRap RAMBo", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 8192, + "maximum_size": 258048, + "protocol": "wiring", + "require_upload_port" : true, + "speed": 115200 + }, + "url": "http://reprap.org/wiki/Rambo", + "vendor": "RepRap" + }, + + "sanguino_atmega1284p": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DAVR_SANGUINO", + "f_cpu": "16000000L", + "mcu": "atmega1284p", + "variant": "sanguino" + }, + "frameworks": ["arduino"], + "name": "Sanguino ATmega1284p (16MHz)", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 16384, + "maximum_size": 131072, + "protocol": "stk500", + "require_upload_port" : true, + "speed": 57600 + }, + "url": "https://code.google.com/p/sanguino/", + "vendor": "Sanguino" + }, + + "sanguino_atmega12848m": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DAVR_SANGUINO", + "f_cpu": "8000000L", + "mcu": "atmega1284p", + "variant": "sanguino" + }, + "frameworks": ["arduino"], + "name": "Sanguino ATmega1284p (8MHz)", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 16384, + "maximum_size": 131072, + "protocol": "stk500", + "require_upload_port" : true, + "speed": 19200 + }, + "url": "https://code.google.com/p/sanguino/", + "vendor": "Sanguino" + }, + + "sanguino_atmega1284m": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DAVR_SANGUINO", + "f_cpu": "20000000L", + "mcu": "atmega1284p", + "variant": "sanguino" + }, + "frameworks": ["arduino"], + "name": "Sanguino ATmega1284p (20MHz)", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 16384, + "maximum_size": 131072, + "protocol": "stk500", + "require_upload_port" : true, + "speed": 19200 + }, + "url": "https://code.google.com/p/sanguino/", + "vendor": "Sanguino" + }, + + "sanguino_atmega644p": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DAVR_SANGUINO", + "f_cpu": "16000000L", + "mcu": "atmega644p", + "variant": "sanguino" + }, + "frameworks": ["arduino"], + "name": "Sanguino ATmega644P", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 4096, + "maximum_size": 63488, + "protocol": "stk500", + "require_upload_port" : true, + "speed": 57600 + }, + "url": "https://code.google.com/p/sanguino/", + "vendor": "Sanguino" } } diff --git a/platformio/boards/nordicnrf51.json b/platformio/boards/nordicnrf51.json index abe44026..c76c1609 100644 --- a/platformio/boards/nordicnrf51.json +++ b/platformio/boards/nordicnrf51.json @@ -118,7 +118,7 @@ "mcu": "nrf51822" }, "frameworks": ["mbed"], - "name": "Seeed Tiny BLE", + "name": "SeeedStudio Seeed Tiny BLE", "platform": "nordicnrf51", "upload": { "maximum_ram_size": 16384, diff --git a/platformio/boards/nxplpc.json b/platformio/boards/nxplpc.json index 67392e27..e368bc35 100644 --- a/platformio/boards/nxplpc.json +++ b/platformio/boards/nxplpc.json @@ -6,7 +6,7 @@ "mcu": "lpc1768" }, "frameworks": ["mbed"], - "name": "mbed LPC1768", + "name": "NXP mbed LPC1768", "platform": "nxplpc", "upload": { "maximum_ram_size": 32768, @@ -22,7 +22,7 @@ "mcu": "lpc11u24" }, "frameworks": ["mbed"], - "name": "mbed LPC11U24", + "name": "NXP mbed LPC11U24", "platform": "nxplpc", "upload": { "maximum_ram_size": 8192, @@ -38,7 +38,7 @@ "mcu": "lpc4088" }, "frameworks": ["mbed"], - "name": "EA LPC4088 QuickStart Board", + "name": "Embedded Artists LPC4088 QuickStart Board", "platform": "nxplpc", "upload": { "maximum_ram_size": 98304, @@ -54,7 +54,7 @@ "mcu": "lpc11u24" }, "frameworks": ["mbed"], - "name": "DipCortex M0", + "name": "Solder Splash Labs DipCortex M0", "platform": "nxplpc", "upload": { "maximum_ram_size": 8192, @@ -70,7 +70,7 @@ "mcu": "lpc11u24" }, "frameworks": ["mbed"], - "name": "BlueBoard-LPC11U24", + "name": "NGX Technologies BlueBoard-LPC11U24", "platform": "nxplpc", "upload": { "maximum_ram_size": 8192, @@ -86,7 +86,7 @@ "mcu": "lpc1768" }, "frameworks": ["mbed"], - "name": "Seeeduino-Arch-Pro", + "name": "SeeedStudio Seeeduino-Arch-Pro", "platform": "nxplpc", "upload": { "maximum_ram_size": 32768, @@ -118,7 +118,7 @@ "mcu": "lpc1114fn28" }, "frameworks": ["mbed"], - "name": "mbed LPC1114FN28", + "name": "Switch Science mbed LPC1114FN28", "platform": "nxplpc", "upload": { "maximum_ram_size": 4096, @@ -134,7 +134,7 @@ "mcu": "lpc11u35" }, "frameworks": ["mbed"], - "name": "EA LPC11U35 QuickStart Board", + "name": "Embedded Artists LPC11U35 QuickStart Board", "platform": "nxplpc", "upload": { "maximum_ram_size": 10240, @@ -150,7 +150,7 @@ "mcu": "lpc11u35" }, "frameworks": ["mbed"], - "name": "TG-LPC11U35-501", + "name": "CQ Publishing TG-LPC11U35-501", "platform": "nxplpc", "upload": { "maximum_ram_size": 10240, @@ -166,7 +166,7 @@ "mcu": "lpc1549" }, "frameworks": ["mbed"], - "name": "LPCXpresso1549", + "name": "NXP LPCXpresso1549", "platform": "nxplpc", "upload": { "maximum_ram_size": 36864, @@ -198,7 +198,7 @@ "mcu": "lpc4088" }, "frameworks": ["mbed"], - "name": "EA LPC4088 Display Module", + "name": "Embedded Artists LPC4088 Display Module", "platform": "nxplpc", "upload": { "maximum_ram_size": 98304, diff --git a/platformio/boards/sparkfun.json b/platformio/boards/sparkfun.json new file mode 100644 index 00000000..88240040 --- /dev/null +++ b/platformio/boards/sparkfun.json @@ -0,0 +1,191 @@ + { + "sparkfun_redboard": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO", + "f_cpu": "16000000L", + "mcu": "atmega328p", + "variant": "standard" + }, + "frameworks": ["arduino"], + "name": "SparkFun RedBoard", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 2048, + "maximum_size": 32256, + "protocol": "arduino", + "require_upload_port" : true, + "speed": 115200 + }, + "url": "https://www.sparkfun.com/products/12757", + "vendor": "SparkFun" + }, + "sparkfun_promicro16": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DAVR_PROMICRO16", + "f_cpu": "16000000L", + "mcu": "atmega32u4", + "pid": "0x9206", + "usb_product": "SparkFun Pro Micro", + "variant": "sparkfun_promicro", + "vid": "0x1B4F" + }, + "frameworks": ["arduino"], + "name": "SparkFun Pro Micro 5V/16MHz", + "platform": "atmelavr", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 2560, + "maximum_size": 28672, + "protocol": "avr109", + "require_upload_port" : true, + "speed": 57600, + "use_1200bps_touch": true, + "wait_for_upload_port": true + }, + "url": "https://www.sparkfun.com/products/12640", + "vendor": "SparkFun" + }, + "sparkfun_promicro8": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DAVR_PROMICRO8", + "f_cpu": "8000000L", + "mcu": "atmega32u4", + "pid": "0x9204", + "usb_product": "SparkFun Pro Micro", + "variant": "sparkfun_promicro", + "vid": "0x1B4F" + }, + "frameworks": ["arduino"], + "name": "SparkFun Pro Micro 3.3V/8MHz", + "platform": "atmelavr", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 2560, + "maximum_size": 28672, + "protocol": "avr109", + "require_upload_port" : true, + "speed": 57600, + "use_1200bps_touch": true, + "wait_for_upload_port": true + }, + "url": "https://www.sparkfun.com/products/12587", + "vendor": "SparkFun" + }, + "sparkfun_fiov3": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DAVR_FIOV3", + "f_cpu": "8000000L", + "mcu": "atmega32u4", + "pid": "0xF101", + "usb_product": "SparkFun Fio v3", + "variant": "sparkfun_promicro", + "vid": "0x1B4F" + }, + "frameworks": ["arduino"], + "name": "SparkFun Fio V3 3.3V/8MHz", + "platform": "atmelavr", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 2560, + "maximum_size": 28672, + "protocol": "avr109", + "require_upload_port" : true, + "speed": 57600, + "use_1200bps_touch": true, + "wait_for_upload_port": true + }, + "url": "https://www.sparkfun.com/products/11520", + "vendor": "SparkFun" + }, + "sparkfun_makeymakey": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DAVR_MAKEYMAKEY", + "f_cpu": "16000000L", + "mcu": "atmega32u4", + "pid": "0x2B75", + "usb_product": "SparkFun MaKey", + "variant": "sparkfun_promicro", + "vid": "0x1B4F" + }, + "frameworks": ["arduino"], + "name": "SparkFun Makey Makey", + "platform": "atmelavr", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 2560, + "maximum_size": 28672, + "protocol": "avr109", + "require_upload_port" : true, + "speed": 57600, + "use_1200bps_touch": true, + "wait_for_upload_port": true + }, + "url": "https://www.sparkfun.com/products/11511", + "vendor": "SparkFun" + }, + "sparkfun_megapro16MHz": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_MEGA2560", + "f_cpu": "16000000L", + "mcu": "atmega2560", + "variant": "mega" + }, + "frameworks": ["arduino"], + "name": "SparkFun Mega Pro 5V/16MHz", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 8192, + "maximum_size": 258048, + "protocol": "stk500v2", + "speed": 57600 + }, + "url": "https://www.sparkfun.com/products/11007", + "vendor": "SparkFun" + }, + "sparkfun_megapro8MHz": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_MEGA2560", + "f_cpu": "8000000L", + "mcu": "atmega2560", + "variant": "mega" + }, + "frameworks": ["arduino"], + "name": "SparkFun Mega Pro 3.3V/8MHz", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 8192, + "maximum_size": 258048, + "protocol": "stk500v2", + "speed": 57600 + }, + "url": "https://www.sparkfun.com/products/10744", + "vendor": "SparkFun" + }, + "sparkfun_megamini": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_MEGA2560", + "f_cpu": "8000000L", + "mcu": "atmega2560", + "variant": "mega" + }, + "frameworks": ["arduino"], + "name": "SparkFun Mega Pro Mini 3.3V", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 8192, + "maximum_size": 258048, + "protocol": "stk500v2", + "speed": 57600 + }, + "url": "https://www.sparkfun.com/products/10743", + "vendor": "SparkFun" + } +} \ No newline at end of file diff --git a/platformio/boards/ststm32.json b/platformio/boards/ststm32.json index 8b45b992..63c188ee 100644 --- a/platformio/boards/ststm32.json +++ b/platformio/boards/ststm32.json @@ -10,7 +10,7 @@ "variant": "stm32f4" }, "frameworks": ["cmsis", "spl", "libopencm3", "mbed"], - "name": "STM32F4DISCOVERY", + "name": "ST STM32F4DISCOVERY", "platform": "ststm32", "upload": { "maximum_ram_size": 131072, @@ -30,7 +30,7 @@ "variant": "stm32l1" }, "frameworks": ["cmsis","spl","libopencm3"], - "name": "STM32LDISCOVERY", + "name": "ST STM32LDISCOVERY", "platform": "ststm32", "upload": { "maximum_ram_size": 16384, @@ -50,7 +50,7 @@ "variant": "stm32f3" }, "frameworks": ["cmsis", "spl", "libopencm3", "mbed"], - "name": "STM32F3DISCOVERY", + "name": "ST STM32F3DISCOVERY", "platform": "ststm32", "upload": { "maximum_ram_size": 49152, @@ -66,7 +66,7 @@ "mcu": "stm32f100rbt6" }, "frameworks": ["mbed"], - "name": "STM32VLDISCOVERY", + "name": "ST STM32VLDISCOVERY", "platform": "ststm32", "upload": { "maximum_ram_size": 8192, @@ -82,7 +82,7 @@ "mcu": "stm32f051r8t6" }, "frameworks": ["mbed"], - "name": "STM32F0DISCOVERY", + "name": "ST STM32F0DISCOVERY", "platform": "ststm32", "upload": { "maximum_ram_size": 8192, @@ -98,7 +98,7 @@ "mcu": "stm32f334c8t6" }, "frameworks": ["mbed"], - "name": "32F3348DISCOVERY", + "name": "ST 32F3348DISCOVERY", "platform": "ststm32", "upload": { "maximum_ram_size": 16384, @@ -114,7 +114,7 @@ "mcu": "stm32f401vct6" }, "frameworks": ["mbed"], - "name": "32F401CDISCOVERY", + "name": "ST 32F401CDISCOVERY", "platform": "ststm32", "upload": { "maximum_ram_size": 65536, @@ -130,7 +130,7 @@ "mcu": "stm32f429zit6" }, "frameworks": ["mbed"], - "name": "32F429IDISCOVERY", + "name": "ST 32F429IDISCOVERY", "platform": "ststm32", "upload": { "maximum_ram_size": 262144, diff --git a/platformio/boards/timsp430.json b/platformio/boards/timsp430.json index 88731614..3c1d314f 100644 --- a/platformio/boards/timsp430.json +++ b/platformio/boards/timsp430.json @@ -7,7 +7,7 @@ "variant": "launchpad_f5529" }, "frameworks": ["energia"], - "name": "LaunchPad w/ msp430f5529 (16MHz)", + "name": "TI LaunchPad w/ msp430f5529 (16MHz)", "platform": "timsp430", "upload": { "maximum_ram_size": 1024, @@ -25,7 +25,7 @@ "variant": "launchpad_f5529" }, "frameworks": ["energia"], - "name": "LaunchPad w/ msp430f5529 (25MHz)", + "name": "TI LaunchPad w/ msp430f5529 (25MHz)", "platform": "timsp430", "upload": { "maximum_ram_size": 1024, @@ -43,7 +43,7 @@ "variant": "fraunchpad" }, "frameworks": ["energia"], - "name": "FraunchPad w/ msp430fr5739", + "name": "TI FraunchPad w/ msp430fr5739", "platform": "timsp430", "upload": { "maximum_ram_size": 1024, @@ -61,7 +61,7 @@ "variant": "launchpad_fr5969" }, "frameworks": ["energia"], - "name": "LaunchPad w/ msp430fr5969", + "name": "TI LaunchPad w/ msp430fr5969", "platform": "timsp430", "upload": { "maximum_ram_size": 1024, @@ -79,7 +79,7 @@ "variant": "launchpad" }, "frameworks": ["energia"], - "name": "LaunchPad w/ msp430g2231 (1 MHz)", + "name": "TI LaunchPad w/ msp430g2231 (1 MHz)", "platform": "timsp430", "upload": { "maximum_ram_size": 128, @@ -97,7 +97,7 @@ "variant": "launchpad" }, "frameworks": ["energia"], - "name": "LaunchPad w/ msp430g2452 (16MHz)", + "name": "TI LaunchPad w/ msp430g2452 (16MHz)", "platform": "timsp430", "upload": { "maximum_ram_size": 256, @@ -115,7 +115,7 @@ "variant": "launchpad" }, "frameworks": ["energia"], - "name": "LaunchPad w/ msp430g2553 (16MHz)", + "name": "TI LaunchPad w/ msp430g2553 (16MHz)", "platform": "timsp430", "upload": { "maximum_ram_size": 512, diff --git a/platformio/boards/titiva.json b/platformio/boards/titiva.json index 69a8d9be..29b7944f 100644 --- a/platformio/boards/titiva.json +++ b/platformio/boards/titiva.json @@ -9,7 +9,7 @@ "variant": "stellarpad" }, "frameworks": ["energia", "libopencm3"], - "name": "LaunchPad (Stellaris) w/ lm4f120 (80MHz)", + "name": "TI LaunchPad (Stellaris) w/ lm4f120 (80MHz)", "platform": "titiva", "upload": { "maximum_ram_size": 32768, @@ -28,7 +28,7 @@ "variant": "stellarpad" }, "frameworks": ["energia", "libopencm3"], - "name": "LaunchPad (Tiva C) w/ tm4c123 (80MHz)", + "name": "TI LaunchPad (Tiva C) w/ tm4c123 (80MHz)", "platform": "titiva", "upload": { "maximum_ram_size": 32768, @@ -47,7 +47,7 @@ "variant": "launchpad_129" }, "frameworks": ["energia", "libopencm3"], - "name": "LaunchPad (Tiva C) w/ tm4c129 (120MHz)", + "name": "TI LaunchPad (Tiva C) w/ tm4c129 (120MHz)", "platform": "titiva", "upload": { "maximum_ram_size": 262144, diff --git a/platformio/builder/main.py b/platformio/builder/main.py index 587c0f21..a68aceb9 100644 --- a/platformio/builder/main.py +++ b/platformio/builder/main.py @@ -14,8 +14,8 @@ except ImportError: from os.path import join from time import time -from SCons.Script import (DefaultEnvironment, SConscript, SConscriptChdir, - Variables) +from SCons.Script import (DefaultEnvironment, Exit, SConscript, + SConscriptChdir, Variables) from platformio.exception import UnknownBoard @@ -71,7 +71,7 @@ DefaultEnvironment( LIBSOURCE_DIRS=[ join("$PROJECT_DIR", "lib"), util.get_lib_dir(), - join("$PLATFORMFW_DIR", "libraries"), + join("$PLATFORMFW_DIR", "libraries") ] ) @@ -101,6 +101,13 @@ if "BOARD" in env: ) ) + if env['PLATFORM'] != env.get("BOARD_OPTIONS", {}).get("platform"): + Exit("Error: '%s' platform doesn't support this board. " + "Use '%s' platform instead." % ( + env['PLATFORM'], + env.get("BOARD_OPTIONS", {}).get("platform"))) + + if "IGNORE_LIBS" in env: env['IGNORE_LIBS'] = [l.strip() for l in env['IGNORE_LIBS'].split(",")] diff --git a/platformio/builder/scripts/atmelavr.py b/platformio/builder/scripts/atmelavr.py index eacb925b..f221e5c4 100644 --- a/platformio/builder/scripts/atmelavr.py +++ b/platformio/builder/scripts/atmelavr.py @@ -25,6 +25,9 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 if env.subst("$UPLOAD_SPEED"): env.Append(UPLOADERFLAGS=["-b", "$UPLOAD_SPEED"]) + if "micronucleus" in env['UPLOADER']: + print "Please unplug/plug device ..." + if not upload_options.get("require_upload_port", False): return diff --git a/platformio/builder/scripts/frameworks/arduino.py b/platformio/builder/scripts/frameworks/arduino.py index 0821fe75..1fa6d456 100644 --- a/platformio/builder/scripts/frameworks/arduino.py +++ b/platformio/builder/scripts/frameworks/arduino.py @@ -12,7 +12,7 @@ http://arduino.cc/en/Reference/HomePage """ from os import listdir, walk -from os.path import isfile, join +from os.path import isdir, isfile, join from SCons.Script import DefaultEnvironment @@ -20,6 +20,7 @@ env = DefaultEnvironment() BOARD_OPTS = env.get("BOARD_OPTIONS", {}) BOARD_BUILDOPTS = BOARD_OPTS.get("build", {}) +BOARD_CORELIBDIRNAME = BOARD_BUILDOPTS.get("core") # # Determine framework directory @@ -30,6 +31,7 @@ PLATFORMFW_DIR = join("$PIOPACKAGES_DIR", "framework-arduino${PLATFORM.replace('atmel', '')}") if "digispark" in BOARD_BUILDOPTS.get("core"): + BOARD_CORELIBDIRNAME = "digispark" PLATFORMFW_DIR = join( "$PIOPACKAGES_DIR", "framework-arduino%s" % ( @@ -43,6 +45,21 @@ elif env.get("PLATFORM") == "timsp430": env.Replace(PLATFORMFW_DIR=PLATFORMFW_DIR) +# +# Lookup for specific core's libraries +# + +if isdir(join(env.subst("$PLATFORMFW_DIR"), "libraries", "__cores__", + BOARD_CORELIBDIRNAME)): + lib_dirs = env.get("LIBSOURCE_DIRS") + lib_dirs.insert( + lib_dirs.index(join("$PLATFORMFW_DIR", "libraries")), + join(PLATFORMFW_DIR, "libraries", "__cores__", BOARD_CORELIBDIRNAME) + ) + env.Replace( + LIBSOURCE_DIRS=lib_dirs + ) + # # Base # diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index a27d8654..9913c91a 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -273,45 +273,103 @@ def BuildDependentLibraries(env, src_dir): # pylint: disable=R0914 return libs +class InoToCPPConverter(object): + + PROTOTYPE_RE = re.compile( + r"""^( + (?:\s*[a-z_\d]+){1,2} # return type + \s+[a-z_\d]+\s* # name of prototype + \([a-z_,\.\*\&\[\]\s\d]*\) # arguments + )\s*\{ # must end with { + """, + re.X | re.M | re.I + ) + + DETECTMAIN_RE = re.compile(r"void\s+(setup|loop)\s*\(", re.M | re.I) + + STRIPCOMMENTS_RE = re.compile(r"(/\*.*?\*/|//[^\r\n]*$)", re.M | re.S) + + def __init__(self, nodes): + self.nodes = nodes + + def is_main_node(self, contents): + return self.DETECTMAIN_RE.search(contents) + + @staticmethod + def _replace_comments_callback(match): + if "\n" in match.group(1): + return "\n" * match.group(1).count("\n") + else: + return " " + + def append_prototypes(self, fname, contents, prototypes): + contents = self.STRIPCOMMENTS_RE.sub(self._replace_comments_callback, + contents) + result = [] + is_appended = False + linenum = 0 + for line in contents.splitlines(): + linenum += 1 + line = line.strip() + + if not is_appended and line and not line.startswith("#"): + is_appended = True + result.append("%s;" % ";\n".join(prototypes)) + result.append('#line %d "%s"' % (linenum, fname)) + + result.append(line) + + return result + + def convert(self): + prototypes = [] + data = [] + for node in self.nodes: + ino_contents = node.get_text_contents() + prototypes += self.PROTOTYPE_RE.findall(ino_contents) + + item = (basename(node.get_path()), ino_contents) + if self.is_main_node(ino_contents): + data = [item] + data + else: + data.append(item) + + if not data: + return None + + result = ["#include "] + is_first = True + + for name, contents in data: + if is_first and prototypes: + result += self.append_prototypes(name, contents, prototypes) + else: + result.append('#line 1 "%s"' % name) + result.append(contents) + is_first = False + + return "\n".join(result) + + def ConvertInoToCpp(env): - def delete_tmpcpp(files): - for f in files: - remove(f) + def delete_tmpcpp_file(file_): + remove(file_) - tmpcpp = [] - items = (env.Glob(join("$PROJECTSRC_DIR", "*.ino")) + - env.Glob(join("$PROJECTSRC_DIR", "*.pde"))) - for item in items: - cppfile = item.get_path()[:-3] + "cpp" - if isfile(cppfile): - continue - ino_contents = item.get_text_contents() + ino_nodes = (env.Glob(join("$PROJECTSRC_DIR", "*.ino")) + + env.Glob(join("$PROJECTSRC_DIR", "*.pde"))) - prototypes = re.findall( - r"""^( - (?:\s*[a-z_\d]+){1,2} # return type - \s+[a-z_\d]+\s* # name of prototype - \([a-z_,\.\*\&\[\]\s\d]*\) # args - )\s*\{ # must end with { - """, - ino_contents, - re.X | re.M | re.I - ) - prototypes = [p.strip() for p in prototypes] - # print prototypes + c = InoToCPPConverter(ino_nodes) + data = c.convert() - # create new temporary C++ valid file - with open(cppfile, "w") as f: - f.write("#include \n") - if prototypes: - f.write("%s;\n" % ";\n".join(prototypes)) - f.write('#line 1 "%s"\n' % basename(item.path)) - f.write(ino_contents) - tmpcpp.append(cppfile) + if not data: + return - if tmpcpp: - atexit.register(delete_tmpcpp, tmpcpp) + tmpcpp_file = join(env.subst("$PROJECTSRC_DIR"), "piomain.cpp") + with open(tmpcpp_file, "w") as f: + f.write(data) + + atexit.register(delete_tmpcpp_file, tmpcpp_file) def exists(_): diff --git a/platformio/maintenance.py b/platformio/maintenance.py index 1a430a15..4a8da390 100644 --- a/platformio/maintenance.py +++ b/platformio/maintenance.py @@ -115,7 +115,7 @@ def after_upgrade(ctx): ) click.echo("- %s us a star on GitHub > %s" % ( click.style("give", fg="cyan"), - click.style("https://github.com/ivankravets/platformio", fg="cyan") + click.style("https://github.com/platformio/platformio", fg="cyan") )) click.secho("Thanks a lot!\n", fg="green") diff --git a/scripts/99-platformio-udev.rules b/scripts/99-platformio-udev.rules index 34045ef3..c0614f2b 100644 --- a/scripts/99-platformio-udev.rules +++ b/scripts/99-platformio-udev.rules @@ -4,7 +4,7 @@ # UDEV Rules for PlatformIO supproted boards, http://platformio.org/#!/boards # # The latest version of this file may be found at: -# https://github.com/ivankravets/platformio/blob/develop/scripts/99-platformio-udev.rules +# https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules # # This file must be placed at: # /etc/udev/rules.d/99-platformio-udev.rules (preferred location) @@ -31,6 +31,9 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="066 # Prolific Technology, Inc. PL2303 Serial Port SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0666" +# QinHeng Electronics HL-340 USB-Serial adapter +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666" + # ARDUINO UNO SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0043", MODE:="0666" @@ -51,7 +54,7 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", MODE:= KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", MODE:="0666" #TI Stellaris Launchpad -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0666" #TI MSP430 Launchpad SUBSYSTEMS=="usb", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f432", MODE="0666" diff --git a/scripts/docspregen.py b/scripts/docspregen.py index d07afb95..1c07ef65 100644 --- a/scripts/docspregen.py +++ b/scripts/docspregen.py @@ -89,7 +89,7 @@ def generate_packages(packages): lines.append(""" .. warning:: **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). + `99-platformio-udev.rules `_ (an instruction is located in the file). """) return "\n".join(lines) @@ -244,7 +244,46 @@ def update_framework_docs(): f.write(generate_framework(name, data)) +def update_create_platform_doc(): + allpackages = get_packages() + lines = [] + lines.append(""".. _platform_creating_packages: + +Packages +-------- + +*PlatformIO* has pre-built packages for the most popular operation systems: +*Mac OS*, *Linux (+ARM)* and *Windows*. + +.. list-table:: + :header-rows: 1 + + * - Name + - Contents""") + for type_, data in sorted(allpackages.iteritems()): + contitems = [ + "`%s <%s>`_" % (name, url) + for name, url in allpackages[type_] + ] + lines.append(""" + * - ``{type_}`` + - {contents}""".format( + type_=type_, + contents=", ".join(contitems))) + + with open(join(util.get_source_dir(), "..", "docs", "platforms", + "creating_platform.rst"), "r+") as fp: + content = fp.read() + fp.seek(0, 0) + fp.write( + content[:content.index(".. _platform_creating_packages:")] + + "\n".join(lines) + "\n\n" + + content[content.index(".. _platform_creating_manifest_file:"):] + ) + + def main(): + update_create_platform_doc() update_platform_docs() update_framework_docs() diff --git a/scripts/get-platformio.py b/scripts/get-platformio.py index 47d34bc7..fd792b25 100644 --- a/scripts/get-platformio.py +++ b/scripts/get-platformio.py @@ -123,7 +123,7 @@ def main(): if is_error: print ("The installation process has been FAILED!\n" "Please report about this problem here\n" - "< https://github.com/ivankravets/platformio/issues >") + "< https://github.com/platformio/platformio/issues >") return else: print ("\n ==> Installation process has been " diff --git a/setup.py b/setup.py index 299e25e0..f0c26298 100644 --- a/setup.py +++ b/setup.py @@ -42,7 +42,7 @@ setup( "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Compilers" ], - keywords=("builder library manager atmel avr sam freescale kinetis nordic" - "nrf51 nxp lpc st stm32 ti msp430 tiva teensy arduino mbed" + keywords=("builder library manager atmel avr sam freescale kinetis nordic " + "nrf51 nxp lpc st stm32 ti msp430 tiva teensy arduino mbed " "libopencm3") )