Compare commits

...

1165 Commits

Author SHA1 Message Date
be049bfac2 Merge branch 'release/v2.7.0' 2015-12-30 20:25:12 +02:00
02480730bb Version bump to 2.7.0 (issues #319, #382, #386, #391, #394, #397, #400, #403, #404, #406, #407, #417) 2015-12-30 20:24:51 +02:00
4d8265bee2 Remove SCons from docs, etc. 2015-12-30 20:19:56 +02:00
aff525e763 Use current interpreter to upgrade PlatformIO 2015-12-30 20:12:52 +02:00
8d6aee3178 Use current Python interpreter for Python-based tools // Resolve #417 2015-12-30 20:01:43 +02:00
d139225ffb Quote upload port for Espressif OTA // Issue #417 2015-12-30 19:23:58 +02:00
56c5ba6fbb Allow OTA upload port to be quoted // Issue #417 2015-12-30 19:10:40 +02:00
7a91683ca6 Better handling of upload port for OTA // Issue #417 2015-12-30 19:01:26 +02:00
f2cad66d79 Quote upload port for Espressif OTA // Issue #417 2015-12-30 18:42:46 +02:00
98ec2237b7 Merge pull request #418 from dh1tw/develop
updated URL in example to new mbed domain
2015-12-30 18:15:13 +02:00
27a555b99a updated URL in example to new mbed domain 2015-12-30 17:12:50 +01:00
680c3867db Allow to use DNS.local as upload port for OTA // Issue #382 2015-12-30 15:02:13 +02:00
121102beef Fix SPIFFS uploading via OTA // Issue #382 2015-12-30 14:33:16 +02:00
4f8138fe1f Add link to discussion as for SPIFFS 2015-12-30 14:23:35 +02:00
044486d46f Allow to upload SPIFFS image using OTA // Issue #382 2015-12-30 14:14:36 +02:00
2d2ce0661f Update donate button 2015-12-30 01:49:16 +02:00
e88ef48e18 Add example with library.json 2015-12-30 01:41:08 +02:00
2dd2dd4f0d Use PySerial < 3 for Python 2.6 2015-12-30 00:13:38 +02:00
38d9f0f5bc Add donate button 2015-12-29 21:59:32 +02:00
14aed800a2 Improve telemetry service 2015-12-29 21:03:51 +02:00
621393138f Move requirements to setuptools 2015-12-29 17:44:39 +02:00
a959ff767d Better handling of source files for uploading // Issue #382 2015-12-29 14:36:39 +02:00
11986354d9 Better handling of LD scripts for SPIFFS uploading // Issue #382 2015-12-29 00:21:24 +02:00
5ea7ec470a Typo fix 2015-12-28 23:29:58 +02:00
a0bcb4d4f0 Fix PyLint warning about sorting for imports 2015-12-28 20:35:56 +02:00
ed68878592 Show error for invalid LD script 2015-12-28 20:09:48 +02:00
3121ca5669 Fix SPIFFS_START address // Issue #382 2015-12-28 18:40:54 +02:00
5abb21c3f9 Minor changes for offsets 2015-12-28 13:54:07 +02:00
b9a87b3d54 Merge pull request #407 from ZachMassia/develop 2015-12-28 10:58:22 +02:00
cd1259613a Fix typo 2015-12-28 00:54:19 -05:00
023a3487e0 Don't run mkspiffs target by default 2015-12-28 01:38:41 +02:00
2c4c3a12ea Add link to ESP8266 Flash layout // Issue #382 2015-12-28 01:21:17 +02:00
cae5f1f553 Implement uploading files to file system SPIFFS for ESP8266 // Issue #382 2015-12-28 01:15:06 +02:00
d7673b69e2 Add link for enlarge to Emacs screenshot 2015-12-27 17:54:51 +02:00
85f0877d32 Project generator for Emacs text editor // Issue #404 2015-12-27 17:53:51 +02:00
e152155a58 Merge pull request #404 from ZachMassia/develop
Emacs IDE integration support
2015-12-27 16:58:46 +02:00
ce93e6013f Fix variant for RFduino board 2015-12-26 23:50:56 +02:00
bee51aadcb Fix test for LD Scripts 2015-12-26 23:04:16 +02:00
956633847d Add RFDuino iBeacon example 2015-12-26 21:50:47 +02:00
918deb41a4 Typo fix 2015-12-26 21:32:10 +02:00
1b7b2ca0a2 Add support for RFDuino // Resolve #319 2015-12-26 21:24:01 +02:00
1b84078541 Show error message when user tries to install/run PlatformIO with Python 3 2015-12-26 20:22:22 +02:00
f7311eb94d Update Wiring example according to Get-Started on home page 2015-12-26 20:08:50 +02:00
9312ca7f0d Moved SCons to PlatformIO packages. PlatformIO does not require SCons to be installed in your system.
Significantly simplified installation process of  PlatformIO. "pip install platformio" rocks!
2015-12-26 14:47:42 +02:00
533720218a Add Emacs screenshot, add Emacs to IDE doc page 2015-12-26 03:00:44 -05:00
d2088e7444 Enhance doc 2015-12-26 01:02:44 +02:00
9006b8b618 Add initial version of emacs documentation 2015-12-25 02:09:09 -05:00
b9f926d13b Add Emacs to IDE templates 2015-12-25 02:09:09 -05:00
319636f017 Fix broken RST for mbed framework 2015-12-25 01:09:41 +02:00
4c665a292a Cleanup docs for IDE integration 2015-12-25 01:06:55 +02:00
72f93cd563 Link articles with platforms and frameworks 2015-12-25 00:49:27 +02:00
2e38b156dd Add examples for frameworks 2015-12-25 00:31:13 +02:00
a9a50f79da Add examples for Atmel AVR platform 2015-12-25 00:17:19 +02:00
4b922b9de2 Documented firmware uploading for Atmel AVR development platform using Programmers 2015-12-24 23:55:49 +02:00
36912c0fe6 Update Arduino framework for Atmel AVR development platform to 1.6.7 2015-12-24 23:39:25 +02:00
dfe39f386d Add support for the new Adafruit boards Bluefruit Micro and Feather // Resolve #403 2015-12-24 23:09:40 +02:00
943d16bcf8 Add example with "Ctrl+Q" to serial ports monitor as exit key // Resolve #386 2015-12-22 20:28:37 +02:00
6d0b1a8106 Add demo for ESP8266 OTA 2015-12-22 20:17:10 +02:00
663a3b1aec Add new articles 2015-12-22 20:07:43 +02:00
131f6504ca Improve auto installation for SCons 2015-12-22 19:53:54 +02:00
94cdc9b69e Merge branch 'feature/scons-autoinstall' into develop 2015-12-22 19:09:29 +02:00
1c1cd2509e Add demo with "Over-the-Air update for ESP8266" 2015-12-22 18:21:21 +02:00
abdc76aef8 Improve auto installation for SCons 2015-12-22 18:07:15 +02:00
9b058c3958 Merge branch 'release/v2.6.3' into develop 2015-12-21 20:56:06 +02:00
d91261412e Merge branch 'release/v2.6.3' 2015-12-21 20:56:05 +02:00
2e26b5d31d Version bump to 2.6.3 (issues #396) 2015-12-21 20:55:49 +02:00
3266d3b211 Fix top menu in docs 2015-12-21 20:52:39 +02:00
c2072e3e62 Cleanup debug code 2015-12-21 20:43:07 +02:00
5266f4810b Fix PyLint warning 2015-12-21 20:41:57 +02:00
6e83b4b093 Restore support for Espressif ESP8266 ESP-01 1MB board (ready for OTA) 2015-12-21 20:39:45 +02:00
7b1b908779 Fix invalid ROM size for ESP8266-based boards // Resolve #396 2015-12-21 19:23:46 +02:00
7a95a201b5 Merge branch 'release/v2.6.2' 2015-12-21 17:42:01 +02:00
70c86525cc Merge branch 'release/v2.6.2' into develop 2015-12-21 17:42:01 +02:00
618d32b872 Version bump to 2.6.2 2015-12-21 17:41:37 +02:00
66ca204697 Removed SCons from requirements list 2015-12-21 17:35:30 +02:00
54d650aa40 Update number of supported boards 2015-12-19 01:19:36 +02:00
851b452c17 Add warning to CLion docs to avoid running targets 2015-12-18 23:44:04 +02:00
0ff795e798 Fix "ChunkedEncodingError" when SF connection is broken // Issue #356 2015-12-18 22:56:15 +02:00
43b50e5b9f Update docs with the new vendors for ESP8266 2015-12-18 21:01:56 +02:00
18d68bafd0 Fix vendors for ESP8266 boards 2015-12-18 20:56:17 +02:00
feb951c35e Merge branch 'release/v2.6.1' into develop 2015-12-18 20:30:42 +02:00
41c2164755 Merge branch 'release/v2.6.1' 2015-12-18 20:30:41 +02:00
ee87b55947 Version bump to 2.6.1 (issues #377, #378, #379, #380, #381, #383, #384, #387) 2015-12-18 20:30:30 +02:00
7119bb9084 Fix project generator for Eclipse IDE and "duplicate path entries found in project path" // Resolve #383 2015-12-18 20:18:19 +02:00
132c769766 Better error handling 2015-12-18 19:58:09 +02:00
e4dbcd50cc Improv documentation for Espressif platform 2015-12-18 19:29:20 +02:00
62d5f66ae2 Extra docs for Espressif platform 2015-12-18 18:06:20 +02:00
cfa3f1b520 Extra documentation for development platform / frameworks // Resolve #381 2015-12-18 17:06:28 +02:00
0951d53f52 Fix issue with code builder when build path contains spaces // Resolve #387 2015-12-18 15:40:44 +02:00
186580d794 Fix issue with code builder when build path contains spaces // Resolve #387 2015-12-18 15:20:37 +02:00
1a47cfc938 Show INT values for serial monitor hot keys 2015-12-18 12:18:25 +02:00
edc06f12b5 Add to FAQ "Monitoring a serial port breaks upload" // Resolve #384 2015-12-17 20:22:17 +02:00
3830e98c1d Add support for the new ESP8266 based boards 2015-12-17 20:16:17 +02:00
3cbbecb413 Repository for LD scripts; common LD script for ESP8266 // Resolve #379 2015-12-17 18:17:54 +02:00
f0abd353ae Extend link to FAQ with what is PlatformIO 2015-12-17 00:47:56 +02:00
84cbbe437d Remove default options 2015-12-17 00:08:57 +02:00
34a5d366d5 Fix reset method for Espressif NodeMCU (ESP-12E Module) // Resolve #380 2015-12-17 00:02:22 +02:00
d3b7fc7ddb Add JetBrains post in CLion Blog 2015-12-16 13:18:51 +02:00
3d413743e4 Add ESP8266 quickstart 2015-12-16 00:35:24 +02:00
b3d5ced193 Merge branch 'release/v2.6.0' 2015-12-15 20:54:31 +02:00
1e38db8cae Merge branch 'release/v2.6.0' into develop 2015-12-15 20:54:31 +02:00
b073760711 Version bump to 2.6.0 (issues #308, #365, #368, #371, #372, #373, #375) 2015-12-15 20:54:19 +02:00
f778bdb741 Fix test with ldscripts. 2015-12-15 20:45:47 +02:00
2afbe2a64b Better handling of upload targets 2015-12-15 20:25:59 +02:00
a5878c5544 Updated CMSIS framework and added CMSIS support for Nucleo F401RE board // Issue #373 2015-12-15 20:19:27 +02:00
997cfbf488 Change framework order 2015-12-15 20:10:28 +02:00
3afc8c7908 Add make related keywords 2015-12-15 20:10:04 +02:00
1e21d6e05b Merge pull request #376 from valeros/develop
Add CMSIS support for nucleo_f401re board  // Resolve #373
2015-12-15 20:06:10 +02:00
8eebd39426 Fix libopenCM3 framework. 2015-12-15 19:30:11 +02:00
7e985219ad Update builder for SPL framework. 2015-12-15 19:29:37 +02:00
7ce780bcc6 Update builder for CMSIS framework. 2015-12-15 19:28:58 +02:00
62b41e0994 Fix PyLint warnings 2015-12-15 17:04:28 +02:00
4c65093a66 Remove unused imports 2015-12-15 16:09:35 +02:00
cb4c4e13a3 Install only required packages depending on build environment // Resolve #308 2015-12-15 15:58:52 +02:00
3b7de598d3 Replace native with linux_arm platform for Raspberry Pi 2015-12-15 00:50:14 +02:00
a85bf32700 Use "format" to format exception messages 2015-12-14 22:44:16 +02:00
004125a2ca Add support for Raspberry Pi WiringPi framework // Resolve #372 2015-12-14 19:50:50 +02:00
d4e4ab07a6 Add copyrights 2015-12-14 19:40:59 +02:00
94bb0dc43e Revert back step with upgrading for pip/setuptools // Resolve #371 2015-12-14 19:21:23 +02:00
becec986ea More explanations about library.json 2015-12-14 18:47:50 +02:00
9eae55f03c Add link to telemetry setting 2015-12-14 11:30:39 +02:00
4e90a2fd42 Fix test for settings command 2015-12-14 01:14:02 +02:00
c4d5960eb6 Fix multiple search queries to "lib search" 2015-12-14 00:46:17 +02:00
3595c2cc88 More explanation about telemetry service 2015-12-14 00:40:41 +02:00
73cc3e3ac8 Handle more search args for "lib search" 2015-12-14 00:05:33 +02:00
1541537d0d Don't print any maintenance information for --json-output requests 2015-12-13 23:27:37 +02:00
abf4376d20 Add example with upload_port=IP_ADDRESS for OTA 2015-12-13 22:09:50 +02:00
faf2839a08 Remove command with target=clean 2015-12-13 22:09:19 +02:00
15224e3c02 Add .travis.yml and .gitignore files 2015-12-13 19:40:07 +02:00
093176b2ee Add link to demo projects 2015-12-12 23:37:43 +02:00
dffc8ef940 Optimise auto-scroll for docs by hash 2015-12-12 22:48:45 +02:00
21c64b2fe1 Fix anchor scroll 2015-12-12 22:45:37 +02:00
7868566a78 Improve PlatformIO installation on the Mac OS X El Capitan 2015-12-12 18:18:57 +02:00
f793ff1a86 Disable SCons man for --egg 2015-12-12 18:00:03 +02:00
e702e1eb27 Handle broken connection from SF side 2015-12-12 17:59:25 +02:00
5b2fac95ce Improve symlink fixer 2015-12-12 16:45:53 +02:00
2baf14f900 Implemented Over The Air (OTA) upgrades for Espressif development platform // Resolve #365 2015-12-11 15:31:36 +02:00
cc1eb4bad6 Add previously added boards to docs 2015-12-11 15:24:02 +02:00
fbd2c61f40 Update docs with "upload_flags" 2015-12-11 15:20:08 +02:00
9cc9912ef2 Handle upload_flags option in platformio.ini // Resolve #368 2015-12-11 15:17:38 +02:00
e69bc34678 Fix .gitignore contents 2015-12-11 14:23:12 +02:00
9d01d86652 Explain about SCons and how to fix installation 2015-12-11 00:16:06 +02:00
2c301ca422 Explain how to use Arguments and custom options 2015-12-10 23:52:33 +02:00
9cec353d40 Merge branch 'release/v2.5.0' 2015-12-08 19:28:22 +02:00
c42561de45 Merge branch 'release/v2.5.0' into develop 2015-12-08 19:28:22 +02:00
c841ba1cba Version bump to 2.5.0 (issues #352, #354, #358) 2015-12-08 19:28:08 +02:00
eb1971fb17 Fix PyLint 2015-12-08 19:08:00 +02:00
983db2f3c8 Improve project initialisation 2015-12-08 18:42:50 +02:00
c87c4691f3 Typo fix 2015-12-08 18:42:23 +02:00
68c64cd942 Improve upgrading command 2015-12-07 22:44:31 +02:00
dfb93e9682 Improve project initialisation 2015-12-07 22:23:20 +02:00
b7ab825860 Use general exception for usage error 2015-12-07 17:43:59 +02:00
28619a6ce7 Add libray.json 2015-12-07 17:43:33 +02:00
7eed6f56f6 Update keywords 2015-12-07 17:17:01 +02:00
234517ee0a Ignore unsupported mbed native library 2015-12-07 15:09:43 +02:00
a483ecdfdb Warn about missing native support for the library // Resolve #358 2015-12-07 14:52:19 +02:00
97ee8d55ce Remove debug code 2015-12-07 00:23:38 +02:00
7727562f44 Simplify .travis.yml file 2015-12-07 00:20:14 +02:00
f6686f149b Generate ".gitignore" by default 2015-12-05 23:34:25 +02:00
2345eb3bb7 Fix incorrect behaviour of "platformio serialports monitor" in pair with @PySerial 3.0 2015-12-05 23:30:42 +02:00
16abaccf96 Keep consign DB in .pioenvs 2015-12-05 23:21:16 +02:00
8c8de45f30 Fix PyLint warning 2015-12-04 22:35:22 +02:00
f4f65e4c84 Improve code builder for parallel builds (up to 4 times faster than before) 2015-12-04 21:06:29 +02:00
a8ae5e4d03 Generate .travis.yml CI config for embedded projects by default // Resolve #354 2015-12-04 15:18:31 +02:00
b91f03f082 Add examples for "extra_script" 2015-12-04 00:02:37 +02:00
e1396e57b6 Fix extension for example 2015-12-03 20:02:17 +02:00
67cbf25b96 Fix broken ci command 2015-12-03 19:25:46 +02:00
e721ebe171 Add warning to regenerate project when new libs are used 2015-12-03 17:49:26 +02:00
c2d760bccb Fix tests for init command 2015-12-03 17:39:36 +02:00
5dc1396f05 Remove prompt with "auto-uploading" from init command and add --enable-auto-uploading option // Resolve #352 2015-12-03 17:19:43 +02:00
5b1ceccd1f Add Quickstart for Library Manager 2015-12-03 00:40:17 +02:00
bf1751059c Fix URL for article 2015-12-03 00:28:35 +02:00
7e069afbb2 Add new articles 2015-12-02 23:58:21 +02:00
bacb813b31 Add "Articles/Manuals" for IDE docs 2015-12-02 23:51:07 +02:00
c670372b41 Move Library Manager to separate group 2015-12-02 23:28:49 +02:00
ec9b8f980d Merge branch 'release/v2.4.1' 2015-12-01 19:02:16 +02:00
28399f8ac6 Merge branch 'release/v2.4.1' into develop 2015-12-01 19:02:16 +02:00
ef5fa4dea0 Version bump to 2.4.1 2015-12-01 19:02:01 +02:00
84e82dd39a Restore PLATFORMIO macros with the current version 2015-12-01 19:00:40 +02:00
f842898102 Remove "future" code 2015-12-01 18:38:32 +02:00
1bf73c268d Merge branch 'release/v2.4.0' 2015-12-01 17:51:04 +02:00
17ec85263c Merge branch 'release/v2.4.0' into develop 2015-12-01 17:51:04 +02:00
50ba235917 Version bump to 2.4.0 (issues #271, #334, #335, #336, #339, #340, #343, #345, #346) 2015-12-01 17:50:35 +02:00
14fc21c379 Drop Click to (5.1) <6 // Issue #346 2015-12-01 17:43:16 +02:00
306f2f980d Drop Click to <6 2015-12-01 17:41:10 +02:00
a7a82b1c0a Fix PlatformIO version 2015-12-01 16:28:47 +02:00
d806097b60 Fix PlatformIO version. 2015-12-01 13:47:56 +02:00
9f4b73d821 Update Arduino core for Espressif platform to 2.0.0 // Resolve #345 2015-12-01 12:04:41 +02:00
ff5d57039e Merge branch 'feature/issue-339-espressif-rc-framework' into develop 2015-12-01 11:51:50 +02:00
db42863f54 Update build flags for espressif platform. 2015-12-01 11:21:23 +02:00
946f21879c Add new article by Keith Hughes 2015-11-30 21:46:21 +02:00
20b214f3a4 Rephrase slogan (add library manager) 2015-11-30 18:29:30 +02:00
8aedc50f30 Rephrase slogan 2015-11-30 18:05:32 +02:00
cd11171e33 Lint code with the latest PyLint 2015-11-30 01:11:57 +02:00
bcb4e1abfd Add new article by Mistan 2015-11-29 23:23:31 +02:00
786b977603 Print "unexpected block" for non-PlatformIO exceptions 2015-11-29 19:05:02 +02:00
5264d85a78 Fix broken link to extra css 2015-11-29 17:56:26 +02:00
5713a6233f PlatformIO is an open source ecosystem for IoT development 2015-11-28 17:14:42 +02:00
98ad4adcf3 Numerate installation methods 2015-11-27 23:56:30 +02:00
304c023b4e Fix unicode issue for Python 2.6 2015-11-27 23:49:49 +02:00
7ce1dd4f5c Fix ParseFlags for mbed 2015-11-27 21:59:08 +02:00
332b19f35b Update requirements.txt 2015-11-27 21:19:19 +02:00
774ea5240e Update click to 6.1 2015-11-27 21:16:20 +02:00
221b7ed188 Fix relative include path for preprocessor using "build_flags" // Resolve #271 2015-11-27 21:15:09 +02:00
304339e309 Try navbar over footer 2015-11-27 13:22:06 +02:00
bf9c9b8985 Add navbar to doc 2015-11-27 00:37:46 +02:00
e85bc39315 Fix inaccurate Vim instructions // Issue #340 2015-11-26 22:15:57 +02:00
ed32e07e34 Better exceptions handling 2015-11-26 22:02:59 +02:00
9bd1f99b69 Improve espressif platform for RC version of framework 2015-11-26 20:19:36 +02:00
25f57cc683 Add logo to the docs 2015-11-26 14:44:44 +02:00
fb4d605e33 Rename to Custom Board/Platform 2015-11-26 13:31:41 +02:00
426b276b08 Rename to Custom Board/Platform 2015-11-26 13:28:48 +02:00
a085d90af2 Fix broken link 2015-11-26 00:32:23 +02:00
8023b85085 Improve @circleci doc 2015-11-26 00:10:36 +02:00
f17d2d7f90 @circleci doesn't support matrix builds 2015-11-25 22:27:57 +02:00
aef06e837a Fix "LockFailed: failed to create appstate.json.lock" error for Windows 2015-11-25 19:54:06 +02:00
d63f6cff08 Update FAQ & History // Resolve #331 2015-11-24 19:58:24 +02:00
354fbf6253 Add new board with mbed framework support 2015-11-24 19:20:20 +02:00
238ce2e858 fix moteinomega configuration // Resolve #335 2015-11-24 19:08:19 +02:00
c8b6bd1c2c Add new article "Using PlatformIO to get started with Arduino in CLion IDE" by @mseroczynski 2015-11-24 17:17:25 +02:00
dd5a509a99 Fix ESP-12E flash size // Resolve #333 2015-11-24 13:14:41 +02:00
970ddd44bf Fix maximum_size for ESP-12E board // Resolve #333 2015-11-23 18:39:56 +02:00
c0eded84a0 Only bug fixes in 2.3.6 2015-11-23 17:27:02 +02:00
5a83ebe48e Add new article by @joshglendenning about "@Armstrap Eagle and @PlatformIO" 2015-11-20 22:41:36 +02:00
d90697d8db Merge pull request #328 from hoosierEE/develop
Slight grammar/wording tweaks
2015-11-20 00:08:05 +02:00
159c0a93d2 Start 2.4.0 2015-11-18 20:14:16 +02:00
a6040bb53d Merge branch 'release/v2.3.5' 2015-11-18 20:11:40 +02:00
7d39c886f4 Merge branch 'release/v2.3.5' into develop 2015-11-18 20:11:40 +02:00
771a90a588 Bump to @PlatformIO 2.3.5 2015-11-18 20:11:00 +02:00
7b1858a5ce Fix compilation error TWI_Disable not declared for Arduino Due board // Issue #329 2015-11-18 20:08:27 +02:00
c95226ec1e Fix includes for Windows 2015-11-18 19:18:50 +02:00
6bece3f371 Improve running @PlatformIO outside virtualenv 2015-11-18 19:12:53 +02:00
48c3e5aa29 Remove user's data 2015-11-18 19:12:12 +02:00
73ae2ffb9b Add Apache License, Version 2.0 to @PlatformIO examples README 2015-11-18 17:49:21 +02:00
34aaf7b157 Add Apache License, Version 2.0 to @PlatformIO docs 2015-11-18 17:33:46 +02:00
904b08f497 Add Apache License, Version 2.0 to @PlatformIO source code 2015-11-18 17:16:17 +02:00
5454c35430 Fix empty list with serial ports on Mac OS X // Resolve #294 2015-11-17 23:20:04 +02:00
aa98d7dc5d Skip thread exceptions for telemetry 2015-11-17 23:04:49 +02:00
020c1c7975 Slight grammar/wording tweaks 2015-11-17 13:26:42 -05:00
cf98750f4b Fix project generator for CLion IDE under Windows OS with invalid path to executable // Resolve #326 2015-11-16 23:17:23 +02:00
09ccae0f30 Update Arduino AVR/SAM frameworks to 1.6.6 // Resolve #321 2015-11-16 23:10:14 +02:00
522cbacada Add new article by @nocd5 2015-11-13 17:45:36 +02:00
841fa02b18 Add new article by ALvaro Garcia Gomez 2015-11-12 17:38:56 +02:00
47041272d2 Fix Circle build 2015-11-12 17:28:25 +02:00
c7a6f4f186 Update SCons to 2.4.1 2015-11-12 17:07:17 +02:00
2756984273 Add "open-source" to slogan 2015-11-11 14:59:47 +02:00
cc46fa34e8 Add "framework-arduinonordicnrf51" for the platform 2015-11-10 00:12:30 +02:00
b94cc655c2 Fix lint error. 2015-11-09 21:02:05 +02:00
1c5d34cb5f Update nordicnrf51 platform for RFduino. 2015-11-09 20:24:41 +02:00
ace9ae0b24 Initial support for RFduino. 2015-11-09 18:10:43 +02:00
91345c0bdd Add support for pySerial 3.0 // Resolve #307 2015-11-06 19:54:15 +02:00
1790c6bd0f Merge branch 'feature/pyserial-3.0' into develop 2015-11-06 16:58:50 +02:00
d72b899471 Fix installation on Mac OS X El Capitan // Resolve #312 2015-11-06 16:38:41 +02:00
bf9bbabfd6 Update languages for non-english articles 2015-11-04 16:06:43 +02:00
fff9b34ed7 Fix country name 2015-11-04 16:04:18 +02:00
ce3a8c1f46 Update articles 2015-11-04 16:02:49 +02:00
c420fa4bc2 Add new article "Arduino development at the command line: VIM + @PlatformIO (Japan)" by @caad1229 2015-11-04 00:10:42 +02:00
8e5f9067af Fix article url 2015-11-03 23:56:59 +02:00
306b0a2f62 Fix firmware uploading for "nordicrf51" development platform // Resolve #316 2015-11-02 23:03:05 +02:00
96f4667755 Update bottle to 0.12.9 2015-11-02 22:39:37 +02:00
2c53bd49f2 Upload firmware using external programmer via "platformio run –target program" // Resolve #311 2015-11-02 22:36:49 +02:00
caa0961337 Fix handling of upload port when board option is not specified in platformio.ini // Resolve #313 2015-11-02 21:41:13 +02:00
32d3b632d2 Add support for Espressif ESP8266 ESP-12E board (NodeMCU) // Resolve #310 2015-11-02 21:18:09 +02:00
3945edb7fe Update default cpu frequency for NodeMCU board 2015-10-22 17:59:43 +03:00
928feee008 Remove udev rules for ESP-12E (HL-340 dupl.) 2015-10-21 13:19:44 +03:00
9ef4b00238 Fix udev rules for ESP-12E (NodeMCU) 2015-10-21 13:11:13 +03:00
616a769ff5 Add Espressif ESP-12E board (NodeMCU) 2015-10-21 12:48:13 +03:00
ef2c96ac84 Add more examples for @Travis-CI 2015-10-20 17:35:56 +01:00
1c63da7f33 Improve Travis CI doc 2015-10-19 18:25:06 +01:00
2e00e5f463 Add new article "First Arduino I2C Experience with PaltformIO" 2015-10-19 17:59:38 +01:00
8360bf9d84 Up to 2.4.0.ev0 2015-10-16 15:29:28 +01:00
1520c096a4 Add libOpenCM3 framework for nucleo_f103rb board // Resolve #309 2015-10-16 15:22:11 +01:00
a965bfd32e Fix boards ldscript test 2015-10-16 16:17:24 +03:00
7741790bd8 Add libopenCM3 support for nucleo_f103rb board. 2015-10-16 14:50:28 +03:00
f0e6f8cee2 Update requests to 2.8.1, lockfile to 0.11.0 2015-10-13 20:03:35 +01:00
c4a4dcd419 Merge branch 'release/v2.3.4' 2015-10-13 18:40:46 +01:00
b89a04acd8 Merge branch 'release/v2.3.4' into develop 2015-10-13 18:40:46 +01:00
b7d2619651 Version bump to 2.3.4 (issues #132, #279, #290, #302, #305, #306) 2015-10-13 18:40:23 +01:00
c07e957e28 Fix FAQ doc 2015-10-13 18:36:37 +01:00
b183431c27 Install SCons automatically and avoid error: option --single-version-externally-managed not recognized 2015-10-13 18:24:40 +01:00
177353bf7a PlatformIO command completion in Terminal for bash and zsh // Resolve #290 2015-10-13 17:44:28 +01:00
de2d6818c1 Full support of CLion IDE including code auto-completion // Resolve #132 2015-10-13 14:01:16 +01:00
f758d8607a Use teensy CLI loader for upload of .hex files on OSX // Resolve #306 2015-10-12 16:29:24 +01:00
1164ef31ca Fix missing of framework-mbed package for teensy platform // Resolve #305 2015-10-12 13:24:42 +01:00
2997273654 Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/pyserial-3.0 2015-10-10 14:26:21 +01:00
20edf7de41 Add support for @ubIQio Ardhat board // Resolve #302 2015-10-10 11:35:01 +01:00
7467c281cc Add support for @ubIQio Ardhat board 2015-10-10 11:33:38 +01:00
3b8d7304ff Propose upgrading via pip 2015-10-09 14:12:30 +01:00
6e274cbf20 Correct social links 2015-10-08 16:59:12 +01:00
3a0614641b Add links for Hackaday 2015-10-08 16:50:47 +01:00
c395dd5ebd Update requests to 2.8.0 2015-10-07 11:57:46 +01:00
1c9dc2ba3d Handle WindowsError when can't remove .pioenvs directory 2015-10-06 17:06:47 +01:00
52b98dd159 Add "Commands completion in Terminal" 2015-10-04 15:20:49 +01:00
1426e78793 Show valid environment names when user typed unknown values 2015-10-03 15:38:33 +01:00
8eb2798e5c Direct import of comports 2015-10-03 12:28:21 +01:00
ec6af9a460 Merge branch 'release/v2.3.3' 2015-10-02 16:24:02 +01:00
ec844961c7 Merge branch 'release/v2.3.3' into develop 2015-10-02 16:24:02 +01:00
e1c9cb2c00 Version bump to 2.3.3 (issues #263, #288, #292, #295, #296, #297) 2015-10-02 16:23:46 +01:00
2c0d26e06d Skip empty serial ports // Issue #294 2015-10-02 16:20:07 +01:00
3c36eafdfa Avoid pip cache when problem occurs for upgrade process // Issue #295 2015-10-02 16:14:04 +01:00
e22ab787dd Fix ESP8266 compile errors about RAM size when adding 1 library // Resolve #297 2015-10-02 15:34:36 +01:00
948b75aeda Merge pull request #299 from valeros/develop
Update espressif platform // Resolve #296, #297
2015-10-02 15:22:09 +01:00
4dcef89301 Update espressif platform // Resolve #296, #297 2015-10-02 16:11:00 +03:00
12b29a760a More explanations about NotPlatformProject 2015-10-01 17:04:26 +01:00
43ca0e149f Remove debug info 2015-09-30 16:56:13 +01:00
ad1666dd0a Fix double quotes in defines for Project Generator // Issue #294 2015-09-30 16:54:12 +01:00
1b4d4f5695 Handle Atom & Vim as IDE 2015-09-30 14:54:07 +01:00
a714e6084a Add to FAQ "Unable to install PlatformIO: [Errno 1] Operation not permitted" // Resolve #295 2015-09-28 16:57:28 +01:00
a8dd5d85a5 Add support for ST Nucleo F446RE board // Pull #293 2015-09-28 13:19:07 +01:00
83363c7077 Merge pull request #293 from dkuku/patch-1
Add support for ST Nucleo F446RE board
2015-09-28 13:12:48 +01:00
d99a57365f Add support for LightBlue Bean board // Issue #292 2015-09-28 12:09:03 +01:00
3cb41cf6b0 Update ststm32.json
added nucleo_f446re
2015-09-27 03:02:34 +01:00
5201626d6a Merge pull request #292 from mplewis/add-lightblue-boards
config: add LightBlue Bean board definition and docs
2015-09-24 09:43:57 +02:00
f812e74324 config: fix Punch Through vendor name 2015-09-23 11:57:54 -05:00
0668d6d290 docs: remove LightBlue Bean docs 2015-09-23 11:54:00 -05:00
46d1c2c86c Fix broken lock file for "appstate" storage // Resolve #288 2015-09-23 16:35:31 +03:00
ee7fe1fc10 Add to FAQ info about Archlinux issue with libncurses.so.5 // Resolve #291 2015-09-23 15:55:19 +03:00
c997495b5d docs: fix underline length 2015-09-22 15:04:06 -05:00
605b5755bf config: add LightBlue Bean board definition and docs 2015-09-22 14:54:32 -05:00
b60c761cce Fix firmware uploading to Arduino Leonardo board using Mac OS // Resolve #287 2015-09-11 12:53:04 +03:00
12d6df6962 Merge branch 'release/v2.3.2' 2015-09-10 20:44:53 +03:00
34972c77f5 Merge branch 'release/v2.3.2' into develop 2015-09-10 20:44:53 +03:00
2c5db64677 Version bump to 2.3.2 (issues #279) 2015-09-10 20:44:39 +03:00
fa33d53180 Show float RAM values for boards // Issue #286 2015-09-10 20:41:23 +03:00
57b877f445 Fix Cygwin disabling 2015-09-10 20:31:26 +03:00
dcb6d8286b Disable Cygwin support 2015-09-10 20:23:37 +03:00
3a8c515e21 Minor fix 2015-09-10 20:22:54 +03:00
50984f1475 Correct OS arch within Cygwin emu 2015-09-10 19:47:14 +03:00
4338bade5b Allow PlatformIO to be run within Cygwin environment 2015-09-10 19:35:32 +03:00
ed10ecd142 Explain how to use "lib" directory from the PlatformIO based project // Issue #273 2015-09-10 18:19:23 +03:00
6815297b0c Merge branch 'feature/issue-287' into develop 2015-09-10 17:52:40 +03:00
c72bf9ea31 Found solution for "pip/scons error: option –single-version-externally-managed not recognized" // Resolve #279 2015-09-10 17:47:19 +03:00
d4f4d9c789 Fix using $UPLOAD_PROTOCOL env variable 2015-09-10 16:56:33 +03:00
61ef27c345 Allow to use ST-Link uploader for mbed-based projects 2015-09-10 16:43:09 +03:00
9c73e59772 Fix firmware uploading for Arduino Leonardo under Unix 2015-09-10 15:20:29 +03:00
0405ba3f31 Update virtualenv if exists 2015-09-09 01:28:43 +03:00
f5f97fe0fd More explanations about lib directory 2015-09-09 01:01:41 +03:00
82a8bd01fc Fix SConsNotInstalled error for Linux Debian-based distributives 2015-09-09 00:45:51 +03:00
b15408e693 Depend on lockfile >= 0.9.1 2015-09-08 15:08:44 +03:00
74ac9ffa1c Merge branch 'release/v2.3.1' 2015-09-06 18:17:53 +03:00
ed5f035d1c Merge branch 'release/v2.3.1' into develop 2015-09-06 18:17:53 +03:00
0f5417bab4 Version bump to 2.3.1 (issues #283) 2015-09-06 18:17:40 +03:00
0311418bfc Fix critical issue when platformio init --ide__ command hangs PlatformIO // Resolve #283 2015-09-06 18:16:09 +03:00
bc449fec48 Remove SCons from pip instruction 2015-09-05 23:17:01 +03:00
1e7240d6dc Merge branch 'release/v2.3.0' into develop 2015-09-05 23:05:34 +03:00
2732d63362 Merge branch 'release/v2.3.0' 2015-09-05 23:05:33 +03:00
78bf56e327 Version bump to 2.3.0 (issues #234, #252, #256, #263, #268, #270, #272, #274, #277, #279) 2015-09-05 23:04:53 +03:00
01eb25cb39 Handle Miniterm exceptions 2015-09-05 22:58:42 +03:00
1f612b466c Fix platformio path for Windows 2015-09-05 22:43:12 +03:00
0a85e01322 Cleanup 2015-09-05 20:53:50 +03:00
3cb4e6e854 Fix project generator for Windows; update docs for IDE 2015-09-05 20:50:30 +03:00
d566eb2a36 Include subdirectories with tpls for project generator 2015-09-05 10:45:09 +03:00
71890a34be Reorganise IDE examples 2015-09-04 23:48:57 +03:00
c254a3490c Fix path for Windows-based projects 2015-09-04 20:35:56 +03:00
a032026f46 Significantly improve "Project Generator" // Resolve #280 2015-09-04 19:31:59 +03:00
e1ee61d31b Add "-d" option for "--project-dir" to init & run commands 2015-09-04 18:28:13 +03:00
ca4694e1af Update mbed framework 2015-09-04 13:10:14 +03:00
9fea8f4488 Switch to requires.io 2015-09-04 12:57:11 +03:00
f9f54da914 Fix invalid command context 2015-09-03 20:07:35 +03:00
97c1a27031 Fix serial monitor args 2015-09-03 20:00:24 +03:00
0d8d5fdb32 Allow multiple instances of @PlatformIO 2015-09-03 19:04:09 +03:00
25c448627e Added short "-h" help option for PlatformIO and sub-commands 2015-09-02 23:07:45 +03:00
baa83c6ee6 Improve PlatformIO upgrading 2015-09-02 13:42:01 +03:00
2f7a6ef0a1 Check that SCons is installed properly 2015-09-01 16:42:41 +03:00
c50332daa2 Allow to run platformio directly from the bin folder 2015-09-01 16:15:04 +03:00
8dbb282416 Info about "Add" button when $PATH doesn't exist 2015-08-29 00:51:21 +03:00
ef8f7d4fc0 More explanation about Eclipse and $PATH 2015-08-29 00:47:56 +03:00
74ea4ae9c2 Update installation via pip 2015-08-29 00:25:29 +03:00
2cf1b1420c Fix used command and version 2015-08-28 23:53:45 +03:00
8bdcf54d9f Add new article about MBED FRDM-K64F Eclipse/PlatformIO 2015-08-28 23:50:46 +03:00
a815aa15ec Fix installation issue with pip // Resolve #279 2015-08-28 22:32:39 +03:00
b1dbba6224 Add demo to README 2015-08-28 20:15:40 +03:00
35901a125d Fix upload link for Wiring Blink demo 2015-08-28 19:55:16 +03:00
52b28867a0 Add "Demo" page 2015-08-28 19:52:37 +03:00
d7d71b60f8 Full text of docs 2015-08-28 17:19:33 +03:00
465e952ae4 Update TOP links 2015-08-28 17:16:30 +03:00
200658ae6d Use Circle built-in setuptools 2015-08-27 11:09:25 +03:00
e58f5e3617 Fix tox @develop 2015-08-25 18:08:57 +03:00
78ba3176f2 Remove SCons package from develop docs 2015-08-25 16:51:46 +03:00
abd02570f4 Use toolchain's includes pattern "include*" for Project Generator // Resolve #277 2015-08-25 16:45:12 +03:00
97b8d4eeea Add SCons to requirements list 2015-08-25 16:35:19 +03:00
92036356ca Pre-upgrade for pip and setuptools for CI 2015-08-25 16:30:16 +03:00
6842df5577 Install @PlatformIO without -U flag by default 2015-08-25 15:21:13 +03:00
793352dfbf Rephrase installation text 2015-08-25 15:16:25 +03:00
b96535abff Install @PlatformIO with update option 2015-08-25 15:12:31 +03:00
2b4b50ee08 Add info about pip 2015-08-25 15:11:23 +03:00
e2795716f9 Generate "readme.txt" for project "lib" directory // Resolve #273 2015-08-22 23:11:48 +03:00
47d5783700 Improve installation section 2015-08-22 22:27:35 +03:00
9f6c677276 Remove SCons temporary from requirements list (Circle CI fails) 2015-08-22 17:44:51 +03:00
70f117f63f Install the latest pip & setuptools packages 2015-08-22 17:42:01 +03:00
83c8e914ae Fix YAML format 2015-08-22 17:39:19 +03:00
38b6a86858 Install the latest pip & setuptools packages 2015-08-22 17:38:15 +03:00
76267b7db6 Group PlatformIO releases 2015-08-22 17:31:26 +03:00
4cd0febb18 Add information about symlinks // Issue #272 2015-08-22 17:30:58 +03:00
9d9488edd1 Add SCons to requirement list 2015-08-22 17:16:28 +03:00
a1483c263f Simplified installation process of PlatformIO // Resolve #274 2015-08-22 17:09:28 +03:00
8e42c4ae31 Explain that lib dir is suitable for private libraries // Issue #273 2015-08-21 23:56:22 +03:00
bf15ba3a78 Add answer to FAQ when Program “platformio” not found in PATH // Resolve #272 2015-08-21 23:41:50 +03:00
20a0592b37 Fix "AttributeError: 'module' object has no attribute 'packages'" // Resolve #252 2015-08-21 23:09:56 +03:00
5422054ae4 Use original 'returncode' from exec command 2015-08-21 19:50:21 +03:00
ac3844aa95 Add new articles 2015-08-21 17:17:47 +03:00
1b41ffba60 Fix home path environment variable in Eclipse project on Windows // Resolve #270 2015-08-20 14:52:03 +03:00
3393d81452 Hint "save as..." for download get-platformio.py script 2015-08-19 23:11:42 +03:00
25baee266c Add @PlatformIO Storage stats badge 2015-08-18 16:37:44 +03:00
731467d4e9 Add MinGW to PATH env for AppVeyor 2015-08-17 11:55:42 +03:00
bd03d75f14 Switch to click 5.0 2015-08-17 10:37:53 +03:00
260dd03179 Restore external build flags 2015-08-14 16:09:48 +03:00
35f7d8a4cc Enhance docs 2015-08-14 00:14:04 +03:00
84fb5e59a9 Update hello-world example 2015-08-10 22:17:37 +03:00
838ba3ad4f Add new article by Russell Davis 2015-08-10 21:51:09 +03:00
ad7be3b397 Add new development platforms: linux_arm, linux_i686 and linux_x86_64 2015-08-10 21:39:31 +03:00
27ca987284 iSort passed 2015-08-10 16:17:00 +03:00
2b8f7824c2 Add support for Linux 32/64 as host OS for cross compiling to Windows x86 2015-08-10 16:16:16 +03:00
5679271913 Add "Hello World" example for desktop platforms 2015-08-09 21:46:43 +03:00
c9491f47e1 Add support for mingw-linux toolchains 2015-08-09 21:46:07 +03:00
5e2415cb37 Add support for "windows_x86" development platform // Issue #263 2015-08-09 19:05:16 +03:00
2715efd910 Add support for Adafruit Gemma board 2015-08-09 18:08:34 +03:00
b65a356669 Merge pull request #265 from WillemMali/develop
improved error wording
2015-08-07 14:56:45 +03:00
9ec0d3bc8c improved error wording
Fixed a grammatical mistake and made the meaning clearer by replacing "it" with "this" and by adding an example.

It does increase the length of the output, but I think it's much easier to read and more informative.
2015-08-07 13:14:14 +02:00
acd0ecf38a Merge pull request #264 from jrobeson/patch-1
fix typo in udev rules file
2015-08-07 13:09:02 +03:00
b75db38e45 fix typo in udev rules file 2015-08-07 05:23:11 -04:00
c7a79cb8b4 Merge pull request #256 from bkudria/adafruit-gemma
Adafruit Gemma support
2015-08-05 10:59:59 +03:00
7e5c22706b Use own mirror when SF is offline 2015-08-04 00:27:13 +03:00
7d5a2c4dfc Set default PROGNAME to "program" 2015-08-03 23:10:47 +03:00
584d03c802 Propagating External Environment 2015-08-03 15:08:54 +03:00
0646ffc93f Restore process $PATH for SCons 2015-08-03 12:53:21 +03:00
0f8b506c76 Merge branch 'feature/issue-263-native-platform' into develop 2015-08-03 12:34:03 +03:00
f0d849a702 Added native development platform 2015-08-03 12:33:37 +03:00
0d196ef7b7 Rename env.BuildFirmware to env.BuildProgram 2015-08-02 19:52:37 +03:00
75edcef099 Adafruit Gemma support 2015-08-01 16:52:14 -07:00
ce82b14f6b Fix sys env for Windows 2015-08-01 18:33:41 +03:00
e102fb2880 Allow PROGNAME & PROGSUFFIX to be configurable within platform 2015-08-01 17:41:05 +03:00
203026a57b Use cyclic linker options just for gcc-based compilers 2015-08-01 17:39:15 +03:00
86e39f9b44 More explanations about run --targets 2015-08-01 17:30:20 +03:00
edcad9c251 Add link to Facebook page 2015-07-31 14:22:46 +03:00
cb6d433e15 Add Facebook page 2015-07-31 14:21:30 +03:00
49d5994628 Merge branch 'release/v2.2.2' 2015-07-30 18:56:13 +03:00
e488d53950 Version bump to 2.2.2 (issues #247, #253, #254, #255, #257, #260) 2015-07-30 18:54:06 +03:00
e6be7ab3b5 Minor improvements for exitStatus and returncode 2015-07-30 18:17:57 +03:00
59505cb8f3 Show internal errors from "Miniterm" using "platformio serialports monitor" command // Resolve #257 2015-07-30 18:07:26 +03:00
5761cea47e Fixed "platformio serialports monitor --help" information with HEX char for hotkeys // Resolve #253 2015-07-30 17:50:07 +03:00
d27f9a9d09 Improve CI handling 2015-07-30 17:33:45 +03:00
e43635bf9b Fix comments stripping 2015-07-30 14:37:46 +03:00
3813614d31 Support for off-line/unpublished/private libraries // Resolved #260 2015-07-29 21:14:41 +03:00
9a6189d7cd Disable Shippable Build Status 2015-07-29 20:24:18 +03:00
132f2d20fd Skip SHA1 verification for non SF packages 2015-07-29 19:59:39 +03:00
c96ae1f773 Fix linker cyclic for static libs 2015-07-29 17:48:10 +03:00
45905d0992 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-07-29 17:33:20 +03:00
076696cde1 Use Linker cyclic option when deplibs exist 2015-07-29 17:33:06 +03:00
25781c7631 Add os import to Python template 2015-07-29 14:47:47 +03:00
99649614c5 Add link to article "Arduino Development in Atom Editor" 2015-07-23 19:53:13 +03:00
7a6e8279e4 Integration with Atom IDE 2015-07-23 19:25:10 +03:00
b79a79d423 Handle "OSError: [Errno 13] Permission denied" for PlatformIO installer script 2015-07-21 17:51:33 +03:00
5a91d0bf1b Disable project auto-clean while building/uploading firmware // Resolve #255 2015-07-21 14:53:38 +03:00
b9d14918f3 A few improvements for installation doc 2015-07-21 14:48:34 +03:00
5d6b2e0eb6 Add Teensy HID USB mouse example 2015-07-17 21:31:28 +03:00
3d7c3a0c7a Fix typo in history 2015-07-17 15:05:05 +03:00
2f7f7dcd6a Update release date 2015-07-17 14:58:34 +03:00
5b8c6c4d56 Merge branch 'release/v2.2.1' 2015-07-17 14:54:55 +03:00
6af7fd8007 Merge branch 'release/v2.2.1' into develop 2015-07-17 14:54:55 +03:00
bfb801acef Version bump to 2.2.1 (issues #132, #248, #249, #250, #251) 2015-07-17 14:54:39 +03:00
9379c3cb39 Updated "sdk-esp8266" package for espressif platform 2015-07-17 14:51:17 +03:00
d66e8fe7af Check if all default packages are installed 2015-07-17 14:50:06 +03:00
b85303c12a Improve espressif platform and native example for new SDK 2015-07-17 14:32:50 +03:00
60e3d7450f Fix platform auto-installation 2015-07-17 14:28:14 +03:00
4cd294ef57 Fix indention 2015-07-17 13:52:43 +03:00
890acbc80e Switch to PlatformIO's SCons version 2015-07-17 13:48:17 +03:00
de1cce41b0 Improve platform auto-installing (especially for @SmartAthill) 2015-07-16 22:19:09 +03:00
e20f6abef4 Fix mention about project conf 2015-07-16 13:29:22 +03:00
fa11f5d613 More details about limited features of CLion IDE 2015-07-16 13:27:58 +03:00
1e0adcfdc4 Bump to 2.2.1a0 2015-07-15 19:45:56 +03:00
d5c852d329 Project generator for CLion IDE // Resolve #132 2015-07-15 19:34:10 +03:00
c4e42c88fe Fix Espressif "uploadlazy" target for @SmartAnthill Project 2015-07-13 14:02:14 +03:00
4b93ec0b0b Improve "uploadlazy" target for @SmartAnthill Project 2015-07-13 12:43:45 +03:00
21b01c8949 Note about Windows drivers for embedded boards 2015-07-07 23:33:25 +03:00
76415b930f Fixed incorrect arguments handling for "platformio serialports monitor" command // Resolve #248 2015-07-07 23:08:54 +03:00
88ad2a1626 Minor fix 2015-07-06 22:36:05 +03:00
94c459258c Add explanation about dir change 2015-07-06 18:44:00 +03:00
e1b7810465 Merge branch 'release/v2.2.0' into develop 2015-07-01 18:03:44 +03:00
6c2883ba3b Merge branch 'release/v2.2.0' 2015-07-01 18:03:43 +03:00
249b00df1a Version bump to 2.2.0 (issues #233, #238, #239, #240, #242, #243, #244, #245, #246) 2015-07-01 18:03:33 +03:00
3fcf0a1bda New boards; update packages for pre-built frameworks 2015-06-30 23:34:01 +03:00
c31f591ca0 Add new boards to ST STM32 & Nordic NRF51 platforms 2015-06-30 22:25:27 +03:00
c80fb5f4b3 Update Espressif platform // Resolve #245 2015-06-30 22:21:22 +03:00
218a978f6d Update PlatformIO slogan 2015-06-29 22:26:37 +03:00
f6aed63055 Specify full target anchor for images 2015-06-29 22:25:56 +03:00
a119e39ede Typos fix 2015-06-29 19:40:15 +03:00
94da243dad Disable .user file for Qt Creator (additional steps are explained in docs) // Resolve #244 2015-06-29 18:02:19 +03:00
244412daf1 Update IDE integration instructions for Qt Creator and VisualStudio 2015-06-29 17:59:47 +03:00
29d7137a3d Fix include paths without HOMEDRIVE for VisualStudio 2015-06-29 17:40:10 +03:00
9017cb1600 Fix access to env variable from qtmake 2015-06-29 16:44:37 +03:00
80b012c157 Fix incorrect "includes" for project generator 2015-06-29 16:36:02 +03:00
b80c525952 Improve docs for env's "target" option 2015-06-28 20:38:37 +03:00
1af6eba151 Rename "srcbuild_flags" env option to "src_build_flags" 2015-06-28 20:18:16 +03:00
e288499db9 Rename "install_libs" env option to "lib_install" 2015-06-28 20:16:43 +03:00
ebdbf79868 Rename "use_libs" env option to "lib_use" 2015-06-28 19:44:35 +03:00
776a2027fb Rename "ignore_libs" env option to "lib_ignore" 2015-06-28 19:31:28 +03:00
a928f4aa8f Rename "ldf_cyclic" env option to "lib_dfcyclic" 2015-06-28 19:20:31 +03:00
9c5f9b6e30 Improve embedded texts 2015-06-27 22:47:44 +03:00
ae4918bdb7 Fix relative path for includes when generating project for IDE // Resolve #243 2015-06-27 21:20:44 +03:00
a581ba9814 Fix project generator for Microsoft Visual Studio 2015-06-27 21:18:33 +03:00
31840bbc11 Update PlatformIO logo 2015-06-27 17:57:21 +03:00
53b005bbed Simplify installation process for development version 2015-06-27 15:18:51 +03:00
82864d38e2 Fix IDE project generator when board is specified // Resolve #242 2015-06-27 15:13:27 +03:00
43205b8cd5 Correct fs directory separator // Issue #240 2015-06-23 14:24:46 +03:00
e240e0ee32 Add to FAQ ARM toolchain issue with "error while loading shared libraries" 2015-06-22 18:45:20 +03:00
6c7e26412a Change source dir to "src" 2015-06-22 17:27:32 +03:00
3232ba6a6c Allow to exclude/include source files from build process using src_filter // Resolve #240 2015-06-22 15:06:39 +03:00
46461b0721 Merge branch 'hotfix/v2.1.2' into develop 2015-06-21 21:56:16 +03:00
90508dfd96 Merge branch 'hotfix/v2.1.2' 2015-06-21 21:51:38 +03:00
d8dba90f77 Fix broken link to SCons installer 2015-06-21 21:48:45 +03:00
829d5781a5 Allow to launch own extra script before firmware building/uploading processes // Resolve #239 2015-06-19 15:29:22 +03:00
8e95bfb464 Allow to specify own path to the linker script (ld) using build_flags option // Resolve #233 2015-06-19 13:43:30 +03:00
91563b01d2 Improve path validator 2015-06-19 00:10:50 +03:00
89e2f46e68 Update dependent test-lib 2015-06-19 00:10:17 +03:00
5f1f4a1b19 Bump to 2.2.0.dev0 2015-06-17 14:08:22 +03:00
4669dc7f16 Fix "stk500v2_command(): command failed" // Resolve #238 2015-06-17 13:35:10 +03:00
ca721d7262 Update dependent test-lib 2015-06-17 13:29:28 +03:00
14f84a49a6 Allow to specify library compatibility with the all platforms/frameworks using * symbol in library.json 2015-06-17 13:28:56 +03:00
4744f5afdc Merge pull request #235 from ctag/patch-1
Updated recommened platforms install command
2015-06-13 22:07:29 +02:00
3a48f1c40b Updated recommened platforms install
$ platformio install [platform]
The above line is obsolete, I've changed the recommendation to reflect this latest version of the program.
2015-06-12 23:47:17 -05:00
aea7121076 Merge branch 'release/v2.1.1' 2015-06-09 22:21:21 +03:00
50875ff74b Merge branch 'release/v2.1.1' into develop 2015-06-09 22:21:21 +03:00
dc13048254 Version bump to 2.1.1 (issues #229, #231, #232) 2015-06-09 22:20:53 +03:00
18145d2c1c Add OpenHub badge 2015-06-09 22:08:13 +03:00
f868c64d81 Automatically detect upload port using VID:PID board settings // Resolve #231 2015-06-08 23:02:05 +03:00
3b7ad2d333 Avoid "LibInstallDependencyError" when more then 1 library is found // Resolve #229 2015-06-06 16:41:00 +03:00
6732c7cb7c Better handling of user exceptions 2015-06-06 15:02:12 +03:00
7ba67582de Fix indention 2015-06-05 19:30:49 +03:00
35ae470196 Fix Windows Error 32 while cleanup pioenvs dir 2015-06-05 19:12:57 +03:00
fa339a8b70 Fix firmware verification for examples 2015-06-04 23:17:18 +03:00
43b27c138a Fix bad indentation 2015-06-04 23:15:28 +03:00
36cdbb8f0c Improv detection of build changes 2015-06-04 22:50:13 +03:00
8c331df105 Use direct path to LDScript 2015-06-04 21:24:19 +03:00
02d4efcfb5 Merge branch 'release/v2.1.0' into develop 2015-06-03 19:54:52 +03:00
00cb6bd845 Merge branch 'release/v2.1.0' 2015-06-03 19:54:51 +03:00
f038c7a28e Version bump to 2.1.0 (issues #215, #219, #221, #225, #226) 2015-06-03 19:54:39 +03:00
18b4497be7 Add info about Silicon Labs EFM32 platform 2015-06-03 19:53:00 +03:00
8704ad4032 Add new article by @lekum "Discovering PlatformIO: The RaspberryPi / Arduino combo kit is...." 2015-06-03 19:42:48 +03:00
f899e255f3 Add Silicon Labs EFM32 "siliconlabsefm32" development platform // Issue #226 2015-06-03 19:31:09 +03:00
23cf725c20 Skip SF 5xx errors 2015-06-03 19:14:10 +03:00
ba20459178 Merge pull request #227 from valeros/develop
Add Silicon Labs EFM32 development platform // Resolve #226
2015-06-02 17:07:54 +03:00
442604003d Add Silicon Labs EFM32 development platform // Resolve #226 2015-06-02 14:38:41 +03:00
369d0e1a00 Fix response with 504 code when SF is off-line 2015-06-01 17:49:04 +03:00
04b2f94478 Enable auto erase for flash memory while uploading 2015-06-01 17:26:17 +03:00
61b2bd6cb8 Describe in documentation how to create/register own board for PlatformIO 2015-05-30 17:09:01 +03:00
eea4ba3581 Merge pull request #223 from valeros/develop
Update IDE pictures in docs with "forced" run command // Resolve #215
2015-05-29 22:26:04 +03:00
3cb3b4f2ba Update IDE pictures in docs with "forced" run command // Resolve #215 2015-05-29 22:24:04 +03:00
2f376c9d36 Bump to 2.0.3.dev1 2015-05-29 20:33:24 +03:00
c4877e4444 Fix firmware uploading using USB programmer (USBasp) for atmelavr platform // Resolve #221 2015-05-29 20:29:24 +03:00
a288736ced Fix broken tests when SF is offline 2015-05-29 18:34:21 +03:00
1debe847d4 Disabled "nano.specs" for ARM-based platforms // Resolve #219 2015-05-29 17:47:30 +03:00
0c2a15a866 Trim whitespaces 2015-05-29 17:44:57 +03:00
da7e60b49f Switch badges to shields.io 2015-05-29 14:42:41 +03:00
d7c6da71f1 Integrate PlatformIO with Shippable CI 2015-05-28 21:07:41 +03:00
c4ed09c68f Integrate PlatformIO with Circle CI 2015-05-28 16:10:11 +03:00
06baa98823 Fix "ConnectionError" when PlatformIO SF Storage is off-line 2015-05-28 13:44:10 +03:00
8d9071e7c2 Merge branch 'feature/circleci' into develop 2015-05-28 13:10:48 +03:00
8d0785cf1b Fix Circle CI Example 2015-05-28 13:10:36 +03:00
ef0ce3fc07 Update project submodules 2015-05-28 12:44:37 +03:00
af9cdd0694 Remove invalid PyPi SCons package 2015-05-28 12:38:21 +03:00
a120514e9e Fix bottle requirement 2015-05-28 12:35:25 +03:00
e627a6ebdd Fix environment 2015-05-28 12:30:55 +03:00
94c37f4584 Integrate Circle CI 2015-05-28 12:28:24 +03:00
a48b62b0f2 Disable Travis CI cache 2015-05-28 12:03:46 +03:00
a9a9545b37 Fix resolving of C/C++ std libs by Eclipse IDE // Resolve #220 2015-05-28 00:19:55 +03:00
ca1df9462d Bump version to 2.0.2 2015-05-27 19:32:47 +03:00
32b057d1f3 Merge branch 'release/v2.0.2' 2015-05-27 19:27:02 +03:00
5e340843b1 Fix order for "listdir" method 2015-05-27 19:21:29 +03:00
0311298af1 Update history with 2.0.1 release 2015-05-27 17:03:34 +03:00
b4c2e9301c Merge branch 'release/v.2.0.1' 2015-05-27 17:02:08 +03:00
089ef2fa08 Merge branch 'release/v.2.0.1' into develop 2015-05-27 17:02:08 +03:00
9232c7abb1 Version bump to 2.0.1 (issues #210, #211, #212, #214, #216, #217) 2015-05-27 17:01:59 +03:00
27b7c2e201 Enhance docs for Library Manager 2015-05-27 16:23:39 +03:00
392758a842 Allow to control cyclic behaviour of Library Dependency Finder 2015-05-26 23:45:29 +03:00
25fde8db86 Cleanup boards 2015-05-26 23:00:40 +03:00
65ad07af6b Fix failing with `platformio init --ide eclipse` without boards // Resolve #217 2015-05-26 22:55:59 +03:00
ac7479415b Add support for new WildFire boards from Wicked Device to atmelavr platform 2015-05-26 22:52:09 +03:00
1f64f0aacf Merge pull request #218 from valeros/develop
Add WildFire boards from Wicked Device.
2015-05-26 20:47:24 +03:00
8fb0e1b75f Add WildFire boards from Wicked Device. 2015-05-26 20:06:37 +03:00
78db2cda27 Use forced run command and "--project-dir" option 2015-05-26 16:41:45 +03:00
6534fdaf04 Pass all environment variables which shall be copied from the tox invocation environment 2015-05-26 16:16:14 +03:00
2e214f16e7 Return args + options for telemetry 2015-05-26 15:04:47 +03:00
1f373b1e47 Handle AVR Symbols when initialising project for IDE // Resolve #216 2015-05-26 13:59:33 +03:00
4d36db1319 Improve handling of sys.args 2015-05-26 13:07:36 +03:00
58f0f8fab4 Use "include" directories from toolchain when exporting project for IDE // Resolve #210 2015-05-25 23:33:38 +03:00
7d949ecb16 Fix old-style class defination 2015-05-25 23:29:10 +03:00
be70047233 Improve running project from other directory (not CWD) 2015-05-25 23:26:35 +03:00
7649769437 Disable packages/libs updating while "upgrade" operation // Resolve #214 2015-05-25 22:50:46 +03:00
bcf0cc26aa Add --force for run command 2015-05-25 21:45:50 +03:00
96ce0692f8 Merge branch 'feature/reversed-cppath' into develop 2015-05-25 19:35:48 +03:00
9ba3136a24 Fix library order 2015-05-25 19:35:40 +03:00
92313c0686 Reversed order for CPPATH via Append 2015-05-25 13:35:26 +03:00
a1bb98fd5c Reversed order for CPPATH 2015-05-25 13:18:52 +03:00
146d430695 Revert CI detecting 2015-05-25 13:17:50 +03:00
b6a0a0f7c7 Merge pull request #213 from valeros/develop
Add c++ support for ststm32 platform // Resolve #211
2015-05-25 12:54:06 +03:00
97de38d6a6 Add c++ support for ststm32 platform // Resolve #211 2015-05-25 12:45:36 +03:00
65ba676f01 Correct path to import project in VisualStudio 2015-05-25 12:00:53 +03:00
5d9f81533d Use os.environ to detect CI system 2015-05-25 10:11:28 +03:00
1948a730d9 Pass environment variables to subprocess 2015-05-25 09:50:37 +03:00
77f2b17afd Update package for Arduino framework to 1.6.4 // Resolve #212 2015-05-24 18:48:45 +03:00
8739efaee4 Simplify Travis example 2015-05-24 01:02:12 +03:00
8f65492d96 Extend ASM list of source files 2015-05-23 20:23:13 +03:00
4f10047ba3 Handle new environment variable PLATFORMIO_BUILD_FLAGS 2015-05-23 19:17:07 +03:00
9560a665e5 Better detecting of Continuous Integration system 2015-05-23 18:36:11 +03:00
1113e5d69c Improve Travis CI docs 2015-05-23 17:42:22 +03:00
363c65da5f Fix stripping comments when converting from *.ino to *.cpp 2015-05-23 15:00:21 +03:00
28dd32070f Pass to API requests information about Continuous Integration system 2015-05-23 14:23:55 +03:00
f732d4088b Fix bug with converting "*.ino" to "*.cpp" 2015-05-23 14:02:05 +03:00
e22e4d23e4 Fix broken link 2015-05-22 22:16:27 +03:00
ce7d6f0507 Add where PlatformIO 2.0 was made 2015-05-22 22:03:55 +03:00
f499494963 Merge branch 'release/v2.0.0' into develop 2015-05-22 21:49:14 +03:00
429722724f Merge branch 'release/v2.0.0' 2015-05-22 21:49:13 +03:00
6a7a9a78ae Version bump to 2.0.0 (issues #108, #134, #148, #151, #152, #154, #158, #167, #168, #171, #173, #174, #177, #179, #182, #192, #197, #204) 2015-05-22 21:48:58 +03:00
49842df368 Add links for CI 2015-05-22 21:42:49 +03:00
5cee4463e0 Improve docs 2015-05-22 21:05:38 +03:00
e0f0ee0f1a Force to upgrade PyPi packages 2015-05-22 20:23:09 +03:00
76ddcb9d37 Fix export project for IDE under Windows 2015-05-22 19:27:33 +03:00
a7f8b65356 Fix fetching of IDE data from build process 2015-05-22 19:21:05 +03:00
d3a4a04a6d Allow to initialise PlatformIO project for the specified IDE // Resolve #151 2015-05-22 19:08:51 +03:00
3a82d4a804 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-05-22 16:45:14 +03:00
274b04c08f Fix system type when machine data is not available 2015-05-22 16:44:53 +03:00
41fc7dffaf Update AppVeyor badge 2015-05-22 16:12:02 +03:00
66ac453c0f Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-05-22 12:05:50 +03:00
251cab64f3 Remove unused dot 2015-05-22 12:05:42 +03:00
963b182cb9 Update example libs 2015-05-22 10:57:23 +03:00
3af709e95b Merge pull request #209 from valeros/develop
Improve support for espressif platform. Add CI services info and integration examples.
2015-05-22 10:55:55 +03:00
9136fe9a8b Improve support for espressif platform. 2015-05-21 17:03:53 +03:00
e15efa7e08 Add CI services info and integration examples. 2015-05-21 16:43:09 +03:00
1f2b31f174 Create separate Continuous Integration page 2015-05-20 15:57:49 +03:00
352fb01068 Merge pull request #207 from valeros/develop
Add platformio ci command examples with different CI systems.
2015-05-19 20:34:58 +03:00
1a9cfc3311 Add platformio ci command examples with different CI systems. 2015-05-19 20:29:03 +03:00
77838f2938 Use default verbosity level for CI command 2015-05-19 14:37:47 +03:00
a1cc5f4282 Fix invalid import 2015-05-18 19:28:35 +03:00
afdc28df80 Disable progress bar for Continuous Integration Systems 2015-05-18 19:22:42 +03:00
49c389ce70 Add Espressif to list of supported platforms 2015-05-18 18:36:13 +03:00
92bfa8f36d Fix removing locked files under windows 2015-05-18 18:26:52 +03:00
fd39a88b26 Ignore errors when deleting CI tmp folder 2015-05-18 18:12:16 +03:00
dd4fa733e1 Fix WindowsError for CI 2015-05-18 18:10:24 +03:00
5d54727139 Update docs with the new boards // Resolve #204 2015-05-18 17:13:58 +03:00
18d4b3fc1b Merge pull request #206 from valeros/develop
Add Armstrap Eagle boards.
2015-05-18 17:11:12 +03:00
82a0ec0d2b Add Armstrap Eagle boards. 2015-05-18 16:43:33 +03:00
6a4843c258 Merge pull request #205 from Lutino/patch-1
Update qtcreator.rst
2015-05-18 11:21:25 +03:00
f414b91b08 Update qtcreator.rst
Edited the file to include an additional step for the initalization of the platformio project
2015-05-17 16:27:09 -07:00
8a6fe2692c Add links to Ivan Kravets interview for IT Hare 2015-05-15 23:35:59 +02:00
8673bc15bc Add --force option to avoid blocking caused by prompts 2015-05-15 22:50:39 +02:00
c7b034b154 Add verbosity option for "run" and "ci" commands 2015-05-15 22:40:29 +02:00
4a132941f6 Reorder short version of options 2015-05-15 22:31:55 +02:00
c933c1edea Merge branch 'feature/platformio_20' into develop 2015-05-15 15:23:10 +02:00
ccfc9afba7 Fix absolute paths for CI 2015-05-15 13:56:19 +02:00
0652d439e5 Merge branch 'release/v1.5.0' 2015-05-15 13:00:51 +02:00
49aea2fcf4 Merge branch 'release/v1.5.0' into develop 2015-05-15 13:00:51 +02:00
10a7e38e13 Version bump to 1.5.0 (issues #175, #178, #183, #185, #189, #190, #191, #195) 2015-05-15 13:00:38 +02:00
5bc2cc6325 Use "whole-archive" hook just for ST STM32 platform 2015-05-14 23:52:15 +02:00
b62ac20180 Merge pull request #201 from platformio/release/v1.4.0
Merge from "release"
2015-05-14 23:39:58 +02:00
c827c12710 Merge pull request #200 from TimJay/teensy_soft_reboot
added soft reboot to teensy_loader_cli
2015-05-14 23:28:32 +02:00
8453d2431c added soft reboot to teensy_loader_cli 2015-05-14 23:22:55 +02:00
7b60d595a7 Add mbed support for Teensy 3.1 // Resolve #183 2015-05-14 23:13:47 +02:00
b8a9afb6fb Fix PyLint warning 2015-05-14 23:13:20 +02:00
91be0fad5d Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-05-14 23:12:50 +02:00
e7ac08df30 Add "docslinkcheck" environment 2015-05-14 22:53:00 +02:00
7b6014c47a Fix invalid "mbed" firmware for Nucleo F411RE 2015-05-14 22:49:55 +02:00
5de7644493 Merge pull request #199 from valeros/develop
Add mbed support for Teensy 3.1 board // Resolve #183
2015-05-14 22:16:18 +02:00
6e9418f583 Add mbed support for Teensy 3.1 board // Resolve #183 2015-05-14 21:17:07 +03:00
84795fb9f4 Remove duplicate code 2015-05-14 17:49:08 +02:00
4ce09f1d43 Implement "whole-archive" hook for mbed-lib and LINCOM command 2015-05-14 17:47:39 +02:00
96b06db5ef Fix firmware uploading under Linux OS for Arduino Leonardo board // Resolve #178 2015-05-14 17:07:20 +02:00
49562a152e Merge pull request #198 from valeros/develop
Fix TouchSerialPort function on Linux system.
2015-05-14 17:00:08 +02:00
9c4960ab2f Fix TouchSerialPort function on Linux system. 2015-05-14 17:57:21 +03:00
e960302b6d Fix handling symbolic links within source code directory // Resolve #190 2015-05-08 18:09:35 +01:00
40322e0f9b Allow to print dump of SCons environment using "envdump" target 2015-05-08 17:32:14 +01:00
72ebe0ec1b Fix PyLint warnings 2015-05-07 18:40:53 +01:00
1a39781cff Fix cancelling any previous definition of name, either built in or provided with a `-D` option // Resolve #191 2015-05-07 18:13:29 +01:00
44eaf1db22 Document PLATFORMIO_CI_SRC environment variable 2015-05-07 17:02:53 +01:00
8133a12dc3 Merge pull request #193 from valeros/feature/platformio_20
Update project generator and his templates.
2015-05-07 16:47:57 +01:00
a1bad33d9d Add "program" to command options 2015-05-07 16:44:56 +01:00
510c4decb7 PlatformIO as Continuous Integration tool for embedded projects // Resolve #108 2015-05-07 16:20:53 +01:00
7822a929f3 Fix tests after removing "autogen" prefix for init project 2015-05-07 15:53:06 +01:00
19b7c730ae Update project generator and templates. 2015-05-07 17:21:44 +03:00
92e81ee619 Cleanup code 2015-05-06 18:07:17 +01:00
eeeed1ba08 Allow to run project with platformio run –project-dir option without changing the current working directory // Resolve #192 2015-05-06 17:29:58 +01:00
04f246ea9d Remove "autogen_" prefix from default env 2015-05-06 11:28:56 +01:00
945b1324af Fix gathering of _tplvars 2015-05-06 11:17:38 +01:00
5469b98057 Improve documentation for User Guide 2015-05-05 16:15:44 +01:00
f001c087ec Allow to specify libraries which are compatible with build environment using use_libs option in platformio.ini 2015-05-05 15:47:21 +01:00
661ca2d27e Update Gemnasium configuration 2015-05-05 12:59:13 +01:00
440a2b9bc8 Fix parsing of includes for PlatformIO Library Dependency Finder // Resolve #189 2015-05-05 12:36:09 +01:00
125c7b2aba Revert caching for development platforms 2015-05-01 17:51:20 +01:00
424e87a811 Add library dependencies using "install_libs" option in platformio.ini // Resolve #134 2015-05-01 13:49:18 +01:00
7391dfa936 Fix caching for installed platforms and libraries 2015-05-01 13:48:06 +01:00
0a474d34d8 Cache get_installed_libs result 2015-05-01 13:00:33 +01:00
ab9a7e05c8 Use "lib_dir" by default for LibraryManager 2015-05-01 12:54:45 +01:00
6967e936a6 Fix CPPFLAGS example for build flags 2015-05-01 12:06:34 +01:00
47903a7ac9 Update User Guide documentation for PlatformIO 2.0 // Issue #158 2015-04-30 14:14:57 +01:00
cd842d5a86 Put UserAgent for all http requests 2015-04-29 18:17:14 +01:00
7b80e17664 Improve handling of platforms commands for telemetry 2015-04-28 13:13:17 +01:00
bdcf89bf32 Correct spelling in Creating platform example 2015-04-27 18:48:16 +01:00
0d19f021f1 Merge pull request #188 from valeros/feature/platformio_20
Move documentation example with creating especial platform to right place
2015-04-27 18:27:09 +01:00
49bd13adc4 Move documentation example with creating especial platform to right place. 2015-04-27 20:25:47 +03:00
5a162b6341 Merge pull request #187 from valeros/develop
Add GDB as alternative uploader to ststm32 platform // Resolve #175
2015-04-27 17:42:16 +01:00
2206ec50a5 Change compare condition 2015-04-27 19:05:59 +03:00
60dc02682b Add GDB as alternative uploader to ststm32 platform // Resolve #175 2015-04-27 18:59:40 +03:00
3657891833 Merge pull request #186 from valeros/feature/platformio_20
Add example with creating especial platform in documentation
2015-04-27 16:31:06 +01:00
1033e827c0 Add example with creating especial platform in documentation 2015-04-27 18:27:26 +03:00
c14b436aec Fix encoding for Project Generator 2015-04-24 17:17:24 +01:00
8b8d5c360c Add prototypes for includes/srcfiles 2015-04-24 16:34:14 +01:00
97d229232d Correct warning about obsoleted commands 2015-04-24 15:51:08 +01:00
36ad6efa25 Handle obsoleted commands // Issue #158 2015-04-24 15:48:32 +01:00
0bf7e68ea5 Require minimum 1 argument for the "uninstall" command 2015-04-24 15:37:08 +01:00
d415cbbe45 Require minimum 1 argument for the "install" command 2015-04-24 15:33:29 +01:00
c79114c345 Fix build system to "PlatformIO" for ST 2015-04-24 14:53:07 +01:00
6fd07e1e56 Initial support of PlatformIO Project Generator // Issue #151 2015-04-24 14:43:13 +01:00
97044bf5a5 Improve cache logic for lookup operations 2015-04-23 14:11:30 +01:00
31a2880c3c Improve carols with Bountysource 2015-04-23 13:09:41 +01:00
476de84dc5 Allow to specify environment prefix when initialise project // Resolve #182 2015-04-23 12:54:59 +01:00
0d648074e4 Allow to add more boards to existing platformio.ini // Resolve #167 2015-04-23 12:40:19 +01:00
47b8a4dd69 Fix test with incorrect board 2015-04-22 15:24:45 +01:00
60863a4304 Fix PyLint warnings 2015-04-22 14:58:42 +01:00
4d8cbc1349 Fix bug with creating copies of source files // Resolve #177 2015-04-22 14:21:26 +01:00
5af3b9b7c9 Validate passed boards before project initialization 2015-04-20 19:55:18 +01:00
84354edcc1 Fix handling user's platforms 2015-04-20 18:48:38 +01:00
2198e317ff Merge pull request #181 from valeros/develop
Fix search command output
2015-04-20 18:02:25 +01:00
9c318c1d34 Fix search command output 2015-04-20 19:58:39 +03:00
c8af9aacbb Merge branch 'feature/platformio_20' of https://github.com/ivankravets/platformio into feature/platformio_20 2015-04-20 17:20:49 +01:00
71261023de Enhance commands output 2015-04-20 17:20:27 +01:00
4cde47af75 Update click to 4.0 2015-04-20 16:26:12 +01:00
ee962c1919 Created PlatformIO gitter.im room 2015-04-20 16:19:59 +01:00
3f52ba3d05 Create gitter.im room // Resolve #174 2015-04-20 16:13:02 +01:00
2c0693fa72 Add article by Michael Ball 2015-04-18 11:18:39 +01:00
1cf026d956 Fix platform tests according refactor changes 2015-04-17 15:32:33 +01:00
07022bb3be Implement PlatformIO CLI 2.0 // Resolve #158 2015-04-17 12:37:03 +01:00
b52ff11d3c Disabled automatic updates by default for platforms, packages and libraries // Resolve #171 2015-04-17 12:28:10 +01:00
333e1d05f5 Merge pull request #176 from valeros/develop
Add examples with preconfigured IDE projects // Resolve #154
2015-04-16 17:39:32 +01:00
a9942e675f Allow to choose which library to update // Resolve #168 2015-04-16 17:34:22 +01:00
8d75194884 Add global -f, --force option which will force to accept any confirmation prompts // Resolve #152 2015-04-16 17:04:45 +01:00
bf0f4c8de4 Extend troubleshooting with obsolete "setuptools" // Issue #173 2015-04-16 13:16:56 +02:00
3a08fb89b2 Fix Sublime Text project template 2015-04-16 09:51:00 +03:00
7918f912c4 Add integration instructions and example for Qt Creator 2015-04-15 16:42:12 +03:00
b26856e04d Add examples with preconfigured IDE projects // Resolve #154 2015-04-15 16:40:23 +03:00
0234fcd2e3 Add Espressif information 2015-04-11 20:00:12 +03:00
df50cf85a6 Merge branch 'release/v1.4.0' 2015-04-11 19:53:49 +03:00
6f2441f0fe Merge branch 'release/v1.4.0' into develop 2015-04-11 19:53:49 +03:00
7aba4274d3 Version bump to 1.4.0 (issues #143, #144, #145, #146, #149, #156, #162, #170) 2015-04-11 19:53:32 +03:00
cdaaf59216 Prepare for 1.4.0 release 2015-04-11 19:49:18 +03:00
0486348fcc Merge pull request #169 from valeros/develop
Add support for ESP8266 // Resolve #119
2015-04-11 19:27:06 +03:00
1031e4fa63 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-04-11 18:59:25 +03:00
04b5aa7d86 Fix exceptions with auto-updates when isn't active Internet connection 2015-04-10 21:33:20 +03:00
52e5f7ac2e Add Quirkbot board. 2015-04-10 18:24:03 +03:00
3fda492038 Return to esptool-mk uploader. 2015-04-10 18:23:21 +03:00
97d1dc2e15 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-04-09 18:50:13 +03:00
181959f1de Add support for ESP8266 // Resolve #119 2015-04-09 18:50:03 +03:00
be3e7ccddd Bump up to 1.4.0.dev2 2015-04-08 21:01:55 +03:00
31606ad82e Merge pull request #163 from valeros/develop
Improve ESP8266 platform support
2015-04-08 20:56:30 +03:00
9b3ca7ee0b Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-04-08 20:54:52 +03:00
6cf2ab29da Improve ESP8266 platform support 2015-04-08 20:49:48 +03:00
44c78525ee Remove hard FPU for Cortex M4 // Resolve #162 2015-04-08 19:45:24 +03:00
0a76df910d Bump up to 1.4.0.dev1
Support for TeensyLC
2015-04-07 23:13:34 +03:00
0765f6f7a5 Merge pull request #161 from valeros/develop
Add support for Teensy LC board // Resolve #155
2015-04-07 20:30:21 +03:00
6fa7d04e5a Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-04-07 19:44:37 +03:00
0ff3e8a9eb Update espressif platform 2015-04-07 19:44:28 +03:00
469ae260ca Add link to free Visual Studio 2015-04-06 22:28:16 +03:00
960eccad8c Add "nano.specs" for ARM linker 2015-04-06 21:16:10 +03:00
b23a8a7075 Add support for Teensy LC board // Resolve #155 2015-04-06 20:22:03 +03:00
22e2cec102 Update Adafruit GFX Library in examples for the latest version 2015-04-06 11:44:45 +03:00
bf19dc936b Add "ldscripts" package to required list of Espressif platform // Issue #119 2015-04-06 11:43:56 +03:00
fd0448532c Fix libs order for linker 2015-04-03 18:09:58 +03:00
3af1814285 Add support for new Arduino based boards to "atmelavr" platform
SparkFun, BQ, LightUp, LowPowerLab, RedBearLab, TinyCircuits, WickedDevice
2015-04-03 17:45:20 +03:00
cdd7167e24 Improve firmware detecting for system tests 2015-04-03 17:42:00 +03:00
380937c588 Start 1.4.0 2015-04-03 17:41:21 +03:00
b86dd33d6e Typo fix 2015-04-03 00:15:54 +03:00
afeca7e954 Merge pull request #150 from valeros/develop
Initial support for ESP8266 // Issue #119
2015-04-02 21:57:09 +03:00
f20ce96401 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-04-02 20:24:30 +03:00
6594601932 Initial support for ESP8266 // Issue #119 2015-04-02 20:24:22 +03:00
f072a10e9a Add new Arduino based boards 2015-04-02 20:15:34 +03:00
d558480d11 Integrate PlatformIO with AppVeyor Windows based Continuous Integration system // Resolve #149 2015-04-01 16:33:51 +03:00
432ca80c59 Fetch project submodules 2015-04-01 15:58:26 +03:00
3dd0ceb8e0 Remove "scons" version, because it isn't installed by default 2015-04-01 14:05:02 +03:00
59cb537db9 Automatically install "tox" package 2015-04-01 13:57:57 +03:00
b455cab6b0 Remove build version 2015-04-01 13:38:42 +03:00
e9a476d640 Update Adafruit-PCD8544 lib for example 2015-04-01 13:34:35 +03:00
8c89944adb Add AppVeyor CI scripts/hooks 2015-04-01 13:32:43 +03:00
aa86cbb51f Initial support for AppVeyor CI and Py27 test 2015-04-01 13:18:36 +03:00
9085399d8e Correct links to the answered comments 2015-03-31 15:56:35 +03:00
a55f97a34e Improve FAQ page and relatives 2015-03-31 15:27:04 +03:00
6b2af149dc Update link to Travis.CI 2015-03-30 21:30:52 +03:00
52660aeb86 Add FAQ page 2015-03-29 23:19:50 +03:00
989acf5440 Typo fix 2015-03-27 21:55:30 +02:00
450ee3234f Add "url" field to "library.json" 2015-03-27 21:54:47 +02:00
53475fc5ac Add links to PlatformIO Reddit 2015-03-27 21:53:34 +02:00
810844687f Merge branch 'release/v1.3.0' 2015-03-27 17:04:36 +02:00
b0f356ff32 Merge branch 'release/v1.3.0' into develop 2015-03-27 17:04:36 +02:00
5a0d57f507 Version bump to 1.3.0 (issues #127 #128 #130 #131 #133 #136 #137 #138 #139 #140) 2015-03-27 17:04:09 +02:00
40d95ace8a Merge pull request #142 from valeros/develop
Automatically generate "Packages" block for "Creating platform" page // Resolve #139
2015-03-27 14:56:23 +02:00
6385379dc9 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-03-27 14:37:53 +02:00
0053919f7f Assert error when board's platform mismatch 2015-03-27 14:25:24 +02:00
646e00faa1 Automatically generate "Packages" block for "Creating platform" page // Resolve #139 2015-03-27 14:24:59 +02:00
9b0a25a715 Explain uploading process for Digispark board with micronucleus bootloader 2015-03-27 13:52:50 +02:00
f800b351f3 Fix wrong insertion of function prototypes converting *.ino/pde // Resolve #127 #140 2015-03-25 22:00:02 +02:00
a5f5c7be6f Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-03-25 20:52:27 +02:00
640e5ff0f9 Merge pull request #141 from valeros/develop
Add integration instructions for  Visual Studio and Sublime Text IDEs
2015-03-25 20:44:53 +02:00
5f93b450ac Add integration instructions for Visual Studio and Sublime Text IDEs 2015-03-25 20:43:30 +02:00
3018113b43 Update example with platforms list 2015-03-25 20:39:44 +02:00
51b73410b5 Add support for QinHeng Electronics HL-340 USB-Serial adapter 2015-03-25 15:52:54 +02:00
f209225864 Fix broken link to Energia site 2015-03-25 13:56:28 +02:00
0b0f312c24 Add "Articles about us" page 2015-03-25 13:42:44 +02:00
4567bcd1ea Improve docs for IDE & PlatformIO 2015-03-25 13:22:39 +02:00
fcd763eb7f Add supported platforms and frameworks to README and main doc page 2015-03-25 12:48:55 +02:00
b51a088230 Add Boards Explorer to docs and README 2015-03-25 12:20:15 +02:00
63925ce3cc Moved PlatformIO source code and repos from Ivan Kravets's account to PlatformIO Organisation 2015-03-25 12:15:17 +02:00
ea9239f8c1 Added support for new Arduino based boards by SparkFun, RepRap, Sanguino // Issue #127 #131 2015-03-25 11:47:32 +02:00
04964bcf3f Extend list of platform examples 2015-03-25 11:43:19 +02:00
516959bddc Normalize board names // Issue #128 2015-03-25 11:42:36 +02:00
82bf459bdc Moved PlatformIO source code and repos from Ivan Kravets's account to PlatformIO Organisation // Resolve #138 2015-03-25 11:35:51 +02:00
cbcbf27d23 Moved PlatformIO source code and repos from Ivan Kravets's account to PlatformIO Organisation 2015-03-25 11:34:48 +02:00
a013834651 Update Adafruit-PCD8544-Nokia-5110-LCD-library in examples/atmelavr-and-arduino/arduino-external-libs/lib/ 2015-03-25 11:15:06 +02:00
162263ab6f Merge pull request #135 from valeros/develop
Allow own libs per framework's core; Add support for Sanguino, SparkFun boards
2015-03-23 23:40:59 +02:00
160c6e61ea Fix Adafruit boards build options 2015-03-23 19:40:47 +02:00
4d91c336be Allow own libs per framework's core // Resolve #133 2015-03-23 19:40:13 +02:00
06812b7a02 Add support for SparkFun boards // Resolve #127 2015-03-23 19:39:32 +02:00
f94da85898 Add support for Sanguino boards // Resolve #131 2015-03-23 19:38:30 +02:00
e89530fca9 Normalize board names // Resolve #128 2015-03-23 12:30:40 +02:00
887372ff44 Fix new lines between keywords 2015-03-22 22:58:15 +02:00
7f43df45c5 Improve handling of multi-file `*.ino/pde` sketches // Resolve #130 2015-03-21 23:08:36 +02:00
b82f9da290 Merge pull request #129 from twpayne/patch-1
Fix typo
2015-03-21 15:30:09 +02:00
fa3db92d88 Fix typo 2015-03-21 14:05:19 +01:00
b04e17ade2 Merge branch 'release/v1.2.0' into develop 2015-03-20 22:30:06 +02:00
2fa88966b4 Merge branch 'release/v1.2.0' 2015-03-20 22:30:05 +02:00
cef16ab1c0 Version bump to 1.2.0 (issues #5 #100 #105 #112 #113 #114 #115 #116 #117 #120 #122 #125) 2015-03-20 22:29:51 +02:00
e82f8dc086 Add 4-th custom definition which is equal to "enable_prompts" setting 2015-03-20 22:29:29 +02:00
a8a9451c73 Fix re-arranging the *.ino/pde files when converting to *.cpp // Resolve #100 2015-03-20 21:55:08 +02:00
b4a253110d Add supported platforms to framework and vice versa 2015-03-20 21:44:26 +02:00
4c1fb0d2b2 Merge pull request #126 from valeros/develop
Add full support for MBED libraries: rtos, eth, dsp, fat, usb
2015-03-20 21:06:23 +02:00
726887732f Add full support for MBED libraries: rtos, eth, dsp, fat, usb 2015-03-20 19:46:13 +02:00
7cfb9db046 Typo fix 2015-03-20 17:23:46 +02:00
642e1ef7bc Typo fix 2015-03-20 17:22:59 +02:00
4958e24ffc Add information about platforms and frameworks 2015-03-18 23:26:53 +02:00
a70ecdb1be Fix uploading for atmelsam development platform 2015-03-18 23:17:39 +02:00
3fabd01e1b Fix SSL InsecureRequestWarning (avoid for invalid commands) 2015-03-18 23:02:04 +02:00
347dbb6569 Fix SSL InsecureRequestWarning 2015-03-18 15:57:49 +02:00
2e7e7c4e74 Add "Frameworks" page to docs and web-site // Resolve #115 2015-03-17 00:54:42 +02:00
575048faa7 Add link to PlatformIO Boards Explorer 2015-03-16 23:08:59 +02:00
744c6f12a8 Merge pull request #124 from valeros/develop
Add support for "panStamp" boards // Resolve #117
2015-03-16 23:03:16 +02:00
9c5ef02484 Merge branch 'feature/panStamp' into develop 2015-03-16 19:37:44 +02:00
4782c58752 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-03-16 19:37:19 +02:00
ccc411fb47 Add support for "panStamp" boards // Resolve #117 2015-03-16 19:24:51 +02:00
e76efef6c7 Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/panStamp 2015-03-16 18:40:58 +02:00
f3f16b56b2 Rename "opencm3" framework to "libopencm3" // Resolve #120 2015-03-16 17:34:52 +02:00
49ab5e718e Add "name" and vendor links to frameworks 2015-03-16 17:30:23 +02:00
19822ff08f Introduce platform names 2015-03-16 14:15:57 +02:00
0bfc6dfe3e Split platform __doc__ to description and vedor url 2015-03-16 12:47:43 +02:00
39f052a57d Merge pull request #123 from valeros/develop
Fix mbed framework // Resolve #122
2015-03-16 12:42:06 +02:00
c536aca961 Add serial port example with mbed framework 2015-03-16 12:12:13 +02:00
57b84789c0 Fix "mbed" framework // Resolve #122 2015-03-16 12:10:15 +02:00
cbd67364f6 Convert "frameworks" to array 2015-03-15 21:47:19 +02:00
7b1aff1653 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-03-15 21:20:17 +02:00
0ab6b08ff3 Update requests to 2.6.0 2015-03-15 17:59:20 +02:00
c00fecf992 Avoid direct access to platform packages 2015-03-14 00:02:09 +02:00
bd9ee0c27a Introduce /packages and /packages/manifest API 2015-03-14 00:01:32 +02:00
6fe7d952cf Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-03-13 22:36:27 +02:00
808c806ab9 Merge pull request #121 from valeros/develop
Improve support for mbed framework
2015-03-13 21:48:32 +02:00
e19f928794 Fix PyLint warnings 2015-03-13 20:54:22 +02:00
040c6371cd Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-03-13 20:29:16 +02:00
0282c74165 Improve support for mbed framework 2015-03-13 20:27:46 +02:00
8359408e54 Allow multiple frameworks in Project Configuration File 2015-03-13 19:13:36 +02:00
01f65ac4b0 Add information about PlatformIO Web 2.0 2015-03-13 19:06:35 +02:00
4e1e7ed4b5 Enhance "platformio search" command 2015-03-13 18:50:04 +02:00
91b6ef0504 Add example with mbed-enabled boards 2015-03-13 17:59:15 +02:00
519ed04e70 Sort installed libs by ID 2015-03-13 17:58:45 +02:00
4c525e1704 Fix pioversion_to_instr for Py2.6 2015-03-13 17:54:24 +02:00
042816616e Automatically append -DPLATFORMIO to builder // Resolve #105 2015-03-13 17:21:07 +02:00
d89e55e5d7 Disable uploading using mass storage disk for Mac OS X 10.10 (issue with FAT12) 2015-03-13 13:19:00 +02:00
52e1345c4a Improve project description and keywords 2015-03-13 00:19:06 +02:00
f4c21be953 Improve uploading firmware to mbed-enabled mass storages 2015-03-13 00:02:31 +02:00
cd06f3ed43 Add links to credit-card sized computers 2015-03-12 23:32:28 +02:00
b74288f2c4 Merge pull request #118 from valeros/develop
Initial support for mbed; Added Frameworks to doc
2015-03-11 22:05:47 +02:00
a0c3c25721 Fix mbed case for UNIX OS 2015-03-11 20:45:50 +02:00
c00700b7cb Search over platform packages 2015-03-11 20:45:31 +02:00
08808be62b Fix "frameworks" field to JSON array 2015-03-11 20:45:11 +02:00
ce923b6b58 Avoid multiple white spaces 2015-03-11 19:32:53 +02:00
286610b8c5 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-03-11 18:20:31 +02:00
b511df0bd4 Update "Platforms" documentation 2015-03-11 18:19:36 +02:00
fe797a3265 Add "Frameworks" documentation // Resolve #115 2015-03-11 18:19:07 +02:00
7b4680ef6a Add script for dynamically generating RST documents. Update platforms and frameworks documentation // Resolve 114 2015-03-11 18:12:58 +02:00
898a9c5601 Add "get_frameworks" function 2015-03-11 18:08:52 +02:00
e22890ac18 Add "vendor" and "url" field to board options, change "framework" field to "frameworks" // Resolve #113 2015-03-11 17:56:46 +02:00
af9c23ad87 Automatically generate environment with first supported framework 2015-03-11 17:53:46 +02:00
7e58eb8094 Add checking incompatibility between board and frameworks // Resolve #112 2015-03-11 17:50:15 +02:00
326cf0da7d Add "vendor" and "url" field to board options, change "framework" field to "frameworks" // Resolve #113 2015-03-11 17:48:04 +02:00
d4740c4daf Update "setuptools" while install PlatformIO 2015-03-10 13:23:49 +02:00
19a9f153b9 Add configuration example for VIM/YouCompleteMe by @ajford 2015-03-09 22:06:19 +02:00
36c926bed7 Add Cloud Compiling and Continuos Integration 2015-03-09 15:45:46 +02:00
dc7e98c383 Merge branch 'feature/mbed-platform' into develop 2015-03-09 12:31:02 +02:00
413779f0a1 Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/mbed-platform 2015-03-09 12:28:38 +02:00
d3b9322d3b Initial support for MBED Framework 2015-03-09 12:27:54 +02:00
4a8cd9914b Add new platforms and boards: Freescale, Nordic, NXP and etc. 2015-03-09 12:27:30 +02:00
5fa0a176a7 Refactor CORELIBS per platform 2015-03-09 12:22:24 +02:00
13455987ae Rename "stm32" platform to "ststm32" 2015-03-09 12:18:46 +02:00
6742629efb Change options to references via titles 2015-03-06 19:22:20 +02:00
2224f98d2d Cache long command for "gcc-ar" 2015-03-06 19:05:41 +02:00
e4627ec9ac Merge branch 'release/v1.1.0' 2015-03-05 15:05:40 +02:00
d00740237b Merge branch 'release/v1.1.0' into develop 2015-03-05 15:05:40 +02:00
7de9109437 Version bump to 1.1.0 (issues #102 #103 #106) 2015-03-05 15:05:28 +02:00
e0f2bcdeaf Resolve #133: Disabled "prompts" automatically for *Continuous Integration* systems 2015-03-05 14:48:56 +02:00
ae92cdedea Implemented PLATFORMIO_* environment variables 2015-03-05 01:36:31 +02:00
21c60fdd99 Hide PyLint warning with undefined WindowsError exception 2015-03-04 22:27:07 +02:00
7756504c92 Fix WindowsError where the process cannot access the file 2015-03-04 22:18:05 +02:00
386ad9a94b Avoid problem with long command for "gcc-ar" under Windows 2015-03-04 21:51:41 +02:00
6f19839920 Split PlatformIO build tool to "core" and "upload" 2015-03-04 21:21:10 +02:00
442da36115 Added support for "SainSmart" boards to "atmelsam" development platform 2015-03-04 21:06:35 +02:00
4d5c125d82 Change example from "pro16MHzatmega168" to "pro16MHzatmega328" 2015-03-04 21:05:20 +02:00
c55f4d35ba Merge pull request #109 from valeros/develop
Add "require_upload_port" board option // Resolve #107
2015-03-04 15:07:04 +02:00
abf0f2d5d6 Fix Digistump boards frequency designation 2015-03-04 14:47:21 +02:00
8e62d9ace3 Add SainSmart Due board 2015-03-04 14:12:43 +02:00
7d63d6c77c Add second upload method through native USB Port for SAM-based boards 2015-03-04 14:11:50 +02:00
148018749a Add "require_upload_port" board option 2015-03-04 13:58:20 +02:00
f058506bc4 Fix firmware uploading for "atmelavr" boards which work within "usbtiny" protocol 2015-03-02 23:17:45 +02:00
3a45d443a1 Sort platforms 2015-02-28 15:34:53 +02:00
beb68fa836 Correct PyPi version to 1.0.1 2015-02-28 11:40:09 +02:00
8b9b978db0 Start 1.1.0-dev 2015-02-28 00:08:19 +02:00
6dddf77774 Merge branch 'release/v1.0.0' into develop 2015-02-27 23:06:31 +02:00
c4967243dc Merge branch 'release/v1.0.0' 2015-02-27 23:06:30 +02:00
637a43d6f4 Correction to supported platforms 2015-02-27 23:02:44 +02:00
ce4ce67607 Add keywords and extend platforms list 2015-02-27 22:56:22 +02:00
f3f0979f92 Change development status from beta to Production/Stable 2015-02-27 22:40:15 +02:00
05b722faa1 Correct documentation links 2015-02-27 22:28:38 +02:00
a1c7fa9092 Change badges style to flat 2015-02-27 00:55:00 +02:00
aba68a9c3f Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-02-25 23:58:27 +02:00
35ccefae87 Add libOpenCM3 to history 2015-02-25 23:58:13 +02:00
4168fb6dcb Remove IDE help 2015-02-25 21:36:01 +02:00
6d8d87dfbc Update development status of PlatformIO from "Beta" to "Production/Stable" 2015-02-25 21:22:54 +02:00
8bc8bdd6bd Update requests to 2.5.3 2015-02-25 18:35:41 +02:00
0102e7e195 Merge pull request #99 from valeros/develop
Extend validation of package for SHA1 // Resolve #69
2015-02-25 18:34:48 +02:00
fbd3d956f7 Add "platformio-udev" rules 2015-02-25 18:33:34 +02:00
cd764d4b10 Skip testing of package if SF is offline 2015-02-25 18:32:33 +02:00
03636ad4ae Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-02-25 09:55:33 +02:00
e90e641941 Add Teensy to Wiring Blink example 2015-02-25 00:22:24 +02:00
7a311ff503 Minor fixes 2015-02-24 23:06:58 +02:00
7c0b187ca0 Extend validation of package for SHA1 // Resolve #69 2015-02-24 20:11:57 +02:00
e2f079fc1b Merge pull request #98 from valeros/develop
Improve building of ASM files; Update Teensy Core to 1.21
2015-02-24 19:17:58 +02:00
f12611e27c Fix PyLint warning 2015-02-24 18:53:20 +02:00
9562e2456b Update Teensy Core to 1.21 2015-02-24 18:15:45 +02:00
fedb7527f4 Improve building of ASM files 2015-02-24 18:15:17 +02:00
d142b6e6d1 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-02-24 12:47:28 +02:00
7948237c94 Fix "Welcome" for upgrading 2015-02-24 12:47:12 +02:00
a18e151fa4 Update requests to 2.5.2 2015-02-24 10:19:30 +02:00
1fc85d3d1d Fill documentation with the new platforms, boards and etc. 2015-02-23 23:47:44 +02:00
7accb86ece Sort search result by platform type 2015-02-23 23:36:19 +02:00
73af0eed3c Add "application/octet-stream" mime type for package 2015-02-23 23:08:42 +02:00
9bde156294 Merge pull request #97 from valeros/develop
Merge Digistump platform to "atmelavr" and "atmelsam"
2015-02-23 22:39:30 +02:00
6f634e76e7 Re-group examples 2015-02-23 22:37:12 +02:00
b60552e264 Fix builder for assembling files 2015-02-23 22:36:57 +02:00
6d86f72060 Merge Digistump platform to "atmelavr" and "atmelsam" 2015-02-23 22:36:21 +02:00
eceedb879b Improve upgrading to 1.0.0 2015-02-23 21:25:59 +02:00
d90933d014 Merge pull request #96 from valeros/develop
Add documentation for Teensy, STM32 and Atmel SAM platforms; Add Digispark boards to Atmel AVR platform
2015-02-23 21:06:19 +02:00
efb02aa056 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-02-23 21:04:21 +02:00
d28430d8ae Add documentation for Teensy, STM32 and Atmel SAM platforms; Add Digispark boards to Atmel AVR platform 2015-02-23 21:04:08 +02:00
90f17ce6fb Switch to DefaultEnvironment in SCons scripts 2015-02-23 21:02:40 +02:00
aa578fd8ec Fix ROM size 2015-02-23 21:00:27 +02:00
45e8251479 Improve firmware uploading and auto detecting of UPLOAD_PORT // Resolve #93 2015-02-23 19:01:03 +02:00
aab282061c Merge pull request #95 from valeros/develop
Update digistump uploader
2015-02-23 16:55:30 +02:00
b79d1944f2 Merge pull request #94 from valeros/develop
Add example for Engduino boards // Resolve #76
2015-02-23 16:52:03 +02:00
f3251342b4 Update atmelsam uploader options 2015-02-23 16:49:01 +02:00
6a42e1de90 Update digistump uploader 2015-02-23 16:48:26 +02:00
0487825e94 Remove note about Engduino library 2015-02-23 14:47:58 +02:00
dcb1590e57 Append new lines 2015-02-23 14:29:10 +02:00
6e0ebdbc94 Add example for Engduino boards // Resolve #76 2015-02-23 14:25:11 +02:00
2ac6d63ffc Fix Python 2.6 support 2015-02-23 11:50:14 +02:00
d1ca17c406 Fix uploading for "atmelavr" platform // Resolve #92 2015-02-23 01:06:50 +02:00
f86a33c991 Remove hook with SF & packages manifest 2015-02-22 23:31:51 +02:00
46ae4c1a83 Add src_dir option to [platformio] section of platformio.ini which allows to redefine location to project’s source directory // Resolve #83 2015-02-22 22:24:22 +02:00
e17ce83499 Refactor tests with Py.Test's fixtures // Resolve #2 2015-02-21 15:15:00 +02:00
a4926f3c28 Enable stdout capturing for tests by Py.Test 2015-02-21 15:14:25 +02:00
06b009deaa Merge pull request #90 from valeros/develop
Cover package manifest with tests // Issue #69
2015-02-20 22:06:03 +02:00
5b9504d57a Highlight exceptions/errors in red color 2015-02-20 22:02:38 +02:00
05376f873d Cover package manifest with tests // Issue #69 2015-02-20 21:02:10 +02:00
bf059b8b78 Cover "lib" commands with tests 2015-02-20 20:31:59 +02:00
620e5e81c7 Merge pull request #89 from valeros/develop
Cover "list", "search" and "settings" commands with tests
2015-02-20 16:43:06 +02:00
18dd64df88 Cover "list", "search" and "settings" commands with tests 2015-02-20 16:41:42 +02:00
4da8630578 Merge pull request #88 from valeros/develop
Fix CMSIS path for atmelsam platform
2015-02-20 13:50:44 +02:00
442adc1919 Cover "init" and "boards" commands with tests 2015-02-20 13:48:17 +02:00
751a4b9883 Fix CMSIS path for atmelsam platform 2015-02-20 13:19:48 +02:00
6e820afd74 Fix detection of Travis instance 2015-02-19 22:25:40 +02:00
0d7d2ce0b4 Disable Travis Python 2.6 iteration 2015-02-19 22:25:03 +02:00
9a8abaf02b Add "docs" task 2015-02-19 22:05:39 +02:00
a394db1ce1 Refactor build evironments to be compatible with multiple Python versions 2015-02-19 22:04:39 +02:00
2d53d2100d Fix bug with invalid process's "return code" when PlatformIO has internal error 2015-02-19 22:02:50 +02:00
1fc6b222ec Added --json-output option to platformio search command 2015-02-19 19:16:46 +02:00
3f2faeea82 Add default framework for Adafruit boards 2015-02-19 17:56:23 +02:00
a1a5995210 Fix Raspduino extra flags 2015-02-19 17:47:50 +02:00
9a17c6870b Move setup logic for PlatformIO to py.test conf 2015-02-19 17:23:22 +02:00
baf34b37d9 Add default framework per board 2015-02-19 17:20:08 +02:00
d02eb97eeb Fix setting boolean value 2015-02-19 13:49:12 +02:00
8baf2ce241 Merge pull request #87 from valeros/develop
Fix teensy firmware file format
2015-02-19 11:06:24 +02:00
239e1f3fe9 Fix teensy firmware file format 2015-02-19 10:38:09 +02:00
8374199fae Merge pull request #86 from valeros/develop
Typos fix
2015-02-18 20:21:47 +02:00
591efc7257 Typos fix 2015-02-18 20:21:20 +02:00
717d8596ec Merge pull request #85 from valeros/develop
Refactor build scripts for development platforms
2015-02-18 20:13:00 +02:00
9501329526 Refactor build scripts for development platforms 2015-02-18 20:11:52 +02:00
86260a48ba Create LDSCRIPT_PATH Scons env variable 2015-02-18 20:03:49 +02:00
eb4756360a Define MCU & CPU per board 2015-02-18 20:01:39 +02:00
256834be48 Merge pull request #84 from valeros/develop
Add support for Digistump and improve Atmel SAM development platforms
2015-02-17 21:26:53 +02:00
460e896b8f Merge branch 'feature/digistump-platform' into develop 2015-02-17 20:18:48 +02:00
ade673d546 Improve support of Atmel SAM platform 2015-02-17 20:17:33 +02:00
ed5e843893 Add support for Digistump development platform 2015-02-17 20:14:16 +02:00
a03d2382af Grant libs with high priority for C Preprocessor when scan includes 2015-02-17 20:02:57 +02:00
870ce7e0a2 Fix PyLint warning 2015-02-16 23:31:47 +02:00
69d952ea65 Fixed SCons warning: Two different environments were specified for target // Resolve #77 2015-02-16 23:17:22 +02:00
0d2d6cc17e Improve error reporting when upload port isn't defined 2015-02-16 23:16:48 +02:00
be6cdc09d9 Merge pull request #80 from valeros/develop
Add support for Adafruit boards: Flora and Trinkets
2015-02-16 20:45:58 +02:00
63c92152d9 Merge branch 'feature/adafruit-boards' into develop 2015-02-16 20:24:45 +02:00
c9ed663ec5 Add support for Adafruit boards: Flora and Trinkets 2015-02-16 20:23:32 +02:00
45e7fcd106 Remove "SERIALNUM" define for Teensy 2 2015-02-16 20:22:29 +02:00
3f05146de8 Fix Arduino Due ROM & RAM size 2015-02-16 19:32:17 +02:00
9a9b2d8bae Merge pull request #79 from valeros/develop
Add example for teensy boards
2015-02-16 18:05:18 +02:00
639ee9fc47 Add example for teensy boards 2015-02-16 17:35:40 +02:00
fc7e09b8c4 Cache PlatformIO home directory 2015-02-16 17:31:25 +02:00
79d3ad245f Fix PyLint warnings 2015-02-16 15:47:34 +02:00
ca266e81ef Merge pull request #78 from valeros/develop
Update STM32 examples
2015-02-16 15:36:48 +02:00
2b924d1573 Update STM32 examples 2015-02-16 15:34:45 +02:00
00e95dbabc Correct divisor between multiple envs 2015-02-16 11:08:07 +02:00
983b629d23 Implement asynchronous output for build process 2015-02-15 23:53:15 +02:00
0f070d1b78 Implement asynchronous command execution (AsyncPipe+subprocess) 2015-02-15 23:48:04 +02:00
dc61722907 Handle "AbortedByUser" exception 2015-02-15 23:39:02 +02:00
83dfcf6ac2 Remove external rebooter for Teensy CLI 2015-02-15 23:38:11 +02:00
5a32f88dee Test all boards only for the internal libs 2015-02-15 21:37:19 +02:00
9914fc1122 Explain how to install development version of PlatformIO 2015-02-15 21:25:49 +02:00
beab1525a9 Add contents 2015-02-15 21:12:25 +02:00
c6b79f13c3 Add optional $UNIX_TIME variable to build environment 2015-02-15 18:18:11 +02:00
22257e0351 Replace "Unknown board..." message with appropriate exception 2015-02-15 18:02:59 +02:00
030eddb244 Add alias to "tool-teensy" 2015-02-15 16:00:19 +02:00
0047c79fcd Add missed "tool-teensy" to Teensy development platform 2015-02-15 15:58:53 +02:00
cf925b0338 Improve "run" command: env details, timing // Resolve #74 2015-02-15 00:27:28 +02:00
2093960719 Setup minimal "click" version to 3.0 2015-02-15 00:10:59 +02:00
8fffc5ee9c Pass main exceptions to STDERR 2015-02-14 22:26:13 +02:00
88f0b51312 Enable linker "cyclic dependencies" for all platforms 2015-02-14 22:14:49 +02:00
2bfb1d5569 Remove ino-converted file 2015-02-14 20:18:34 +02:00
7a3b43040f Make examples cross-boards, add README 2015-02-14 20:17:04 +02:00
d2ccbf7b7a Remove "framework" alias for all "framework-*" packages
Development platform can contain more then 1 framework
2015-02-14 19:25:02 +02:00
55ad753bf1 Refactor $PLATFORMFW_DIR logic in SCons env 2015-02-14 19:23:59 +02:00
efcb205116 Revert linker "start-group" flag 2015-02-14 19:10:50 +02:00
7470fd3fdd Re-structure "atmelavr-and-arduino" examples 2015-02-14 17:57:46 +02:00
102e3f98de Add openCM3 framework to "titivate" platform 2015-02-14 16:37:44 +02:00
b55dc0917d Fix bug with deleting ".pioenvs" when it doesn't exist 2015-02-14 16:34:00 +02:00
061d7af2ed Improve semiversion detection 2015-02-14 16:21:35 +02:00
ae50b9212f Cleanup automatically .pioenvs when platformio.ini has been changed // Issue #74 2015-02-14 00:12:16 +02:00
2e90ab8092 Improve PlatformIO upgrading and detecting of new version // Resolve #63 2015-02-13 23:55:08 +02:00
f186488fc3 Updated framework-arduino AVR & SAM to 1.6 stable version 2015-02-13 23:10:00 +02:00
1a94952b20 Restore my commits 2015-02-13 23:01:01 +02:00
2c1a864390 Revert "pytest" env 2015-02-13 22:28:16 +02:00
7f258a3f4c Disable pytest env temporary 2015-02-13 19:59:42 +02:00
b57375b8af Fix bug with auto-installing "titiva" platform 2015-02-13 19:04:31 +02:00
3bfe2914f5 Add "pytest" environment 2015-02-13 18:41:48 +02:00
ac14103870 Merge pull request #75 from valeros/develop
Add integration test for "examples" / issue #2
2015-02-13 18:40:09 +02:00
68db70e6bb Merge branch 'feature/tests' into develop 2015-02-13 18:35:21 +02:00
67f1e32652 Add integration test for "examples" 2015-02-13 18:35:09 +02:00
3525c3cca0 Merge branch 'develop' of https://github.com/valeros/platformio into develop 2015-02-12 14:46:53 +02:00
302d1eb15c Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-02-12 14:44:01 +02:00
bea577beb9 Fix pylint warnings 2015-02-12 14:43:29 +02:00
7f2e6a02f0 Refactor get_boards method with exception handler 2015-02-12 14:43:28 +02:00
f9ec259742 Avoid errors when "upload speed" and "upload protocol" are missed in board definition file 2015-02-12 14:43:28 +02:00
3179e90aea Update settings list 2015-02-12 14:43:27 +02:00
80002dc85c Fill history with the closed issues 2015-02-12 14:43:27 +02:00
fa44827bff Enhance Arduino and Adafruit example 2015-02-12 14:42:13 +02:00
dd18b49604 Revert HISTORY.rst 2015-02-12 14:38:06 +02:00
7bad31c532 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop
Conflicts:
	HISTORY.rst
2015-02-12 14:35:46 +02:00
42caf7865c Fix pylint warnings 2015-02-12 14:32:05 +02:00
d76f0bef77 Refactor get_boards method with exception handler 2015-02-12 14:24:31 +02:00
821ede1d23 Avoid errors when "upload speed" and "upload protocol" are missed in board definition file 2015-02-12 13:26:37 +02:00
0e46dc2222 Update settings list 2015-02-12 00:15:36 +02:00
121f66b2a1 Fill history with the closed issues 2015-02-11 22:48:46 +02:00
d1a2570283 Fix console output for an example 2015-02-11 20:06:05 +02:00
3a7dec1463 Enhance Arduino and Adafruit example 2015-02-11 20:06:04 +02:00
42f05979e3 Fixed AttributeError: 'module' object has no attribute 'disable_warnings' when a version of requests package is less then 2.4.0 2015-02-11 20:06:04 +02:00
86b6b6886b Fix console output for an example 2015-02-11 16:09:01 +02:00
e18552dadc Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-02-11 16:05:45 +02:00
c62bd88963 Enhance Arduino and Adafruit example 2015-02-11 16:04:26 +02:00
cf2a7af7e3 Fixed AttributeError: 'module' object has no attribute 'disable_warnings' when a version of requests package is less then 2.4.0 2015-02-11 12:59:12 +02:00
b289d0ba42 Merge pull request #64 from valeros/develop
Output compiled size and static memory usage // Resolve #59
2015-02-09 19:59:50 +02:00
d7405c44ca Output compiled size and static memory usage 2015-02-09 19:57:39 +02:00
2bce970809 Fix UnicodeEncodeError when SourceForge doesn't response 2015-02-08 22:49:29 +02:00
ebd2e31efe Reorganise examples 2015-02-08 21:55:26 +02:00
34f7b8b19a Merge pull request #62 from valeros/develop
Add support for Teensy development platform
2015-02-06 18:56:00 +02:00
184df4d5bb Rename "sam" development platform to "atmelsam" 2015-02-06 18:50:02 +02:00
25380a7e98 Merge branch 'feature/teensy' into develop 2015-02-06 18:43:58 +02:00
fcf4b0d303 Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/teensy
Conflicts:
	platformio/builder/scripts/frameworks/arduino.py
2015-02-06 18:43:50 +02:00
70839abf88 Finalize with Teensy platform 2015-02-06 18:34:29 +02:00
8a3ad923e1 Merge pull request #61 from valeros/develop
Add support for Atmel SAM development platform
2015-02-06 18:18:21 +02:00
15416a9447 Merge branch 'feature/sam' into develop 2015-02-06 18:13:07 +02:00
14355cb7d4 Finalize with Atmel SAM platform 2015-02-06 18:12:56 +02:00
7cdb8b0c7d Resolve uploading and major improvements 2015-02-05 20:13:21 +02:00
6fac35fced Cleanup 2015-02-05 20:00:56 +02:00
2280c01dc7 Initial support of SAM platform 2015-02-05 15:58:12 +02:00
3f062f72a2 Merge commit 'a884db0825f8c66b694b15fe8900515f9837744a' into develop
Conflicts:
	platformio/builder/scripts/frameworks/arduino.py
2015-02-05 15:56:54 +02:00
2ab49d7f24 Initial support for Teensy 3 2015-02-04 20:39:38 +02:00
9a221085d4 Fix optional board "extra_flags" and "ldscript" 2015-02-04 20:29:07 +02:00
9721172481 Fix optional board "extra_flags" and "ldscript" 2015-02-04 20:23:50 +02:00
a884db0825 Move ARDUINO_ARCH define to extra flags 2015-02-04 14:44:47 +02:00
5a13454244 Reorder options 2015-02-03 19:36:35 +02:00
dc341f9350 Move "board" build option to extra flags 2015-02-03 19:36:22 +02:00
a9781293f9 Maintain upgrading to 0.11.0 2015-02-03 18:45:07 +02:00
2a84aec59e Fix bug with package without alias 2015-02-03 18:44:24 +02:00
68cec0448e Merge pull request #60 from valeros/develop
Add STM32 platform with CMSIS, SPL and OpenCM3 frameworks
2015-02-03 14:49:53 +02:00
2487dab7eb Merge branch 'feature/platform-stm32' into develop 2015-02-03 14:45:00 +02:00
423dc248bc Reorganize examples with STM32 and new frameworks 2015-02-03 14:43:27 +02:00
c402cc7c62 Add support for STM32 CMSIS, SPL and OpenCM3 frameworks 2015-02-03 14:32:12 +02:00
4a5b6fc190 Implement STM32 platform with support for Discovery boards 2015-02-03 14:24:59 +02:00
f176fe759d Cleanup whitespaces 2015-02-03 14:24:27 +02:00
3442b11b3d Implement STM32 platform with support for Discovery boards 2015-02-03 14:24:15 +02:00
2c51c2928a Move "energia-dependent" linker entry to Energia framework 2015-02-03 14:12:56 +02:00
6acc183111 Add dependent "ldscripts" package 2015-02-03 14:08:47 +02:00
ab27592e5d Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/platform-stm32 2015-02-03 14:06:40 +02:00
85afbdb8a7 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-02-03 14:04:29 +02:00
c05418f47e Resolve #56 / Compiling error if space in Windows user folder 2015-02-03 13:54:31 +02:00
d57cc7b156 Keep Scons env state between SConscripts 2015-02-03 13:50:08 +02:00
eeb58da1cb Allow to ignore files when build library 2015-02-03 13:42:58 +02:00
cf823c471d Resolve #58 with handling assembly files 2015-02-02 14:41:37 +02:00
2227267ff6 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-02-02 13:13:56 +02:00
9e36975d5f Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/platform-stm32 2015-02-02 13:13:34 +02:00
297f132a0c Allow multiple frameworks for env 2015-02-02 13:12:18 +02:00
8b3979c993 Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/platform-stm32 2015-02-02 13:05:25 +02:00
a9b98afa42 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-02-02 13:05:08 +02:00
9bd4047425 Revert "cyclic dependencies" flag to "atmelavr" platform 2015-01-31 23:22:24 +02:00
666c6c70ca Improve "cyclic dependencies" for "Library Dependencies Finder" // Resolve #50 2015-01-31 23:13:53 +02:00
a7fc184662 Remove unused import 2015-01-31 22:45:50 +02:00
673c484fa7 Ask about "auto-uploading" within "platformio init" command 2015-01-31 22:42:52 +02:00
977f30d617 Added new boards to "atmelavr" platform: Arduino NG, Arduino BT, Arduino Esplora, Arduino Ethernet, Arduino Robot Control, Arduino Robot Motor and Arduino Yun 2015-01-31 17:40:48 +02:00
49b7cf6008 Enable by default "lib cyclic dependencies" for atmelavr platform // Resolve #50 2015-01-31 17:34:17 +02:00
4bb513e460 Apply "ignore_pattern" for BuildLibrary to variant directory 2015-01-31 17:19:07 +02:00
8926e27c46 Fix bug with "ignore_pattern" for BuildLibrary when path contains "examples" 2015-01-30 23:24:37 +02:00
63870fd825 Add support for ARM-based credit-card computers: Raspberry Pi, BeagleBoard and CubieBoard 2015-01-29 23:55:17 +02:00
f06cbebf63 Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/platform-stm32 2015-01-29 18:54:50 +02:00
6e93806b12 Allow args/kwargs for exec command 2015-01-29 18:54:28 +02:00
00f75c753d Fix home dir path for Windows 2015-01-29 18:50:12 +02:00
8c253137a7 Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/platform-stm32 2015-01-29 16:43:26 +02:00
fc7bbc3f20 Merge branch 'develop' of https://github.com/ivankravets/platformio into develop 2015-01-29 16:42:35 +02:00
0aea0ec1ed Merge branch 'develop' into feature/platform-stm32 2015-01-29 16:29:02 +02:00
1921164ba3 Refactored *Library Dependency Finder* // Resolve #48 #50 #55 2015-01-29 16:09:17 +02:00
d5a7fcf75f Expand warning for all OS about obsolate "setuptools" 2015-01-29 14:05:02 +02:00
1ae23085d4 Allow to ignore some libs from "Library Dependency Finder" 2015-01-29 12:49:46 +02:00
d2ad023b52 Apply "isort" 2015-01-29 12:45:26 +02:00
abd6ff9145 Apply "isort" 2015-01-29 12:45:10 +02:00
93273e922f Merge pull request #53 from MrCustomizer/develop
Fixing handling of relative library paths
2015-01-24 17:27:12 +02:00
ef76822773 expand path first, then get absolute path 2015-01-24 16:14:44 +01:00
87e1b09088 sort imports 2015-01-24 16:04:53 +01:00
f84b113b5e fixing handling of relative paths 2015-01-24 08:53:34 +01:00
c71026d135 Add support for board's build "extra_flags" 2015-01-20 17:42:38 +02:00
c452302735 Move "ldscript" to own package 2015-01-20 17:41:49 +02:00
04726fd871 Add support for stm32 boards 2015-01-19 19:28:37 +02:00
2820e5a243 Fix an issue with the libraries that are git repositories // Resolve #49 2015-01-16 18:41:44 +02:00
5dee9ae4ef Update colorama to 0.3.3 2015-01-13 21:40:34 +02:00
ccb0a6262d Fix PyLint "Too many branches" notice 2015-01-10 20:10:48 +02:00
8baae82b35 Fix multiple definition of "main" function 2015-01-10 19:48:07 +02:00
e8b87a0168 Add "--json-output" option to "platformio boards" command // Resolve issue #42 2015-01-10 16:20:09 +02:00
c8c1c7a83f Split long description 2015-01-08 23:52:24 +02:00
e8746232f6 Describe how to create own development platform 2015-01-08 23:21:30 +02:00
dcf325f64e Improve QuickStart steps 2015-01-08 20:12:42 +02:00
2672f2c7f6 Return to 0.11.0-dev 2015-01-06 18:34:31 +02:00
09493ce196 Merge branch 'release/v0.10.2' 2015-01-06 18:33:36 +02:00
78575f12d5 Merge branch 'release/v0.10.2' into develop 2015-01-06 18:33:36 +02:00
be224d2d8a Bump to 0.10.2 (resolve issue #42, #45) 2015-01-06 18:32:06 +02:00
4b7a7d0cf0 Fix an exception during platformio upgrade under Windows OS // Resolve #45 2015-01-06 17:45:07 +02:00
8c53cf1d3c Fix an issue with `--json-output` // Resolve #42 2015-01-05 22:58:55 +02:00
09159c3ac0 Add notice about Engduino Library 2015-01-03 01:16:19 +02:00
0f1cd87deb Return to 0.11.0-dev 2015-01-02 23:19:26 +02:00
e0cb0003dc Merge branch 'release/v0.10.1' into develop 2015-01-02 23:18:15 +02:00
590 changed files with 33720 additions and 19694 deletions

3
.gitignore vendored
View File

@ -2,8 +2,5 @@
*.pyc
.pioenvs
.tox
.sconsign.dblite
examples/ide-eclipse/.metadata
examples/ide-eclipse/RemoteSystemsTempFiles
docs/_build
dist

6
.gitmodules vendored Normal file
View File

@ -0,0 +1,6 @@
[submodule "examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library"]
path = examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library
url = https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library.git
[submodule "examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library"]
path = examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library
url = https://github.com/adafruit/Adafruit-GFX-Library.git

View File

@ -1,3 +1,3 @@
[settings]
line_length=79
known_third_party=click,requests,serial,SCons
known_third_party=bottle,click,lockfile,pytest,requests,serial,SCons

270
.pylintrc
View File

@ -1,29 +1,9 @@
[MASTER]
# Specify a configuration file.
#rcfile=
# Python code to execute, usually for sys.path manipulation such as
# pygtk.require().
#init-hook=
# Profiled execution.
profile=no
# Add files or directories to the blacklist. They should be base names, not
# paths.
ignore=CVS
# Pickle collected data for later comparisons.
persistent=yes
# List of plugins (as comma separated values of python modules names) to load,
# usually to register additional checkers.
load-plugins=
[MESSAGES CONTROL]
# Only show warnings with the listed confidence levels. Leave empty to show
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
confidence=
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time. See also the "--disable" option for examples.
@ -38,244 +18,6 @@ load-plugins=
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use"--disable=all --enable=classes
# --disable=W"
disable=C0103,C0111,E0611,F0401,I0011,R0801,R0903,R0922
# disable=import-star-module-level,old-octal-literal,oct-method,print-statement,unpacking-in-except,parameter-unpacking,backtick,old-raise-syntax,old-ne-operator,long-suffix,dict-view-method,dict-iter-method,metaclass-assignment,next-method-called,raising-string,indexing-exception,raw_input-builtin,long-builtin,file-builtin,execfile-builtin,coerce-builtin,cmp-builtin,buffer-builtin,basestring-builtin,apply-builtin,filter-builtin-not-iterating,using-cmp-argument,useless-suppression,range-builtin-not-iterating,suppressed-message,no-absolute-import,old-division,cmp-method,reload-builtin,zip-builtin-not-iterating,intern-builtin,unichr-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,input-builtin,round-builtin,hex-method,nonzero-method,map-builtin-not-iterating
[REPORTS]
# Set the output format. Available formats are text, parseable, colorized, msvs
# (visual studio) and html. You can also give a reporter class, eg
# mypackage.mymodule.MyReporterClass.
output-format=text
# Put messages in a separate file for each module / package specified on the
# command line instead of printing them on stdout. Reports (if any) will be
# written in a file name "pylint_global.[txt|html]".
files-output=no
# Tells whether to display a full report or only the messages
reports=yes
# Python expression which should return a note less than 10 (10 is the highest
# note). You have access to the variables errors warning, statement which
# respectively contain the number of errors / warnings messages and the total
# number of statements analyzed. This is used by the global evaluation report
# (RP0004).
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
# Add a comment according to your evaluation note. This is used by the global
# evaluation report (RP0004).
comment=no
# Template used to display messages. This is a python new-style format string
# used to format the message information. See doc for all details
#msg-template=
msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg}
[BASIC]
# Required attributes for module, separated by a comma
required-attributes=
# List of builtins function names that should not be used, separated by a comma
bad-functions=map,filter,apply,input
# Regular expression which should only match correct module names
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
# Regular expression which should only match correct module level names
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
# Regular expression which should only match correct class names
class-rgx=[A-Z_][a-zA-Z0-9]+$
# Regular expression which should only match correct function names
function-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression which should only match correct method names
method-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression which should only match correct instance attribute names
attr-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression which should only match correct argument names
argument-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression which should only match correct variable names
variable-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression which should only match correct attribute names in class
# bodies
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
# Regular expression which should only match correct list comprehension /
# generator expression variable names
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
# Good variable names which should always be accepted, separated by a comma
good-names=i,j,k,ex,Run,_
# Bad variable names which should always be refused, separated by a comma
bad-names=foo,bar,baz,toto,tutu,tata
# Regular expression which should only match function or class names that do
# not require a docstring.
no-docstring-rgx=__.*__
# Minimum line length for functions/classes that require docstrings, shorter
# ones are exempt.
docstring-min-length=-1
[FORMAT]
# Maximum number of characters on a single line.
max-line-length=80
# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=no
# List of optional constructs for which whitespace checking is disabled
no-space-check=trailing-comma,dict-separator
# Maximum number of lines in a module
max-module-lines=1000
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
# tab).
indent-string=' '
[MISCELLANEOUS]
# List of note tags to take in consideration, separated by a comma.
notes=FIXME,XXX,TODO
[SIMILARITIES]
# Minimum lines number of a similarity.
min-similarity-lines=4
# Ignore comments when computing similarities.
ignore-comments=yes
# Ignore docstrings when computing similarities.
ignore-docstrings=yes
# Ignore imports when computing similarities.
ignore-imports=no
[TYPECHECK]
# Tells whether missing members accessed in mixin class should be ignored. A
# mixin class is detected if its name ends with "mixin" (case insensitive).
ignore-mixin-members=yes
# List of classes names for which member attributes should not be checked
# (useful for classes with attributes dynamically set).
ignored-classes=SQLObject
# When zope mode is activated, add a predefined set of Zope acquired attributes
# to generated-members.
zope=no
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E0201 when accessed. Python regular
# expressions are accepted.
generated-members=REQUEST,acl_users,aq_parent
[VARIABLES]
# Tells whether we should check for unused import in __init__ files.
init-import=no
# A regular expression matching the beginning of the name of dummy variables
# (i.e. not used).
dummy-variables-rgx=_$|dummy
# List of additional names supposed to be defined in builtins. Remember that
# you should avoid to define new builtins when possible.
additional-builtins=
[CLASSES]
# List of interface methods to ignore, separated by a comma. This is used for
# instance to not check methods defines in Zope's Interface base class.
ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by
# List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods=__init__,__new__,setUp
# List of valid names for the first argument in a class method.
valid-classmethod-first-arg=cls
# List of valid names for the first argument in a metaclass class method.
valid-metaclass-classmethod-first-arg=mcs
[DESIGN]
# Maximum number of arguments for function / method
max-args=5
# Argument names that match this expression will be ignored. Default to name
# with leading underscore
ignored-argument-names=_.*
# Maximum number of locals for function / method body
max-locals=15
# Maximum number of return / yield for function / method body
max-returns=6
# Maximum number of branch for function / method body
max-branches=12
# Maximum number of statements in function / method body
max-statements=50
# Maximum number of parents for a class (see R0901).
max-parents=7
# Maximum number of attributes for a class (see R0902).
max-attributes=7
# Minimum number of public methods for a class (see R0903).
min-public-methods=2
# Maximum number of public methods for a class (see R0904).
max-public-methods=20
[IMPORTS]
# Deprecated modules which should not be used, separated by a comma
deprecated-modules=regsub,TERMIOS,Bastion,rexec
# Create a graph of every (i.e. internal and external) dependencies in the
# given file (report RP0402 must not be disabled)
import-graph=
# Create a graph of external dependencies in the given file (report RP0402 must
# not be disabled)
ext-import-graph=
# Create a graph of internal dependencies in the given file (report RP0402 must
# not be disabled)
int-import-graph=
[EXCEPTIONS]
# Exceptions that will emit a warning when being caught. Defaults to
# "Exception"
overgeneral-exceptions=Exception
disable=locally-disabled,missing-docstring,invalid-name,too-few-public-methods,redefined-variable-type,import-error,similarities,unsupported-membership-test,unsubscriptable-object,ungrouped-imports

View File

@ -1,12 +1,15 @@
language: python
python: 2.7
python:
- "2.7"
env:
- TOX_ENV=docs
- TOX_ENV=lint
- TOX_ENV=py26
- TOX_ENV=py27
install:
- pip install tox
- pip install -U pip setuptools tox
script:
- tox -e $TOX_ENV

View File

@ -1,52 +1,664 @@
Release History
===============
PlatformIO 2.0
--------------
2.7.0 (2015-12-30)
~~~~~~~~~~~~~~~~~~
**Happy New Year!**
* Moved SCons to PlatformIO packages. PlatformIO does not require SCons to be
installed in your system. Significantly simplified installation process of
PlatformIO. ``pip install platformio`` rocks!
* Implemented uploading files to file system of ESP8266 SPIFFS (including OTA)
(`issue #382 <https://github.com/platformio/platformio/issues/382>`_)
* Added support for the new Adafruit boards Bluefruit Micro and Feather
(`issue #403 <https://github.com/platformio/platformio/issues/403>`_)
* Added support for RFDuino
(`issue #319 <https://github.com/platformio/platformio/issues/319>`_)
* Project generator for `Emacs <http://docs.platformio.org/en/latest/ide/emacs.html>`__
text editor
(`pull #404 <https://github.com/platformio/platformio/pull/404>`_)
* Updated Arduino framework for Atmel AVR development platform to 1.6.7
* Documented `firmware uploading for Atmel AVR development platform using
Programmers <http://docs.platformio.org/en/latest/platforms/atmelavr.html#upload-using-programmer>`_:
AVR ISP, AVRISP mkII, USBtinyISP, USBasp, Parallel Programmer and Arduino as ISP
* Fixed issue with current Python interpreter for Python-based tools
(`pull #417 <https://github.com/platformio/platformio/pull/417>`_)
2.6.3 (2015-12-21)
~~~~~~~~~~~~~~~~~~
* Restored support for Espressif ESP8266 ESP-01 1MB board (ready for OTA)
* Fixed invalid ROM size for ESP8266-based boards
(`issue #396 <https://github.com/platformio/platformio/issues/396>`_)
2.6.2 (2015-12-21)
~~~~~~~~~~~~~~~~~~
* Removed ``SCons`` from requirements list. PlatformIO will try to install it
automatically, otherwise users need to install it manually
* Fixed ``ChunkedEncodingError`` when SF connection is broken
(`issue #356 <https://github.com/platformio/platformio/issues/356>`_)
2.6.1 (2015-12-18)
~~~~~~~~~~~~~~~~~~
* Added support for the new ESP8266-based boards (SparkFun ESP8266 Thing,
NodeMCU 0.9 & 1.0, Olimex MOD-WIFI-ESP8266(-DEV), Adafruit HUZZAH ESP8266,
ESPino, SweetPea ESP-210, WeMos D1, WeMos D1 mini) to
`Espressif <http://docs.platformio.org/en/latest/platforms/espressif.html>`__
development platform
* Created public `platformio-pkg-ldscripts <https://github.com/platformio/platformio-pkg-ldscripts.git>`_
repository for LD scripts. Moved common configuration for ESP8266 MCU to
``esp8266.flash.common.ld``
(`issue #379 <https://github.com/platformio/platformio/issues/379>`_)
* Improved documentation for `Espressif <http://docs.platformio.org/en/latest/platforms/espressif.html>`__
development platform: OTA update, custom Flash Size, Upload Speed and CPU
frequency
* Fixed reset method for Espressif NodeMCU (ESP-12E Module)
(`issue #380 <https://github.com/platformio/platformio/issues/380>`_)
* Fixed issue with code builder when build path contains spaces
(`issue #387 <https://github.com/platformio/platformio/issues/387>`_)
* Fixed project generator for Eclipse IDE and "duplicate path entries found
in project path"
(`issue #383 <https://github.com/platformio/platformio/issues/383>`_)
2.6.0 (2015-12-15)
~~~~~~~~~~~~~~~~~~
* Install only required packages depending on build environment
(`issue #308 <https://github.com/platformio/platformio/issues/308>`_)
* Added support for Raspberry Pi `WiringPi <http://docs.platformio.org/en/latest/frameworks/wiringpi.html>`__
framework
(`issue #372 <https://github.com/platformio/platformio/issues/372>`_)
* Implemented Over The Air (OTA) upgrades for `Espressif <http://docs.platformio.org/en/latest/platforms/espressif.html>`__
development platform.
(`issue #365 <https://github.com/platformio/platformio/issues/365>`_)
* Updated `CMSIS framework <http://docs.platformio.org/en/latest/frameworks/cmsis.html>`__
and added CMSIS support for Nucleo F401RE board
(`issue #373 <https://github.com/platformio/platformio/issues/373>`_)
* Added support for Espressif ESP8266 ESP-01-1MB board (ready for OTA)
* Handle ``upload_flags`` option in `platformio.ini <http://docs.platformio.org/en/latest/projectconf.html>`__
(`issue #368 <https://github.com/platformio/platformio/issues/368>`_)
* Improved PlatformIO installation on the Mac OS X El Capitan
2.5.0 (2015-12-08)
~~~~~~~~~~~~~~~~~~
* Improved code builder for parallel builds (up to 4 times faster than before)
* Generate `.travis.yml <http://docs.platformio.org/en/latest/ci/travis.html>`__
CI and `.gitignore` files for embedded projects by default
(`issue #354 <https://github.com/platformio/platformio/issues/354>`_)
* Removed prompt with "auto-uploading" from `platformio init <http://docs.platformio.org/en/latest/userguide/cmd_init.html>`__
command and added ``--enable-auto-uploading`` option
(`issue #352 <https://github.com/platformio/platformio/issues/352>`_)
* Fixed incorrect behaviour of `platformio serialports monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`__
in pair with PySerial 3.0
2.4.1 (2015-12-01)
~~~~~~~~~~~~~~~~~~
* Restored ``PLATFORMIO`` macros with the current version
2.4.0 (2015-12-01)
~~~~~~~~~~~~~~~~~~
* Added support for the new boards: Atmel ATSAMR21-XPRO, Atmel SAML21-XPRO-B,
Atmel SAMD21-XPRO, ST 32F469IDISCOVERY, ST 32L476GDISCOVERY, ST Nucleo F031K6,
ST Nucleo F042K6, ST Nucleo F303K8 and ST Nucleo L476RG
* Updated Arduino core for Espressif platform to 2.0.0
(`issue #345 <https://github.com/platformio/platformio/issues/345>`_)
* Added to FAQ explanation of `Can not compile a library that compiles without issue
with Arduino IDE <http://docs.platformio.org/en/latest/faq.html#building>`_
(`issue #331 <https://github.com/platformio/platformio/issues/331>`_)
* Fixed ESP-12E flash size
(`pull #333 <https://github.com/platformio/platformio/pull/333>`_)
* Fixed configuration for LowPowerLab MoteinoMEGA board
(`issue #335 <https://github.com/platformio/platformio/issues/335>`_)
* Fixed "LockFailed: failed to create appstate.json.lock" error for Windows
* Fixed relative include path for preprocessor using ``build_flags``
(`issue #271 <https://github.com/platformio/platformio/issues/271>`_)
2.3.5 (2015-11-18)
~~~~~~~~~~~~~~~~~~
* Added support of `libOpenCM3 <http://docs.platformio.org/en/latest/frameworks/libopencm3.html>`_
framework for Nucleo F103RB board
(`issue #309 <https://github.com/platformio/platformio/issues/309>`_)
* Added support for Espressif ESP8266 ESP-12E board (NodeMCU)
(`issue #310 <https://github.com/platformio/platformio/issues/310>`_)
* Added support for pySerial 3.0
(`issue #307 <https://github.com/platformio/platformio/issues/307>`_)
* Updated Arduino AVR/SAM frameworks to 1.6.6
(`issue #321 <https://github.com/platformio/platformio/issues/321>`_)
* Upload firmware using external programmer via `platformio run --target program <http://docs.platformio.org/en/latest/userguide/cmd_run.html#cmdoption-platformio-run-t>`__
target
(`issue #311 <https://github.com/platformio/platformio/issues/311>`_)
* Fixed handling of upload port when ``board`` option is not specified in
`platformio.ini <http://docs.platformio.org/en/latest/projectconf.html>`__
(`issue #313 <https://github.com/platformio/platformio/issues/313>`_)
* Fixed firmware uploading for `nordicrf51 <http://docs.platformio.org/en/latest/platforms/nordicnrf51.html>`__
development platform
(`issue #316 <https://github.com/platformio/platformio/issues/316>`_)
* Fixed installation on Mac OS X El Capitan
(`issue #312 <https://github.com/platformio/platformio/issues/312>`_)
* Fixed project generator for CLion IDE under Windows OS with invalid path to
executable
(`issue #326 <https://github.com/platformio/platformio/issues/326>`_)
* Fixed empty list with serial ports on Mac OS X
(`isge #294 <https://github.com/platformio/platformio/issues/294>`_)
* Fixed compilation error ``TWI_Disable not declared`` for Arduino Due board
(`issue #329 <https://github.com/platformio/platformio/issues/329>`_)
2.3.4 (2015-10-13)
~~~~~~~~~~~~~~~~~~
* Full support of `CLion IDE <http://docs.platformio.org/en/latest/ide/clion.html>`_
including code auto-completion
(`issue #132 <https://github.com/platformio/platformio/issues/132>`_)
* PlatformIO `command completion in Terminal <http://docs.platformio.org/en/latest/faq.html#command-completion-in-terminal>`_ for ``bash`` and ``zsh``
* Added support for ubIQio Ardhat board
(`pull #302 <https://github.com/platformio/platformio/pull/302>`_)
* Install SCons automatically and avoid ``error: option --single-version-externally-managed not recognized``
(`issue #279 <https://github.com/platformio/platformio/issues/279>`_)
* Use Teensy CLI Loader for upload of .hex files on Mac OS X
(`issue #306 <https://github.com/platformio/platformio/issues/306>`_)
* Fixed missing `framework-mbed <http://docs.platformio.org/en/latest/frameworks/mbed.html>`_
package for `teensy <http://docs.platformio.org/en/latest/platforms/teensy.html>`_
platform
(`issue #305 <https://github.com/platformio/platformio/issues/305>`_)
2.3.3 (2015-10-02)
~~~~~~~~~~~~~~~~~~
* Added support for LightBlue Bean board
(`pull #292 <https://github.com/platformio/platformio/pull/292>`_)
* Added support for ST Nucleo F446RE board
(`pull #293 <https://github.com/platformio/platformio/pull/293>`_)
* Fixed broken lock file for "appstate" storage
(`issue #288 <https://github.com/platformio/platformio/issues/288>`_)
* Fixed ESP8266 compile errors about RAM size when adding 1 library
(`issue #296 <https://github.com/platformio/platformio/issues/296>`_)
2.3.2 (2015-09-10)
~~~~~~~~~~~~~~~~~~
* Allowed to use ST-Link uploader for mbed-based projects
* Explained how to use ``lib`` directory from the PlatformIO based project in
``readme.txt`` which will be automatically generated using
`platformio init <http://docs.platformio.org/en/latest/userguide/cmd_init.html>`__
command
(`issue #273 <https://github.com/platformio/platformio/issues/273>`_)
* Found solution for "pip/scons error: option --single-version-externally-managed not
recognized" when install PlatformIO using ``pip`` package manager
(`issue #279 <https://github.com/platformio/platformio/issues/279>`_)
* Fixed firmware uploading to Arduino Leonardo board using Mac OS
(`issue #287 <https://github.com/platformio/platformio/issues/287>`_)
* Fixed `SConsNotInstalled` error for Linux Debian-based distributives
2.3.1 (2015-09-06)
~~~~~~~~~~~~~~~~~~
* Fixed critical issue when `platformio init --ide <http://docs.platformio.org/en/latest/userguide/cmd_init.html>`__ command hangs PlatformIO
(`issue #283 <https://github.com/platformio/platformio/issues/283>`_)
2.3.0 (2015-09-05)
~~~~~~~~~~~~~~~~~~
* Added
`native <http://docs.platformio.org/en/latest/platforms/native.html>`__,
`linux_arm <http://docs.platformio.org/en/latest/platforms/linux_arm.html>`__,
`linux_i686 <http://docs.platformio.org/en/latest/platforms/linux_i686.html>`__,
`linux_x86_64 <http://docs.platformio.org/en/latest/platforms/linux_x86_64.html>`__,
`windows_x86 <http://docs.platformio.org/en/latest/platforms/windows_x86.html>`__
development platforms
(`issue #263 <https://github.com/platformio/platformio/issues/263>`_)
* Added `PlatformIO Demo <http://docs.platformio.org/en/latest/demo.html>`_
page to documentation
* Simplified `installation <http://docs.platformio.org/en/latest/installation.html>`__
process of PlatformIO
(`issue #274 <https://github.com/platformio/platformio/issues/274>`_)
* Significantly improved `Project Generator <http://docs.platformio.org/en/latest/userguide/cmd_init.html#cmdoption-platformio-init--ide>`__ which allows to integrate with `the most popular
IDE <http://docs.platformio.org/en/latest/ide.html>`__
* Added short ``-h`` help option for PlatformIO and sub-commands
* Updated `mbed <http://docs.platformio.org/en/latest/frameworks/mbed.html>`__
framework
* Updated ``tool-teensy`` package for `Teensy <http://docs.platformio.org/en/latest/platforms/teensy.html>`__
platform
(`issue #268 <https://github.com/platformio/platformio/issues/268>`_)
* Added FAQ answer when `Program "platformio" not found in PATH <http://docs.platformio.org/en/latest/faq.html#faq-troubleshooting-pionotfoundinpath>`_
(`issue #272 <https://github.com/platformio/platformio/issues/272>`_)
* Generate "readme.txt" for project "lib" directory
(`issue #273 <https://github.com/platformio/platformio/issues/273>`_)
* Use toolchain's includes pattern ``include*`` for Project Generator
(`issue #277 <https://github.com/platformio/platformio/issues/277>`_)
* Added support for Adafruit Gemma board to
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
platform
(`pull #256 <https://github.com/platformio/platformio/pull/256>`_)
* Fixed includes list for Windows OS when generating project for `Eclipse IDE <http://docs.platformio.org/en/latest/ide/eclipse.html>`__
(`issue #270 <https://github.com/platformio/platformio/issues/270>`_)
* Fixed ``AttributeError: 'module' object has no attribute 'packages'``
(`issue #252 <https://github.com/platformio/platformio/issues/252>`_)
2.2.2 (2015-07-30)
~~~~~~~~~~~~~~~~~~
* Integration with `Atom IDE <http://docs.platformio.org/en/latest/ide/atom.html>`__
* Support for off-line/unpublished/private libraries
(`issue #260 <https://github.com/platformio/platformio/issues/260>`_)
* Disable project auto-clean while building/uploading firmware using
`platformio run --disable-auto-clean <http://docs.platformio.org/en/latest/userguide/cmd_run.html#cmdoption--disable-auto-clean>`_ option
(`issue #255 <https://github.com/platformio/platformio/issues/255>`_)
* Show internal errors from "Miniterm" using `platformio serialports monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`__ command
(`issue #257 <https://github.com/platformio/platformio/issues/257>`_)
* Fixed `platformio serialports monitor --help <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`__ information with HEX char for hotkeys
(`issue #253 <https://github.com/platformio/platformio/issues/253>`_)
* Handle "OSError: [Errno 13] Permission denied" for PlatformIO installer script
(`issue #254 <https://github.com/platformio/platformio/issues/254>`_)
2.2.1 (2015-07-17)
~~~~~~~~~~~~~~~~~~
* Project generator for `CLion IDE <http://docs.platformio.org/en/latest/ide/clion.html>`__
(`issue #132 <https://github.com/platformio/platformio/issues/132>`_)
* Updated ``tool-bossac`` package to 1.5 version for `atmelsam <http://docs.platformio.org/en/latest/platforms/atmelsam.html>`__ platform
(`issue #251 <https://github.com/platformio/platformio/issues/251>`_)
* Updated ``sdk-esp8266`` package for `espressif <http://docs.platformio.org/en/latest/platforms/espressif.html>`__ platform
* Fixed incorrect arguments handling for `platformio serialports monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`_ command
(`issue #248 <https://github.com/platformio/platformio/issues/248>`_)
2.2.0 (2015-07-01)
~~~~~~~~~~~~~~~~~~
* Allowed to exclude/include source files from build process using
`src_filter <http://docs.platformio.org/en/latest/projectconf.html#src-filter>`__
(`issue #240 <https://github.com/platformio/platformio/issues/240>`_)
* Launch own extra script before firmware building/uploading processes
(`issue #239 <https://github.com/platformio/platformio/issues/239>`_)
* Specify own path to the linker script (ld) using
`build_flags <http://docs.platformio.org/en/latest/projectconf.html#build-flags>`__
option
(`issue #233 <https://github.com/platformio/platformio/issues/233>`_)
* Specify library compatibility with the all platforms/frameworks
using ``*`` symbol in
`library.json <http://docs.platformio.org/en/latest/librarymanager/config.html>`__
* Added support for new embedded boards: *ST 32L0538DISCOVERY and Delta DFCM-NNN40*
to `Framework mbed <http://docs.platformio.org/en/latest/frameworks/mbed.html>`__
* Updated packages for
`Framework Arduino (AVR, SAM, Espressif and Teensy cores <http://docs.platformio.org/en/latest/frameworks/arduino.html>`__,
`Framework mbed <http://docs.platformio.org/en/latest/frameworks/mbed.html>`__,
`Espressif ESP8266 SDK <http://docs.platformio.org/en/latest/platforms/espressif.html>`__
(`issue #246 <https://github.com/platformio/platformio/issues/246>`_)
* Fixed ``stk500v2_command(): command failed``
(`issue #238 <https://github.com/platformio/platformio/issues/238>`_)
* Fixed IDE project generator when board is specified
(`issue #242 <https://github.com/platformio/platformio/issues/242>`_)
* Fixed relative path for includes when generating project for IDE
(`issue #243 <https://github.com/platformio/platformio/issues/243>`_)
* Fixed ESP8266 native SDK exception
(`issue #245 <https://github.com/platformio/platformio/issues/245>`_)
2.1.2 (2015-06-21)
~~~~~~~~~~~~~~~~~~
* Fixed broken link to SCons installer
2.1.1 (2015-06-09)
~~~~~~~~~~~~~~~~~~
* Automatically detect upload port using VID:PID board settings
(`issue #231 <https://github.com/platformio/platformio/issues/231>`_)
* Improved detection of build changes
* Avoided ``LibInstallDependencyError`` when more than 1 library is found
(`issue #229 <https://github.com/platformio/platformio/issues/229>`_)
2.1.0 (2015-06-03)
~~~~~~~~~~~~~~~~~~
* Added Silicon Labs EFM32 `siliconlabsefm32 <http://docs.platformio.org/en/latest/platforms/siliconlabsefm32.html>`_
development platform
(`issue #226 <https://github.com/platformio/platformio/issues/226>`_)
* Integrate PlatformIO with `Circle CI <https://circleci.com>`_ and
`Shippable CI <https://shippable.com>`_
* Described in documentation how to `create/register own board <http://docs.platformio.org/en/latest/platforms/creating_board.html>`_ for PlatformIO
* Disabled "nano.specs" for ARM-based platforms
(`issue #219 <https://github.com/platformio/platformio/issues/219>`_)
* Fixed "ConnectionError" when PlatformIO SF Storage is off-line
* Fixed resolving of C/C++ std libs by Eclipse IDE
(`issue #220 <https://github.com/platformio/platformio/issues/220>`_)
* Fixed firmware uploading using USB programmer (USBasp) for
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html>`_
platform
(`issue #221 <https://github.com/platformio/platformio/issues/221>`_)
2.0.2 (2015-05-27)
~~~~~~~~~~~~~~~~~~
* Fixed libraries order for "Library Dependency Finder" under Linux OS
2.0.1 (2015-05-27)
~~~~~~~~~~~~~~~~~~
* Handle new environment variable
`PLATFORMIO_BUILD_FLAGS <http://docs.platformio.org/en/latest/envvars.html#platformio-build-flags>`_
* Pass to API requests information about Continuous Integration system. This
information will be used by PlatformIO-API.
* Use ``include`` directories from toolchain when initialising project for IDE
(`issue #210 <https://github.com/platformio/platformio/issues/210>`_)
* Added support for new WildFire boards from
`Wicked Device <http://wickeddevice.com>`_ to
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
platform
* Updated `Arduino Framework <http://docs.platformio.org/en/latest/frameworks/arduino.html>`__ to
1.6.4 version (`issue #212 <https://github.com/platformio/platformio/issues/212>`_)
* Handle Atmel AVR Symbols when initialising project for IDE
(`issue #216 <https://github.com/platformio/platformio/issues/216>`_)
* Fixed bug with converting ``*.ino`` to ``*.cpp``
* Fixed failing with ``platformio init --ide eclipse`` without boards
(`issue #217 <https://github.com/platformio/platformio/issues/217>`_)
2.0.0 (2015-05-22)
~~~~~~~~~~~~~~~~~~
*Made in* `Paradise <https://twitter.com/ikravets/status/592356377185619969>`_
* PlatformIO as `Continuous Integration <http://docs.platformio.org/en/latest/ci/index.html>`_
(CI) tool for embedded projects
(`issue #108 <https://github.com/platformio/platformio/issues/108>`_)
* Initialise PlatformIO project for the specified IDE
(`issue #151 <https://github.com/platformio/platformio/issues/151>`_)
* PlatformIO CLI 2.0: "platform" related commands have been
moved to ``platformio platforms`` subcommand
(`issue #158 <https://github.com/platformio/platformio/issues/158>`_)
* Created `PlatformIO gitter.im <https://gitter.im/platformio/platformio>`_ room
(`issue #174 <https://github.com/platformio/platformio/issues/174>`_)
* Global ``-f, --force`` option which will force to accept any
confirmation prompts
(`issue #152 <https://github.com/platformio/platformio/issues/152>`_)
* Run project with `platformio run --project-dir <http://docs.platformio.org/en/latest/userguide/cmd_run.html#cmdoption--project-dir>`_ option without changing the current working
directory
(`issue #192 <https://github.com/platformio/platformio/issues/192>`_)
* Control verbosity of `platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html#cmdoption-platformio-run-v>`_ command via ``-v/--verbose`` option
* Add library dependencies for build environment using
`lib_install <http://docs.platformio.org/en/latest/projectconf.html#lib-install>`_
option in ``platformio.ini``
(`issue #134 <https://github.com/platformio/platformio/issues/134>`_)
* Specify libraries which are compatible with build environment using
`lib_use <http://docs.platformio.org/en/latest/projectconf.html#lib-use>`_
option in ``platformio.ini``
(`issue #148 <https://github.com/platformio/platformio/issues/148>`_)
* Add more boards to PlatformIO project with
`platformio init --board <http://docs.platformio.org/en/latest/userguide/cmd_init.html#cmdoption--board>`__
command
(`issue #167 <https://github.com/platformio/platformio/issues/167>`_)
* Choose which library to update
(`issue #168 <https://github.com/platformio/platformio/issues/168>`_)
* Specify `platformio init --env-prefix <http://docs.platformio.org/en/latest/userguide/cmd_init.html#cmdoption--env-prefix>`__ when initialise/update project
(`issue #182 <https://github.com/platformio/platformio/issues/182>`_)
* Added new Armstrap boards
(`issue #204 <https://github.com/platformio/platformio/issues/204>`_)
* Updated SDK for `espressif <http://docs.platformio.org/en/latest/platforms/espressif.html>`__
development platform to v1.1
(`issue #179 <https://github.com/platformio/platformio/issues/179>`_)
* Disabled automatic updates by default for platforms, packages and libraries
(`issue #171 <https://github.com/platformio/platformio/issues/171>`_)
* Fixed bug with creating copies of source files
(`issue #177 <https://github.com/platformio/platformio/issues/177>`_)
PlatformIO 1.0
--------------
1.5.0 (2015-05-15)
~~~~~~~~~~~~~~~~~~
* Added support of `Framework mbed <http://platformio.org/#!/frameworks/mbed>`_
for Teensy 3.1
(`issue #183 <https://github.com/platformio/platformio/issues/183>`_)
* Added GDB as alternative uploader to `ststm32 <http://docs.platformio.org/en/latest/platforms/ststm32.html>`__ platform
(`issue #175 <https://github.com/platformio/platformio/issues/174>`_)
* Added `examples <https://github.com/platformio/platformio/tree/develop/examples>`__
with preconfigured IDE projects
(`issue #154 <https://github.com/platformio/platformio/issues/154>`_)
* Fixed firmware uploading under Linux OS for Arduino Leonardo board
(`issue #178 <https://github.com/platformio/platformio/issues/178>`_)
* Fixed invalid "mbed" firmware for Nucleo F411RE
(`issue #185 <https://github.com/platformio/platformio/issues/185>`_)
* Fixed parsing of includes for PlatformIO Library Dependency Finder
(`issue #189 <https://github.com/platformio/platformio/issues/189>`_)
* Fixed handling symbolic links within source code directory
(`issue #190 <https://github.com/platformio/platformio/issues/190>`_)
* Fixed cancelling any previous definition of name, either built in or provided
with a ``-D`` option
(`issue #191 <https://github.com/platformio/platformio/issues/191>`_)
1.4.0 (2015-04-11)
~~~~~~~~~~~~~~~~~~
* Added `espressif <http://docs.platformio.org/en/latest/platforms/espressif.html>`_
development platform with ESP01 board
* Integrated PlatformIO with AppVeyor Windows based Continuous Integration system
(`issue #149 <https://github.com/platformio/platformio/issues/149>`_)
* Added support for Teensy LC board to
`teensy <http://docs.platformio.org/en/latest/platforms/teensy.html>`__
platform
* Added support for new Arduino based boards by *SparkFun, BQ, LightUp,
LowPowerLab, Quirkbot, RedBearLab, TinyCircuits* to
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
platform
* Upgraded `Arduino Framework <http://docs.platformio.org/en/latest/frameworks/arduino.html>`__ to
1.6.3 version (`issue #156 <https://github.com/platformio/platformio/issues/156>`_)
* Upgraded `Energia Framework <http://docs.platformio.org/en/latest/frameworks/energia.html>`__ to
0101E0015 version (`issue #146 <https://github.com/platformio/platformio/issues/146>`_)
* Upgraded `Arduino Framework with Teensy Core <http://docs.platformio.org/en/latest/frameworks/arduino.html>`_
to 1.22 version
(`issue #162 <https://github.com/platformio/platformio/issues/162>`_,
`issue #170 <https://github.com/platformio/platformio/issues/170>`_)
* Fixed exceptions with PlatformIO auto-updates when Internet connection isn't
active
1.3.0 (2015-03-27)
~~~~~~~~~~~~~~~~~~
* Moved PlatformIO source code and repositories from `Ivan Kravets <https://github.com/ivankravets>`_
account to `PlatformIO Organisation <https://github.com/platformio>`_
(`issue #138 <https://github.com/platformio/platformio/issues/138>`_)
* Added support for new Arduino based boards by *SparkFun, RepRap, Sanguino* to
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
platform
(`issue #127 <https://github.com/platformio/platformio/issues/127>`_,
`issue #131 <https://github.com/platformio/platformio/issues/131>`_)
* Added integration instructions for `Visual Studio <http://docs.platformio.org/en/latest/ide/visualstudio.html>`_
and `Sublime Text <http://docs.platformio.org/en/latest/ide/sublimetext.html>`_ IDEs
* Improved handling of multi-file ``*.ino/pde`` sketches
(`issue #130 <https://github.com/platformio/platformio/issues/130>`_)
* Fixed wrong insertion of function prototypes converting ``*.ino/pde``
(`issue #137 <https://github.com/platformio/platformio/issues/137>`_,
`issue #140 <https://github.com/platformio/platformio/issues/140>`_)
1.2.0 (2015-03-20)
~~~~~~~~~~~~~~~~~~
* Added full support of `mbed <http://docs.platformio.org/en/latest/frameworks/mbed.html>`__
framework including libraries: *RTOS, Ethernet, DSP, FAT, USB*.
* Added `freescalekinetis <http://docs.platformio.org/en/latest/platforms/freescalekinetis.html>`_
development platform with Freescale Kinetis Freedom boards
* Added `nordicnrf51 <http://docs.platformio.org/en/latest/platforms/nordicnrf51.html>`_
development platform with supported boards from *JKSoft, Nordic, RedBearLab,
Switch Science*
* Added `nxplpc <http://docs.platformio.org/en/latest/platforms/nxplpc.html>`_
development platform with supported boards from *CQ Publishing, Embedded
Artists, NGX Technologies, NXP, Outrageous Circuits, SeeedStudio,
Solder Splash Labs, Switch Science, u-blox*
* Added support for *ST Nucleo* boards to
`ststm32 <http://docs.platformio.org/en/latest/platforms/ststm32.html>`__
development platform
* Created new `Frameworks <http://docs.platformio.org/en/latest/frameworks/index.html>`__
page in documentation and added to `PlatformIO Web Site <http://platformio.org>`_
(`issue #115 <https://github.com/platformio/platformio/issues/115>`_)
* Introduced online `Embedded Boards Explorer <http://platformio.org/#!/boards>`_
* Automatically append define ``-DPLATFORMIO=%version%`` to
builder (`issue #105 <https://github.com/platformio/platformio/issues/105>`_)
* Renamed ``stm32`` development platform to
`ststm32 <http://docs.platformio.org/en/latest/platforms/ststm32.html>`__
* Renamed ``opencm3`` framework to
`libopencm3 <http://docs.platformio.org/en/latest/frameworks/libopencm3.html>`__
* Fixed uploading for `atmelsam <http://docs.platformio.org/en/latest/platforms/atmelsam.html>`__
development platform
* Fixed re-arranging the ``*.ino/pde`` files when converting to ``*.cpp``
(`issue #100 <https://github.com/platformio/platformio/issues/100>`_)
1.1.0 (2015-03-05)
~~~~~~~~~~~~~~~~~~
* Implemented ``PLATFORMIO_*`` environment variables
(`issue #102 <https://github.com/platformio/platformio/issues/102>`_)
* Added support for *SainSmart* boards to
`atmelsam <http://docs.platformio.org/en/latest/platforms/atmelsam.html#boards>`__
development platform
* Added
`Project Configuration <http://docs.platformio.org/en/latest/projectconf.html>`__
option named `envs_dir <http://docs.platformio.org/en/latest/projectconf.html#envs-dir>`__
* Disabled "prompts" automatically for *Continuous Integration* systems
(`issue #103 <https://github.com/platformio/platformio/issues/103>`_)
* Fixed firmware uploading for
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
boards which work within ``usbtiny`` protocol
* Fixed uploading for *Digispark* board (`issue #106 <https://github.com/platformio/platformio/issues/106>`_)
1.0.1 (2015-02-27)
~~~~~~~~~~~~~~~~~~
**PlatformIO 1.0 - recommended for production**
* Changed development status from ``beta`` to ``Production/Stable``
* Added support for *ARM*-based credit-card sized computers:
`Raspberry Pi <http://www.raspberrypi.org>`_,
`BeagleBone <http://beagleboard.org>`_ and `CubieBoard <http://cubieboard.org>`_
* Added `atmelsam <http://docs.platformio.org/en/latest/platforms/atmelsam.html>`__
development platform with supported boards: *Arduino Due and Digistump DigiX*
(`issue #71 <https://github.com/platformio/platformio/issues/71>`_)
* Added `ststm32 <http://docs.platformio.org/en/latest/platforms/ststm32.html>`__
development platform with supported boards: *Discovery kit for STM32L151/152,
STM32F303xx, STM32F407/417 lines* and `libOpenCM3 Framework <http://www.libopencm3.org>`_
(`issue #73 <https://github.com/platformio/platformio/issues/73>`_)
* Added `teensy <http://docs.platformio.org/en/latest/platforms/teensy.html>`_
development platform with supported boards: *Teensy 2.x & 3.x*
(`issue #72 <https://github.com/platformio/platformio/issues/72>`_)
* Added new *Arduino* boards to
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
platform: *Arduino NG, Arduino BT, Arduino Esplora, Arduino Ethernet,
Arduino Robot Control, Arduino Robot Motor and Arduino Yun*
* Added support for *Adafruit* boards to
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
platform: *Adafruit Flora and Adafruit Trinkets*
(`issue #65 <https://github.com/platformio/platformio/issues/65>`_)
* Added support for *Digispark* boards to
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
platform: *Digispark USB Development Board and Digispark Pro*
(`issue #47 <https://github.com/platformio/platformio/issues/47>`_)
* Covered code with tests (`issue #2 <https://github.com/platformio/platformio/issues/2>`_)
* Refactored *Library Dependency Finder* (issues
`#48 <https://github.com/platformio/platformio/issues/48>`_,
`#50 <https://github.com/platformio/platformio/issues/50>`_,
`#55 <https://github.com/platformio/platformio/pull/55>`_)
* Added `src_dir <http://docs.platformio.org/en/latest/projectconf.html#src-dir>`__
option to ``[platformio]`` section of
`platformio.ini <http://docs.platformio.org/en/latest/projectconf.html>`__
which allows to redefine location to project's source directory
(`issue #83 <https://github.com/platformio/platformio/issues/83>`_)
* Added ``--json-output`` option to
`platformio boards <http://docs.platformio.org/en/latest/userguide/cmd_boards.html>`__
and `platformio search <http://docs.platformio.org/en/latest/userguide/cmd_search.html>`__
commands which allows to return the output in `JSON <http://en.wikipedia.org/wiki/JSON>`_ format
(`issue #42 <https://github.com/platformio/platformio/issues/42>`_)
* Allowed to ignore some libs from *Library Dependency Finder* via
`lib_ignore <http://docs.platformio.org/en/latest/projectconf.html#lib-ignore>`_ option
* Improved `platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`__
command: asynchronous output for build process, timing and detailed
information about environment configuration
(`issue #74 <https://github.com/platformio/platformio/issues/74>`_)
* Output compiled size and static memory usage with
`platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`__
command (`issue #59 <https://github.com/platformio/platformio/issues/59>`_)
* Updated `framework-arduino` AVR & SAM to 1.6 stable version
* Fixed an issue with the libraries that are git repositories
(`issue #49 <https://github.com/platformio/platformio/issues/49>`_)
* Fixed handling of assembly files
(`issue #58 <https://github.com/platformio/platformio/issues/58>`_)
* Fixed compiling error if space is in user's folder
(`issue #56 <https://github.com/platformio/platformio/issues/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 <https://github.com/platformio/platformio/issues/81>`_)
* Several bug fixes, increased stability and performance improvements
PlatformIO 0.0
--------------
0.10.2 (2015-01-06)
~~~~~~~~~~~~~~~~~~~
* Fixed an issue with ``--json-output``
(`issue #42 <https://github.com/platformio/platformio/issues/42>`_)
* Fixed an exception during
`platformio upgrade <http://docs.platformio.org/en/latest/userguide/cmd_upgrade.html>`__
under Windows OS (`issue #45 <https://github.com/platformio/platformio/issues/45>`_)
0.10.1 (2015-01-02)
-------------------
~~~~~~~~~~~~~~~~~~~
* Added ``--json-output`` option to
`platformio list <http://docs.platformio.org/en/latest/userguide/cmd_list.html>`__,
`platformio serialports list <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html>`__ and
`platformio lib list <http://docs.platformio.org/en/latest/userguide/cmd_lib_list.html>`__
`platformio lib list <http://docs.platformio.org/en/latest/userguide/lib/cmd_list.html>`__
commands which allows to return the output in `JSON <http://en.wikipedia.org/wiki/JSON>`_ format
(`issue #42 <https://github.com/ivankravets/platformio/issues/42>`_)
(`issue #42 <https://github.com/platformio/platformio/issues/42>`_)
* Fixed missing auto-uploading by default after `platformio init <http://docs.platformio.org/en/latest/userguide/cmd_init.html>`__
command
0.10.0 (2015-01-01)
-------------------
~~~~~~~~~~~~~~~~~~~
**Happy New Year!**
* Implemented `platformio boards <http://docs.platformio.org/en/latest/userguide/cmd_boards.html>`_
command (`issue #11 <https://github.com/ivankravets/platformio/issues/11>`_)
command (`issue #11 <https://github.com/platformio/platformio/issues/11>`_)
* Added support of *Engduino* boards for
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#engduino>`__
platform (`issue #38 <https://github.com/ivankravets/platformio/issues/38>`_)
platform (`issue #38 <https://github.com/platformio/platformio/issues/38>`_)
* Added ``--board`` option to `platformio init <http://docs.platformio.org/en/latest/userguide/cmd_init.html>`__
command which allows to initialise project with the specified embedded boards
(`issue #21 <https://github.com/ivankravets/platformio/issues/21>`_)
(`issue #21 <https://github.com/platformio/platformio/issues/21>`_)
* Added `example with uploading firmware <http://docs.platformio.org/en/latest/projectconf.html#examples>`_
via USB programmer (USBasp) for
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html>`_
*MCUs* (`issue #35 <https://github.com/ivankravets/platformio/issues/35>`_)
*MCUs* (`issue #35 <https://github.com/platformio/platformio/issues/35>`_)
* Automatic detection of port on `platformio serialports monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`_
(`issue #37 <https://github.com/ivankravets/platformio/issues/37>`_)
* Allowed auto-installation of platforms when prompts are disabled (`issue #43 <https://github.com/ivankravets/platformio/issues/43>`_)
* Fixed urllib3's *SSL* warning under Python <= 2.7.2 (`issue #39 <https://github.com/ivankravets/platformio/issues/39>`_)
* Fixed bug with *Arduino USB* boards (`issue #40 <https://github.com/ivankravets/platformio/issues/40>`_)
(`issue #37 <https://github.com/platformio/platformio/issues/37>`_)
* Allowed auto-installation of platforms when prompts are disabled (`issue #43 <https://github.com/platformio/platformio/issues/43>`_)
* Fixed urllib3's *SSL* warning under Python <= 2.7.2 (`issue #39 <https://github.com/platformio/platformio/issues/39>`_)
* Fixed bug with *Arduino USB* boards (`issue #40 <https://github.com/platformio/platformio/issues/40>`_)
0.9.2 (2014-12-10)
------------------
~~~~~~~~~~~~~~~~~~
* Replaced "dark blue" by "cyan" colour for the texts (`issue #33 <https://github.com/ivankravets/platformio/issues/33>`_)
* Replaced "dark blue" by "cyan" colour for the texts (`issue #33 <https://github.com/platformio/platformio/issues/33>`_)
* Added new setting `enable_prompts <http://docs.platformio.org/en/latest/userguide/cmd_settings.html>`_
and allowed to disable all *PlatformIO* prompts (useful for cloud compilers)
(`issue #34 <https://github.com/ivankravets/platformio/issues/34>`_)
* Fixed compilation bug on *Windows* with installed *MSVC* (`issue #18 <https://github.com/ivankravets/platformio/issues/18>`_)
(`issue #34 <https://github.com/platformio/platformio/issues/34>`_)
* Fixed compilation bug on *Windows* with installed *MSVC* (`issue #18 <https://github.com/platformio/platformio/issues/18>`_)
0.9.1 (2014-12-05)
------------------
~~~~~~~~~~~~~~~~~~
* Ask user to install platform (when it hasn't been installed yet) within
`platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`__
@ -55,18 +667,18 @@ Release History
* Fixed "*OSError: [Errno 2] No such file or directory*" within
`platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`__
command when PlatformIO isn't installed properly
* Fixed example for `Eclipse IDE with Tiva board <https://github.com/ivankravets/platformio/tree/develop/examples/ide-eclipse>`_
(`issue #32 <https://github.com/ivankravets/platformio/issues/32>`_)
* Upgraded `Eclipse Project Examples <https://github.com/ivankravets/platformio/tree/develop/examples/ide-eclipse>`_
* Fixed example for `Eclipse IDE with Tiva board <https://github.com/platformio/platformio/tree/develop/examples/ide/eclipse>`_
(`issue #32 <https://github.com/platformio/platformio/pull/32>`_)
* Upgraded `Eclipse Project Examples <https://github.com/platformio/platformio/tree/develop/examples/ide/eclipse>`_
to latest *Luna* and *PlatformIO* releases
0.9.0 (2014-12-01)
------------------
~~~~~~~~~~~~~~~~~~
* Implemented `platformio settings <http://docs.platformio.org/en/latest/userguide/cmd_settings.html>`_ command
* Improved `platformio init <http://docs.platformio.org/en/latest/userguide/cmd_init.html>`_ command.
Added new option ``--project-dir`` where you can specify another path to
directory where new project will be initialized (`issue #31 <https://github.com/ivankravets/platformio/issues/31>`_)
directory where new project will be initialized (`issue #31 <https://github.com/platformio/platformio/issues/31>`_)
* Added *Migration Manager* which simplifies process with upgrading to a
major release
* Added *Telemetry Service* which should help us make *PlatformIO* better
@ -74,18 +686,18 @@ Release History
``.platformio`` states.
* Refactored *Package Manager*
* Download Manager: fixed SHA1 verification within *Cygwin Environment*
(`issue #26 <https://github.com/ivankravets/platformio/issues/26>`_)
(`issue #26 <https://github.com/platformio/platformio/issues/26>`_)
* Fixed bug with code builder and built-in Arduino libraries
(`issue #28 <https://github.com/ivankravets/platformio/issues/28>`_)
(`issue #28 <https://github.com/platformio/platformio/issues/28>`_)
0.8.0 (2014-10-19)
------------------
~~~~~~~~~~~~~~~~~~
* Avoided trademark issues in `library.json <http://docs.platformio.org/en/latest/librarymanager/config.html>`_
with the new fields: `frameworks <http://docs.platformio.org/en/latest/librarymanager/config.html#frameworks>`_,
`platforms <http://docs.platformio.org/en/latest/librarymanager/config.html#platforms>`_
and `dependencies <http://docs.platformio.org/en/latest/librarymanager/config.html#dependencies>`_
(`issue #17 <https://github.com/ivankravets/platformio/issues/17>`_)
(`issue #17 <https://github.com/platformio/platformio/issues/17>`_)
* Switched logic from "Library Name" to "Library Registry ID" for all
`platformio lib <http://docs.platformio.org/en/latest/userguide/lib/index.html>`_
commands (install, uninstall, update and etc.)
@ -96,54 +708,54 @@ Release History
command: ``--framework`` and ``--platform``
0.7.1 (2014-10-06)
------------------
~~~~~~~~~~~~~~~~~~
* Fixed bug with order for includes in conversation from INO/PDE to CPP
* Automatic detection of port on upload (`issue #15 <https://github.com/ivankravets/platformio/issues/15>`_)
* Fixed lib update crashing when no libs are installed (`issue #19 <https://github.com/ivankravets/platformio/issues/19>`_)
* Automatic detection of port on upload (`issue #15 <https://github.com/platformio/platformio/issues/15>`_)
* Fixed lib update crashing when no libs are installed (`issue #19 <https://github.com/platformio/platformio/issues/19>`_)
0.7.0 (2014-09-24)
------------------
~~~~~~~~~~~~~~~~~~
* Implemented new `[platformio] <http://docs.platformio.org/en/latest/projectconf.html#platformio>`_
section for Configuration File with `home_dir <http://docs.platformio.org/en/latest/projectconf.html#home-dir>`_
option (`issue #14 <https://github.com/ivankravets/platformio/issues/14>`_)
* Implemented *Library Manager* (`issue #6 <https://github.com/ivankravets/platformio/issues/6>`_)
option (`issue #14 <https://github.com/platformio/platformio/issues/14>`_)
* Implemented *Library Manager* (`issue #6 <https://github.com/platformio/platformio/issues/6>`_)
0.6.0 (2014-08-09)
------------------
~~~~~~~~~~~~~~~~~~
* Implemented `platformio serialports monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`_ (`issue #10 <https://github.com/ivankravets/platformio/issues/10>`_)
* Fixed an issue ``ImportError: No module named platformio.util`` (`issue #9 <https://github.com/ivankravets/platformio/issues/9>`_)
* Implemented `platformio serialports monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`_ (`issue #10 <https://github.com/platformio/platformio/issues/10>`_)
* Fixed an issue ``ImportError: No module named platformio.util`` (`issue #9 <https://github.com/platformio/platformio/issues/9>`_)
* Fixed bug with auto-conversation from Arduino \*.ino to \*.cpp
0.5.0 (2014-08-04)
------------------
~~~~~~~~~~~~~~~~~~
* Improved nested lookups for libraries
* Disabled default warning flag "-Wall"
* Added auto-conversation from \*.ino to valid \*.cpp for Arduino/Energia
frameworks (`issue #7 <https://github.com/ivankravets/platformio/issues/7>`_)
* Added `Arduino example <https://github.com/ivankravets/platformio/tree/develop/examples/arduino-adafruit-library>`_
frameworks (`issue #7 <https://github.com/platformio/platformio/issues/7>`_)
* Added `Arduino example <https://github.com/platformio/platformio/tree/develop/examples/>`_
with external library (*Adafruit CC3000*)
* Implemented `platformio upgrade <http://docs.platformio.org/en/latest/userguide/cmd_upgrade.html>`_
command and "auto-check" for the latest
version (`issue #8 <https://github.com/ivankravets/platformio/issues/8>`_)
version (`issue #8 <https://github.com/platformio/platformio/issues/8>`_)
* Fixed an issue with "auto-reset" for *Raspduino* board
* Fixed a bug with nested libs building
0.4.0 (2014-07-31)
------------------
~~~~~~~~~~~~~~~~~~
* Implemented `platformio serialports <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html>`_ command
* Allowed to put special build flags only for ``src`` files via
`srcbuild_flags <http://docs.platformio.org/en/latest/projectconf.html#srcbuild-flags>`_
`src_build_flags <http://docs.platformio.org/en/latest/projectconf.html#src_build-flags>`_
environment option
* Allowed to override some of settings via system environment variables
such as: ``$PIOSRCBUILD_FLAGS`` and ``$PIOENVS_DIR``
such as: ``PLATFORMIO_SRC_BUILD_FLAGS`` and ``PLATFORMIO_ENVS_DIR``
* Added ``--upload-port`` option for `platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html#cmdoption--upload-port>`__ command
* Implemented (especially for `SmartAnthill <http://smartanthill.ikravets.com/>`_)
* Implemented (especially for `SmartAnthill <http://docs.smartanthill.ikravets.com/>`_)
`platformio run -t uploadlazy <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`_
target (no dependencies to framework libs, ELF and etc.)
* Allowed to skip default packages via `platformio install --skip-default-package <http://docs.platformio.org/en/latest/userguide/cmd_install.html#cmdoption--skip-default>`_
@ -154,31 +766,31 @@ Release History
0.3.1 (2014-06-21)
------------------
~~~~~~~~~~~~~~~~~~
* Fixed auto-installer for Windows OS (bug with %PATH% customisations)
0.3.0 (2014-06-21)
------------------
~~~~~~~~~~~~~~~~~~
* 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 <https://github.com/ivankravets/platformio/issues/3>`_)
* Created auto installer script for *PlatformIO* (`issue #3 <https://github.com/platformio/platformio/issues/3>`_)
* Added "Super-Quick" way to Installation section (README)
* Implemented "build_flags" option for environments (`issue #4 <https://github.com/ivankravets/platformio/issues/4>`_)
* Implemented "build_flags" option for environments (`issue #4 <https://github.com/platformio/platformio/issues/4>`_)
0.2.0 (2014-06-15)
------------------
~~~~~~~~~~~~~~~~~~
* Resolved `issue #1 "Build referred libraries" <https://github.com/ivankravets/platformio/issues/1>`_
* Resolved `issue #1 "Build referred libraries" <https://github.com/platformio/platformio/issues/1>`_
* Renamed project's "libs" directory to "lib"
* Added `arduino-internal-library <https://github.com/ivankravets/platformio/tree/develop/examples/arduino-internal-library>`_ example
* Added `arduino-internal-library <https://github.com/platformio/platformio/tree/develop/examples/>`_ example
* Changed to beta status
0.1.0 (2014-06-13)
------------------
~~~~~~~~~~~~~~~~~~
* Birth! First alpha release

187
LICENSE
View File

@ -1,21 +1,174 @@
The MIT License (MIT)
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
Copyright (c) 2014-2015 Ivan Kravets
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
1. Definitions.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

View File

@ -1,68 +1,110 @@
PlatformIO
==========
.. image:: https://travis-ci.org/ivankravets/platformio.svg?branch=develop
:target: https://travis-ci.org/ivankravets/platformio
:alt: Build Status
.. image:: https://gemnasium.com/ivankravets/platformio.png
:target: https://gemnasium.com/ivankravets/platformio
:alt: Dependency Status
.. image:: https://pypip.in/version/platformio/badge.png
.. image:: https://travis-ci.org/platformio/platformio.svg?branch=develop
:target: https://travis-ci.org/platformio/platformio
:alt: Travis.CI Build Status
.. image:: https://ci.appveyor.com/api/projects/status/dku0h2rutfj0ctls/branch/develop?svg=true
:target: https://ci.appveyor.com/project/ivankravets/platformio
:alt: AppVeyor.CI Build Status
.. image:: https://circleci.com/gh/platformio/platformio/tree/develop.svg?style=svg
:target: https://circleci.com/gh/platformio/platformio/tree/develop
:alt: Circle.CI Build Status
.. image:: https://requires.io/github/platformio/platformio/requirements.svg?branch=develop
:target: https://requires.io/github/platformio/platformio/requirements/?branch=develop
:alt: Requirements Status
.. image:: https://img.shields.io/pypi/v/platformio.svg
:target: https://pypi.python.org/pypi/platformio/
:alt: Latest Version
.. image:: https://pypip.in/download/platformio/badge.png
:target: https://pypi.python.org/pypi/platformio/
:alt: Downloads
.. image:: https://pypip.in/license/platformio/badge.png
.. image:: https://img.shields.io/pypi/l/platformio.svg
:target: https://pypi.python.org/pypi/platformio/
:alt: License
.. image:: https://img.shields.io/pypi/dm/platformio.svg
:target: https://pypi.python.org/pypi/platformio/
:alt: PyPi Downloads
.. image:: https://img.shields.io/sourceforge/dm/platformio-storage.svg
:target: https://sourceforge.net/projects/platformio-storage/
:alt: Packages Downloads
.. image:: https://badges.gitter.im/Join%20Chat.svg
:alt: Join the chat at https://gitter.im/platformio/platformio
:target: https://gitter.im/platformio/platformio
.. image:: https://img.shields.io/PlatformIO/donate.png?color=yellow
:alt: Support PlatformIO Team
:target: https://www.bountysource.com/teams/platformio
`Website + Library Search <http://platformio.org>`_ |
`Home & Demo <http://platformio.org>`_ |
`Project Examples <https://github.com/platformio/platformio/tree/develop/examples>`_ |
`Source Code <https://github.com/platformio>`_ |
`Documentation <http://docs.platformio.org>`_ |
`Project Examples <https://github.com/ivankravets/platformio/tree/develop/examples>`_ |
`Blog <http://www.ikravets.com/category/computer-life/platformio>`_ |
`Twitter <https://twitter.com/PlatformIO_Org>`_
`Twitter <https://twitter.com/PlatformIO_Org>`_ |
`Hackaday <https://hackaday.io/project/7980-platformio>`_ |
`Facebook <https://www.facebook.com/platformio>`_ |
`Reddit <http://www.reddit.com/r/platformio/>`_
.. image:: https://raw.githubusercontent.com/ivankravets/platformio/develop/docs/_static/platformio-logo.png
.. image:: https://raw.githubusercontent.com/platformio/platformio/develop/docs/_static/platformio-logo.png
:target: http://platformio.org
`PlatformIO <http://platformio.org>`_ is a cross-platform code builder
and the missing library manager.
`PlatformIO <http://platformio.org>`_ is an open source ecosystem for IoT
development. Cross-platform code builder and library manager. Continuous and
IDE integration. Arduino and MBED compatible. Ready for Cloud compiling.
* **Development Platforms** - Embedded and Desktop development platforms with
pre-built toolchains, debuggers, uploaders and frameworks which work under
popular host OS: Mac, Windows, Linux (+ARM)
* **Embedded Boards** - Rapid Embedded Programming, IDE and Continuous
Integration in a few steps with PlatformIO thanks to built-in project
generator for the most popular embedded boards and IDE
* **Library Manager** - Hundreds Popular Libraries are organized into single
Web 2.0 platform: list by categories, keywords, authors, compatible
platforms and frameworks; learn via examples; be up-to-date with the latest
version
*Atmel AVR & SAM, Espressif, Freescale Kinetis, Nordic nRF51, NXP LPC,
Silicon Labs EFM32, ST STM32, TI MSP430 & Tiva, Teensy, Arduino, mbed,
libOpenCM3, etc.*
.. image:: https://raw.githubusercontent.com/platformio/platformio/develop/docs/_static/platformio-demo-wiring.gif
:target: http://platformio.org
* `Get Started <http://platformio.org/#!/get-started>`_
* `Web 2.0 Library Search <http://platformio.org/#!/lib>`_
* `Development Platforms <http://platformio.org/#!/platforms>`_
* `Embedded Boards <http://platformio.org/#!/boards>`_
* `Frameworks <http://platformio.org/#!/frameworks>`_
* `Embedded Boards Explorer <http://platformio.org/#!/boards>`_
* `Library Manager <http://docs.platformio.org/en/latest/librarymanager/index.html>`_
* `User Guide <http://docs.platformio.org/en/latest/userguide/index.html>`_
* `Continuous Integration <http://docs.platformio.org/en/latest/ci/index.html>`_
* `IDE Integration <http://docs.platformio.org/en/latest/ide.html>`_
* `Articles about us <http://docs.platformio.org/en/latest/articles.html>`_
* `FAQ <http://docs.platformio.org/en/latest/faq.html>`_
* `Release History <http://docs.platformio.org/en/latest/history.html>`_
You have **no need** to install any *IDE* or compile any tool chains. *PlatformIO*
has pre-built different development platforms including: compiler, debugger,
uploader (for embedded boards) and many other useful tools.
Use whenever. *Run everywhere.*
-------------------------------
*PlatformIO* is written in pure *Python* and **doesn't depend** on any
additional libraries/tools from an operation system. It allows you to use
additional libraries/tools from an operating system. It allows you to use
*PlatformIO* beginning from *PC (Mac, Linux, Win)* and ending with credit-card
sized computers (like *Raspberry Pi*).
sized computers (`Raspberry Pi <http://www.raspberrypi.org>`_,
`BeagleBone <http://beagleboard.org>`_,
`CubieBoard <http://cubieboard.org>`_).
Embedded Development. *Easier Than Ever.*
-----------------------------------------
*PlatformIO* is well suited for embedded development and has pre-configured
settings for most popular `Embedded Boards <http://platformio.org/#!/boards>`_.
* Colourful `command-line output <https://raw.githubusercontent.com/ivankravets/platformio/develop/examples/platformio-examples.png>`_
* Built-in `Serial Port Monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`_
* Configurable `build -flags/-options <http://docs.platformio.org/en/latest/projectconf.html#build-flags>`_
* Colourful `command-line output <https://raw.githubusercontent.com/platformio/platformio/develop/examples/platformio-examples.png>`_
* `IDE Integration <http://docs.platformio.org/en/latest/ide.html>`_ with
*Arduino, Eclipse, Emacs, Energia, Qt Creator, Sublime Text, Vim, Visual Studio*
* Cloud compiling and `Continuous Integration <http://docs.platformio.org/en/latest/ci/index.html>`_
with *AppVeyor, Circle CI, Drone, Shippable, Travis CI*
* Built-in `Serial Port Monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`_ and configurable
`build -flags/-options <http://docs.platformio.org/en/latest/projectconf.html#build-flags>`_
* Automatic **firmware uploading**
* Integration with `development environments (IDE) <http://docs.platformio.org/en/latest/ide.html>`_
* Ready for **cloud compilers**
* Pre-built tool chains, frameworks for the popular `Hardware Platforms <http://platformio.org/#!/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
@ -73,13 +115,13 @@ platforms which allows you to organize and have up-to-date external libraries.
* Friendly `Command-Line Interface <http://docs.platformio.org/en/latest/librarymanager/index.html>`_
* Modern `Web 2.0 Library Search <http://platformio.org/#!/lib>`_
* Open Source `Library Registry API <https://github.com/ivankravets/platformio-api>`_
* Open Source `Library Registry API <https://github.com/platformio/platformio-api>`_
* Library Crawler based on `library.json <http://docs.platformio.org/en/latest/librarymanager/config.html>`_
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
@ -95,14 +137,14 @@ 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 <http://docs.platformio.org/en/latest/librarymanager/index.html>`_
.. 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
Single source code. *Multiple platforms.*
-----------------------------------------
*PlatformIO* allows developer to compile the same code with different
development platforms using the *Only One Command*
*PlatformIO* allows the developer to compile the same code with different
development platforms using only *One Command*
`platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`_.
This happens due to
`Project Configuration File (platformio.ini) <http://docs.platformio.org/en/latest/projectconf.html>`_
@ -110,19 +152,35 @@ where you can setup different environments with specific options (platform
type, firmware uploading settings, pre-built framework, build flags and many
more).
It has support for many popular embedded platforms like these:
It has support for the most popular embedded platforms:
* ``atmelavr`` `Atmel AVR <http://platformio.org/#!/platforms/atmelavr>`_
(including *Arduino*-based boards, *Microduino, Raspduino, Teensy*)
* ``timsp430`` `TI MSP430 <http://platformio.org/#!/platforms/timsp430>`_
(including *MSP430* LaunchPads)
* ``titiva`` `TI TIVA C <http://platformio.org/#!/platforms/titiva>`_
(including *TIVA C* Series LaunchPads)
* `Atmel AVR <http://platformio.org/#!/platforms/atmelavr>`_
* `Atmel SAM <http://platformio.org/#!/platforms/atmelsam>`_
* `Espressif <http://platformio.org/#!/platforms/espressif>`_
* `Freescale Kinetis <http://platformio.org/#!/platforms/freescalekinetis>`_
* `Nordic nRF51 <http://platformio.org/#!/platforms/nordicnrf51>`_
* `NXP LPC <http://platformio.org/#!/platforms/nxplpc>`_
* `ST STM32 <http://platformio.org/#!/platforms/ststm32>`_
* `Silicon Labs EFM32 <http://platformio.org/#!/platforms/siliconlabsefm32>`_
* `Teensy <http://platformio.org/#!/platforms/teensy>`_
* `TI MSP430 <http://platformio.org/#!/platforms/timsp430>`_
* `TI TIVA C <http://platformio.org/#!/platforms/titiva>`_
Frameworks:
* `Arduino <http://platformio.org/#!/frameworks/arduino>`_
* `CMSIS <http://platformio.org/#!/frameworks/cmsis>`_
* `libOpenCM3 <http://platformio.org/#!/frameworks/libopencm3>`_
* `Energia <http://platformio.org/#!/frameworks/energia>`_
* `SPL <http://platformio.org/#!/frameworks/spl>`_
* `mbed <http://platformio.org/#!/frameworks/mbed>`_
For further details, please refer to `What is PlatformIO? <http://docs.platformio.org/en/latest/faq.html#what-is-platformio>`_
Licence
-------
Copyright (C) 2014-2015 Ivan Kravets
Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licenced under the MIT Licence.
The PlatformIO is licensed under the permissive Apache 2.0 licence,
so you can use it in both commercial and personal projects with confidence.

27
appveyor.yml Normal file
View File

@ -0,0 +1,27 @@
build: off
environment:
global:
WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd"
matrix:
- TOXENV: "py27"
TOXPYTHON: "C:\\Python27-x64\\python.exe"
WINDOWS_SDK_VERSION: "v7.0"
PYTHON_HOME: "C:\\Python27-x64"
PYTHON_VERSION: "2.7"
PYTHON_ARCH: "64"
init:
- "ECHO %TOXENV%"
- ps: "ls C:\\Python*"
install:
- "git submodule update --init --recursive"
- "powershell scripts\\appveyor\\install.ps1"
before_test:
- cmd: SET PATH=%PATH%;C:\MinGW\bin
test_script:
- "%PYTHON_HOME%\\Scripts\\tox --version"
- "%PYTHON_HOME%\\Scripts\\pip --version"
- "%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\tox"

16
circle.yml Normal file
View File

@ -0,0 +1,16 @@
machine:
python:
version: 2.7
checkout:
post:
- git submodule update --init
- pip install -U pip setuptools virtualenv
dependencies:
pre:
- pip install tox
test:
override:
- tox -e py27

BIN
docs/_static/ci-travis-logo.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

255
docs/_static/extra.css vendored Normal file
View File

@ -0,0 +1,255 @@
/**
* Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
header,
nav {
display: block;
}
#pionav {
display: none;
}
.container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
@media (min-width: 992px) {
#pionav {
display: block !important;
}
body {
padding-top: 50px;
}
.wy-nav-side {
top: 50px;
}
.container {
width: 970px;
}
}
@media (min-width: 1200px) {
.container {
width: 1170px;
}
}
.container-fluid {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after {
display: table;
content: " ";
}
.container:after,
.container-fluid:after,
.nav:after,
.navbar:after,
.navbar-header:after {
clear: both;
}
.nav {
padding-left: 0;
margin-bottom: 0;
list-style: none;
}
.nav > li {
position: relative;
display: block;
}
.nav > li > a {
position: relative;
display: block;
padding: 10px 15px;
font-size: 14px;
}
.nav > li > a:hover,
.nav > li > a:focus {
text-decoration: none;
background-color: #eee;
}
.nav > li > a > img {
max-width: none;
}
.nav > li > a > i {
margin-right: 5px;
}
.navbar {
position: relative;
min-height: 50px;
margin-bottom: 20px;
border: 1px solid transparent;
}
@media (min-width: 768px) {
.navbar {
border-radius: 4px;
}
}
@media (min-width: 768px) {
.navbar-header {
float: left;
}
}
@media (min-width: 768px) {
.navbar-fixed-top {
padding-right: 0;
padding-left: 0;
}
}
.navbar-fixed-top {
max-height: 340px;
}
.container > .navbar-header,
.container-fluid > .navbar-header {
margin-right: -15px;
margin-left: -15px;
}
@media (min-width: 768px) {
.container > .navbar-header,
.container-fluid > .navbar-header {
margin-right: 0;
margin-left: 0;
}
}
.navbar-fixed-top {
position: fixed;
right: 0;
left: 0;
z-index: 1030;
}
@media (min-width: 768px) {
.navbar-fixed-top {
border-radius: 0;
}
}
.navbar-fixed-top {
top: 0;
border-width: 0 0 1px;
}
.navbar-fixed-bottom {
bottom: 0;
margin-bottom: 0;
border-width: 1px 0 0;
}
.navbar-brand {
float: left;
height: 50px;
padding: 15px 15px;
font-size: 18px;
line-height: 20px;
}
.navbar-brand:hover,
.navbar-brand:focus {
text-decoration: none;
}
.navbar-brand > img {
display: block;
}
@media (min-width: 768px) {
.navbar > .container .navbar-brand,
.navbar > .container-fluid .navbar-brand {
margin-left: -15px;
}
}
.navbar-nav {
margin: 7.5px -15px;
}
.navbar-nav > li > a {
padding-top: 10px;
padding-bottom: 10px;
line-height: 20px;
}
@media (min-width: 768px) {
.navbar-nav {
float: left;
margin: 0;
}
.navbar-nav > li {
float: left;
}
.navbar-nav > li > a {
padding-top: 15px;
padding-bottom: 15px;
}
}
@media (min-width: 768px) {
.navbar-left {
float: left !important;
}
.navbar-right {
float: right !important;
margin-right: -15px;
}
.navbar-right ~ .navbar-right {
margin-right: 0;
}
}
.navbar-inverse {
background-color: #222;
border-color: #080808;
}
.navbar-inverse .navbar-brand {
color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-text {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
color: #fff;
background-color: #080808;
}
.navbar-header .navbar-brand {
color: #e0e0e0;
}

BIN
docs/_static/favicon.ico vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
docs/_static/ide-platformio-atom-1.gif vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

BIN
docs/_static/ide-platformio-atom-2.gif vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

BIN
docs/_static/ide-platformio-clion.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

BIN
docs/_static/ide-platformio-emacs.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
docs/_static/platformio-demo-lib.gif vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 569 KiB

BIN
docs/_static/platformio-demo-wiring.gif vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 28 KiB

56
docs/_templates/footer.html vendored Normal file
View File

@ -0,0 +1,56 @@
{% extends "!footer.html" %}
{% block extrafooter %}
<link rel="stylesheet" href="{{ pathto('_static/extra.css', 1) }}" type="text/css" />
<header id="pionav" class="navbar navbar-inverse navbar-fixed-top">
<div class="container container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="http://platformio.org/"></i> PlatformIO</a>
</div>
<nav role="navigation">
<div>
<ul class="nav navbar-nav">
<li><a href="http://platformio.org/#!/get-started"><i class="fa fa-rocket fa-lg"></i>Get Started</a></li>
<li><a href="http://platformio.org/#!/platforms"><i class="fa fa-laptop fa-lg"></i>Platforms</a></li>
<li><a href="http://platformio.org/#!/frameworks"><i class="fa fa-cogs fa-lg"></i>Frameworks</a></li>
<li><a href="http://platformio.org/#!/boards"><i class="fa fa-gamepad fa-lg"></i>Boards</a></li>
<li ><a href="http://platformio.org/#!/lib"><i class="fa fa-code fa-lg"></i>Libraries</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="http://platformio.org/#!/who-uses"><i class="fa fa-heart-o fa-lg"></i>Who uses</a></li>
<li class="active"><a href="http://docs.platformio.org/"><i class="fa fa-book fa-lg"></i>Docs</a></li>
</ul>
</div>
</nav>
</div>
</header>
<script>
(function() {
var runMyCode = function($) {
$(window).ready(function() {
if ($('#pionav').css('display') !== 'block') {
return;
}
function fixScroll() {
$(window).scrollTop($(window).scrollTop() - 50);
}
window.setTimeout(fixScroll, 50);
$(window).on('hashchange', function(e){fixScroll();});
});
};
var timer = function() {
if (window.jQuery) {
runMyCode(window.jQuery);
} else {
window.setTimeout(timer, 50);
}
};
timer();
})();
</script>
{{ super() }}
{% endblock %}

63
docs/articles.rst Normal file
View File

@ -0,0 +1,63 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _articles:
Articles about us
=================
.. note::
If you've written article about PlatformIO and would like it listed on
this page, `please edit this page <https://github.com/platformio/platformio/blob/develop/docs/articles.rst>`_.
Here are recent articles about PlatformIO:
2015
^^^^
* Dec 22, 2015 - **Jan Penninkhof** - `Over-the-Air ESP8266 programming using PlatformIO <http://www.penninkhof.com/2015/12/1610-over-the-air-esp8266-programming-using-platformio/>`_
* Dec 15, 2015 - **stastaka** - `PlatformIOでカスタムボードを使う (Use a custom board for PlatformIO, Japanese) <http://qiita.com/stastaka/items/a6a50dbbb2933bd78bdd>`_
* Dec 08, 2015 - **Piotr Król** - `Using PlatformIO with TI MSP430 LunchPads <http://blog.3mdeb.com/2015/12/08/using-platformio-with-ti-msp430-lunchpads/>`_
* Dec 01, 2015 - **Michał Seroczyński** - `Push Notification from Arduino Yún with motion sensor <http://www.ches.pl/push-from-yun-1/>`_
* Dec 01, 2015 - **JetBrains CLion Blog** - `C++ Annotated: Fall 2015. Arduino Support in CLion using PlatformIO <http://blog.jetbrains.com/clion/2015/12/cpp-annotated-fall-2015/>`_
* Dec 01, 2015 - **Tateno Yuichi** - `ESP8266 を CUI で開発する (Develop a ESP8266 in CUI, Japanese) <http://jaywiggins.com/platformio/arduino/avr/es8266/2015/09/30/platformio-investigation/>`_
* Nov 29, 2015 - **Keith Hughes** - `Using PlatformIO for Embedded Projects <http://smartspacestuff.blogspot.com/2015/11/using-platformio-for-embedded-projects.html>`_
* Nov 22, 2015 - **Michał Seroczyński** - `Using PlatformIO to get started with Arduino in CLion IDE <http://www.ches.pl/using-platformio-get-started-arduino-clion-ide/>`_
* Nov 09, 2015 - **ÁLvaro García Gómez** - `Programar con Arduino "The good way" (Programming with Arduino "The good way", Spanish) <http://congdegnu.es/2015/11/09/programar-con-arduino-the-good-way/>`_
* Nov 06, 2015 - **nocd5** - `PlatformIOでmbedをオフラインビルドしSTM32 Nucleoボードでmrubyを使う (Use mruby in the offline build for STM32 Nucleo board with mbed and PlatformIO, Japanese) <http://qiita.com/nocd5/items/d5fda776240f7e7c17eb>`_
* Oct 21, 2015 - **Vittorio Zaccaria** - `Using a cheap STM32 Nucleo to teach remote sensor monitoring <http://www.vittoriozaccaria.net/blog/2015/10/21/using-a-cheap-stm32-nucleo-to-teach-remote-sensor-monitoring.html>`_
* Oct 18, 2015 - **Nico Coetzee** - `First Arduino I2C Experience with PlatformIO <https://electronicventurer.wordpress.com/2015/10/18/first-arduino-i2c-experience/>`_
* Oct 10, 2015 - **Floyd Hilton** - `Programming Arduino with Atom <http://floydhilton.com/software/career/2015/10/10/Arduino_with_Atom.html>`_
* Oct 01, 2015 - **Mistan** - `Compile and Upload Arduino Sketch with PlatformIO for Raspberry Pi Running Arch Linux <http://tech.memoryimprintstudio.com/code-building-for-arduino-with-platformio-for-raspberry-pi-with-arch-linux/>`_
* Sep 30, 2015 - **Jay Wiggins** - `PlatformIO Investigation <http://jaywiggins.com/platformio/arduino/avr/es8266/2015/09/30/platformio-investigation/>`_
* Sep 01, 2015 - **Thomas P. Weldon, Ph.D.** - `Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and Software Installation <http://thomasweldon.com/tpw/courses/embeddsp/p00pcFrdmK64_eclipsePlatformioSetup.html>`_
* Aug 08, 2015 - **Josh Glendenning** - `Armstrap Eagle and PlatformIO <http://isobit.io/2015/08/08/armstrap.html>`_
* Aug 01, 2015 - **Russell Davis** - `PlatformIO on the Raspberry Pi <http://www.russelldavis.org/2015/08/01/platformio-on-the-raspberry-pi/>`_
* Jul 25, 2015 - **DinoTools** - `Erste Schritte mit PlatformIO (Getting Started with PlatformIO, German) <https://www.dinotools.de/2015/07/25/erste-schritte-mit-platformio/>`_
* Jul 20, 2015 - **Eli Fatsi** - `Arduino Development in Atom Editor <http://viget.com/extend/arduino-development-in-atom-editor>`_
* Jul 14, 2015 - **ElbinarIO** - `Programar para Arduino y otros microcontroladores desde la linea de comandos (Program Arguino and other microcontrollers from the command line, Spanish) <http://elbinario.net/2015/07/14/programar-para-arduino-y-otros-microcontroladores-desde-la-linea-de-comandos/>`_
* Jul 11, 2015 - **TrojanC** - `Learning Arduino GitHub Repository <http://www.trojanc.co.za/2015/07/11/learning-arduino-github-repository/>`_
* Jul 07, 2015 - **Sho Hashimoto** - `PlatformIOでArduino開発する(Arduino development in PlatformIO, Japanese) <http://shokai.org/blog/archives/10250>`_
* Jun 02, 2015 - **Alejandro Guirao Rodríguez** - `Discovering PlatformIO: The RaspberryPi / Arduino combo kit is a winner option when prototyping an IoT-style project <http://lekum.org/posts/discovering-platformio/index.html>`_
* May 17, 2015 - **S.S** - `コマンドラインでArduino開発 : vim + platformio (Arduino development at the command line: VIM + PlatformIO, Japanese) <http://qiita.com/caad1229/items/7b5fb47f034ae6e0baf2>`_
* May 11, 2015 - **IT Hare** - `From Web Developer to Embedded One: Interview with Ivan Kravets, The Guy Behind PlatformIO. Part II <http://ithare.com/from-web-developer-to-embedded-one-interview-with-ivan-kravets-the-guy-behind-platformio-part-ii/>`_
* May 4, 2015 - **IT Hare** - `From Web Developer to Embedded One: Interview with Ivan Kravets, The Guy Behind PlatformIO. Part I <http://ithare.com/from-web-development-to-embedded-one-interview-with-ivan-kravets-the-guy-behind-platformio-part-i/>`_
* April 17, 2015 - **Michael Ball** - `PlatformIO - A Cross-Platform Code Builder and Missing Library Manager <http://arduino-pi.blogspot.com.es/2015/04/platformio-cross-platform-code-builder.html>`_
* March 23, 2015 - **Atmel** - `Cross-board and cross-vendor embedded development with PlatformIO <http://blog.atmel.com/2015/03/23/cross-board-and-cross-vendor-embedded-development-with-platformio/>`_
* March 22, 2015 - **Mark VandeWettering** - `Discovered a new tool for embedded development: PlatformIO <http://brainwagon.org/2015/03/22/discovered-a-new-tool-for-embedded-development-platformio/>`_
* February 25, 2015 - **Hendrik Putzek** - `Use your favourite IDE together with Arduino <http://blog.putzek.com/2015/02/your-favourite-ide-with-arduino.html>`_
2014
^^^^
* October 7, 2014 - **Ivan Kravets, Ph.D.** - `Integration of PlatformIO library manager to Arduino and Energia IDEs <http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides>`_
* June 20, 2014 - **Ivan Kravets, Ph.D.** - `Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO <http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using-eclipse-ideplatformio>`_
* June 17, 2014 - **Ivan Kravets, Ph.D.** - `How was PlatformIO born or why I love Python World <http://www.ikravets.com/computer-life/programming/2014/06/17/how-was-platformio-born-or-why-i-love-python-world>`_

213
docs/ci/appveyor.rst Normal file
View File

@ -0,0 +1,213 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ci_appveyor:
AppVeyor
========
`AppVeyor <http://www.appveyor.com/about>`_ is an open-source hosted,
distributed continuous integration service used to build and test projects
hosted at `GitHub <http://en.wikipedia.org/wiki/GitHub>`_ on Windows family
systems.
AppVeyor is configured by adding a file named ``appveyor.yml``, which is a
`YAML <http://en.wikipedia.org/wiki/YAML>`_ format text file, to the root
directory of the GitHub repository.
AppVeyor automatically detects when a commit has been made and pushed to a
GitHub repository that is using AppVeyor, and each time this happens, it will
try to build the project using :ref:`cmd_ci` command. This includes commits to
all branches, not just to the master branch. AppVeyor will also build and run
pull requests. When that process has completed, it will notify a developer in
the way it has been configured to do so — for example, by sending an email
containing the build results (showing success or failure), or by posting a
message on an IRC channel. It can be configured to build project on a range of
different :ref:`platforms`.
.. contents::
Integration
-----------
Put ``appveyor.yml`` to the root directory of the GitHub repository.
.. code-block:: yaml
build: off
environment:
global:
WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd"
matrix:
- PLATFORMIO_CI_SRC: "path\\to\\source\\file.c"
PLATFORMIO_CI_SRC: "path\\to\\source\\file.ino"
PLATFORMIO_CI_SRC: "path\\to\\source\\directory"
WINDOWS_SDK_VERSION: "v7.0"
PYTHON_HOME: "C:\\Python27-x64"
PYTHON_VERSION: "2.7"
PYTHON_ARCH: "64"
install:
- "git submodule update --init --recursive"
- "powershell scripts\\appveyor\\install.ps1"
before_test:
- cmd: SET PATH=%PATH%;%PYTHON_HOME%;%PYTHON_HOME%\Scripts
test_script:
- '%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N'
Then create ``scripts/appveyor`` folder and put these 2 scripts (they are the
same for the all projects, don't need to modify them):
1. ``scripts/appveyor/install.ps1``:
.. code-block:: PowerShell
$BASE_URL = "https://www.python.org/ftp/python/"
$GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py"
$GET_PIP_PATH = "C:\get-pip.py"
function DownloadPython ($python_version, $platform_suffix) {
$webclient = New-Object System.Net.WebClient
$filename = "python-" + $python_version + $platform_suffix + ".msi"
$url = $BASE_URL + $python_version + "/" + $filename
$basedir = $pwd.Path + "\"
$filepath = $basedir + $filename
if (Test-Path $filename) {
Write-Host "Reusing" $filepath
return $filepath
}
# Download and retry up to 5 times in case of network transient errors.
Write-Host "Downloading" $filename "from" $url
$retry_attempts = 3
for($i=0; $i -lt $retry_attempts; $i++){
try {
$webclient.DownloadFile($url, $filepath)
break
}
Catch [Exception]{
Start-Sleep 1
}
}
Write-Host "File saved at" $filepath
return $filepath
}
function InstallPython ($python_version, $architecture, $python_home) {
Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home
if (Test-Path $python_home) {
Write-Host $python_home "already exists, skipping."
return $false
}
if ($architecture -eq "32") {
$platform_suffix = ""
} else {
$platform_suffix = ".amd64"
}
$filepath = DownloadPython $python_version $platform_suffix
Write-Host "Installing" $filepath "to" $python_home
$args = "/qn /i $filepath TARGETDIR=$python_home"
Write-Host "msiexec.exe" $args
Start-Process -FilePath "msiexec.exe" -ArgumentList $args -Wait -Passthru
Write-Host "Python $python_version ($architecture) installation complete"
return $true
}
function InstallPip ($python_home) {
$python_path = $python_home + "/python.exe"
Write-Host "Installing pip..."
$webclient = New-Object System.Net.WebClient
$webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH)
Write-Host "Executing:" $python_path $GET_PIP_PATH
Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru
}
function InstallPackage ($python_home, $pkg) {
$pip_path = $python_home + "/Scripts/pip.exe"
& $pip_path install -U $pkg
}
function main () {
InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON_HOME
InstallPip $env:PYTHON_HOME
InstallPackage $env:PYTHON_HOME setuptools
InstallPackage $env:PYTHON_HOME platformio
}
main
2. ``scripts/appveyor/run_with_compiler.cmd``:
.. code-block:: guess
@ECHO OFF
SET COMMAND_TO_RUN=%*
SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows
SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%"
IF %MAJOR_PYTHON_VERSION% == "2" (
SET WINDOWS_SDK_VERSION="v7.0"
) ELSE IF %MAJOR_PYTHON_VERSION% == "3" (
SET WINDOWS_SDK_VERSION="v7.1"
) ELSE (
ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%"
EXIT 1
)
IF "%PYTHON_ARCH%"=="64" (
ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture
SET DISTUTILS_USE_SDK=1
SET MSSdk=1
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION%
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release
ECHO Executing: %COMMAND_TO_RUN%
call %COMMAND_TO_RUN% || EXIT 1
) ELSE (
ECHO Using default MSVC build environment for 32 bit architecture
ECHO Executing: %COMMAND_TO_RUN%
call %COMMAND_TO_RUN% || EXIT 1
)
For more details as for PlatformIO build process please look into :ref:`cmd_ci`
command.
Examples
--------
1. Integration for `USB_Host_Shield_2.0 <https://github.com/felis/USB_Host_Shield_2.0>`_
project. The ``appveyor.yml`` configuration file:
.. code-block:: yaml
build: off
environment:
global:
WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd"
matrix:
- PLATFORMIO_CI_SRC: "examples\\Bluetooth\\PS3SPP\\PS3SPP.ino"
PLATFORMIO_CI_SRC: "examples\\pl2303\\pl2303_gps\\pl2303_gps.ino"
WINDOWS_SDK_VERSION: "v7.0"
PYTHON_HOME: "C:\\Python27-x64"
PYTHON_VERSION: "2.7"
PYTHON_ARCH: "64"
install:
- "git submodule update --init --recursive"
- "powershell scripts\\appveyor\\install.ps1"
before_test:
- cmd: SET PATH=%PATH%;%PYTHON_HOME%;%PYTHON_HOME%\Scripts
- cmd: git clone https://github.com/xxxajk/spi4teensy3.git c:\spi4teensy
test_script:
- '%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\platformio ci --lib="." --lib="c:\spi4teensy" --board=uno --board=teensy31 --board=due'

205
docs/ci/circleci.rst Normal file
View File

@ -0,0 +1,205 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ci_circleci:
Circle CI
=========
`Circle CI <https://circleci.com/about>`_ is a hosted cloud
platform that provides hosted continuous integration, deployment, and testing
to `GitHub <http://en.wikipedia.org/wiki/GitHub>`_ repositories.
Circle CI is configured by adding a file named ``circle.yml``, which is a
`YAML <http://en.wikipedia.org/wiki/YAML>`_ format text file, to the root
directory of the GitHub repository.
Circle CI automatically detects when a commit has been made and pushed to a
GitHub repository that is using Circle CI, and each time this happens, it will
try to build the project using :ref:`cmd_ci` command. This includes commits to
all branches, not just to the master branch. Circle CI will also build and run
pull requests. When that process has completed, it will notify a developer in
the way it has been configured to do so — for example, by sending an email
containing the build results (showing success or failure), or by posting a
message on an IRC channel. It can be configured to build project on a range of
different :ref:`platforms`.
.. contents::
Integration
-----------
Please make sure to read Circle CI `Getting Started <https://circleci.com/docs/getting-started>`_
guide first.
.. code-block:: yaml
dependencies:
pre:
# Install the latest stable PlatformIO
- sudo pip install -U platformio
test:
override:
- platformio ci path/to/test/file.c --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
- platformio ci examples/file.ino --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
- platformio ci path/to/test/directory --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
For more details as for PlatformIO build process please look into :ref:`cmd_ci`.
Project as a library
~~~~~~~~~~~~~~~~~~~~
When project is written as a library (where own examples or testing code use
it), please use ``--lib="."`` option for :ref:`cmd_ci` command
.. code-block:: yaml
script:
- platformio ci --lib="." --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
Library dependecies
~~~~~~~~~~~~~~~~~~~
There 2 options to test source code with dependent libraries:
Install dependent library using :ref:`librarymanager`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: yaml
dependencies:
pre:
# Install the latest stable PlatformIO
- sudo pip install -U platformio
# OneWire Library with ID=1 http://platformio.org/#!/lib/show/1/OneWire
- platformio lib install 1
test:
override:
- platformio ci path/to/test/file.c --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
Manually download dependent library and include in build process via ``--lib`` option
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: yaml
dependencies:
pre:
# Install the latest stable PlatformIO
- sudo pip install -U platformio
# download library to the temporary directory
- wget https://github.com/PaulStoffregen/OneWire/archive/master.zip -O /tmp/onewire_source.zip
- unzip /tmp/onewire_source.zip -d /tmp/
test:
override:
- platformio ci path/to/test/file.c --lib="/tmp/OneWire-master" --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
Custom Build Flags
~~~~~~~~~~~~~~~~~~
PlatformIO allows to specify own build flags using :envvar:`PLATFORMIO_BUILD_FLAGS` environment
.. code-block:: yaml
machine:
environment:
PLATFORMIO_BUILD_FLAGS: -D SPECIFIC_MACROS -I/extra/inc
For the more details, please follow to
:ref:`available build flags/options <projectconf_build_flags>`.
Advanced configuration
~~~~~~~~~~~~~~~~~~~~~~
PlatformIO allows to configure multiple build environments for the single
source code using :ref:`projectconf`.
Instead of ``--board`` option, please use :option:`platformio ci --project-conf`
.. code-block:: yaml
test:
override:
- platformio ci path/to/test/file.c --project-conf=/path/to/platoformio.ini
Examples
--------
1. Custom build flags
.. code-block:: yaml
dependencies:
cache_directories:
- "~/.platformio"
pre:
- sudo pip install -U platformio
# pre-install PlatformIO development platforms, they will be cached
- platformio platforms install atmelavr atmelsam teensy
#
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/#!/lib/show/416/TinyGPS
# http://platformio.org/#!/lib/show/417/SPI4Teensy3
- platformio lib install 416 417
test:
override:
- platformio ci examples/acm/acm_terminal --board=uno --board=teensy31 --board=due --lib="."
- platformio ci examples/adk/adk_barcode --board=uno --board=teensy31 --board=due --lib="."
- platformio ci examples/adk/ArduinoBlinkLED --board=uno --board=teensy31 --board=due --lib="."
- platformio ci examples/adk/demokit_20 --board=uno --board=teensy31 --board=due --lib="."
# ...
- platformio ci examples/Xbox/XBOXUSB --board=uno --board=teensy31 --board=due --lib="."
* Configuration file: https://github.com/ivankravets/USB_Host_Shield_2.0/blob/master/circle.yml
* Build History: https://circleci.com/gh/ivankravets/USB_Host_Shield_2.0/tree/master
2. Dependency on external libraries
.. code-block:: yaml
dependencies:
pre:
# Install the latest stable PlatformIO
- sudo pip install -U platformio
# download dependent libraries
- wget https://github.com/jcw/jeelib/archive/master.zip -O /tmp/jeelib.zip
- unzip /tmp/jeelib.zip -d /tmp
- wget https://github.com/Rodot/Gamebuino/archive/master.zip -O /tmp/gamebuino.zip
- unzip /tmp/gamebuino.zip -d /tmp
test:
override:
- platformio ci examples/backSoon/backSoon.ino --lib="." --lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno --board=megaatmega2560
- platformio ci examples/etherNode/etherNode.ino --lib="." --lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno --board=megaatmega2560
- platformio ci examples/getDHCPandDNS/getDHCPandDNS.ino --lib="." --lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno --board=megaatmega2560
- platformio ci examples/getStaticIP/getStaticIP.ino --lib="." --lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno --board=megaatmega2560
# ...
- platformio ci examples/twitter/twitter.ino --lib="." --lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno --board=megaatmega2560
- platformio ci examples/udpClientSendOnly/udpClientSendOnly.ino --lib="." --lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno --board=megaatmega2560
- platformio ci examples/udpListener/udpListener.ino --lib="." --lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno --board=megaatmega2560
- platformio ci examples/webClient/webClient.ino --lib="." --lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno --board=megaatmega2560
* Configuration file: hhttps://github.com/ivankravets/ethercard/blob/master/circle.yaml
* Build History: https://circleci.com/gh/ivankravets/ethercard/tree/master

83
docs/ci/drone.rst Normal file
View File

@ -0,0 +1,83 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ci_drone:
Drone
=====
`Drone <https://drone.io>`_ is a hosted continuous integration service.
It enables you to conveniently set up projects to automatically build, test,
and deploy as you make changes to your code to
`GitHub <http://en.wikipedia.org/wiki/GitHub>`_ and
`BitBucket <http://en.wikipedia.org/wiki/Bitbucket>`_ repositories.
Drone is configured by modifying settings in your project control panel.
Drone automatically detects when a commit has been made and pushed to a
GitHub repository that is using Drone, and each time this happens, it will
try to build the project using :ref:`cmd_ci` command. This includes commits to
all branches, not just to the master branch. Drone will also build and run
pull requests. When that process has completed, it will notify a developer in
the way it has been configured to do so — for example, by sending an email
containing the build results (showing success or failure). It can be
configured to build project on a range of different :ref:`platforms`.
.. contents::
Integration
-----------
Please fill all fields for your project in the Drone control panel:
`Environment Variables`:
.. code-block:: bash
PLATFORMIO_CI_SRC=path/to/source/file.c
PLATFORMIO_CI_SRC=path/to/source/file.ino
PLATFORMIO_CI_SRC=path/to/source/directory
`Commands`:
.. code-block:: bash
pip install -U platformio
platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
.. image:: ../_static/droneci-platformio-integration-1.png
For more details as for PlatformIO build process please look into :ref:`cmd_ci`
command.
Examples
--------
1. Integration for `USB_Host_Shield_2.0 <https://github.com/felis/USB_Host_Shield_2.0>`_
project. The ``circle.yml`` configuration file:
`Environment Variables`:
.. code-block:: bash
PLATFORMIO_CI_SRC=examples/Bluetooth/PS3SPP/PS3SPP.ino
PLATFORMIO_CI_SRC=examples/pl2303/pl2303_gps/pl2303_gps.ino
`Commands`:
.. code-block:: bash
pip install -U platformio
wget https://github.com/xxxajk/spi4teensy3/archive/master.zip -O /tmp/spi4teensy3.zip
unzip /tmp/spi4teensy3.zip -d /tmp
platformio ci --lib="." --lib="/tmp/spi4teensy3-master" --board=uno --board=teensy31 --board=due
.. image:: ../_static/droneci-platformio-integration-2.png

35
docs/ci/index.rst Normal file
View File

@ -0,0 +1,35 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ci:
Continuous Integration
======================
`Continuous Integration (CI, wiki) <http://en.wikipedia.org/wiki/Continuous_integration>`_
is the practice, in software engineering, of merging all developer working
copies with a shared mainline several times a day.
:ref:`cmd_ci` command is intended to be used in combination with the build
servers and the popular
`Continuous Integration Software <http://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software>`_.
By integrating regularly, you can detect errors quickly, and locate them more
easily.
.. toctree::
:maxdepth: 2
appveyor
circleci
drone
shippable
travis

89
docs/ci/shippable.rst Normal file
View File

@ -0,0 +1,89 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ci_shippable:
Shippable
=========
`Shippable <http://en.wikipedia.org/wiki/Shippable>`_ is a hosted cloud
platform that provides hosted continuous integration, deployment, and testing
to `GitHub <http://en.wikipedia.org/wiki/GitHub>`_ and
`BitBucket <http://en.wikipedia.org/wiki/Bitbucket>`_ repositories.
Shippable's continuous integration service is built using Docker.
Shippable is configured by adding a file named ``shippable.yml``, which is a
`YAML <http://en.wikipedia.org/wiki/YAML>`_ format text file, to the root
directory of the GitHub repository or you can use your Travis CI configuration
file ``.travis.yml``.
Shippable automatically detects when a commit has been made and pushed to a
GitHub repository that is using Shippable, and each time this happens, it will
try to build the project using :ref:`cmd_ci` command. This includes commits to
all branches, not just to the master branch. Shippable will also build and run
pull requests. When that process has completed, it will notify a developer in
the way it has been configured to do so — for example, by sending an email
containing the build results (showing success or failure), or by posting a
message on an IRC channel. It can be configured to build project on a range of
different :ref:`platforms`.
.. contents::
Integration
-----------
Please put ``shippable.yml`` or ``.travis.yml`` to the root directory of the
GitHub repository.
.. code-block:: yaml
language: python
python:
- "2.7"
env:
- PLATFORMIO_CI_SRC=path/to/source/file.c
- PLATFORMIO_CI_SRC=path/to/source/file.ino
- PLATFORMIO_CI_SRC=path/to/source/directory
install:
- pip install -U platformio
script:
- platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
For more details as for PlatformIO build process please look into :ref:`cmd_ci`
command.
Examples
--------
1. Integration for `USB_Host_Shield_2.0 <https://github.com/felis/USB_Host_Shield_2.0>`_
project. The ``shippable.yml`` or ``.travis.yml`` configuration file:
.. code-block:: yaml
language: python
python:
- "2.7"
env:
- PLATFORMIO_CI_SRC=examples/Bluetooth/PS3SPP/PS3SPP.ino
- PLATFORMIO_CI_SRC=examples/pl2303/pl2303_gps/pl2303_gps.ino
install:
- pip install -U platformio
- wget https://github.com/xxxajk/spi4teensy3/archive/master.zip -O /tmp/spi4teensy3.zip
- unzip /tmp/spi4teensy3.zip -d /tmp
script:
- platformio ci --lib="." --lib="/tmp/spi4teensy3-master" --board=uno --board=teensy31 --board=due

270
docs/ci/travis.rst Normal file
View File

@ -0,0 +1,270 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ci_travis:
Travis CI
=========
.. image:: ../_static/ci-travis-logo.png
:target: https://docs.travis-ci.com/user/integration/platformio/
**Travis CI** `officially supports <https://docs.travis-ci.com/user/integration/platformio/>`_
**PlatformIO for Embedded Builds.**
`Travis CI <http://en.wikipedia.org/wiki/Travis_CI>`_ is an open-source hosted,
distributed continuous integration service used to build and test projects
hosted at `GitHub <http://en.wikipedia.org/wiki/GitHub>`_.
Travis CI is configured by adding a file named ``.travis.yml``, which is a
`YAML <http://en.wikipedia.org/wiki/YAML>`_ format text file, to the root
directory of the GitHub repository.
Travis CI automatically detects when a commit has been made and pushed to a
GitHub repository that is using Travis CI, and each time this happens, it will
try to build the project using :ref:`cmd_ci` command. This includes commits to
all branches, not just to the master branch. Travis CI will also build and run
pull requests. When that process has completed, it will notify a developer in
the way it has been configured to do so — for example, by sending an email
containing the build results (showing success or failure), or by posting a
message on an IRC channel. It can be configured to build project on a range of
different :ref:`platforms`.
.. contents::
Integration
-----------
Please make sure to read Travis CI `Getting Started <http://docs.travis-ci.com/user/getting-started/>`_
and `general build configuration <http://docs.travis-ci.com/user/customizing-the-build/>`_
guides first.
PlatformIO is written in Python and is recommended to be run within
`Travis CI Python isolated environment <http://docs.travis-ci.com/user/languages/python/#Travis-CI-Uses-Isolated-virtualenvs>`_:
.. code-block:: yaml
language: python
python:
- "2.7"
# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
directories:
- "~/.platformio"
env:
- PLATFORMIO_CI_SRC=path/to/test/file.c
- PLATFORMIO_CI_SRC=examples/file.ino
- PLATFORMIO_CI_SRC=path/to/test/directory
install:
- pip install -U platformio
script:
- platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
Then perform steps 1, 2 and 4 from http://docs.travis-ci.com/user/getting-started/
For more details as for PlatformIO build process please look into :ref:`cmd_ci`.
Project as a library
~~~~~~~~~~~~~~~~~~~~
When project is written as a library (where own examples or testing code use
it), please use ``--lib="."`` option for :ref:`cmd_ci` command
.. code-block:: yaml
script:
- platformio ci --lib="." --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
Library dependecies
~~~~~~~~~~~~~~~~~~~
There 2 options to test source code with dependent libraries:
Install dependent library using :ref:`librarymanager`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: yaml
install:
- pip install -U platformio
#
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/#!/lib/show/1/OneWire
platformio lib install 1
Manually download dependent library and include in build process via ``--lib`` option
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: yaml
install:
- pip install -U platformio
# download library to the temporary directory
wget https://github.com/PaulStoffregen/OneWire/archive/master.zip -O /tmp/onewire_source.zip
unzip /tmp/onewire_source.zip -d /tmp/
script:
- platformio ci --lib="/tmp/OneWire-master" --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
Custom Build Flags
~~~~~~~~~~~~~~~~~~
PlatformIO allows to specify own build flags using :envvar:`PLATFORMIO_BUILD_FLAGS` environment
.. code-block:: yaml
env:
- PLATFORMIO_CI_SRC=path/to/test/file.c PLATFORMIO_BUILD_FLAGS="-D SPECIFIC_MACROS_PER_TEST_ENV -I/extra/inc"
- PLATFORMIO_CI_SRC=examples/file.ino
- PLATFORMIO_CI_SRC=path/to/test/directory
install:
- pip install -U platformio
export PLATFORMIO_BUILD_FLAGS=-D GLOBAL_MACROS_FOR_ALL_TEST_ENV
For the more details, please follow to
:ref:`available build flags/options <projectconf_build_flags>`.
Advanced configuration
~~~~~~~~~~~~~~~~~~~~~~
PlatformIO allows to configure multiple build environments for the single
source code using :ref:`projectconf`.
Instead of ``--board`` option, please use :option:`platformio ci --project-conf`
.. code-block:: yaml
script:
- platformio ci --project-conf=/path/to/platoformio.ini
Examples
--------
1. Custom build flags
.. code-block:: yaml
language: python
python:
- "2.7"
# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
directories:
- "~/.platformio"
env:
- PLATFORMIO_CI_SRC=examples/acm/acm_terminal
- PLATFORMIO_CI_SRC=examples/Bluetooth/WiiIRCamera PLATFORMIO_BUILD_FLAGS="-DWIICAMERA"
- PLATFORMIO_CI_SRC=examples/ftdi/USBFTDILoopback
- PLATFORMIO_CI_SRC=examples/Xbox/XBOXUSB
# - ...
install:
- pip install -U platformio
#
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/#!/lib/show/416/TinyGPS
# http://platformio.org/#!/lib/show/417/SPI4Teensy3
- platformio lib install 416 417
script:
- platformio ci --board=uno --board=teensy31 --board=due --lib="."
* Configuration file: https://github.com/felis/USB_Host_Shield_2.0/blob/master/.travis.yml
* Build History: https://travis-ci.org/felis/USB_Host_Shield_2.0
2. Dependency on external libraries
.. code-block:: yaml
language: python
python:
- "2.7"
# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
directories:
- "~/.platformio"
env:
- PLATFORMIO_CI_SRC=examples/backSoon/backSoon.ino
- PLATFORMIO_CI_SRC=examples/etherNode/etherNode.ino
# -
install:
- pip install -U platformio
- wget https://github.com/jcw/jeelib/archive/master.zip -O /tmp/jeelib.zip
- unzip /tmp/jeelib.zip -d /tmp
- wget https://github.com/Rodot/Gamebuino/archive/master.zip -O /tmp/gamebuino.zip
- unzip /tmp/gamebuino.zip -d /tmp
script:
- platformio ci --lib="." --lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno --board=megaatmega2560
* Configuration file: https://github.com/jcw/ethercard/blob/master/.travis.yml
* Build History: https://travis-ci.org/jcw/ethercard
3. Dynamic testing of the boards
.. code-block:: yaml
language: python
python:
- "2.7"
# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
directories:
- "~/.platformio"
env:
- PLATFORMIO_CI_SRC=examples/TimeArduinoDue PLATFORMIO_CI_BOARDS_ARGS="--board=due"
- PLATFORMIO_CI_SRC=examples/TimeGPS
- PLATFORMIO_CI_SRC=examples/TimeNTP
- PLATFORMIO_CI_SRC=examples/TimeTeensy3 PLATFORMIO_CI_BOARDS_ARGS="--board=teensy31"
# - ...
install:
- pip install -U platformio
- rm -rf ./linux
#
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/#!/lib/show/416/TinyGPS
- platformio lib install 416 421 422
script:
- if [[ $PLATFORMIO_CI_BOARDS_ARGS ]]; then bash -c 'platformio ci --lib="." $PLATFORMIO_CI_BOARDS_ARGS'; else bash -c 'platformio ci --lib="." --board=uno --board=teensy20pp'; fi
* Configuration file: https://github.com/ivankravets/Time/blob/master/.travis.yml
* Build History: https://travis-ci.org/ivankravets/Time

View File

@ -69,7 +69,7 @@ release = platformio.__version__
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = ['_build']
exclude_patterns = ['_build', '**/*_extra.rst']
# The reST default role (used for this markup: `text`) to use for all
# documents.
@ -119,12 +119,12 @@ html_theme = 'default'
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
#html_logo = '_static/platformio-logo.png'
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
html_favicon = '_static/favicon.ico'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
@ -184,22 +184,22 @@ htmlhelp_basename = 'PlatformIOdoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',
# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
('index', 'PlatformIO.tex', u'PlatformIO Documentation',
u'Ivan Kravets', 'manual'),
('index', 'PlatformIO.tex', u'PlatformIO Documentation',
u'Ivan Kravets', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@ -242,9 +242,9 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'PlatformIO', u'PlatformIO Documentation',
u'Ivan Kravets', 'PlatformIO', 'One line description of project.',
'Miscellaneous'),
('index', 'PlatformIO', u'PlatformIO Documentation',
u'Ivan Kravets', 'PlatformIO', 'One line description of project.',
'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.

78
docs/demo.rst Normal file
View File

@ -0,0 +1,78 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _demo:
Demo & Projects
===============
.. contents::
Project Examples
----------------
Preconfigured demo projects are located in `PlatformIO GitHub <https://github.com/platformio/platformio/tree/develop/examples>`_ repository.
Wiring Blink
------------
.. image:: _static/platformio-demo-wiring.gif
Used in demo
~~~~~~~~~~~~
1. Source code of `Wiring Blink Example <https://github.com/platformio/platformio/tree/develop/examples/wiring-blink>`_
2. :ref:`cmd_run` command
3. :ref:`platformio run -t upload <cmd_run>` command.
Platform Manager
----------------
.. image:: _static/platformio-demo-platforms.gif
Used in demo
~~~~~~~~~~~~
1. :ref:`userguide_platforms`
2. :ref:`cmd_platforms_list` command
3. :ref:`platformio platforms search avr <cmd_platforms_search>` command
4. :ref:`platformio platforms show teensy <cmd_platforms_show>` command
5. :ref:`cmd_platforms_update` command.
Library Manager
---------------
.. image:: _static/platformio-demo-lib.gif
Used in demo
~~~~~~~~~~~~
1. :ref:`userguide_lib`
2. :ref:`platformio lib search 1-wire <cmd_lib_search>` command
3. :ref:`platformio lib install 54 <cmd_lib_install>` command
4. :ref:`platformio lib search -f mbed <cmd_lib_search>` command
5. :ref:`platformio lib search -k rf <cmd_lib_search>` command
6. :ref:`platformio lib search radiohead <cmd_lib_search>` command
7. :ref:`platformio lib install 124 --version "1.40" <cmd_lib_install>` command
8. :ref:`platformio lib show 124 <cmd_lib_show>` command
9. :ref:`cmd_lib_update` command.
Over-the-Air update for ESP8266
-------------------------------
.. image:: _static/platformio-demo-ota-esp8266.jpg
:target: https://www.youtube.com/watch?v=lXchL3hpDO4
Used in demo
~~~~~~~~~~~~
1. :ref:`cmd_run` command
2. :ref:`platformio run -t upload <cmd_run>` command.

115
docs/envvars.rst Normal file
View File

@ -0,0 +1,115 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _envvars:
Environment variables
=====================
`Environment variables <http://en.wikipedia.org/wiki/Environment_variable>`_
are a set of dynamic named values that can affect the way running processes
will behave on a computer.
*PlatformIO* handles variables which start with ``PLATFORMIO_`` prefix. They
have the **HIGHEST PRIORITY**.
.. contents::
General
-------
PlatformIO uses *General* environment variables for the common
operations/commands.
.. envvar:: CI
PlatformIO handles ``CI`` variable which is setup by
`Continuous Integration <http://en.wikipedia.org/wiki/Continuous_integration>`_
(Travis, Circle and etc.) systems.
Currently, PlatformIO uses it to disable prompts.
In other words, ``CI=true`` automatically setup
:envvar:`PLATFORMIO_SETTING_ENABLE_PROMPTS=false <PLATFORMIO_SETTING_ENABLE_PROMPTS>`.
.. envvar:: PLATFORMIO_HOME_DIR
Allows to override :ref:`projectconf` option :ref:`projectconf_pio_home_dir`.
.. envvar:: PLATFORMIO_LIB_DIR
Allows to override :ref:`projectconf` option :ref:`projectconf_pio_lib_dir`.
.. envvar:: PLATFORMIO_SRC_DIR
Allows to override :ref:`projectconf` option :ref:`projectconf_pio_src_dir`.
.. envvar:: PLATFORMIO_ENVS_DIR
Allows to override :ref:`projectconf` option :ref:`projectconf_pio_envs_dir`.
.. envvar:: PLATFORMIO_DATA_DIR
Allows to override :ref:`projectconf` option :ref:`projectconf_pio_data_dir`.
Builder
-------
.. envvar:: PLATFORMIO_BUILD_FLAGS
Allows to set :ref:`projectconf` option :ref:`projectconf_build_flags`.
.. envvar:: PLATFORMIO_SRC_BUILD_FLAGS
Allows to set :ref:`projectconf` option :ref:`projectconf_src_build_flags`.
.. envvar:: PLATFORMIO_SRC_FILTER
Allows to set :ref:`projectconf` option :ref:`projectconf_src_filter`.
.. envvar:: PLATFORMIO_EXTRA_SCRIPT
Allows to set :ref:`projectconf` option :ref:`projectconf_extra_script`.
Settings
--------
Allows to override PlatformIO settings. You can manage them via
:ref:`cmd_settings` command.
.. envvar:: PLATFORMIO_SETTING_AUTO_UPDATE_LIBRARIES
Allows to override setting :ref:`setting_auto_update_libraries`.
.. envvar:: PLATFORMIO_SETTING_AUTO_UPDATE_PLATFORMS
Allows to override setting :ref:`setting_auto_update_platforms`.
.. envvar:: PLATFORMIO_SETTING_CHECK_LIBRARIES_INTERVAL
Allows to override setting :ref:`setting_check_libraries_interval`.
.. envvar:: PLATFORMIO_SETTING_CHECK_PLATFORMIO_INTERVAL
Allows to override setting :ref:`setting_check_platformio_interval`.
.. envvar:: PLATFORMIO_SETTING_CHECK_PLATFORMS_INTERVAL
Allows to override setting :ref:`setting_check_platforms_interval`.
.. envvar:: PLATFORMIO_SETTING_ENABLE_PROMPTS
Allows to override setting :ref:`setting_enable_prompts`.
.. envvar:: PLATFORMIO_SETTING_ENABLE_TELEMETRY
Allows to override setting :ref:`setting_enable_telemetry`.

206
docs/faq.rst Normal file
View File

@ -0,0 +1,206 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _faq:
Frequently Asked Questions
==========================
.. contents::
General
-------
.. _faq_what_is_platformio:
What is PlatformIO?
~~~~~~~~~~~~~~~~~~~
`PlatformIO <http://platformio.org>`_ is an open source ecosystem for IoT
development.
PlatformIO is independent from the platform, in which it is running. In fact,
the only requirement is Python, which exists pretty much everywhere. What this
means is that PlatformIO projects can be easily moved from one computer to
another, as well as that PlatformIO allows for the easy sharing of projects
between team members, regardless of operating system they prefer to work with.
Beyond that, PlatformIO can be run not only on commonly used desktops/laptops
but also on the servers without X Window System. While PlatformIO itself is a
console application, it can be used in combination with one's favorite
:ref:`ide` or text editor such as :ref:`ide_arduino`, :ref:`ide_atom`,
:ref:`ide_clion`, :ref:`ide_eclipse`, :ref:`ide_qtcreator`,
:ref:`ide_sublimetext`, :ref:`ide_vim`, :ref:`ide_visualstudio`, etc.
Alright, so PlatformIO can run on different operating systems. But more
importantly, from development perspective at least, is a list of supported
boards and MCUs. To keep things short: PlatformIO supports approximately 200
`Embedded Boards <http://platformio.org/#!/boards>`_ and all major
:ref:`Development Platforms <platforms>`.
PlatformIO allows users to:
* Decide which operation system they want to run development process on.
You can even use one OS at home and another at work.
* Choose which editor to use for writing the code. It can be pretty simple
editor or powerful favorite :ref:`ide`.
* Focus on the code development, significantly simplifying support for the
:ref:`platforms` and MCUs.
How does it work?
~~~~~~~~~~~~~~~~~
Without going too deep into PlatformIO implementation details, work cycle of
the project developed using PlatformIO is as follows:
* Users choose board(s) interested in :ref:`projectconf`
* Based on this list of boards, PlatformIO downloads required toolchains and
installs them automatically.
* Users develop code and PlatformIO makes sure that it is compiled, prepared
and uploaded to all the boards of interest.
Command completion in Terminal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bash completion
'''''''''''''''
Bash completion support will complete subcommands and parameters. To enable
Bash completion for `platformio` subcommands you need to put into your `.bashrc`:
.. code-block:: bash
eval "$(_PLATFORMIO_COMPLETE=source platformio)"
ZSH completion
''''''''''''''
To enable ``zsh`` completion please run these commands:
.. code-block:: bash
autoload bashcompinit && bashcompinit
eval "$(_PLATFORMIO_COMPLETE=source platformio)"
.. note::
For permanent command completion you need to place commands above to
``~/.bashrc`` or ``~/.zshrc`` file.
.. _faq_troubleshooting:
Troubleshooting
---------------
Installation
~~~~~~~~~~~~
[Errno 1] Operation not permitted
'''''''''''''''''''''''''''''''''
Answered in `issue #295 <https://github.com/platformio/platformio/issues/295#issuecomment-143772005>`_.
Windows AttributeError: 'module' object has no attribute 'packages'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Answered in `issue #252 <https://github.com/platformio/platformio/issues/252#issuecomment-127072039>`_.
.. _faq_troubleshooting_pionotfoundinpath:
Program "platformio" not found in PATH
''''''''''''''''''''''''''''''''''''''
Where is ``platformio`` binary installed? Run this command in Terminal
.. code-block:: bash
# for Unix
which platformio
echo $PATH
# for Windows OS
where platformio
echo %PATH%
For example, ``which platformio`` is equal to ``/usr/local/bin/platformio``,
then `PATH (wiki) <https://en.wikipedia.org/wiki/PATH_(variable)>`_
should contain ``/usr/local/bin`` directory.
**Unix Users**: You can make "symlinks" from ``platformio`` program to the
``bin`` directory which is included in ``$PATH``. For example,
see `issue #272 <https://github.com/platformio/platformio/issues/272#issuecomment-133626112>`_.
Windows UnicodeDecodeError: 'ascii' codec can't decode byte
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Answered in `issue #143 <https://github.com/platformio/platformio/issues/143#issuecomment-88060906>`_.
PlatformIO: command not found || An error "pkg_resources.DistributionNotFound"
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Please upgrade *SetupTools* package:
.. code-block:: bash
[sudo] pip uninstall setuptools
[sudo] pip install setuptools
# Then re-install PlatformIO
[sudo] pip uninstall platformio
[sudo] pip install platformio
Miscellaneous
~~~~~~~~~~~~~
.. _faq_troubleshooting_pioblocksprompt:
PlatformIO blocks command execution using user prompt
'''''''''''''''''''''''''''''''''''''''''''''''''''''
If you are going to run *PlatformIO* from **subprocess**, you **MUST
DISABLE** all prompts. It will allow you to avoid blocking.
There are a few options:
- using :option:`platformio --force` option before each command
- using environment variable :envvar:`PLATFORMIO_SETTING_ENABLE_PROMPTS=No <PLATFORMIO_SETTING_ENABLE_PROMPTS>`
- disable global setting ``enable_prompts`` via :ref:`cmd_settings` command
- masking under Continuous Integration system via environment variable
:envvar:`CI=true <CI>`.
Serial does not work with panStampAVR board
'''''''''''''''''''''''''''''''''''''''''''
Answered in `issue #144 <https://github.com/platformio/platformio/issues/144#issuecomment-87388038>`_.
Building
~~~~~~~~
Can not compile a library that compiles without issue with Arduino IDE
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
* `#298: Unable to use Souliss library <https://github.com/platformio/platformio/issues/298>`_
* `#331: Unable to use MySensors library <https://github.com/platformio/platformio/issues/331>`_
ARM toolchain: cc1plus: error while loading shared libraries
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
See related answers for
`error while loading shared libraries <https://github.com/platformio/platformio/issues?utf8=✓&q=error+while+loading+shared+libraries>`_.
Archlinux: libncurses.so.5: cannot open shared object file
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Answered in `issue #291 <https://github.com/platformio/platformio/issues/291>`_.
Monitoring a serial port breaks upload
''''''''''''''''''''''''''''''''''''''
Answered in `issue #384 <https://github.com/platformio/platformio/issues/384>`_.

1188
docs/frameworks/arduino.rst Normal file

File diff suppressed because it is too large Load Diff

116
docs/frameworks/cmsis.rst Normal file
View File

@ -0,0 +1,116 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _framework_cmsis:
Framework ``cmsis``
===================
The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series and specifies debugger interfaces. The CMSIS enables consistent and simple software interfaces to the processor for interface peripherals, real-time operating systems, and middleware. It simplifies software re-use, reducing the learning curve for new microcontroller developers and cutting the time-to-market for devices.
For more detailed information please visit `vendor site <http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php>`_.
.. contents::
Platforms
---------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`platform_ststm32`
- The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
* For more detailed ``board`` information please scroll tables below by horizontal.
Armstrap
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``armstrap_eagle1024``
- `Armstrap Eagle 1024 <http://docs.armstrap.org/en/latest/hardware-overview.html>`_
- STM32F417VGT6
- 168 MHz
- 1024 Kb
- 192 Kb
* - ``armstrap_eagle2048``
- `Armstrap Eagle 2048 <http://docs.armstrap.org/en/latest/hardware-overview.html>`_
- STM32F427VIT6
- 168 MHz
- 2048 Kb
- 256 Kb
* - ``armstrap_eagle512``
- `Armstrap Eagle 512 <http://docs.armstrap.org/en/latest/hardware-overview.html>`_
- STM32F407VET6
- 168 MHz
- 512 Kb
- 192 Kb
ST
~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``disco_f303vc``
- `ST STM32F3DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044>`_
- STM32F303VCT6
- 72 MHz
- 256 Kb
- 48 Kb
* - ``disco_f407vg``
- `ST STM32F4DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419>`_
- STM32F407VGT6
- 168 MHz
- 1024 Kb
- 128 Kb
* - ``disco_l152rb``
- `ST STM32LDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515>`_
- STM32L152RBT6
- 32 MHz
- 128 Kb
- 16 Kb
* - ``nucleo_f401re``
- `ST Nucleo F401RE <https://developer.mbed.org/platforms/ST-Nucleo-F401RE/>`_
- STM32F401RET6
- 84 MHz
- 512 Kb
- 96 Kb
.. include:: cmsis_extra.rst

View File

@ -0,0 +1,18 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Examples
--------
All project examples are located in PlatformIO repository
`Examples for CMSIS framework <https://github.com/platformio/platformio/tree/develop/examples/stm32>`_.
* `Blink <https://github.com/platformio/platformio/tree/develop/examples/stm32/stm32-cmsis-blink>`_

125
docs/frameworks/energia.rst Normal file
View File

@ -0,0 +1,125 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _framework_energia:
Framework ``energia``
=====================
Energia framework enables pretty much anyone to start easily creating microcontroller-based projects and applications. Its easy-to-use libraries and functions provide developers of all experience levels to start blinking LEDs, buzzing buzzers and sensing sensors more quickly than ever before.
For more detailed information please visit `vendor site <http://energia.nu/reference/>`_.
.. contents::
Platforms
---------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`platform_timsp430`
- MSP430 microcontrollers (MCUs) from Texas Instruments (TI) are 16-bit, RISC-based, mixed-signal processors designed for ultra-low power. These MCUs offer the lowest power consumption and the perfect mix of integrated peripherals for thousands of applications.
* - :ref:`platform_titiva`
- Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core with scalable memory and package options, unparalleled connectivity peripherals, advanced application functions, industry-leading analog integration, and extensive software solutions.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
* For more detailed ``board`` information please scroll tables below by horizontal.
TI
~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``lplm4f120h5qr``
- `TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) <http://www.ti.com/tool/ek-lm4f120xl>`_
- LPLM4F120H5QR
- 80 MHz
- 256 Kb
- 32 Kb
* - ``lpmsp430f5529``
- `TI LaunchPad w/ msp430f5529 (16MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430f5529lp.html>`_
- MSP430F5529
- 16 MHz
- 128 Kb
- 1 Kb
* - ``lpmsp430f5529_25``
- `TI LaunchPad w/ msp430f5529 (25MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430f5529lp.html>`_
- MSP430F5529
- 25 MHz
- 128 Kb
- 1 Kb
* - ``lpmsp430fr5739``
- `TI FraunchPad w/ msp430fr5739 <http://www.ti.com/tool/msp-exp430fr5739>`_
- MSP430FR5739
- 16 MHz
- 16 Kb
- 1 Kb
* - ``lpmsp430fr5969``
- `TI LaunchPad w/ msp430fr5969 <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430fr5969.html>`_
- MSP430FR5969
- 8 MHz
- 64 Kb
- 1 Kb
* - ``lpmsp430g2231``
- `TI LaunchPad w/ msp430g2231 (1 MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
- MSP430G2231
- 1 MHz
- 2 Kb
- 0.125 Kb
* - ``lpmsp430g2452``
- `TI LaunchPad w/ msp430g2452 (16MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
- MSP430G2452
- 16 MHz
- 8 Kb
- 0.25 Kb
* - ``lpmsp430g2553``
- `TI LaunchPad w/ msp430g2553 (16MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
- MSP430G2553
- 16 MHz
- 16 Kb
- 0.5 Kb
* - ``lptm4c1230c3pm``
- `TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) <http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c123gxl.html>`_
- LPTM4C1230C3PM
- 80 MHz
- 256 Kb
- 32 Kb
* - ``lptm4c1294ncpdt``
- `TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) <http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c1294xl.html>`_
- LPTM4C1294NCPDT
- 120 MHz
- 1024 Kb
- 256 Kb

26
docs/frameworks/index.rst Normal file
View File

@ -0,0 +1,26 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _frameworks:
Frameworks
==========
.. toctree::
:maxdepth: 2
arduino
cmsis
energia
libopencm3
mbed
spl
wiringpi

View File

@ -0,0 +1,119 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _framework_libopencm3:
Framework ``libopencm3``
========================
The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various ARM Cortex-M0(+)/M3/M4 microcontrollers, including ST STM32, Ti Tiva and Stellaris, NXP LPC 11xx, 13xx, 15xx, 17xx parts, Atmel SAM3, Energy Micro EFM32 and others.
For more detailed information please visit `vendor site <http://www.libopencm3.org/wiki/Main_Page>`_.
.. contents::
Platforms
---------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`platform_ststm32`
- The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
* - :ref:`platform_titiva`
- Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core with scalable memory and package options, unparalleled connectivity peripherals, advanced application functions, industry-leading analog integration, and extensive software solutions.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
* For more detailed ``board`` information please scroll tables below by horizontal.
ST
~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``disco_f303vc``
- `ST STM32F3DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044>`_
- STM32F303VCT6
- 72 MHz
- 256 Kb
- 48 Kb
* - ``disco_f407vg``
- `ST STM32F4DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419>`_
- STM32F407VGT6
- 168 MHz
- 1024 Kb
- 128 Kb
* - ``disco_l152rb``
- `ST STM32LDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515>`_
- STM32L152RBT6
- 32 MHz
- 128 Kb
- 16 Kb
* - ``nucleo_f103rb``
- `ST Nucleo F103RB <https://developer.mbed.org/platforms/ST-Nucleo-F103RB/>`_
- STM32F103RBT6
- 72 MHz
- 128 Kb
- 20 Kb
TI
~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``lplm4f120h5qr``
- `TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) <http://www.ti.com/tool/ek-lm4f120xl>`_
- LPLM4F120H5QR
- 80 MHz
- 256 Kb
- 32 Kb
* - ``lptm4c1230c3pm``
- `TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) <http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c123gxl.html>`_
- LPTM4C1230C3PM
- 80 MHz
- 256 Kb
- 32 Kb
* - ``lptm4c1294ncpdt``
- `TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) <http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c1294xl.html>`_
- LPTM4C1294NCPDT
- 120 MHz
- 1024 Kb
- 256 Kb
.. include:: libopencm3_extra.rst

View File

@ -0,0 +1,18 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Examples
--------
All project examples are located in PlatformIO repository
`Examples for libOpenCM3 framework <https://github.com/platformio/platformio/tree/develop/examples/stm32>`_.
* `Blink <https://github.com/platformio/platformio/tree/develop/examples/stm32/stm32-opencm3-blink>`_

745
docs/frameworks/mbed.rst Normal file
View File

@ -0,0 +1,745 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _framework_mbed:
Framework ``mbed``
==================
The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
For more detailed information please visit `vendor site <http://mbed.org/>`_.
.. contents::
Platforms
---------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`platform_freescalekinetis`
- Freescale Kinetis Microcontrollers is family of multiple hardware- and software-compatible ARM Cortex-M0+, Cortex-M4 and Cortex-M7-based MCU series. Kinetis MCUs offer exceptional low-power performance, scalability and feature integration.
* - :ref:`platform_nordicnrf51`
- The Nordic nRF51 Series is a family of highly flexible, multi-protocol, system-on-chip (SoC) devices for ultra-low power wireless applications. nRF51 Series devices support a range of protocol stacks including Bluetooth Smart (previously called Bluetooth low energy), ANT and proprietary 2.4GHz protocols such as Gazell.
* - :ref:`platform_nxplpc`
- The NXP LPC is a family of 32-bit microcontroller integrated circuits by NXP Semiconductors. The LPC chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M4F, Cortex-M3, Cortex-M0+, or Cortex-M0. Internally, each microcontroller consists of the processor core, static RAM memory, flash memory, debugging interface, and various peripherals.
* - :ref:`platform_siliconlabsefm32`
- Silicon Labs EFM32 Gecko 32-bit microcontroller (MCU) family includes devices that offer flash memory configurations up to 256 kB, 32 kB of RAM and CPU speeds up to 48 MHz. Based on the powerful ARM Cortex-M core, the Gecko family features innovative low energy techniques, short wake-up time from energy saving modes and a wide selection of peripherals, making it ideal for battery operated applications and other systems requiring high performance and low-energy consumption.
* - :ref:`platform_ststm32`
- The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
* - :ref:`platform_teensy`
- Teensy is a complete USB-based microcontroller development system, in a very small footprint, capable of implementing many types of projects. All programming is done via the USB port. No special programmer is needed, only a standard "Mini-B" USB cable and a PC or Macintosh with a USB port.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
* For more detailed ``board`` information please scroll tables below by horizontal.
Atmel
~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``samd21_xpro``
- `Atmel SAMD21-XPRO <https://developer.mbed.org/platforms/SAMD21-XPRO/>`_
- ATSAMD21J18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``saml21_xpro_b``
- `Atmel SAML21-XPRO-B <https://developer.mbed.org/platforms/SAML21-XPRO/>`_
- ATSAML21J18B
- 48 MHz
- 256 Kb
- 32 Kb
* - ``samr21_xpro``
- `Atmel ATSAMR21-XPRO <https://developer.mbed.org/platforms/SAMR21-XPRO/>`_
- ATSAMR21G18A
- 48 MHz
- 256 Kb
- 32 Kb
CQ Publishing
~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``lpc11u35_501``
- `CQ Publishing TG-LPC11U35-501 <https://developer.mbed.org/platforms/TG-LPC11U35-501/>`_
- LPC11U35
- 48 MHz
- 64 Kb
- 10 Kb
Delta
~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``dfcm_nnn40``
- `Delta DFCM-NNN40 <https://developer.mbed.org/platforms/Delta-DFCM-NNN40/>`_
- NRF51822
- 32 MHz
- 256 Kb
- 32 Kb
Embedded Artists
~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``lpc11u35``
- `Embedded Artists LPC11U35 QuickStart Board <https://developer.mbed.org/platforms/EA-LPC11U35/>`_
- LPC11U35
- 48 MHz
- 64 Kb
- 10 Kb
* - ``lpc4088``
- `Embedded Artists LPC4088 QuickStart Board <https://developer.mbed.org/platforms/EA-LPC4088/>`_
- LPC4088
- 120 MHz
- 512 Kb
- 96 Kb
* - ``lpc4088_dm``
- `Embedded Artists LPC4088 Display Module <https://developer.mbed.org/platforms/EA-LPC4088-Display-Module/>`_
- LPC4088
- 120 MHz
- 512 Kb
- 96 Kb
Freescale
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``IBMEthernetKit``
- `Ethernet IoT Starter Kit <http://developer.mbed.org/platforms/IBMEthernetKit/>`_
- MK64FN1M0VLL12
- 120 MHz
- 1024 Kb
- 256 Kb
* - ``frdm_k20d50m``
- `Freescale Kinetis FRDM-K20D50M <https://developer.mbed.org/platforms/FRDM-K20D50M/>`_
- MK20DX128VLH5
- 48 MHz
- 128 Kb
- 16 Kb
* - ``frdm_k22f``
- `Freescale Kinetis FRDM-K22F <https://developer.mbed.org/platforms/FRDM-K22F/>`_
- MK22FN512VLH12
- 120 MHz
- 512 Kb
- 128 Kb
* - ``frdm_k64f``
- `Freescale Kinetis FRDM-K64F <https://developer.mbed.org/platforms/FRDM-K64F/>`_
- MK64FN1M0VLL12
- 120 MHz
- 1024 Kb
- 256 Kb
* - ``frdm_kl05z``
- `Freescale Kinetis FRDM-KL05Z <https://developer.mbed.org/platforms/FRDM-KL05Z/>`_
- MKL05Z32VFM4
- 48 MHz
- 32 Kb
- 4 Kb
* - ``frdm_kl25z``
- `Freescale Kinetis FRDM-KL25Z <https://developer.mbed.org/platforms/KL25Z/>`_
- MKL25Z128VLK4
- 48 MHz
- 128 Kb
- 16 Kb
* - ``frdm_kl46z``
- `Freescale Kinetis FRDM-KL46Z <https://developer.mbed.org/platforms/FRDM-KL46Z/>`_
- MKL46Z256VLL4
- 48 MHz
- 256 Kb
- 32 Kb
JKSoft
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``wallBotBLE``
- `JKSoft Wallbot BLE <https://developer.mbed.org/platforms/JKSoft-Wallbot-BLE/>`_
- NRF51822
- 16 MHz
- 128 Kb
- 16 Kb
NGX Technologies
~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``blueboard_lpc11u24``
- `NGX Technologies BlueBoard-LPC11U24 <https://developer.mbed.org/platforms/BlueBoard-LPC11U24/>`_
- LPC11U24
- 48 MHz
- 32 Kb
- 8 Kb
NXP
~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``lpc11u24``
- `NXP mbed LPC11U24 <https://developer.mbed.org/platforms/mbed-LPC11U24/>`_
- LPC11U24
- 48 MHz
- 32 Kb
- 8 Kb
* - ``lpc1549``
- `NXP LPCXpresso1549 <https://developer.mbed.org/platforms/LPCXpresso1549/>`_
- LPC1549
- 72 MHz
- 256 Kb
- 36 Kb
* - ``lpc1768``
- `NXP mbed LPC1768 <http://developer.mbed.org/platforms/mbed-LPC1768/>`_
- LPC1768
- 96 MHz
- 512 Kb
- 32 Kb
Nordic
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``nrf51_dk``
- `Nordic nRF51-DK <https://developer.mbed.org/platforms/Nordic-nRF51-DK/>`_
- NRF51822
- 32 MHz
- 256 Kb
- 32 Kb
* - ``nrf51_dongle``
- `Nordic nRF51-Dongle <https://developer.mbed.org/platforms/Nordic-nRF51-Dongle/>`_
- NRF51822
- 32 MHz
- 256 Kb
- 32 Kb
* - ``nrf51_mkit``
- `Nordic nRF51822-mKIT <http://developer.mbed.org/platforms/Nordic-nRF51822/>`_
- NRF51822
- 16 MHz
- 128 Kb
- 16 Kb
Outrageous Circuits
~~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``mbuino``
- `Outrageous Circuits mBuino <https://developer.mbed.org/platforms/Outrageous-Circuits-mBuino/>`_
- LPC11U24
- 48 MHz
- 32 Kb
- 8 Kb
RedBearLab
~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``redBearLab``
- `RedBearLab nRF51822 <https://developer.mbed.org/platforms/RedBearLab-nRF51822/>`_
- NRF51822
- 16 MHz
- 256 Kb
- 16 Kb
* - ``redBearLabBLENano``
- `RedBearLab BLE Nano <https://developer.mbed.org/platforms/RedBearLab-BLE-Nano/>`_
- NRF51822
- 16 MHz
- 256 Kb
- 16 Kb
ST
~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``disco_f051r8``
- `ST STM32F0DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF253215>`_
- STM32F051R8T6
- 48 MHz
- 64 Kb
- 8 Kb
* - ``disco_f100rb``
- `ST STM32VLDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF250863>`_
- STM32F100RBT6
- 24 MHz
- 128 Kb
- 8 Kb
* - ``disco_f303vc``
- `ST STM32F3DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044>`_
- STM32F303VCT6
- 72 MHz
- 256 Kb
- 48 Kb
* - ``disco_f334c8``
- `ST 32F3348DISCOVERY <http://www.st.com/web/en/catalog/tools/PF260318>`_
- STM32F334C8T6
- 72 MHz
- 64 Kb
- 12 Kb
* - ``disco_f401vc``
- `ST 32F401CDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259098>`_
- STM32F401VCT6
- 84 MHz
- 256 Kb
- 64 Kb
* - ``disco_f407vg``
- `ST STM32F4DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419>`_
- STM32F407VGT6
- 168 MHz
- 1024 Kb
- 128 Kb
* - ``disco_f429zi``
- `ST 32F429IDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259090>`_
- STM32F429ZIT6
- 180 MHz
- 2048 Kb
- 256 Kb
* - ``disco_f469ni``
- `ST 32F469IDISCOVERY <http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1848/PF262395>`_
- STM32F469NIH6
- 180 MHz
- 1024 Kb
- 384 Kb
* - ``disco_l053c8``
- `ST 32L0538DISCOVERY <http://www.st.com/web/en/catalog/tools/PF260319>`_
- STM32L053C8T6
- 32 MHz
- 64 Kb
- 8 Kb
* - ``disco_l476vg``
- `ST 32L476GDISCOVERY <http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1848/PF261635>`_
- STM32L476VGT6
- 80 MHz
- 1024 Kb
- 128 Kb
* - ``nucleo_f030r8``
- `ST Nucleo F030R8 <https://developer.mbed.org/platforms/ST-Nucleo-F030R8/>`_
- STM32F030R8T6
- 48 MHz
- 64 Kb
- 8 Kb
* - ``nucleo_f031k6``
- `ST Nucleo F031K6 <https://developer.mbed.org/platforms/ST-Nucleo-F031K6/>`_
- STM32F031K6T6
- 48 MHz
- 32 Kb
- 4 Kb
* - ``nucleo_f042k6``
- `ST Nucleo F042K6 <https://developer.mbed.org/platforms/ST-Nucleo-F042K6/>`_
- STM32F042K6T6
- 48 MHz
- 32 Kb
- 6 Kb
* - ``nucleo_f070rb``
- `ST Nucleo F070RB <https://developer.mbed.org/platforms/ST-Nucleo-F070RB/>`_
- STM32F070RBT6
- 48 MHz
- 128 Kb
- 16 Kb
* - ``nucleo_f072rb``
- `ST Nucleo F072RB <https://developer.mbed.org/platforms/ST-Nucleo-F072RB/>`_
- STM32F072RBT6
- 48 MHz
- 128 Kb
- 16 Kb
* - ``nucleo_f091rc``
- `ST Nucleo F091RC <https://developer.mbed.org/platforms/ST-Nucleo-F091RC/>`_
- STM32F091RCT6
- 48 MHz
- 256 Kb
- 32 Kb
* - ``nucleo_f103rb``
- `ST Nucleo F103RB <https://developer.mbed.org/platforms/ST-Nucleo-F103RB/>`_
- STM32F103RBT6
- 72 MHz
- 128 Kb
- 20 Kb
* - ``nucleo_f302r8``
- `ST Nucleo F302R8 <https://developer.mbed.org/platforms/ST-Nucleo-F302R8/>`_
- STM32F302R8T6
- 72 MHz
- 64 Kb
- 16 Kb
* - ``nucleo_f303k8``
- `ST Nucleo F303K8 <https://developer.mbed.org/platforms/ST-Nucleo-F303K8/>`_
- STM32F303K8T6
- 72 MHz
- 64 Kb
- 16 Kb
* - ``nucleo_f303re``
- `ST Nucleo F303RE <http://developer.mbed.org/platforms/ST-Nucleo-F303RE/>`_
- STM32F303RET6
- 72 MHz
- 512 Kb
- 64 Kb
* - ``nucleo_f334r8``
- `ST Nucleo F334R8 <https://developer.mbed.org/platforms/ST-Nucleo-F334R8/>`_
- STM32F334R8T6
- 72 MHz
- 64 Kb
- 16 Kb
* - ``nucleo_f401re``
- `ST Nucleo F401RE <https://developer.mbed.org/platforms/ST-Nucleo-F401RE/>`_
- STM32F401RET6
- 84 MHz
- 512 Kb
- 96 Kb
* - ``nucleo_f411re``
- `ST Nucleo F411RE <https://developer.mbed.org/platforms/ST-Nucleo-F411RE/>`_
- STM32F411RET6
- 100 MHz
- 512 Kb
- 128 Kb
* - ``nucleo_f446re``
- `ST Nucleo F446RE <https://developer.mbed.org/platforms/ST-Nucleo-F446RE/>`_
- STM32F446RET6
- 180 MHz
- 512 Kb
- 128 Kb
* - ``nucleo_l053r8``
- `ST Nucleo L053R8 <https://developer.mbed.org/platforms/ST-Nucleo-L053R8/>`_
- STM32L053R8T6
- 48 MHz
- 64 Kb
- 8 Kb
* - ``nucleo_l152re``
- `ST Nucleo L152RE <https://developer.mbed.org/platforms/ST-Nucleo-L152RE/>`_
- STM32L152RET6
- 32 MHz
- 512 Kb
- 80 Kb
* - ``nucleo_l476rg``
- `ST Nucleo L476RG <https://developer.mbed.org/platforms/ST-Nucleo-L476RG/>`_
- STM32L476RGT6
- 80 MHz
- 1024 Kb
- 128 Kb
SeeedStudio
~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``seeedTinyBLE``
- `SeeedStudio Seeed Tiny BLE <http://developer.mbed.org/platforms/Seeed-Tiny-BLE/>`_
- NRF51822
- 16 MHz
- 256 Kb
- 16 Kb
* - ``seeeduinoArchPro``
- `SeeedStudio Seeeduino-Arch-Pro <https://developer.mbed.org/platforms/Seeeduino-Arch-Pro/>`_
- LPC1768
- 96 MHz
- 512 Kb
- 32 Kb
Silicon Labs
~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``efm32gg_stk3700``
- `Silicon Labs EFM32GG-STK3700 (Giant Gecko) <https://developer.mbed.org/platforms/EFM32-Giant-Gecko/>`_
- EFM32GG990F1024
- 48 MHz
- 1024 Kb
- 128 Kb
* - ``efm32hg_stk3400``
- `Silicon Labs SLSTK3400A USB-enabled (Happy Gecko) <https://developer.mbed.org/platforms/EFM32-Happy-Gecko/>`_
- EFM32HG322F64
- 24 MHz
- 64 Kb
- 8 Kb
* - ``efm32lg_stk3600``
- `Silicon Labs EFM32LG-STK3600 (Leopard Gecko) <https://developer.mbed.org/platforms/EFM32-Leopard-Gecko/>`_
- EFM32LG990F256
- 48 MHz
- 256 Kb
- 32 Kb
* - ``efm32wg_stk3800``
- `Silicon Labs EFM32WG-STK3800 (Wonder Gecko) <https://developer.mbed.org/platforms/EFM32-Wonder-Gecko/>`_
- EFM32WG990F256
- 48 MHz
- 256 Kb
- 32 Kb
* - ``efm32zg_stk3200``
- `Silicon Labs EFM32ZG-STK3200 (Zero Gecko) <https://developer.mbed.org/platforms/EFM32-Zero-Gecko/>`_
- EFM2ZG222F32
- 24 MHz
- 32 Kb
- 4 Kb
Solder Splash Labs
~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``dipcortexm0``
- `Solder Splash Labs DipCortex M0 <https://developer.mbed.org/platforms/DipCortex-M0/>`_
- LPC11U24
- 50 MHz
- 32 Kb
- 8 Kb
Switch Science
~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``hrm1017``
- `Switch Science mbed HRM1017 <https://developer.mbed.org/platforms/mbed-HRM1017/>`_
- NRF51822
- 16 MHz
- 256 Kb
- 16 Kb
* - ``lpc1114fn28``
- `Switch Science mbed LPC1114FN28 <https://developer.mbed.org/platforms/LPC1114FN28/>`_
- LPC1114FN28
- 48 MHz
- 32 Kb
- 4 Kb
Teensy
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``teensy31``
- `Teensy 3.1 <https://www.pjrc.com/store/teensy31.html>`_
- MK20DX256
- 72 MHz
- 256 Kb
- 64 Kb
u-blox
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``ubloxc027``
- `u-blox C027 <https://developer.mbed.org/platforms/u-blox-C027/>`_
- LPC1768
- 96 MHz
- 512 Kb
- 32 Kb
.. include:: mbed_extra.rst

View File

@ -0,0 +1,32 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Articles
--------
* Dec 15, 2015 - **stastaka** - `PlatformIOでカスタムボードを使う (Use a custom board for PlatformIO, Japanese) <http://qiita.com/stastaka/items/a6a50dbbb2933bd78bdd>`_
* Nov 06, 2015 - **nocd5** - `PlatformIOでmbedをオフラインビルドしSTM32 Nucleoボードでmrubyを使う (Use mruby in the offline build for STM32 Nucleo board with mbed and PlatformIO, Japanese) <http://qiita.com/nocd5/items/d5fda776240f7e7c17eb>`_
* Oct 21, 2015 - **Vittorio Zaccaria** - `Using a cheap STM32 Nucleo to teach remote sensor monitoring <http://www.vittoriozaccaria.net/blog/2015/10/21/using-a-cheap-stm32-nucleo-to-teach-remote-sensor-monitoring.html>`_
* Sep 01, 2015 - **Thomas P. Weldon, Ph.D.** - `Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and Software Installation <http://thomasweldon.com/tpw/courses/embeddsp/p00pcFrdmK64_eclipsePlatformioSetup.html>`_
See more :ref:`articles`.
Examples
--------
All project examples are located in PlatformIO repository
`Examples for MBED framework <https://github.com/platformio/platformio/tree/develop/examples/mbed>`_.
* `Blink <https://github.com/platformio/platformio/tree/develop/examples/mbed/mbed-blink>`_
* `DSP <https://github.com/platformio/platformio/tree/develop/examples/mbed/mbed-dsp>`_
* `HTTP Client <https://github.com/platformio/platformio/tree/develop/examples/mbed/mbed-http-client>`_
* `RTOS <https://github.com/platformio/platformio/tree/develop/examples/mbed/mbed-rtos>`_
* `Serial <https://github.com/platformio/platformio/tree/develop/examples/mbed/mbed-serial>`_

109
docs/frameworks/spl.rst Normal file
View File

@ -0,0 +1,109 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _framework_spl:
Framework ``spl``
=================
The ST Standard Peripheral Library provides a set of functions for handling the peripherals on the STM32 Cortex-M3 family. The idea is to save the user (the new user, in particular) having to deal directly with the registers.
For more detailed information please visit `vendor site <http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1743?sc=stm32embeddedsoftware>`_.
.. contents::
Platforms
---------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`platform_ststm32`
- The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
* For more detailed ``board`` information please scroll tables below by horizontal.
Armstrap
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``armstrap_eagle1024``
- `Armstrap Eagle 1024 <http://docs.armstrap.org/en/latest/hardware-overview.html>`_
- STM32F417VGT6
- 168 MHz
- 1024 Kb
- 192 Kb
* - ``armstrap_eagle2048``
- `Armstrap Eagle 2048 <http://docs.armstrap.org/en/latest/hardware-overview.html>`_
- STM32F427VIT6
- 168 MHz
- 2048 Kb
- 256 Kb
* - ``armstrap_eagle512``
- `Armstrap Eagle 512 <http://docs.armstrap.org/en/latest/hardware-overview.html>`_
- STM32F407VET6
- 168 MHz
- 512 Kb
- 192 Kb
ST
~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``disco_f303vc``
- `ST STM32F3DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044>`_
- STM32F303VCT6
- 72 MHz
- 256 Kb
- 48 Kb
* - ``disco_f407vg``
- `ST STM32F4DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419>`_
- STM32F407VGT6
- 168 MHz
- 1024 Kb
- 128 Kb
* - ``disco_l152rb``
- `ST STM32LDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515>`_
- STM32L152RBT6
- 32 MHz
- 128 Kb
- 16 Kb
.. include:: spl_extra.rst

View File

@ -0,0 +1,18 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Examples
--------
All project examples are located in PlatformIO repository
`Examples for SPL framework <https://github.com/platformio/platformio/tree/develop/examples/stm32>`_.
* `Blink <https://github.com/platformio/platformio/tree/develop/examples/stm32/stm32-spl-blink>`_

View File

@ -0,0 +1,75 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _framework_wiringpi:
Framework ``wiringpi``
======================
WiringPi is a GPIO access library written in C for the BCM2835 used in the Raspberry Pi. It's designed to be familiar to people who have used the Arduino "wiring" system.
For more detailed information please visit `vendor site <http://wiringpi.com>`_.
.. contents::
Platforms
---------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`platform_linux_arm`
- Linux ARM is a Unix-like and mostly POSIX-compliant computer operating system (OS) assembled under the model of free and open-source software development and distribution. Using host OS (Mac OS X, Linux ARM) you can build native application for Linux ARM platform.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
* For more detailed ``board`` information please scroll tables below by horizontal.
Raspberry Pi
~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``raspberrypi_1b``
- `Raspberry Pi 1 Model B <https://www.raspberrypi.org>`_
- BCM2835
- 700 MHz
- 524288 Kb
- 524288 Kb
* - ``raspberrypi_2b``
- `Raspberry Pi 2 Model B <https://www.raspberrypi.org>`_
- BCM2836
- 900 MHz
- 1048576 Kb
- 1048576 Kb
* - ``raspberrypi_zero``
- `Raspberry Pi Zero <https://www.raspberrypi.org>`_
- BCM2835
- 1000 MHz
- 524288 Kb
- 524288 Kb
.. include:: wiringpi_extra.rst

View File

@ -0,0 +1,19 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Examples
--------
All project examples are located in PlatformIO repository
`Examples for WiringPi framework <https://github.com/platformio/platformio/tree/develop/examples/raspberrypi>`_.
* `Blink <https://github.com/platformio/platformio/tree/develop/examples/raspberrypi/wiringpi-blink>`_
* `Serial <https://github.com/platformio/platformio/tree/develop/examples/raspberrypi/wiringpi-serial>`_

View File

@ -1 +1,12 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. include:: ../HISTORY.rst

View File

@ -1,60 +1,29 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide:
IDE Integration
===============
Arduino IDE
-----------
.. toctree::
:maxdepth: 2
.. 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 <http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides>`_
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 <http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using-eclipse-ideplatformio>`_
* `More examples (TI MSP430, TI TIVA and etc) <https://github.com/ivankravets/platformio/tree/develop/examples/ide-eclipse>`_
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 <http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides>`_
VIM
---
.. image:: _static/ide-platformio-vim.png
Recommended bundles:
* Syntax highlight - `Arduino-syntax-file <https://github.com/vim-scripts/Arduino-syntax-file>`_
* Code Completion - `YouCompleteMe <https://github.com/Valloric/YouCompleteMe>`_
* Syntax checking - `Syntastic <https://github.com/scrooloose/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/atom
ide/clion
ide/eclipse
ide/emacs
ide/energia
ide/qtcreator
ide/sublimetext
ide/vim
ide/visualstudio

50
docs/ide/arduino.rst Normal file
View File

@ -0,0 +1,50 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide_arduino:
Arduino
=======
The open-source `Arduino Software (IDE) <http://arduino.cc/en/main/software>`_
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 <http://arduino.cc/en/Guide/HomePage>`_
page for Installation instructions.
.. contents::
Integration
-----------
More detailed information is located in PlatformIO blog:
`Integration of PlatformIO library manager to Arduino IDE <http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides>`_.
Articles / Manuals
------------------
* `Integration of PlatformIO library manager to Arduino and Energia IDEs <http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides>`_
See the full list with :ref:`articles`.
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

57
docs/ide/atom.rst Normal file
View File

@ -0,0 +1,57 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide_atom:
Atom
====
`Atom <https://atom.io>`_ is a text editor that's modern, approachable,
yet hackable to the core—a tool you can customize to do anything but also use
productively without ever touching a config file.
This software can be used with:
* all available :ref:`platforms`
* all available :ref:`frameworks`
Refer to the `Atom Documentation <https://atom.io/docs>`_
page for more detailed information.
.. contents::
Integration
-----------
Using `Atom Packages <https://atom.io/docs/v1.0.2/using-atom-atom-packages>`_
please install `platomformio <https://atom.io/packages/platomformio>`_ package.
Articles / Manuals
------------------
* Jul 20, 2015 - **Eli Fatsi** - `Arduino Development in Atom Editor <http://viget.com/extend/arduino-development-in-atom-editor>`_
See more :ref:`articles`.
Screenshot
----------
Building
^^^^^^^^
.. image:: ../_static/ide-platformio-atom-1.gif
:target: https://atom.io/packages/platomformio
Uploading
^^^^^^^^^
.. image:: ../_static/ide-platformio-atom-2.gif
:target: https://atom.io/packages/platomformio

102
docs/ide/clion.rst Normal file
View File

@ -0,0 +1,102 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide_clion:
CLion
=====
The `CLion <https://www.jetbrains.com/clion/>`_ is a cross-platform C/C++ IDE
for Linux, OS X, and Windows integrated with the CMake build system. The
initial version will support the GCC and Clang compilers and GDB debugger.
Clion includes such features as a smart editor, code quality assurance,
automated refactorings, project manager, integrated version control systems.
This software can be used with:
* all available :ref:`platforms`
* all available :ref:`frameworks`
Refer to the `CDT Documentation <https://www.jetbrains.com/clion/documentation/>`_
page for more detailed information.
.. contents::
Integration
-----------
Choose board ``type`` using :ref:`cmd_boards` or `Embedded Boards Explorer <http://platformio.org/#!/boards>`_
command and generate project via :option:`platformio init --ide` command:
.. code-block:: shell
platformio init --ide clion --board %TYPE%
# For example, generate project for Arduino UNO
platformio init --ide clion --board uno
Then:
1. Import this project via ``Menu: File > Import Project``
and specify root directory where is located :ref:`projectconf`
2. Open source file from ``src`` directory (``*.c, *.cpp, *.ino, etc.``)
3. Build project (*DO NOT RUN*): ``Menu: Run > Build``.
There are 3 predefined targets for building (*NOT FOR RUNNING*, see marks on
the screenshot below):
* ``PLATFORMIO_BUILD`` - build project without auto-uploading
* ``PLATFORMIO_UPLOAD`` - build and upload (if no errors)
* ``PLATFORMIO_CLEAN`` - clean compiled objects and etc.
.. warning::
The libraries which are added, installed or used in the project
after generating process wont be reflected in IDE. To fix it you
need to reinitialize project using :ref:`cmd_init` (repeat it).
.. warning::
PlatformIO generates empty project by default and **code auto-completion
will not work!** To enable auto-completion please choose one of:
* Add source files ``*.c, *.cpp, etc`` to ``src`` directory and re-initialize
project with command above
* Manually correct ``add_executable`` command in ``CMakeLists.txt`` file
(will be created in project directory after initialization).
``*.ino`` file isn't acceptable for ``add_executable`` command. You should
convert it manually to ``*.cpp``. See `project example <https://github.com/platformio/platformio/tree/develop/examples/ide/clion>`_.
More info `CLion issue #CPP-3977 <https://youtrack.jetbrains.com/issue/CPP-3977>`_.
Active discussion is located in
`PlatformIO issue #132 <https://github.com/platformio/platformio/issues/132>`_.
Articles / Manuals
------------------
* Dec 01, 2015 - **JetBrains CLion Blog** - `C++ Annotated: Fall 2015. Arduino Support in CLion using PlatformIO <http://blog.jetbrains.com/clion/2015/12/cpp-annotated-fall-2015/>`_
* Nov 22, 2015 - **Michał Seroczyński** - `Using PlatformIO to get started with Arduino in CLion IDE <http://www.ches.pl/using-platformio-get-started-arduino-clion-ide/>`_
* Nov 09, 2015 - **ÁLvaro García Gómez** - `Programar con Arduino "The good way" (Programming with Arduino "The good way", Spanish) <http://congdegnu.es/2015/11/09/programar-con-arduino-the-good-way/>`_
See more :ref:`articles`.
Screenshot
----------
.. image:: ../_static/ide-platformio-clion.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-clion.png
Examples
--------
"Blink" Project
^^^^^^^^^^^^^^^
Source code of `CLion "Blink" Project <https://github.com/platformio/platformio/tree/develop/examples/ide/clion>`_.

84
docs/ide/eclipse.rst Normal file
View File

@ -0,0 +1,84 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide_eclipse:
Eclipse
=======
The `Eclipse CDT (C/C++ Development Tooling) <https://eclipse.org/cdt/>`_
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 available :ref:`platforms`
* all available :ref:`frameworks`
Refer to the `CDT Documentation <https://eclipse.org/cdt/documentation.php>`_
page for more detailed information.
.. contents::
Integration
-----------
Choose board ``type`` using :ref:`cmd_boards` or `Embedded Boards Explorer <http://platformio.org/#!/boards>`_
command and generate project via :option:`platformio init --ide` command:
.. code-block:: shell
platformio init --ide eclipse --board %TYPE%
# For example, generate project for Arduino UNO
platformio init --ide eclipse --board uno
Then:
1. Import this project via
``Menu: File > Import... > General > Existing Projects into Workspace > Next``
and specify root directory where is located :ref:`projectconf`
2. Open source file from ``src`` directory (``*.c, *.cpp, *.ino, etc.``)
3. Build project: ``Menu: Project > Build Project``.
.. warning::
The libraries which are added, installed or used in the project
after generating process wont be reflected in IDE. To fix it you
need to reinitialize project using :ref:`cmd_init` (repeat it).
Articles / Manuals
------------------
* Sep 01, 2015 - **Thomas P. Weldon, Ph.D.** - `Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and Software Installation <http://thomasweldon.com/tpw/courses/embeddsp/p00pcFrdmK64_eclipsePlatformioSetup.html>`_
* Jul 11, 2015 - **TrojanC** - `Learning Arduino GitHub Repository <http://www.trojanc.co.za/2015/07/11/learning-arduino-github-repository/>`_
* June 20, 2014 - **Ivan Kravets, Ph.D.** - `Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO <http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using-eclipse-ideplatformio>`_
See a full list with :ref:`articles`.
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
Examples
--------
"Blink" Project
^^^^^^^^^^^^^^^
Source code of `Eclipse "Blink" Project <https://github.com/platformio/platformio/tree/develop/examples/ide/eclipse>`_.

77
docs/ide/emacs.rst Normal file
View File

@ -0,0 +1,77 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide_emacs:
Emacs
=====
GNU Emacs is an extensible, customizable text editor - and more. At its core is
an interpreter for Emacs Lisp, a dialect of the
`Lisp programming language <http://en.wikipedia.org/wiki/Lisp_programming_language>`_
with extensions to support text editing.
This software can be used with:
* all available :ref:`platforms`
* all available :ref:`frameworks`
Refer to the `Emacs Documentation <https://www.gnu.org/software/emacs/#Manuals>`_
page for more detailed information.
.. contents::
Integration
-----------
PlatformIO-Mode
^^^^^^^^^^^^^^^
An Emacs minor mode has been written to facilitate building and uploading from within Emacs.
It can be installed from the MELPA repository using ``M-x package-install``.
See the MELPA `Getting Started <https://melpa.org/#/getting-started>`_ page for more information.
Setup instructions for the minor mode can be found at the `Github page <https://github.com/ZachMassia/platformio-mode>`_.
Code completion can optionally be provided by installing `irony-mode <https://github.com/Sarcasm/irony-mode>`_
Project Generator
^^^^^^^^^^^^^^^^^
Choose board ``type`` using :ref:`cmd_boards` or `Embedded Boards Explorer <http://platformio.org/#!/boards>`_
command and generate project via :option:`platformio init --ide` command:
.. code-block:: shell
platformio init --ide emacs --board %TYPE%
cmake .
There are 4 predefined targets for building.
* ``platformio_build`` - Build project without auto-uploading. (``C-c i b``)
* ``platformio_upload`` - Build and upload (if no errors). (``C-c i u``)
* ``platformio_clean`` - Clean compiled objects. (``C-c i c``)
* ``platformio_update`` - Update installed platforms and libraries. (``C-c i d``)
.. warning::
The libraries which are added, installed or used in the project
after generating process wont be reflected in IDE. To fix it you
need to reinitialize project using :ref:`cmd_init` (repeat it).
Screenshot
----------
.. image:: ../_static/ide-platformio-emacs.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-emacs.png

50
docs/ide/energia.rst Normal file
View File

@ -0,0 +1,50 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide_energia:
Energia
=======
The open-source `Energia Software (IDE) <http://energia.nu>`_
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 <http://energia.nu/guide/>`_
page for Installation instructions.
.. contents::
Integration
-----------
More detailed information is located in PlatformIO blog:
`Integration of PlatformIO library manager to Energia IDE <http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides>`_.
Articles / Manuals
------------------
* `Integration of PlatformIO library manager to Arduino and Energia IDEs <http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides>`_
See the full list with :ref:`articles`.
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

204
docs/ide/qtcreator.rst Normal file
View File

@ -0,0 +1,204 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide_qtcreator:
Qt Creator
==========
The `Qt Creator <https://github.com/qtproject/qt-creator>`_ is an open source cross-platform integrated development environment. The editor includes such features as syntax highlighting for various languages, project manager, integrated version control systems, rapid code navigation tools and code autocompletion.
This software can be used with:
* all available :ref:`platforms`
* all available :ref:`frameworks`
Refer to the `Qt-creator Manual <http://doc.qt.io/qtcreator/>`_
page for more detailed information.
.. contents::
Integration
-----------
.. note::
Please verify that folder where is located ``platformio`` program is added
to `PATH (wiki) <https://en.wikipedia.org/wiki/PATH_(variable)>`_ environment
variable. See FAQ: :ref:`faq_troubleshooting_pionotfoundinpath`.
Project Generator
^^^^^^^^^^^^^^^^^
Choose board ``type`` using :ref:`cmd_boards` or `Embedded Boards Explorer <http://platformio.org/#!/boards>`_
command and generate project via :option:`platformio init --ide` command:
.. code-block:: shell
platformio init --ide qtcreator --board %TYPE%
# For example, generate project for Arduino UNO
platformio init --ide qtcreator --board uno
Then:
1. Import project via ``File > Open File or Project`` and select
``platformio.pro`` from the folder where is located :ref:`projectconf`
2. Select default desktop kit and click on ``Configure Project`` (``Projects``
mode, left panel)
3. Set ``General > Build directory`` to the project directory where
is located :ref:`projectconf`
4. Remove all items from ``Build Steps``, click on
``Build Steps > Add Build Step > Custom Process Step`` and set:
* **Command**: ``platformio``
* **Arguments**: ``-f -c qtcreator run``
* **Working directory**: ``%{buildDir}``
5. Remove all items from ``Clean Steps``, click on
``Clean Steps > Add Clean Step > Custom Process Step`` and set:
* **Command**: ``platformio``
* **Arguments**: ``-f -c qtcreator run --target clean``
* **Working directory**: ``%{buildDir}``
6. Update ``PATH`` in ``Build Environment > PATH > EDIT`` with the result of
this command (paste in Terminal):
.. code-block:: shell
# Linux, Mac
echo $PATH
# Windows
echo %PATH%
7. Switch to ``Edit`` mode (left panel) and open source file from ``src``
directory (``*.c, *.cpp, *.ino, etc.``)
8. Build project: ``Menu: Build > Build All``.
.. image:: ../_static/ide-platformio-qtcreator-3.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-qtcreator-3.png
.. warning::
The libraries which are added, installed or used in the project
after generating process wont be reflected in IDE. To fix it you
need to reinitialize project using :ref:`cmd_init` (repeat it).
Manual Integration
^^^^^^^^^^^^^^^^^^
Setup New Project
~~~~~~~~~~~~~~~~~
First of all, let's create new project from Qt Creator Start Page: ``New Project`` or using ``Menu: File > New File or Project``, then select project with ``Empty Qt Project`` type (``Other Project > Empty Qt Project``), fill ``Name``, ``Create in``.
.. image:: ../_static/ide-platformio-qtcreator-1.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-qtcreator-1.png
On the next steps select any available kit and click Finish button.
.. image:: ../_static/ide-platformio-qtcreator-2.png
Secondly, we need to delete default build and clean steps and configure project with PlatformIO source code builder (click on Projects label on left menu or ``Ctrl+5`` shortcut):
.. image:: ../_static/ide-platformio-qtcreator-3.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-qtcreator-3.png
Thirdly, change project file by adding path to directories with header files. Please edit project file to match the following contents:
.. code-block:: none
win32 {
HOMEDIR += $$(USERPROFILE)
}
else {
HOMEDIR += $$(HOME)
}
INCLUDEPATH += "$${HOMEDIR}/.platformio/packages/framework-arduinoavr/cores/arduino"
INCLUDEPATH += "$${HOMEDIR}/.platformio/packages/toolchain-atmelavr/avr/include"
.. image:: ../_static/ide-platformio-qtcreator-4.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-qtcreator-4.png
First program in Qt Creator
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Simple "Blink" project will consist from two files:
1. In the console, navigate to the root of your project folder and initialize platformio project with ``platformio init``
2. The main "C" source file named ``main.c`` must be located in the ``src`` directory.
Let's create new text file named ``main.c`` using ``Menu: New File or Project > General > Text File``:
.. image:: ../_static/ide-platformio-qtcreator-5.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-qtcreator-5.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
}
3. Locate the project configuration file named ``platformio.ini`` at the root of the project directory and open it.
.. image:: ../_static/ide-platformio-qtcreator-6.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-qtcreator-6.png
Edit the content to match the code described below.
.. 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 All``.
Screenshot
----------
.. image:: ../_static/ide-platformio-qtcreator-7.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-qtcreator-7.png
Examples
--------
"Blink" Project
^^^^^^^^^^^^^^^
Source code of `Qt Creator "Blink" Project <https://github.com/platformio/platformio/tree/develop/examples/ide/qtcreator>`_.

181
docs/ide/sublimetext.rst Normal file
View File

@ -0,0 +1,181 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide_sublimetext:
Sublime Text
============
The `Sublime Text <http://www.sublimetext.com/>`_ 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 available :ref:`platforms`
* all available :ref:`frameworks`
Refer to the `Sublime Text Documentation <http://docs.sublimetext.info/en/latest>`_
page for more detailed information.
.. contents::
Integration
-----------
Project Generator
^^^^^^^^^^^^^^^^^
Choose board ``type`` using :ref:`cmd_boards` or `Embedded Boards Explorer <http://platformio.org/#!/boards>`_
command and generate project via :option:`platformio init --ide` command:
.. code-block:: shell
platformio init --ide sublimetext --board %TYPE%
# For example, generate project for Arduino UNO
platformio init --ide sublimetext --board uno
Then:
1. Import project via ``Menu: Project > Open Project...`` and select
``platformio.sublime-project`` from the folder where is located :ref:`projectconf`
2. Select PlatformIO as build system: ``Menu: Tools > Build System > PlatformIO``
3. Open source file from ``src`` directory (``*.c, *.cpp, *.ino, etc.``)
4. Build project: ``Menu: Tools > Build``.
Manual Integration
^^^^^^^^^^^^^^^^^^
.. note::
Please verify that folder where is located ``platformio`` program is added
to `PATH (wiki) <https://en.wikipedia.org/wiki/PATH_(variable)>`_ environment
variable. See FAQ: :ref:`faq_troubleshooting_pionotfoundinpath`.
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", "-f", "-c", "sublimetext", "run"],
"working_dir": "${project_path:${folder}}",
"variants":
[
{
"name": "Clean",
"cmd": ["platformio", "-f", "-c", "sublimetext", "run", "--target", "clean"]
},
{
"name": "Upload",
"cmd": ["platformio", "-f", "-c", "sublimetext", "run", "--target", "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``.
Screenshot
----------
.. image:: ../_static/ide-sublime-text-platformio-newproject-5.png
Examples
--------
"Blink" Project
^^^^^^^^^^^^^^^
Source code of `Sublime Text "Blink" Project <https://github.com/platformio/platformio/tree/develop/examples/ide/sublimetext>`_.

75
docs/ide/vim.rst Normal file
View File

@ -0,0 +1,75 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide_vim:
VIM
===
`VIM <http://www.vim.org/>`_ 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 available :ref:`platforms`
* all available :ref:`frameworks`
.. contents::
Integration
-----------
.. note::
Please verify that folder where is located ``platformio`` program is added
to `PATH (wiki) <https://en.wikipedia.org/wiki/PATH_(variable)>`_ environment
variable. See FAQ: :ref:`faq_troubleshooting_pionotfoundinpath`.
Recommended bundles:
* Syntax highlight - `Arduino-syntax-file <https://github.com/vim-scripts/Arduino-syntax-file>`_
* Code Completion - `YouCompleteMe <https://github.com/Valloric/YouCompleteMe>`_ (see configuration example by **Anthony Ford** `PlatformIO/YouCompleteMe Integration <https://gist.github.com/ajford/f551b2b6fd4d6b6e1ef2>`_)
* Syntax checking - `Syntastic <https://github.com/scrooloose/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 -f -c vim run --target upload
clean:
platformio -f -c vim run --target 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.
.. note::
If hotkey doesn't work for you, try to add this line
``nnoremap <C-b> :make<CR>`` to ``~/.vimrc``
Articles / Manuals
------------------
* `コマンドラインでArduino開発 : vim + platformio (Arduino development at the command line: VIM + PlatformIO, Japanese) <http://qiita.com/caad1229/items/7b5fb47f034ae6e0baf2>`_
See a full list with :ref:`articles`.
Screenshot
----------
.. image:: ../_static/ide-platformio-vim.png

164
docs/ide/visualstudio.rst Normal file
View File

@ -0,0 +1,164 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _ide_visualstudio:
Visual Studio
=============
The `Microsoft Visual Studio (Free) <http://visualstudio.com/free>`_ 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 available :ref:`platforms`
* all available :ref:`frameworks`
Refer to the `Visual Studio Documentation <https://msdn.microsoft.com/library/vstudio>`_
page for more detailed information.
.. contents::
Integration
-----------
.. note::
Please verify that folder where is located ``platformio`` program is added
to `PATH (wiki) <https://en.wikipedia.org/wiki/PATH_(variable)>`_ environment
variable. See FAQ: :ref:`faq_troubleshooting_pionotfoundinpath`.
Project Generator
^^^^^^^^^^^^^^^^^
Choose board ``type`` using :ref:`cmd_boards` or `Embedded Boards Explorer <http://platformio.org/#!/boards>`_
command and generate project via :option:`platformio init --ide` command:
.. code-block:: shell
platformio init --ide sublimetext --board %TYPE%
# For example, generate project for Arduino UNO
platformio init --ide visualstudio --board uno
Then:
1. Import this project via ``Menu: File > Open > Project/Solution``
and specify root directory where is located :ref:`projectconf`
2. Open source file from ``src`` directory (``*.c, *.cpp, *.ino, etc.``)
3. Build project: ``Menu: Build > Build Solution``.
.. warning::
The libraries which are added, installed or used in the project
after generating process wont be reflected in IDE. To fix it you
need to reinitialize project using :ref:`cmd_init` (repeat it).
Manual 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``.
Screenshot
----------
.. image:: ../_static/ide-vs-platformio-newproject-8.png
:target: http://docs.platformio.org/en/latest/_static/ide-vs-platformio-newproject-8.png
Examples
--------
"Blink" Project
^^^^^^^^^^^^^^^
Source code of `Visual Studio "Blink" Project <https://github.com/platformio/platformio/tree/develop/examples/ide/visualstudio>`_.

View File

@ -1,50 +1,125 @@
PlatformIO: A cross-platform code builder and the missing library manager
=========================================================================
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. image:: _static/platformio-logo.png
:target: http://platformio.org
PlatformIO is an open source ecosystem for IoT development
==========================================================
`Website + Library Search <http://platformio.org>`_ |
`Project Examples <https://github.com/ivankravets/platformio/tree/develop/examples>`_ |
`Source Code <https://github.com/ivankravets/platformio>`_ |
`Issues <https://github.com/ivankravets/platformio/issues>`_ |
`Blog <http://www.ikravets.com/category/computer-life/platformio>`_ |
`Twitter <https://twitter.com/PlatformIO_Org>`_
**Cross-platform code builder and library manager. Continuous and IDE
integration. Arduino and MBED compatible. Ready for Cloud compiling.**
You have no need to install any *IDE* or compile any tool chains. *PlatformIO*
has pre-built different development platforms including: compiler, debugger,
uploader (for embedded) and many other useful tools.
* **Development Platforms** - Embedded and Desktop development platforms with
pre-built toolchains, debuggers, uploaders and frameworks which work under
popular host OS: Mac, Windows, Linux (+ARM)
* **Embedded Boards** - Rapid Embedded Programming, IDE and Continuous
Integration in a few steps with PlatformIO thanks to built-in project
generator for the most popular embedded boards and IDE
* **Library Manager** - Hundreds Popular Libraries are organized into single
Web 2.0 platform: list by categories, keywords, authors, compatible
platforms and frameworks; learn via examples; be up-to-date with the latest
version
**PlatformIO** allows developer to compile the same code with different
platforms using only one command :ref:`cmd_run`. This happens due to
:ref:`projectconf` where you can setup different environments with specific
options: platform type, firmware uploading settings, pre-built framework
and many more.
*Atmel AVR & SAM, Espressif, Freescale Kinetis, Nordic nRF51, NXP LPC,
Silicon Labs EFM32, ST STM32, TI MSP430 & Tiva, Teensy, Arduino, mbed,
libOpenCM3, etc.*
Each platform consists of packages which are located in own repository.
Due to :ref:`cmd_update` command you will have up-to-date development
instruments.
* `Website <http://platformio.org>`_
* `Web 2.0 Library Search <http://platformio.org/#!/lib>`_ |
`Embedded Boards Explorer <http://platformio.org/#!/boards>`_
* `Project Examples <https://github.com/platformio/platformio/tree/develop/examples>`_
* `Source Code <https://github.com/platformio/platformio>`_ |
`Issues <https://github.com/platformio/platformio/issues>`_
* `Blog <http://www.ikravets.com/category/computer-life/platformio>`_ |
`Twitter <https://twitter.com/PlatformIO_Org>`_ |
`Hackaday <https://hackaday.io/project/7980-platformio>`_ |
`Facebook <https://www.facebook.com/platformio>`_ |
`Reddit <http://www.reddit.com/r/platformio/>`_
**PlatformIO** is well suited for **embedded development**. It can:
Embedded Development. *Easier Than Ever.*
-----------------------------------------
* Automatically analyse dependency
* Reliably detect build changes
* Build framework or library source code to static library
* Colourful command-line output
* :ref:`IDE Integration <ide>` with *Arduino, Eclipse, Emacs, Energia, Qt Creator,
Sublime Text, Vim, Visual Studio*
* Cloud compiling and :ref:`ci` with *AppVeyor, Circle CI, Drone, Shippable, Travis CI*
* Built-in :ref:`Serial Port Monitor <cmd_serialports_monitor>` and
configurable build :ref:`-flags/-options <projectconf_build_flags>`
* Pre-built toolchains, :ref:`frameworks` for the
:ref:`Development Platforms <platforms>`
Smart Code Builder. *Fast and Reliable.*
----------------------------------------
* Reliable, automatic dependency analysis and detection of build changes
* Improved support for parallel builds
* Ability to share built files in a cache
* Lookup for external libraries which are installed via :ref:`librarymanager`
* Upload firmware to your device
The Missing Library Manager. *It's here!*
-----------------------------------------
* Friendly Command-Line Interface
* Modern `Web 2.0 Library Search <http://platformio.org/#!/lib>`_
* Library dependency management
* Automatic library updating
* It runs on Windows, Mac OS X, and Linux (+ARM).
For further details, please refer to
:ref:`What is PlatformIO? How does it work? <faq_what_is_platformio>`
Contents
--------
.. toctree::
:caption: Getting Started
:maxdepth: 2
quickstart
demo
installation
projectconf
platforms/index
librarymanager/index
quickstart
userguide/index
.. toctree::
:caption: Configuration
:maxdepth: 2
projectconf
envvars
.. toctree::
:caption: Instruments
:maxdepth: 3
Platforms & Boards <platforms/index>
frameworks/index
.. toctree::
:caption: Library Manager
:maxdepth: 2
Quickstart <librarymanager/index>
User Guide <userguide/lib/index.rst>
librarymanager/config
librarymanager/creating
.. toctree::
:caption: Integration
:maxdepth: 2
ci/index
ide
.. toctree::
:caption: Miscellaneous
:maxdepth: 2
articles
FAQ <faq>
history

View File

@ -1,57 +1,104 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _installation:
Installation
============
*PlatformIO* is written in `Python <http://python.org/download/>`_ and works
on *Mac OS X*, *Linux*, *Windows OS* and Credit-card *ARM*-based
computers (*Raspberry Pi*).
**PlatformIO** is written in `Python <https://www.python.org/downloads/>`_ and
works on Mac OS X, Linux, Windows OS and *ARM*-based credit-card sized
computers (`Raspberry Pi <http://www.raspberrypi.org>`_,
`BeagleBone <http://beagleboard.org>`_,
`CubieBoard <http://cubieboard.org>`_).
.. contents::
System requirements
-------------------
* **Operating systems:**
* Mac OS X
* Linux
* Windows
* `Python 2.6 or Python 2.7 <http://python.org/download/>`_
:Operating System: Mac OS X, Linux (+ARM) or Windows
:Python Interpreter:
All commands below should be executed in
`Command-line <http://en.wikipedia.org/wiki/Command-line_interface>`_
application:
Python 2.6 or 2.7. Python 2.7 is recommended
* *Mac OS X / Linux* this is *Terminal* application.
* *Windows* this is
`Command Prompt <http://en.wikipedia.org/wiki/Command_Prompt>`_ (``cmd.exe``)
application.
.. attention::
**Windows Users**: Please `Download the latest Python 2.7.x
<https://www.python.org/downloads/>`_ and install it.
**DON'T FORGET** to select ``Add python.exe to Path`` feature on the
"Customize" stage, otherwise ``pip`` command will not be available.
.. warning::
If you are going to use *PlatformIO* for "*Cloud Compiling*", please
don't forget to turn off :ref:`enable_prompts <cmd_settings>` setting. It
will allow you to avoid blocking when call ``platformio`` like subprocess.
:Terminal Application:
Please *choose one of* the following:
All commands below should be executed in
`Command-line <http://en.wikipedia.org/wiki/Command-line_interface>`_
application (Terminal). For Mac OS X and Linux OS - *Terminal* application,
for Windows OS ``cmd.exe`` application.
Installation Methods
--------------------
Please *choose ONE of* the following methods:
a) Python Package Manager
~~~~~~~~~~~~~~~~~~~~~~~~~
The latest stable version of PlatformIO may be installed or upgraded via
`pip <https://pip.pypa.io>`_ as follows:
.. code-block:: bash
pip install -U platformio
Note that you may run into permissions issues running these commands. You have
a few options here:
* Run with ``sudo`` to install PlatformIO and dependencies globally
* Specify the `pip install --user <https://pip.pypa.io/en/stable/user_guide.html#user-installs>`_
option to install local to your user
* Run the command in a `virtualenv <https://virtualenv.pypa.io>`_ local to a
specific project working set.
If ``pip`` command is not available or you have problems with it try
:ref:`installation_installer_script`.
.. _installation_installer_script:
b) Installer Script
~~~~~~~~~~~~~~~~~~~
Super-Quick (Mac / Linux)
-------------------------
'''''''''''''''''''''''''
To install or upgrade *PlatformIO* paste that at a *Terminal* prompt
(you might need to run ``sudo`` first):
(**MAY require** administrator access ``sudo``):
.. 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)
----------------------------------------
Local Download (Mac / Linux / Windows)
''''''''''''''''''''''''''''''''''''''
To install or upgrade *PlatformIO*, download
`get-platformio.py <https://raw.githubusercontent.com/ivankravets/platformio/develop/scripts/get-platformio.py>`_
script. Then run the following (you might need to run ``sudo`` first):
To install or upgrade *PlatformIO*, download (save as...)
`get-platformio.py <https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py>`_
script. Then run the following (**MAY require** administrator access ``sudo``):
.. code-block:: bash
# change directory to folder where is located downloaded "get-platformio.py"
cd /path/to/dir/where/is/located/get-platformio.py/script
# run it
python get-platformio.py
@ -59,55 +106,80 @@ On *Windows OS* it may look like:
.. code-block:: bash
# change directory to folder where is located downloaded "get-platformio.py"
cd C:\path\to\dir\where\is\located\get-platformio.py\script
# run it
C:\Python27\python.exe get-platformio.py
.. warning::
**Mac OS Users**: If you have an error ``pkg_resources.DistributionNotFound`` please
upgrade *SetupTools* package: ``$ [sudo] pip uninstall setuptools``
and ``$ [sudo] pip install setuptools``.
Then re-install *PlatformIO*: ``$ [sudo] pip uninstall platformio``
and ``$ [sudo] pip install platformio``.
Full Guide
----------
c) Full Guide
~~~~~~~~~~~~~
1. Check a ``python`` version (only 2.6-2.7 is supported):
.. code-block:: bash
$ python --version
python --version
*Windows OS* Users only:
*Windows Users* only:
* `Download Python 2.7 <https://www.python.org/downloads/>`_ and install it.
* Add to PATH system variable ``;C:\Python27;C:\Python27\Scripts;`` and
reopen *Command Prompt* (``cmd.exe``) application. Please read this
article `How to set the path and environment variables in Windows
<http://www.computerhope.com/issues/ch000549.htm>`_.
* Add to PATH system variable ``;C:\Python27;C:\Python27\Scripts;`` and reopen *Command Prompt* (``cmd.exe``) application. Please read this article `How to set the path and environment variables in Windows <http://www.computerhope.com/issues/ch000549.htm>`_.
2. Check a ``pip`` tool for installing and managing *Python* packages:
2. Install a ``platformio`` and related packages:
.. code-block:: bash
$ pip search platformio
You should see short information about ``platformio`` package.
pip install -U platformio
If your computer does not recognize ``pip`` command, try to install it first
using `these instructions <https://pip.pypa.io/en/latest/installing.html>`_.
3. Install a ``platformio`` and related packages:
For upgrading ``platformio`` to the latest version:
.. code-block:: bash
$ pip install platformio && pip install --egg scons
pip install -U platformio
For upgrading the ``platformio`` to new version please use this command:
d) Development Version
~~~~~~~~~~~~~~~~~~~~~~
Install the latest PlatformIO from the ``develop`` branch:
.. code-block:: bash
$ pip install -U platformio
# uninstall existing version
pip uninstall platformio
# install the latest development version of PlatformIO
pip install -U 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 re-install PlatformIO each time if you see the new commits in
`PlatformIO GitHub repository (branch: develop) <https://github.com/platformio/platformio/commits/develop>`_.
To revert to the latest stable version
.. code-block:: bash
pip uninstall platformio
pip install -U platformio
Troubleshooting
---------------
.. warning::
If you are going to run *PlatformIO* from **subprocess**, you
:ref:`MUST DISABLE <faq_troubleshooting_pioblocksprompt>` all prompts.
It will allow you to avoid blocking.
.. note::
**Linux OS**: Don't forget to install "udev" rules file
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
**Windows OS**: Please check that you have correctly installed USB driver
from board manufacturer
For further details, frequently questions, known issues, please
refer to :ref:`faq`.

View File

@ -1,14 +1,31 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. |PIOAPICR| replace:: *PlatformIO Library Registry Crawler*
.. _library_config:
library.json
============
``library.json`` is a manifest file of development library.
``library.json`` is a manifest file of development library. It allows developers
to keep project in own structure and define:
Initially it was
developed for :ref:`librarymanager`, but later was accepted by worldwide embedded
community like a **standard library specification**.
* location of source code
* examples list
* compatible frameworks and platforms
* library dependencies
PlatformIO Library Crawler uses ``library.json`` manifest to extract
source code from developer's location and keeps cleaned library in own
Library Storage.
A data in ``library.json`` should be represented
in `JSON-style <http://en.wikipedia.org/wiki/JSON>`_ via
@ -166,6 +183,26 @@ A version of the current library source code.
:ref:`libjson_repository` field. In this case
|PIOAPICR| will use the *CVS*-revision from the latest commit.
Example with fixed release/tag on GitHub:
.. code-block:: javascript
"version": "1.0.0",
"downloadUrl": "https://github.com/foo/bar/archive/v1.0.0.tar.gz",
"include": "bar-1.0.0"
See more ``library.json`` :ref:`library_creating_examples`.
.. _libjson_url:
``url``
-------
*Optional* | Type: ``String`` | Max. Length: 255
Home page of library (if is different from :ref:`libjson_repository` url).
.. _libjson_include:
@ -217,6 +254,7 @@ Pattern Meaning
* - ``[!seq]``
- matches any character not in seq
See more ``library.json`` :ref:`library_creating_examples`.
.. _libjson_exclude:
@ -239,6 +277,12 @@ patterns.
A list with compatible frameworks. The available framework types are defined in
the :ref:`platforms` section.
If the library is compatible with the all frameworks, then you can use ``*``
symbol:
.. code-block:: javascript
"frameworks": "*"
.. _libjson_platforms:
@ -250,6 +294,13 @@ the :ref:`platforms` section.
A list with compatible platforms. The available platform types are
defined in :ref:`platforms` section.
If the library is compatible with the all platforms, then you can use ``*``
symbol:
.. code-block:: javascript
"platforms": "*"
.. _libjson_dependencies:
@ -289,6 +340,8 @@ Example:
]
See more ``library.json`` :ref:`library_creating_examples`.
.. _libjson_examples:
``examples``
@ -302,6 +355,6 @@ A list of example patterns. This field is predefined with default value:
.. code-block:: javascript
"examples": [
"[Ee]xamples/*/*.ini",
"[Ee]xamples/*/*.ino",
"[Ee]xamples/*/*.pde"
]

View File

@ -1,3 +1,14 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _library_creating:
.. |PIOAPICR| replace:: *PlatformIO Library Registry Crawler*
@ -15,7 +26,7 @@ Source Code Location
--------------------
There are a several ways how to share your library with the whole world
(see `examples <https://github.com/ivankravets/platformio-libmirror/tree/master/configs>`_).
(see `examples <https://github.com/platformio/platformio-libmirror/tree/master/configs>`_).
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`
@ -134,3 +145,13 @@ The registration requirements:
Now, you can :ref:`register <cmd_lib_register>` your library and allow others
to :ref:`install <cmd_lib_install>` it.
.. _library_creating_examples:
Examples
--------
* `GitHub + fixed release <http://platformio.org/#!/lib/show/552/ACNoblex>`_
* `Dependencies by author and framework <http://platformio.org/#!/lib/show/3/PID-AutoTune>`_
* `Multiple libraries in the one repository <https://github.com/jrowberg/i2cdevlib/tree/master/Arduino>`_

View File

@ -1,25 +1,26 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _librarymanager:
Library Manager
===============
..
*"The missing library manager for development platforms"* [#]_
*PlatformIO Library Manager* allows you to organize external embedded libraries.
You can search for new libraries via :ref:`Command Line interface <cmd_lib_search>`
or `Web 2.0 Library Search <http://platformio.org/#!/lib>`_.
You can search for new libraries via
* :ref:`Command Line interface <cmd_lib_search>`
* `Web 2.0 Library Search <http://platformio.org/#!/lib>`_
You don't need to bother for finding the latest version of library. Due to
:ref:`cmd_lib_update` command you will have up-to-date external libraries.
.. toctree::
:maxdepth: 2
config
creating
User Guide <../userguide/lib/index.rst>
.. [#] Inspired by `npm <https://www.npmjs.org>`_ and `bower
<http://bower.io>`_ package managers for web.
.. image:: ../_static/platformio-demo-lib.gif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,115 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _atmelavr_upload_via_programmer:
Upload using Programmer
-----------------------
To upload firmware using programmer you need to use ``program`` target instead
``upload`` for :option:`platformio run --target` command. For example,
``platformio run -t program``.
Configuration for the programmers:
* AVR ISP
.. code-block:: ini
[env:myenv]
platform = atmelavr
framework = arduino
upload_protocol = stk500v1
upload_flags = -P$UPLOAD_PORT
# edit this line with valid upload port
upload_port = SERIAL_PORT_HERE
* AVRISP mkII
.. code-block:: ini
[env:myenv]
platform = atmelavr
framework = arduino
upload_protocol = stk500v2
upload_flags = -Pusb
* USBtinyISP
.. code-block:: ini
[env:myenv]
platform = atmelavr
framework = arduino
upload_protocol = usbtiny
* USBasp
.. code-block:: ini
[env:myenv]
platform = atmelavr
framework = arduino
upload_protocol = usbasp
upload_flags = -Pusb
* Parallel Programmer
.. code-block:: ini
[env:myenv]
platform = atmelavr
framework = arduino
upload_protocol = dapa
upload_flags = -F
* Arduino as ISP
.. code-block:: ini
[env:myenv]
platform = atmelavr
framework = arduino
upload_protocol = stk500v1
upload_flags = -P$UPLOAD_PORT -b$UPLOAD_SPEED
# edit these lines
upload_port = SERIAL_PORT_HERE
upload_speed = 19200
Articles
--------
* Dec 01, 2015 - **Michał Seroczyński** - `Push Notification from Arduino Yún with motion sensor <http://www.ches.pl/push-from-yun-1/>`_
* Nov 29, 2015 - **Keith Hughes** - `Using PlatformIO for Embedded Projects <http://smartspacestuff.blogspot.com/2015/11/using-platformio-for-embedded-projects.html>`_
* Nov 22, 2015 - **Michał Seroczyński** - `Using PlatformIO to get started with Arduino in CLion IDE <http://www.ches.pl/using-platformio-get-started-arduino-clion-ide/>`_
* Nov 09, 2015 - **ÁLvaro García Gómez** - `Programar con Arduino "The good way" (Programming with Arduino "The good way", Spanish) <http://congdegnu.es/2015/11/09/programar-con-arduino-the-good-way/>`_
* Oct 18, 2015 - **Nico Coetzee** - `First Arduino I2C Experience with PlatformIO <https://electronicventurer.wordpress.com/2015/10/18/first-arduino-i2c-experience/>`_
* Oct 10, 2015 - **Floyd Hilton** - `Programming Arduino with Atom <http://floydhilton.com/software/career/2015/10/10/Arduino_with_Atom.html>`_
* June 20, 2014 - **Ivan Kravets, Ph.D.** - `Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO <http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using-eclipse-ideplatformio>`_
See more :ref:`articles`.
Examples
--------
All project examples are located in PlatformIO repository
`Examples for Atmel AVR platform <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino>`_.
* `Wiring Blink <https://github.com/platformio/platformio/tree/develop/examples/wiring-blink>`_
* `Arduino with external libraries <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/arduino-external-libs>`_
* `Arduino with internal libraries <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/arduino-internal-libs>`_
* `Project uses source file name for "src" directory (Arduino project structure) <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/arduino-own-src_dir>`_
* `Atmel AVR Native blink <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/atmelavr-native-blink>`_
* `Digitstump Mouse <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/digitstump-mouse>`_
* `Engduino magnetometer <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/engduino-magnetometer>`_
* `PanStamp blink <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/panstamp-blink>`_

178
docs/platforms/atmelsam.rst Normal file
View File

@ -0,0 +1,178 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _platform_atmelsam:
Platform ``atmelsam``
=====================
Atmel | SMART offers Flash- based ARM products based on the ARM Cortex-M0+, Cortex-M3 and Cortex-M4 architectures, ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix.
For more detailed information please visit `vendor site <http://www.atmel.com/products/microcontrollers/arm/default.aspx>`_.
.. contents::
Packages
--------
.. list-table::
:header-rows: 1
* - Name
- Contents
* - ``framework-arduinosam``
- `Arduino Wiring-based Framework (SAM Core, 1.6) <http://arduino.cc/en/Reference/HomePage>`_
* - ``ldscripts``
- `Linker Scripts <https://sourceware.org/binutils/docs/ld/Scripts.html>`_
* - ``toolchain-gccarmnoneeabi``
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
* - ``tool-bossac``
- `BOSSA CLI <https://sourceforge.net/projects/b-o-s-s-a/>`_
.. warning::
**Linux Users:** Don't forget to install "udev" rules file
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
**Windows Users:** Please check that you have correctly installed USB driver
from board manufacturer
Frameworks
----------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`framework_arduino`
- Arduino Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
* For more detailed ``board`` information please scroll tables below by
horizontal.
Arduino
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``due``
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
- AT91SAM3X8E
- 84 MHz
- 512 Kb
- 32 Kb
* - ``dueUSB``
- `Arduino Due (USB Native Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
- AT91SAM3X8E
- 84 MHz
- 512 Kb
- 32 Kb
Atmel
~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``samd21_xpro``
- `Atmel SAMD21-XPRO <https://developer.mbed.org/platforms/SAMD21-XPRO/>`_
- ATSAMD21J18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``saml21_xpro_b``
- `Atmel SAML21-XPRO-B <https://developer.mbed.org/platforms/SAML21-XPRO/>`_
- ATSAML21J18B
- 48 MHz
- 256 Kb
- 32 Kb
* - ``samr21_xpro``
- `Atmel ATSAMR21-XPRO <https://developer.mbed.org/platforms/SAMR21-XPRO/>`_
- ATSAMR21G18A
- 48 MHz
- 256 Kb
- 32 Kb
Digistump
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``digix``
- `Digistump DigiX <http://digistump.com/products/50>`_
- AT91SAM3X8E
- 84 MHz
- 512 Kb
- 28 Kb
SainSmart
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``sainSmartDue``
- `SainSmart Due (Programming Port) <http://www.sainsmart.com/arduino/control-boards/sainsmart-due-atmel-sam3x8e-arm-cortex-m3-board-black.html>`_
- AT91SAM3X8E
- 84 MHz
- 512 Kb
- 32 Kb
* - ``sainSmartDueUSB``
- `SainSmart Due (USB Native Port) <http://www.sainsmart.com/arduino/control-boards/sainsmart-due-atmel-sam3x8e-arm-cortex-m3-board-black.html>`_
- AT91SAM3X8E
- 84 MHz
- 512 Kb
- 32 Kb

View File

@ -0,0 +1,73 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _board_creating:
Custom Board
============
*PlatformIO* has pre-built settings for the most popular embedded boards. This
list is available:
* `Embedded Boards Explorer <http://platformio.org/#!/boards>`_ (Web)
* :ref:`cmd_boards` (CLI command)
Nevertheless, PlatformIO allows to create own board or override existing
board's settings. All data is declared using
`JSON-style <http://en.wikipedia.org/wiki/JSON>`_ via
`associative array <http://en.wikipedia.org/wiki/Associative_array>`_
(name/value pairs).
.. contents::
JSON Structure
--------------
The key fields:
* ``build`` data will be used by :ref:`Platforms <platforms>` and
:ref:`frameworks` builders
* ``frameworks`` is the list with supported :ref:`frameworks`
* ``platform`` main type of :ref:`Platforms <platforms>`
* ``upload`` upload settings which depend on the ``platform``
.. code-block:: json
{
"myboard": {
"build": {},
"frameworks": ["%LIST_WITH_SUPPORTED_FRAMEWORKS%"],
"name": "My test board",
"platform": "%PLATFORM_TYPE_HERE%",
"upload": {},
"url": "http://example.com",
"vendor": "My Company Ltd."
}
}
Installation
------------
1. Create ``boards`` directory in :ref:`projectconf_pio_home_dir` if it
doesn't exist.
2. Create ``my_own_boards.json`` file and put to ``boards`` directory.
3. Search available boards via :ref:`cmd_boards` command. You should see
``myboard`` board.
Now, you can use ``myboard`` for the :ref:`projectconf_env_board` option in
:ref:`projectconf`.
Examples
--------
For the examples, please look into built-in ``*.json`` files with boards
settings: https://github.com/platformio/platformio/tree/develop/platformio/boards.

View File

@ -0,0 +1,458 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _platform_creating:
Custom Platform
===============
*PlatformIO* was developed like a tool which would build the same source code
for the different development platforms via single command :ref:`cmd_run`
without any dependent software or requirements.
For this purpose *PlatformIO* uses own pre-configured platforms data:
build scripts, toolchains, the settings for the most popular embedded
boards and etc. These data are pre-built and packaged to the different
``packages``. It allows *PlatformIO* to have multiple development platforms
which can use the same packages(toolchains, frameworks), but have
different/own build scripts, uploader and etc.
.. note::
If you want to change some build flags for the existing
:ref:`Platforms <platforms>`, you don't need to create (or duplicate) own
development platforms! Please use :ref:`projectconf_build_flags` option.
**Step-by-Step Manual**
1. Chose :ref:`platform_creating_packages` for platform
2. Create :ref:`platform_creating_manifest_file`
3. Create :ref:`platform_creating_build_script`
4. Finish with the :ref:`platform_creating_installation`.
.. contents::
.. _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
* - ``framework-arduinoavr``
- `Arduino Wiring-based Framework (AVR Core, 1.6) <http://arduino.cc/en/Reference/HomePage>`_
* - ``framework-arduinoespressif``
- `Arduino Wiring-based Framework (ESP8266 Core) <https://github.com/esp8266/Arduino>`_
* - ``framework-arduinomsp430``
- `Arduino Wiring-based Framework (MSP430 Core) <http://arduino.cc/en/Reference/HomePage>`_
* - ``framework-arduinonordicnrf51``
- `Arduino Wiring-based Framework (RFduino Core) <https://github.com/RFduino/RFduino>`_
* - ``framework-arduinosam``
- `Arduino Wiring-based Framework (SAM Core, 1.6) <http://arduino.cc/en/Reference/HomePage>`_
* - ``framework-arduinoteensy``
- `Arduino Wiring-based Framework <http://arduino.cc/en/Reference/HomePage>`_
* - ``framework-cmsis``
- `Vendor-independent hardware abstraction layer for the Cortex-M processor series <http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php>`_
* - ``framework-energiamsp430``
- `Energia Wiring-based Framework (MSP430 Core) <http://energia.nu/reference/>`_
* - ``framework-energiativa``
- `Energia Wiring-based Framework (LM4F Core) <http://energia.nu/reference/>`_
* - ``framework-libopencm3``
- `libOpenCM3 Framework <http://www.libopencm3.org/>`_
* - ``framework-mbed``
- `mbed Framework <http://mbed.org>`_
* - ``framework-spl``
- `Standard Peripheral Library for STM32 MCUs <http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890>`_
* - ``framework-wiringpi``
- `GPIO Interface library for the Raspberry Pi <http://wiringpi.com>`_
* - ``ldscripts``
- `Linker Scripts <https://sourceware.org/binutils/docs/ld/Scripts.html>`_
* - ``sdk-esp8266``
- `ESP8266 SDK <http://bbs.espressif.com>`_
* - ``tool-avrdude``
- `AVRDUDE <http://www.nongnu.org/avrdude/>`_
* - ``tool-bossac``
- `BOSSA CLI <https://sourceforge.net/projects/b-o-s-s-a/>`_
* - ``tool-esptool``
- `esptool-ck <https://github.com/igrr/esptool-ck>`_
* - ``tool-lm4flash``
- `Flash Programmer <http://www.ti.com/tool/lmflashprogrammer>`_
* - ``tool-micronucleus``
- `Micronucleus <https://github.com/micronucleus/micronucleus>`_
* - ``tool-mkspiffs``
- `Tool to build and unpack SPIFFS images <https://github.com/igrr/mkspiffs>`_
* - ``tool-mspdebug``
- `MSPDebug <http://mspdebug.sourceforge.net/>`_
* - ``tool-rfdloader``
- `rfdloader <https://github.com/RFduino/RFduino>`_
* - ``tool-scons``
- `SCons software construction tool <http://www.scons.org>`_
* - ``tool-stlink``
- `ST-Link <https://github.com/texane/stlink>`_
* - ``tool-teensy``
- `Teensy Loader <https://www.pjrc.com/teensy/loader.html>`_
* - ``toolchain-atmelavr``
- `avr-gcc <https://gcc.gnu.org/wiki/avr-gcc>`_, `GDB <http://www.gnu.org/software/gdb/>`_, `AVaRICE <http://avarice.sourceforge.net/>`_, `SimulAVR <http://www.nongnu.org/simulavr/>`_
* - ``toolchain-gccarmlinuxgnueabi``
- `GCC for Linux ARM GNU EABI <https://gcc.gnu.org>`_, `GDB <http://www.gnu.org/software/gdb/>`_
* - ``toolchain-gccarmnoneeabi``
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
* - ``toolchain-gcclinux32``
- `GCC for Linux i686 <https://gcc.gnu.org>`_
* - ``toolchain-gcclinux64``
- `GCC for Linux x86_64 <https://gcc.gnu.org>`_
* - ``toolchain-gccmingw32``
- `MinGW <http://www.mingw.org>`_
* - ``toolchain-timsp430``
- `msp-gcc <http://sourceforge.net/projects/mspgcc/>`_, `GDB <http://www.gnu.org/software/gdb/>`_
* - ``toolchain-xtensa``
- `xtensa-gcc <https://github.com/jcmvbkbc/gcc-xtensa>`_, `GDB <http://www.gnu.org/software/gdb/>`_
.. _platform_creating_manifest_file:
Manifest File
-------------
A platform manifest file is a `Python <https://www.python.org>`_ script with the
next requirements:
1. The file should have ``.py`` extension
2. The **name of the file** is the **platform name** (lowercase)
3. The source code of this file should contain a ``class`` which describes your
own platform. The name of the ``class`` should start with your
**platform name** (the first letter should be capitalized) + ``Platform``
ending. This ``class`` should be derived from *PlatformIO* ``BasePlatform``
class.
.. warning::
If you are new to *Python* language, please read:
* `Style Guide for Python Code <https://www.python.org/dev/peps/pep-0008>`_.
* A hash sign (#) that is not inside a string literal begins a comment.
All characters after the # and up to the physical line end are part
of the comment and the *Python* interpreter ignores them.
Example of the **test** platform (``test.py``):
.. code-block:: python
import os
from platformio.platforms.base import BasePlatform
class TestPlatform(BasePlatform):
# This is a description of your platform.
# Platformio uses it for the `platformio search / list` commands
"""
My Test platform - test.py
"""
PACKAGES = {
"toolchain-foo": {
# alias is used for quick access to package.
# For example,
# `> platformio install test --without-package=toolchain`
"alias": "toolchain",
# Flag which allows PlatformIO to install this package by
# default via `> platformio install test` command
"default": True
},
"tool-bar": {
"alias": "uploader",
"default": True
},
"framework-baz": {
"default": True
}
}
def get_build_script(self):
""" Returns a path to build script """
# You can return static path
#return "/path/to/test-builder.py"
# or detect dynamically if `test-builder.py` is located in the same
# folder with `test.py`
return os.path.join(
os.path.dirname(os.path.realpath(__file__)),
"test-builder.py"
)
.. _platform_creating_build_script:
Build Script
------------
Platform's build script is based on a next-generation build tool named
`SCons <http://www.scons.org>`_. PlatformIO has own built-in firmware builder
``env.BuildProgram`` with the nested libraries search. Please look into a
base template of ``test-builder.py``.
.. code-block:: python
"""
Build script for test.py
test-builder.py
"""
from os.path import join
from SCons.Script import AlwaysBuild, Builder, Default, DefaultEnvironment
env = DefaultEnvironment()
# A full list with the available variables
# http://www.scons.org/doc/production/HTML/scons-user.html#app-variables
env.Replace(
AR="ar",
AS="gcc",
CC="gcc",
CXX="g++",
OBJCOPY="objcopy",
RANLIB="ranlib",
ARFLAGS=["..."],
ASFLAGS=["flag1", "flag2", "flagN"],
CCFLAGS=["flag1", "flag2", "flagN"],
CXXFLAGS=["flag1", "flag2", "flagN"],
LINKFLAGS=["flag1", "flag2", "flagN"],
CPPDEFINES=["DEFINE_1", "DEFINE=2", "DEFINE_N"],
LIBS=["additional", "libs", "here"],
UPLOADER=join("$PIOPACKAGES_DIR", "tool-bar", "uploader"),
UPLOADCMD="$UPLOADER $SOURCES"
)
env.Append(
BUILDERS=dict(
ElfToBin=Builder(
action=" ".join([
"$OBJCOPY",
"-O",
"binary",
"$SOURCES",
"$TARGET"]),
suffix=".bin"
)
)
)
# The source code of "platformio-build-tool" is here
# https://github.com/platformio/platformio/blob/develop/platformio/builder/tools/platformio.py
#
# Target: Build executable and linkable firmware
#
target_elf = env.BuildProgram()
#
# Target: Build the .bin file
#
target_bin = env.ElfToBin(join("$BUILD_DIR", "firmware"), target_elf)
#
# Target: Upload firmware
#
upload = env.Alias(["upload"], target_bin, "$UPLOADCMD")
AlwaysBuild(upload)
#
# Target: Define targets
#
Default(target_bin)
Please look into the examples with built-in scripts for the popular
platforms:
* `baseavr.py <https://github.com/platformio/platformio/blob/develop/platformio/builder/scripts/baseavr.py>`_
* `basearm.py <https://github.com/platformio/platformio/blob/develop/platformio/builder/scripts/basearm.py>`_
* `atmelavr.py <https://github.com/platformio/platformio/blob/develop/platformio/builder/scripts/atmelavr.py>`_
* `timsp430.py <https://github.com/platformio/platformio/blob/develop/platformio/builder/scripts/timsp430.py>`_
* `ststm32.py <https://github.com/platformio/platformio/blob/develop/platformio/builder/scripts/ststm32.py>`_
.. _platform_creating_installation:
Installation
------------
1. Create ``platforms`` directory in :ref:`projectconf_pio_home_dir` if it
doesn't exist.
2. Copy ``test.py`` and ``test-builder.py`` files to ``platforms`` directory.
3. Search available platforms via :ref:`cmd_platforms_search` command. You should see
``test`` platform.
4. Install ``test`` platform via :ref:`cmd_platforms_install` command.
Now, you can use ``test`` for the :ref:`projectconf_env_platform` option in
:ref:`projectconf`.
Example
-------
Let's use the real example which was requested by our user in `issue 175 <https://github.com/platformio/platformio/issues/175>`_. Need to add support for uploading firmware using GDB to
:ref:`platform_ststm32`.
First of all, need to create new folder ``platforms`` in :ref:`projectconf_pio_home_dir`
and copy there two files:
1. Platform manifest file ``ststm32gdb.py`` with the next content:
.. code-block:: python
import os
from platformio.platforms.ststm32 import Ststm32Platform
class Ststm32gdbPlatform(Ststm32Platform):
"""
ST STM32 using GDB as uploader
http://www.st.com/web/en/catalog/mmc/FM141/SC1169?sc=stm32
"""
def get_build_script(self):
return os.path.join(
os.path.dirname(os.path.realpath(__file__)),
"ststm32gdb-builder.py"
)
2. Build script file ``ststm32gdb-builder.py`` with the next content:
.. code-block:: python
"""
Builder for ST STM32 Series ARM microcontrollers with GDB upload.
"""
from os.path import join
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default,
DefaultEnvironment, SConscript)
env = DefaultEnvironment()
SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "basearm.py")))
env.Replace(
UPLOADER=join(
"$PIOPACKAGES_DIR", "toolchain-gccarmnoneeabi",
"bin", "arm-none-eabi-gdb"
),
UPLOADERFLAGS=[
join("$BUILD_DIR", "firmware.elf"),
"-batch",
"-x", join("$PROJECT_DIR", "upload.gdb")
],
UPLOADCMD="$UPLOADER $UPLOADERFLAGS"
)
env.Append(
CPPDEFINES=[
"${BOARD_OPTIONS['build']['variant'].upper()}"
],
LINKFLAGS=[
"-nostartfiles",
"-nostdlib"
]
)
#
# Target: Build executable and linkable firmware
#
target_elf = env.BuildProgram()
#
# Target: Build the .bin file
#
if "uploadlazy" in COMMAND_LINE_TARGETS:
target_firm = join("$BUILD_DIR", "firmware.bin")
else:
target_firm = env.ElfToBin(join("$BUILD_DIR", "firmware"), target_elf)
#
# Target: Print binary size
#
target_size = env.Alias("size", target_elf, "$SIZEPRINTCMD")
AlwaysBuild(target_size)
#
# Target: Upload by default .bin file
#
upload = env.Alias(
["upload", "uploadlazy"], target_firm, "$UPLOADCMD")
AlwaysBuild(upload)
#
# Target: Define targets
#
Default([target_firm, target_size])
Now, we should see ``ststm32gdb`` platform using :ref:`cmd_platforms_search` command output
and can install it via :ref:`platformio platforms install ststm32gdb <cmd_platforms_install>` command.

View File

@ -0,0 +1,259 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _platform_espressif:
Platform ``espressif``
======================
Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.
For more detailed information please visit `vendor site <https://espressif.com/>`_.
.. contents::
Packages
--------
.. list-table::
:header-rows: 1
* - Name
- Contents
* - ``toolchain-xtensa``
- `xtensa-gcc <https://github.com/jcmvbkbc/gcc-xtensa>`_, `GDB <http://www.gnu.org/software/gdb/>`_
* - ``tool-esptool``
- `esptool-ck <https://github.com/igrr/esptool-ck>`_
* - ``tool-mkspiffs``
- `Tool to build and unpack SPIFFS images <https://github.com/igrr/mkspiffs>`_
* - ``framework-arduinoespressif``
- `Arduino Wiring-based Framework (ESP8266 Core) <https://github.com/esp8266/Arduino>`_
* - ``ldscripts``
- `Linker Scripts <https://sourceware.org/binutils/docs/ld/Scripts.html>`_
* - ``sdk-esp8266``
- `ESP8266 SDK <http://bbs.espressif.com>`_
.. warning::
**Linux Users:** Don't forget to install "udev" rules file
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
**Windows Users:** Please check that you have correctly installed USB driver
from board manufacturer
Frameworks
----------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`framework_arduino`
- Arduino Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
* For more detailed ``board`` information please scroll tables below by
horizontal.
Adafruit
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``huzzah``
- `Adafruit HUZZAH ESP8266 <https://www.adafruit.com/products/2471>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
ESPino
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``espino``
- `ESPino <http://www.espino.io>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
Espressif
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``esp01``
- `Espressif Generic ESP8266 ESP-01 512k <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 512 Kb
- 80 Kb
* - ``esp01_1m``
- `Espressif Generic ESP8266 ESP-01 1M <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``esp12e``
- `Espressif ESP8266 ESP-12E <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
NodeMCU
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``nodemcu``
- `NodeMCU 0.9 & 1.0 <http://www.nodemcu.com/>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
Olimex
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``modwifi``
- `Olimex MOD-WIFI-ESP8266(-DEV) <https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware>`_
- ESP8266
- 80 MHz
- 2048 Kb
- 80 Kb
SparkFun
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``thing``
- `SparkFun ESP8266 Thing <https://www.sparkfun.com/products/13231>`_
- ESP8266
- 80 MHz
- 512 Kb
- 80 Kb
SweetPea
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``esp210``
- `SweetPea ESP-210 <http://wiki.sweetpeas.se/index.php?title=ESP-210>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
WeMos
~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``d1``
- `WeMos D1 <http://www.wemos.cc/wiki/doku.php?id=en:d1>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
* - ``d1_mini``
- `WeMos D1 mini <http://www.wemos.cc/wiki/doku.php?id=en:d1_mini>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
.. include:: espressif_extra.rst

View File

@ -0,0 +1,179 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Custom CPU Frequency or Upload Speed
------------------------------------
See :ref:`projectconf_board_f_cpu` and :ref:`projectconf_upload_speed` options
from :ref:`projectconf`
.. code-block:: ini
[env:myenv]
# set frequency to 40MHz
board_f_cpu = 40000000L
upload_speed = 9600
.. _platform_espressif_customflash:
Custom Flash Size
-----------------
.. warning::
Please make sure to read `ESP8266 Flash layout <https://github.com/esp8266/Arduino/blob/master/doc/filesystem.md#flash-layout>`_
information first.
The list with preconfigured LD scripts is located in public repository
`platformio-pkg-ldscripts <https://github.com/platformio/platformio-pkg-ldscripts>`_.
* ``esp8266.flash.512k0.ld`` 512K (no SPIFFS)
* ``esp8266.flash.512k64.ld`` 512K (64K SPIFFS)
* ``esp8266.flash.1m64.ld`` 1M (64K SPIFFS)
* ``esp8266.flash.1m128.ld`` 1M (128K SPIFFS)
* ``esp8266.flash.1m256.ld`` 1M (256K SPIFFS)
* ``esp8266.flash.1m512.ld`` 1M (512K SPIFFS)
* ``esp8266.flash.2m.ld`` 2M (1M SPIFFS)
* ``esp8266.flash.4m1m.ld`` 4M (1M SPIFFS)
* ``esp8266.flash.4m.ld`` 4M (3M SPIFFS)
To override default LD script please use :ref:`projectconf_build_flags` from
:ref:`projectconf`.
.. code-block:: ini
[env:myenv]
build_flags = -Wl,-Tesp8266.flash.4m.ld
.. _platform_espressif_uploadfs:
Uploading files to file system SPIFFS
-------------------------------------
.. warning::
Please make sure to read `ESP8266 Flash layout <https://github.com/esp8266/Arduino/blob/master/doc/filesystem.md#flash-layout>`_
information first.
1. Create :ref:`projectconf_pio_data_dir` and put files here
2. Run target ``uploadfs`` via :option:`platformio run --target` command.
To upload SPIFFS image using OTA update please specify ``upload_port`` /
``--upload-port`` as IP address or DNS name (``*.local``). For the details
please follow to :ref:`platform_espressif_ota`.
By default, will be used default LD Script for the board where is specified
SPIFFS offsets (start, end, page, block). You can override it using
:ref:`platform_espressif_customflash`.
Active discussion is located in `issue #382 <https://github.com/platformio/platformio/issues/382>`_.
.. _platform_espressif_ota:
Over-the-Air (OTA) update
-------------------------
Firstly, please read `What is OTA? How to use it? <https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/ota_updates.md>`_
There are 2 options:
* Directly specify :option:`platformio run --upload-port` in command line
.. code-block:: bash
platformio run --target upload --upload-port IP_ADDRESS_HERE or DNS_NAME.local
* Specify ``upload_port`` option in :ref:`projectconf`
.. code-block:: ini
[env:myenv]
...
upload_port = IP_ADDRESS_HERE or DNS_NAME.local
For example,
* ``platformio run -t upload --upload-port 192.168.0.255``
* ``platformio run -t upload --upload-port myesp8266.local``
Authentication and upload options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can pass additional options/flags to OTA uploader using
``upload_flags`` option in :ref:`projectconf`
.. code-block:: ini
[env:myenv]
upload_flags = --port=8266
Available flags
* ``--port=ESP_PORT`` ESP8266 ota Port. Default 8266
* ``--auth=AUTH`` Set authentication password
* ``--spiffs`` Use this option to transmit a SPIFFS image and do not flash
the module
For the full list with available options please run
.. code-block:: bash
~/.platformio/packages/framework-arduinoespressif/tools/espota.py -h
Usage: espota.py [options]
Transmit image over the air to the esp8266 module with OTA support.
Options:
-h, --help show this help message and exit
Destination:
-i ESP_IP, --ip=ESP_IP
ESP8266 IP Address.
-p ESP_PORT, --port=ESP_PORT
ESP8266 ota Port. Default 8266
Authentication:
-a AUTH, --auth=AUTH
Set authentication password.
Image:
-f FILE, --file=FILE
Image file.
-s, --spiffs Use this option to transmit a SPIFFS image and do not
flash the module.
Output:
-d, --debug Show debug output. And override loglevel with debug.
-r, --progress Show progress output. Does not work for ArduinoIDE
Demo
~~~~
.. image:: ../_static/platformio-demo-ota-esp8266.jpg
:target: https://www.youtube.com/watch?v=lXchL3hpDO4
Articles
--------
* Dec 22, 2015 - **Jan Penninkhof** - `Over-the-Air ESP8266 programming using PlatformIO <http://www.penninkhof.com/2015/12/1610-over-the-air-esp8266-programming-using-platformio/>`_
* Dec 01, 2015 - **Tateno Yuichi** - `ESP8266 を CUI で開発する (Develop a ESP8266 in CUI, Japanese) <http://jaywiggins.com/platformio/arduino/avr/es8266/2015/09/30/platformio-investigation/>`_
See more :ref:`articles`.
Examples
--------
All project examples are located in PlatformIO repository
`Examples for Espressif platform <https://github.com/platformio/platformio/tree/develop/examples/espressif>`_.
* `Native SDK <https://github.com/platformio/platformio/tree/develop/examples/espressif/esp8266-native>`_
* `WebServer <https://github.com/platformio/platformio/tree/develop/examples/espressif/esp8266-webserver>`_
* `WiFiScan <https://github.com/platformio/platformio/tree/develop/examples/espressif/esp8266-wifiscan>`_

View File

@ -0,0 +1,126 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _platform_freescalekinetis:
Platform ``freescalekinetis``
=============================
Freescale Kinetis Microcontrollers is family of multiple hardware- and software-compatible ARM Cortex-M0+, Cortex-M4 and Cortex-M7-based MCU series. Kinetis MCUs offer exceptional low-power performance, scalability and feature integration.
For more detailed information please visit `vendor site <http://www.freescale.com/webapp/sps/site/homepage.jsp?code=KINETIS>`_.
.. contents::
Packages
--------
.. list-table::
:header-rows: 1
* - Name
- Contents
* - ``framework-mbed``
- `mbed Framework <http://mbed.org>`_
* - ``toolchain-gccarmnoneeabi``
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
.. warning::
**Linux Users:** Don't forget to install "udev" rules file
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
**Windows Users:** Please check that you have correctly installed USB driver
from board manufacturer
Frameworks
----------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`framework_mbed`
- The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
* For more detailed ``board`` information please scroll tables below by
horizontal.
Freescale
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``IBMEthernetKit``
- `Ethernet IoT Starter Kit <http://developer.mbed.org/platforms/IBMEthernetKit/>`_
- MK64FN1M0VLL12
- 120 MHz
- 1024 Kb
- 256 Kb
* - ``frdm_k20d50m``
- `Freescale Kinetis FRDM-K20D50M <https://developer.mbed.org/platforms/FRDM-K20D50M/>`_
- MK20DX128VLH5
- 48 MHz
- 128 Kb
- 16 Kb
* - ``frdm_k22f``
- `Freescale Kinetis FRDM-K22F <https://developer.mbed.org/platforms/FRDM-K22F/>`_
- MK22FN512VLH12
- 120 MHz
- 512 Kb
- 128 Kb
* - ``frdm_k64f``
- `Freescale Kinetis FRDM-K64F <https://developer.mbed.org/platforms/FRDM-K64F/>`_
- MK64FN1M0VLL12
- 120 MHz
- 1024 Kb
- 256 Kb
* - ``frdm_kl05z``
- `Freescale Kinetis FRDM-KL05Z <https://developer.mbed.org/platforms/FRDM-KL05Z/>`_
- MKL05Z32VFM4
- 48 MHz
- 32 Kb
- 4 Kb
* - ``frdm_kl25z``
- `Freescale Kinetis FRDM-KL25Z <https://developer.mbed.org/platforms/KL25Z/>`_
- MKL25Z128VLK4
- 48 MHz
- 128 Kb
- 16 Kb
* - ``frdm_kl46z``
- `Freescale Kinetis FRDM-KL46Z <https://developer.mbed.org/platforms/FRDM-KL46Z/>`_
- MKL46Z256VLL4
- 48 MHz
- 256 Kb
- 32 Kb

View File

@ -1,19 +1,62 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _platforms:
Platforms & Embedded Boards
===========================
*PlatformIO* has pre-built different development platforms for popular OS
(*Mac OS X, Linux (+ARMv6) and Windows*). Each of them include compiler,
(*Mac OS X, Linux (+ARM) and Windows*). Each of them include compiler,
debugger, uploader (for embedded) and many other useful tools.
Also it has pre-configured settings for most popular **Embedded Platform
Boards**. You have no need to specify in :ref:`projectconf` type or frequency of
MCU, upload protocol or etc. Please use ``board`` option.
Embedded
--------
.. toctree::
:maxdepth: 2
atmelavr
atmelsam
espressif
freescalekinetis
nordicnrf51
nxplpc
siliconlabsefm32
ststm32
teensy
timsp430
titiva
Desktop
-------
.. toctree::
:maxdepth: 2
native
linux_arm
linux_i686
linux_x86_64
windows_x86
Custom Platform & Board
-----------------------
.. toctree::
:maxdepth: 2
creating_platform
creating_board

View File

@ -0,0 +1,89 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _platform_linux_arm:
Platform ``linux_arm``
======================
Linux ARM is a Unix-like and mostly POSIX-compliant computer operating system (OS) assembled under the model of free and open-source software development and distribution. Using host OS (Mac OS X, Linux ARM) you can build native application for Linux ARM platform.
For more detailed information please visit `vendor site <http://platformio.org/#!/platforms/linux_arm>`_.
.. contents::
Packages
--------
.. list-table::
:header-rows: 1
* - Name
- Contents
* - ``framework-wiringpi``
- `GPIO Interface library for the Raspberry Pi <http://wiringpi.com>`_
* - ``toolchain-gccarmlinuxgnueabi``
- `GCC for Linux ARM GNU EABI <https://gcc.gnu.org>`_, `GDB <http://www.gnu.org/software/gdb/>`_
Frameworks
----------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`framework_wiringpi`
- WiringPi is a GPIO access library written in C for the BCM2835 used in the Raspberry Pi. It's designed to be familiar to people who have used the Arduino "wiring" system.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
* For more detailed ``board`` information please scroll tables below by
horizontal.
Raspberry Pi
~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``raspberrypi_1b``
- `Raspberry Pi 1 Model B <https://www.raspberrypi.org>`_
- BCM2835
- 700 MHz
- 524288 Kb
- 524288 Kb
* - ``raspberrypi_2b``
- `Raspberry Pi 2 Model B <https://www.raspberrypi.org>`_
- BCM2836
- 900 MHz
- 1048576 Kb
- 1048576 Kb
* - ``raspberrypi_zero``
- `Raspberry Pi Zero <https://www.raspberrypi.org>`_
- BCM2835
- 1000 MHz
- 524288 Kb
- 524288 Kb

View File

@ -0,0 +1,32 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _platform_linux_i686:
Platform ``linux_i686``
=======================
Linux i686 (32-bit) is a Unix-like and mostly POSIX-compliant computer operating system (OS) assembled under the model of free and open-source software development and distribution. Using host OS (Mac OS X or Linux 32-bit) you can build native application for Linux i686 platform.
For more detailed information please visit `vendor site <http://platformio.org/#!/platforms/linux_i686>`_.
.. contents::
Packages
--------
.. list-table::
:header-rows: 1
* - Name
- Contents
* - ``toolchain-gcclinux32``
- `GCC for Linux i686 <https://gcc.gnu.org>`_

View File

@ -0,0 +1,32 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _platform_linux_x86_64:
Platform ``linux_x86_64``
=========================
Linux x86_64 (64-bit) is a Unix-like and mostly POSIX-compliant computer operating system (OS) assembled under the model of free and open-source software development and distribution. Using host OS (Mac OS X or Linux 64-bit) you can build native application for Linux x86_64 platform.
For more detailed information please visit `vendor site <http://platformio.org/#!/platforms/linux_i686>`_.
.. contents::
Packages
--------
.. list-table::
:header-rows: 1
* - Name
- Contents
* - ``toolchain-gcclinux64``
- `GCC for Linux x86_64 <https://gcc.gnu.org>`_

20
docs/platforms/native.rst Normal file
View File

@ -0,0 +1,20 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.. _platform_native:
Platform ``native``
===================
Native development platform is intended to be used for desktop OS. This platform uses built-in toolchains (preferable based on GCC), frameworks, libs from particular OS where it will be run.
For more detailed information please visit `vendor site <http://platformio.org/#!/platforms/native>`_.
.. contents::

Some files were not shown because too many files have changed in this diff Show More