Compare commits

..

199 Commits

Author SHA1 Message Date
Ivan Kravets
a87c0c8a7a Merge branch 'release/v2.11.2' 2016-08-02 21:25:50 +03:00
Ivan Kravets
f15bb1d545 Version bump to 2.11.2 (issues #500, #533, #732, #731, #737, #733, #438, #722, #52, #725) 2016-08-02 21:25:28 +03:00
Ivan Kravets
0b0064afd0 Update project configuration template 2016-08-02 21:21:08 +03:00
Ivan Kravets
4f2c207bb3 Use stable docs 2016-08-02 21:13:58 +03:00
Ivan Kravets
9d1128af51 Implement firmware merging with base firmware for Nordic nRF51 development platform // Resolve #500 , Resolve #533 2016-08-02 21:06:50 +03:00
Ivan Kravets
855c28d956 Fix firmware uploading to Atmel SAMD21-XPRO board using ARM mbed framework // Resolve #732 2016-08-02 21:02:39 +03:00
Valeriy Koval
a588e88fec Add firmware merging process for nordicnrf51 // Issue #533, #500 2016-08-02 17:32:48 +03:00
Valeriy Koval
ca2adbac13 Add OpenOCD as an alternative upload method for atmelsam platform // Issue #732 2016-08-02 14:07:12 +03:00
Ivan Kravets
df0373c4fa Sync flags parser with PlatformIO 3.0 branch // Resolve #738 2016-07-31 20:49:59 +03:00
Ivan Kravets
4c10c85937 Update `udev` rules for the new STM32F407DISCOVERY boards // Resolve #731 2016-07-31 20:21:55 +03:00
Ivan Kravets
e6d3f6bc3f Add explanation about "Failed to find MSBuild toolsets directory" 2016-07-30 14:10:15 +03:00
Ivan Kravets
e821a438fe Add support for local "--echo" for Serial Port Monitor // Resolve #733 2016-07-28 23:08:42 +03:00
Ivan Kravets
5c53b93a49 Update history 2016-07-28 18:49:22 +03:00
Ivan Kravets
c61ff611fb Improve support for Microchip PIC32 development platform and ChipKIT boards // Resolve #438 2016-07-28 18:47:20 +03:00
Ivan Kravets
ef9e1a0170 Fix Project Generator for ESP8266 and ARM mbed based projects 2016-07-28 18:44:29 +03:00
Valeriy Koval
98f8c6b25a Switch to gcc-built LwIP library for espressif platform 2016-07-27 14:59:00 +03:00
Ivan Kravets
262b12524b Push 2.11.2.dev2 2016-07-26 20:45:00 +03:00
Valeriy Koval
826b518048 Fix linking process for microchippic32 platfrom // Issue #438 2016-07-26 20:11:50 +03:00
Ivan Kravets
dfc594fc39 Improve Project Generator for PlatformIO IDE (fixes incorrect linter errors) 2016-07-23 23:11:50 +03:00
Ivan Kravets
0b862735b2 Push 2.11.2.dev0 2016-07-22 17:23:49 +03:00
Valeriy Koval
a1d9bc7cee Fix ElfToHex builder for microchippic32 2016-07-22 16:43:02 +03:00
Ivan Kravets
f16c05c429 Update docs for Teensy USB Features // Issue #722 2016-07-18 22:20:04 +03:00
Ivan Kravets
d7fa255166 Implement Teensy 2.0 USB functionality (HID, SERIAL_HID, DISK, MIDI, etc.) // Resolve #722 2016-07-18 21:06:45 +03:00
Ivan Kravets
60b3fef37a Add support for Pinoccio Scout board // Resolve #52 2016-07-18 20:39:04 +03:00
Ivan Kravets
7b8fb77250 Fix broken LD Script for Element14 chipKIT Pi board // Resolve #725 Resolve #726 2016-07-18 20:36:24 +03:00
Valeriy Koval
79a4a943dc Fix USB flags processing for teensy platform // Issue #722 2016-07-18 14:52:25 +03:00
Valeriy Koval
7ad8d08037 Add Pinoccio board // Issue #52 2016-07-18 12:14:48 +03:00
Ivan Kravets
4f57cc52d4 Minor improvements for CLion docs 2016-07-13 11:56:20 +03:00
Ivan Kravets
ba23475425 Improved docs for integration with CLion IDE 2016-07-13 11:49:52 +03:00
Ivan Kravets
f88466f3cd Merge branch 'release/v2.11.1' 2016-07-12 19:37:00 +03:00
Ivan Kravets
60be939a1f Merge branch 'release/v2.11.1' into develop 2016-07-12 19:37:00 +03:00
Ivan Kravets
2dd01247e1 Version bump to 2.11.1 (issues #472, #629, #710, #711, #712, #713, #718) 2016-07-12 19:34:14 +03:00
Ivan Kravets
77a4d3f773 Typo fix 2016-07-12 19:29:49 +03:00
Ivan Kravets
6cbd286836 Add "udev" rules for OpenOCD CMSIS-DAP adapters // Resolve #718 2016-07-12 19:26:33 +03:00
Ivan Kravets
b447e0aeab Update history 2016-07-11 23:08:08 +03:00
Ivan Kravets
b165c3f543 Ignore "[platformio]" section from custom project configuration CI 2016-07-11 22:40:37 +03:00
Ivan Kravets
d246ef9a2e Bump to 2.11.1b1 2016-07-11 21:04:40 +03:00
Ivan Kravets
8fd553fbfc Add Arduino M0 Pro and Tian to the examples // Issue #472 2016-07-11 19:52:47 +03:00
Ivan Kravets
f4cebfdbae Fix issue when pioenvs folder doesn't exist 2016-07-11 19:44:36 +03:00
Ivan Kravets
2fdc57055b Add more info about .pioenvs directory 2016-07-11 19:34:36 +03:00
Valeriy Koval
03b0b61aa1 Improve CMSIS selection for SAMD21 boards 2016-07-11 19:26:07 +03:00
Valeriy Koval
3984f80bae Improve support for SAMD21 based boards 2016-07-11 19:12:10 +03:00
Ivan Kravets
581fd356cd Add contributing guidelines 2016-07-10 19:15:55 +03:00
Ivan Kravets
0056651447 Remove debug info 2016-07-09 18:49:35 +03:00
Ivan Kravets
a0d9173b4f Add "Rebuild C/C++ Project Index" target to CLion and Eclipse IDEs 2016-07-09 18:44:45 +03:00
Ivan Kravets
f12c721f44 Iterating the dictionary directly instead of calling .keys() 2016-07-09 15:26:38 +03:00
Ivan Kravets
a73a710364 Iterating the dictionary directly instead of calling .keys() 2016-07-09 15:16:42 +03:00
Ivan Kravets
e33e950712 Add example dynamic build_flags 2016-07-09 14:38:49 +03:00
Ivan Kravets
f767feeef9 Add new articles 2016-07-07 00:26:33 +03:00
Ivan Kravets
fd924f29f3 Update examples 2016-07-06 15:28:39 +03:00
Ivan Kravets
7f47a2fd25 Update boards list 2016-07-06 13:27:36 +03:00
Valeriy Koval
8fe8318c77 Add Arduino M0 as a separate board 2016-07-06 11:02:36 +03:00
Ivan Kravets
ae81ec043d Update history 2016-07-05 17:40:00 +03:00
Valeriy Koval
9ba96d3673 Update microchippic32 platform and boards 2016-07-05 17:06:14 +03:00
Ivan Kravets
db204941ed Fix PyLint warning 2016-07-05 13:28:22 +03:00
Ivan Kravets
5cd3f9d84d Keep user changes for ".gitignore" file when re-generate/update project data 2016-07-05 13:18:31 +03:00
Ivan Kravets
9160e61ac7 Documented uploading of EEPROM data 2016-07-05 12:34:37 +03:00
Ivan Kravets
63ae732e72 Push 2.11.1.dev1 2016-07-05 00:14:00 +03:00
Ivan Kravets
ac9c3f88f9 Automatically install dependent upload tools // Issue #472 2016-07-05 00:11:48 +03:00
Ivan Kravets
52f1502051 Split source files to HEADERS and SOURCES when generate project for Qt Creator IDE // Resolve #713 2016-07-04 23:42:19 +03:00
Ivan Kravets
e8acc9ca39 Improve project generator for CLion IDE 2016-07-04 23:30:34 +03:00
Ivan Kravets
935f7cd5c3 Fix missing trailing `\` for the source files list when generate project for Qt Creator IDE // Resolve #711 2016-07-04 20:36:02 +03:00
Ivan Kravets
e8290054c2 * Fix missed `--boot` flag for the firmware uploader for ATSAM3X8E Cortex-M3 MCU based boards (Arduino Due, etc) // Resolve #710 2016-07-04 20:35:29 +03:00
Valeriy Koval
2c7c74743d Initial support for Arduino M0/Tian boards // Issue #472 2016-07-04 19:28:02 +03:00
Valeriy Koval
4dd90d5493 Update project template for Qt Creator // Issue #711 2016-07-04 18:01:49 +03:00
Valeriy Koval
241ad8174f Fix missed --boot flag for sam3x uploader // Issue # 710 2016-07-04 13:40:43 +03:00
Ivan Kravets
98f5f73a41 Auto-remove project cache when PlatformIO is upgraded 2016-06-29 13:17:06 +03:00
Ivan Kravets
62ad72fb11 Merge branch 'release/v2.11.0' 2016-06-28 18:04:20 +03:00
Ivan Kravets
4552931b95 Merge branch 'release/v2.11.0' into develop 2016-06-28 18:04:20 +03:00
Ivan Kravets
39f9789fa1 Version bump to 2.11.0 (issues #472, #520, #614, #620, #685, #698, #699) 2016-06-28 18:04:08 +03:00
Ivan Kravets
8d7ff7f37e Update history 2016-06-28 18:01:08 +03:00
Valeriy Koval
59606410f4 Update espressif platform according to the new framework version 2016-06-28 14:10:18 +03:00
Valeriy Koval
486529b112 Add initial support for Arduino M0 Pro board // Issue #472 2016-06-28 11:27:49 +03:00
Ivan Kravets
b16938937b Merge pull request #706 from jphollanti/doc_updates
Doc updates
2016-06-26 21:43:22 +03:00
jphollanti
2ba3603a3d add command example to create library examples 2016-06-26 11:29:46 +03:00
jphollanti
f6b9fd02b2 Added mention about building docs to README.rst 2016-06-26 11:19:13 +03:00
jphollanti
85becf861f Add a mention about library managers 24 hour update cycle 2016-06-26 11:12:02 +03:00
Ivan Kravets
1d919e5874 New articles 2016-06-23 20:21:48 +03:00
Ivan Kravets
1089c55b26 Update history 2016-06-23 17:34:00 +03:00
Valeriy Koval
51dd86e6da Add new SAMD21 boards // Issue #520, #620 2016-06-21 15:03:09 +03:00
Ivan Kravets
748437ef7a Use env.Flatten to manipulate with CPPDEFINES 2016-06-18 23:37:58 +03:00
Ivan Kravets
d219999892 Update name of the OpenEnergyMonitor board // Resolve #699 2016-06-18 13:26:04 +03:00
Ivan Kravets
53bd1df8e5 Fix PyLint warning 2016-06-18 01:15:15 +03:00
Ivan Kravets
2b88ef134b Remove duplicated flags // Issue #698 2016-06-18 00:56:04 +03:00
Ivan Kravets
2eca835ec7 Disable dependancy info 2016-06-18 00:53:23 +03:00
Ivan Kravets
8d94a62b9c Revert back previous LINKFLAGS 2016-06-18 00:52:46 +03:00
Ivan Kravets
4035b9ac6c Better removing unnecessary flags using `build_unflags` option // Resolve #698 2016-06-18 00:38:00 +03:00
Valerii Koval
31a110c37f Fix unnecessary uppercase for target includes 2016-06-15 20:55:45 +03:00
Ivan Kravets
47c238b1eb Fix issue with `platformio init --ide` command for Python 2.6 2016-06-15 19:30:37 +03:00
Ivan Kravets
72c4db25f0 Merge branch 'release/v2.10.3' into develop 2016-06-15 18:46:57 +03:00
Ivan Kravets
50f9186682 Merge branch 'release/v2.10.3' 2016-06-15 18:46:56 +03:00
Ivan Kravets
2cd22f725e Version bump to 2.10.3 2016-06-15 18:46:41 +03:00
Ivan Kravets
1cab0c168e Fix issue with appending PIO version to Build Defines 2016-06-15 18:42:56 +03:00
Ivan Kravets
5dac4e3af6 Add test for init --ide eclipse 2016-06-15 18:42:25 +03:00
Ivan Kravets
09032fb4a5 Merge branch 'release/v2.10.2' 2016-06-15 17:57:39 +03:00
Ivan Kravets
48a8086519 Merge branch 'release/v2.10.2' into develop 2016-06-15 17:57:39 +03:00
Ivan Kravets
c62a3f8ee6 Version bump to 2.10.2 (issues #695) 2016-06-15 17:57:28 +03:00
Ivan Kravets
682e435ded Fix firmware uploading to Arduino/Genuino 101 // Resolve #695 2016-06-15 16:02:04 +03:00
Ivan Kravets
cdcf075635 Use $PLATFORM from build environment instead from the board config 2016-06-15 14:56:31 +03:00
Ivan Kravets
7e027db02b Update Intel ARC32 Arduino framework to v1.0.6 // Issue #695 2016-06-15 14:52:11 +03:00
Ivan Kravets
4abaa67580 Update Intel ARC32 Arduino framework to v1.0.6 2016-06-15 14:48:46 +03:00
Ivan Kravets
13d43425e5 Add support for ST Nucleo L031K6 board to ARM mbed framework 2016-06-15 14:48:27 +03:00
Valeriy Koval
0ba315243b Revert mcu option for genuino101 2016-06-15 14:45:08 +03:00
Valeriy Koval
9655ca229f Update intel_arc32 platform 2016-06-15 14:31:07 +03:00
Ivan Kravets
b842a1d9b1 Update HISTORY.rst 2016-06-15 13:18:29 +03:00
Ivan Kravets
2978133862 Fix upload size checker 2016-06-15 00:59:44 +03:00
Ivan Kravets
7422b99b42 Process "$BUILD_UNFLAGS" variable 2016-06-14 20:53:30 +03:00
Ivan Kravets
d04a7de26b Restore PIO macros if it was deleted by framework 2016-06-14 20:48:56 +03:00
Ivan Kravets
68d834fba0 Add support for ST Nucleo L031K6 board to ARM mbed framework 2016-06-14 19:59:17 +03:00
Ivan Kravets
64c9004036 Fix typo 2016-06-14 19:54:27 +03:00
Valeriy Koval
350fb885b8 Fix pylint error 2016-06-14 19:44:57 +03:00
Ivan Kravets
8d03f2dc80 Update history 2016-06-14 19:41:34 +03:00
Valeriy Koval
220dcd0f5c Improve linker flags handling for mbed 2016-06-14 19:29:54 +03:00
Ivan Kravets
3671d7549d Update examples 2016-06-14 18:08:35 +03:00
Valeriy Koval
a38910b381 Improve include selection for mbed boards with a custom vendor 2016-06-14 13:00:51 +03:00
Ivan Kravets
941b8e84f5 Merge branch 'release/v2.10.1' 2016-06-13 21:32:07 +03:00
Ivan Kravets
382c860d9b Merge branch 'release/v2.10.1' into develop 2016-06-13 21:32:07 +03:00
Ivan Kravets
3dd51a442d Re-submit a package to PyPI 2016-06-13 21:31:17 +03:00
Ivan Kravets
ed21e8c7b2 Merge branch 'release/v2.10.0' 2016-06-13 19:49:55 +03:00
Ivan Kravets
2b6ba32b2c Merge branch 'release/v2.10.0' into develop 2016-06-13 19:49:55 +03:00
Ivan Kravets
14f582faeb Version bump to 2.10.0 (issues #683, #687, #688, #689, #691) 2016-06-13 19:49:37 +03:00
Ivan Kravets
768ac77ea2 Pass PlatformIO macros with version to libs 2016-06-13 19:46:54 +03:00
Ivan Kravets
f75a7c91eb Update ARM mbed framework package to v121 2016-06-13 19:42:35 +03:00
Ivan Kravets
104132c5d3 Typo fixes 2016-06-13 19:24:13 +03:00
Ivan Kravets
3a315c5575 Move custom platform and board to separate page 2016-06-13 19:23:24 +03:00
Valeriy Koval
91fb714250 Add new ST Nucleo board 2016-06-13 17:46:35 +03:00
Valeriy Koval
10d868efa4 Update build script for mbed framework 2016-06-13 17:45:28 +03:00
Ivan Kravets
3b8bc42266 Improve firmware uploading to Arduino Leonardo based boards // Resolve #691 2016-06-11 23:35:29 +03:00
Ivan Kravets
9fb7f251f6 Typo fix 2016-06-11 16:49:25 +03:00
Ivan Kravets
5398dbef95 Improve checking for the program size before uploading // Issue #689 2016-06-11 15:39:06 +03:00
Ivan Kravets
a4345cedc5 Refactor board "hwid" option to "hwids" 2016-06-11 15:12:27 +03:00
Ivan Kravets
ba574667c7 Add HWID for NodeMCU board 2016-06-11 13:35:02 +03:00
Ivan Kravets
f2c1e279c9 Better checking of program size before uploading // Issue #689 2016-06-11 00:55:38 +03:00
Ivan Kravets
60ff546fec Check program size before uploading to the board // Resolve #689 2016-06-11 00:02:36 +03:00
Ivan Kravets
f6088cbbe1 Fix issue with "-L relative/path" when parsing "build_flags" // Resolve #688 2016-06-10 19:54:17 +03:00
Ivan Kravets
4b093dcdbb Fix upload speed for OpenEnergyMonitor board 2016-06-10 18:01:46 +03:00
Ivan Kravets
c9020d4879 Add support for STM32F0 boards for SPL framework // Issue #683 2016-06-09 19:17:19 +03:00
Ivan Kravets
c5b5e80de4 Add support for emonPi the OpenEnergyMonitor system // Resolve #687 2016-06-09 18:50:08 +03:00
Valeriy Koval
c1a8fdb940 Fix path to dfu util when it contains spaces. 2016-06-09 11:39:44 +03:00
Ivan Kravets
1c8de51054 Add support for Arduboy DevKit 2016-06-06 18:13:12 +03:00
Ivan Kravets
34c171f9fd Typo fix 2016-06-04 00:30:02 +03:00
Ivan Kravets
9b2d49455a Merge branch 'release/v2.9.4' 2016-06-04 00:26:01 +03:00
Ivan Kravets
730b2371df Merge branch 'release/v2.9.4' into develop 2016-06-04 00:26:01 +03:00
Ivan Kravets
f1afa864cd Version bump to 2.9.4 2016-06-04 00:25:15 +03:00
Ivan Kravets
439cd77db8 Show "udev" warning only for the Linux OS while upload firmware 2016-06-04 00:23:33 +03:00
Ivan Kravets
4c35870dff Merge branch 'release/v2.9.3' 2016-06-03 21:04:04 +03:00
Ivan Kravets
9f3624d26e Merge branch 'release/v2.9.3' into develop 2016-06-03 21:04:04 +03:00
Ivan Kravets
ac4e8514db Version bump to 2.9.3 2016-06-03 21:03:48 +03:00
Ivan Kravets
646123f9ab Notify Linux user to install PlatformIO udev rules 2016-06-03 20:57:20 +03:00
Ivan Kravets
11ef9dbdcb Add new article 2016-06-03 20:40:24 +03:00
Ivan Kravets
f3526b1d95 Add support for Arduboy 2016-06-03 20:14:37 +03:00
Ivan Kravets
45d5159fe3 Remove unused imports 2016-06-03 18:46:28 +03:00
Ivan Kravets
439e6b4ccf Refactor firmware uploading to the embedded boards with SAM-BA bootloader 2016-06-03 18:35:47 +03:00
Ivan Kravets
fb08322c17 Fix firmware uploading to the embedded boards with SAM-BA bootloader 2016-06-03 13:58:51 +03:00
Ivan Kravets
c815e0fadc Add explanation about waiting for the new serial port 2016-06-03 01:29:18 +03:00
Ivan Kravets
190ffab76d Hook when new serial port is the same in boot mode 2016-06-03 01:16:16 +03:00
Ivan Kravets
882bddf77e Revert back some code linked with uploading to Leonardo/Due 2016-06-03 00:42:52 +03:00
Ivan Kravets
4f1e1a38c9 Merge branch 'release/v2.9.2' 2016-06-02 20:57:09 +03:00
Ivan Kravets
a9c02c9cbc Merge branch 'release/v2.9.2' into develop 2016-06-02 20:57:09 +03:00
Ivan Kravets
331cfb5b54 Version bump to 2.9.2 (issues #641, #645, #648, #652, #664, #665, #666, #671, #674) 2016-06-02 20:56:52 +03:00
Ivan Kravets
0b80ed6c2b Fix issue with ARM mbed framework when abstract class breaks compile for LPC1768 // Resolve #666 2016-06-02 20:47:09 +03:00
Ivan Kravets
38967eab64 Fix issue with ARM mbed framework and multiple definition errors on FRDM-KL46Z board // Resolve #641 2016-06-02 20:45:43 +03:00
Ivan Kravets
3ad1ad4ef1 List embedded boards in docs 2016-06-02 20:41:10 +03:00
Valeriy Koval
0c8f469246 Fix multiple definition in mbed framework when using abstract class // Issue #641, #666 2016-06-02 17:27:52 +03:00
Ivan Kravets
03d9351dec Add "stlink" as the default uploader for STM32 Discovery boards // Resolve #665 2016-06-02 16:41:04 +03:00
Ivan Kravets
b3fc6617e5 Implement grep serial ports for Windows 2016-06-02 14:57:44 +03:00
Ivan Kravets
1fdc2e3091 Remove unused imports 2016-06-02 01:13:34 +03:00
Ivan Kravets
c773c8f5d5 Minor improvements 2016-06-02 01:09:05 +03:00
Ivan Kravets
b188a05b69 Fix PyLint's "misplaced-comparison-constant" 2016-06-02 00:14:02 +03:00
Ivan Kravets
d7ca3f15a4 Use $PROGNAME instead static name when looking for the firmware 2016-06-01 23:33:15 +03:00
Ivan Kravets
406e240de1 Update title of the article 2016-06-01 22:14:37 +03:00
Ivan Kravets
f3689ac157 Add new articles 2016-06-01 21:30:30 +03:00
Ivan Kravets
ce72ee04f4 Link Community Forums FAQ with Docs FAQ 2016-06-01 20:36:13 +03:00
Ivan Kravets
694121d49a Grep for "/dev/cu.*" on OS X 2016-06-01 20:35:05 +03:00
Ivan Kravets
250b39bcc8 Skip grep search for serial ports on Windows machines 2016-06-01 20:26:10 +03:00
Ivan Kravets
c74a2b4529 Improve firmware uploading to Arduino Leonardo based boards 2016-06-01 20:24:08 +03:00
Ivan Kravets
a1e7ce415b Add MinGW to the PATH 2016-05-30 13:15:19 +03:00
Ivan Kravets
ab15bafc5b Automatically add source directory to "CPPPATH" of Build System 2016-05-29 18:09:21 +03:00
Ivan Kravets
f6014d2e52 Fixed configuration data for TI LaunchPads based on msp430fr4133 and msp430fr6989 MCUs // Resolve #676 2016-05-29 16:47:54 +03:00
Ivan Kravets
35a602cfef Install tox manually 2016-05-28 20:27:16 +03:00
Ivan Kravets
6ecd86a244 Simplified documentation for Continuous integration with AppVeyor // Resolve #671 2016-05-28 20:22:15 +03:00
Ivan Kravets
0cb28f906e Fix broken links to project examples 2016-05-28 19:09:24 +03:00
Valeriy Koval
1a305f2dd7 Add stlink as the default uploader for disco boards // Issue #665 2016-05-25 11:29:26 +03:00
Ivan Kravets
cd22f5197b Specify supported types of library repository 2016-05-24 19:20:12 +03:00
Ivan Kravets
b3d27b42ad Add key-binding for Toggle Build Panel 2016-05-18 15:46:59 +03:00
Ivan Kravets
ab3a5331c1 New article by Pedro Minatel 2016-05-12 19:51:22 +03:00
Ivan Kravets
9cbe12fbb8 New article by Pedro Minatel 2016-05-12 19:51:04 +03:00
Ivan Kravets
056cc08d68 Fix issue with `src_filter` option for Windows OS // Resolve #652 2016-05-10 15:36:00 +03:00
Ivan Kravets
69effbfedb Add new articles; Link to the Virtual IoT Meetup 2016-05-07 00:16:39 +03:00
Ivan Kravets
d881dfb63c Typo fix 2016-05-06 19:52:27 +03:00
Ivan Kravets
d89b2828e3 Add "Keep build panel visible" to PlatformIO IDE FAQ 2016-05-06 18:22:09 +03:00
Valeriy Koval
75ca6c6e52 Add several new mbed boards 2016-05-06 15:26:56 +03:00
Ivan Kravets
304c8b7184 Add support for MightyCore ATmega8535 board // Issue #585 2016-05-06 15:18:48 +03:00
Ivan Kravets
3c46c17242 Typo fix 2016-05-04 15:51:45 +03:00
Ivan Kravets
aca646e6b9 Use HTTP mirror for Package Manager in case with SSL errors // Resolve #645 2016-05-04 15:50:00 +03:00
Ivan Kravets
b587927687 Sync examples 2016-05-04 15:11:15 +03:00
Ivan Kravets
3edc336f62 Fix bug with "env_default" when "pio run -e" is used 2016-05-04 15:10:08 +03:00
Ivan Kravets
eee6685c59 Update platforms liste README 2016-05-04 14:59:08 +03:00
Ivan Kravets
76b5434157 Merge branch 'release/v2.9.1' into develop 2016-04-30 18:20:46 +03:00
131 changed files with 5386 additions and 1072 deletions

1
.gitignore vendored
View File

@@ -5,3 +5,4 @@
docs/_build
dist
build
.cache

21
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,21 @@
Contributing
------------
To get started, <a href="https://www.clahub.com/agreements/platformio/platformio">sign the Contributor License Agreement</a>.
1. Fork the repository on GitHub.
2. Make a branch off of ``develop``
3. Run ``pip install tox``
4. Go to the root of project where is located ``tox.ini`` and run ``tox -e develop``
5. Activate current development environment:
* Windows: ``.tox\develop\Scripts\activate``
* Bash/ZSH: ``source .tox/develop/bin/activate``
* Fish: ``source .tox/bin/activate.fish``
6. Make changes to code, documentation, etc.
7. Lint source code ``tox -e lint``
8. Run the tests ``tox -e py27``
9. Build documentation ``tox -e docs`` (creates a directory _build under docs where you can find the html)
10. Commit changes to your forked repository
11. Submit a Pull Request on GitHub.

View File

@@ -4,6 +4,158 @@ Release Notes
PlatformIO 2.0
--------------
2.11.2 (2016-08-02)
~~~~~~~~~~~~~~~~~~~
* Improved support for `Microchip PIC32 <http://docs.platformio.org/en/latest/platforms/microchippic32.html>`__ development platform and ChipKIT boards
(`issue #438 <https://github.com/platformio/platformio/issues/438>`_)
* Added support for Pinoccio Scout board
(`issue #52 <https://github.com/platformio/platformio/issues/52>`_)
* Added support for `Teensy USB Features <http://docs.platformio.org/en/latest/platforms/teensy.html#usb-features>`__
(HID, SERIAL_HID, DISK, DISK_SDFLASH, MIDI, etc.)
(`issue #722 <https://github.com/platformio/platformio/issues/722>`_)
* Switched to built-in GCC LwIP library for Espressif development platform
* Added support for local ``--echo`` for Serial Port Monitor
(`issue #733 <https://github.com/platformio/platformio/issues/733>`_)
* Updated ``udev`` rules for the new STM32F407DISCOVERY boards
(`issue #731 <https://github.com/platformio/platformio/issues/731>`_)
* Implemented firmware merging with base firmware for Nordic nRF51 development platform
(`issue #500 <https://github.com/platformio/platformio/issues/500>`_,
`issue #533 <https://github.com/platformio/platformio/issues/533>`_)
* Fixed Project Generator for ESP8266 and ARM mbed based projects
(resolves incorrect linter errors)
* Fixed broken LD Script for Element14 chipKIT Pi board
(`issue #725 <https://github.com/platformio/platformio/issues/725>`_)
* Fixed firmware uploading to Atmel SAMD21-XPRO board using ARM mbed framework
(`issue #732 <https://github.com/platformio/platformio/issues/732>`_)
2.11.1 (2016-07-12)
~~~~~~~~~~~~~~~~~~~
* Added support for Arduino M0, M0 Pro and Tian boards
(`issue #472 <https://github.com/platformio/platformio/issues/472>`_)
* Added support for Microchip chipKIT Lenny board
* Updated Microchip PIC32 Arduino framework to v1.2.1
* Documented `uploading of EEPROM data <http://docs.platformio.org/en/latest/platforms/atmelavr.html#upload-eeprom-data>`__
(from EEMEM directive)
* Added ``Rebuild C/C++ Project Index`` target to CLion and Eclipse IDEs
* Improved project generator for `CLion IDE <http://docs.platformio.org/en/latest/ide/clion.html>`__
* Added ``udev`` rules for OpenOCD CMSIS-DAP adapters
(`issue #718 <https://github.com/platformio/platformio/issues/718>`_)
* Auto-remove project cache when PlatformIO is upgraded
* Keep user changes for ``.gitignore`` file when re-generate/update project data
* Ignore ``[platformio]`` section from custom project configuration file when
`platformio ci --project-conf <http://docs.platformio.org/en/latest/userguide/cmd_ci.html>`__
command is used
* Fixed missed ``--boot`` flag for the firmware uploader for ATSAM3X8E
Cortex-M3 MCU based boards (Arduino Due, etc)
(`issue #710 <https://github.com/platformio/platformio/issues/710>`_)
* Fixed missing trailing ``\`` for the source files list when generate project
for `Qt Creator IDE <http://docs.platformio.org/en/latest/ide/qtcreator.html>`__
(`issue #711 <https://github.com/platformio/platformio/issues/711>`_)
* Split source files to ``HEADERS`` and ``SOURCES`` when generate project
for `Qt Creator IDE <http://docs.platformio.org/en/latest/ide/qtcreator.html>`__
(`issue #713 <https://github.com/platformio/platformio/issues/713>`_)
2.11.0 (2016-06-28)
~~~~~~~~~~~~~~~~~~~
* New ESP8266-based boards: Generic ESP8285 Module, Phoenix 1.0 & 2.0, WifInfo
* Added support for Arduino M0 Pro board
(`issue #472 <https://github.com/platformio/platformio/issues/472>`_)
* Added support for Arduino MKR1000 board
(`issue #620 <https://github.com/platformio/platformio/issues/620>`_)
* Added support for Adafruit Feather M0, SparkFun SAMD21 and SparkFun SAMD21
Mini Breakout boards
(`issue #520 <https://github.com/platformio/platformio/issues/520>`_)
* Updated Arduino ESP8266 core for Espressif platform to 2.3.0
* Better removing unnecessary flags using ``build_unflags`` option
(`issue #698 <https://github.com/platformio/platformio/issues/698>`_)
* Fixed issue with ``platformio init --ide`` command for Python 2.6
2.10.3 (2016-06-15)
~~~~~~~~~~~~~~~~~~~
* Fixed issue with ``platformio init --ide`` command
2.10.2 (2016-06-15)
~~~~~~~~~~~~~~~~~~~
* Added support for ST Nucleo L031K6 board to ARM mbed framework
* Process ``build_unflags`` option for ARM mbed framework
* Updated Intel ARC32 Arduino framework to v1.0.6
(`issue #695 <https://github.com/platformio/platformio/issues/695>`_)
* Improved a check of program size before uploading to the board
* Fixed issue with ARM mbed framework ``-u _printf_float`` and
``-u _scanf_float`` when parsing ``$LINKFLAGS``
* Fixed issue with ARM mbed framework and extra includes for the custom boards,
such as Seeeduino Arch Pro
2.10.1 (2016-06-13)
~~~~~~~~~~~~~~~~~~~
* Re-submit a package to PyPI
2.10.0 (2016-06-13)
~~~~~~~~~~~~~~~~~~~
* Added support for `emonPi <https://github.com/openenergymonitor/emonpi>`__,
the OpenEnergyMonitor system
(`issue #687 <https://github.com/platformio/platformio/issues/687>`_)
* Added support for `SPL <http://platformio.org/frameworks/spl>`__
framework for STM32F0 boards
(`issue #683 <https://github.com/platformio/platformio/issues/683>`_)
* Added support for `Arduboy DevKit <https://www.arduboy.com>`__, the game system
the size of a credit card
* Updated ARM mbed framework package to v121
* Check program size before uploading to the board
(`issue #689 <https://github.com/platformio/platformio/issues/689>`_)
* Improved firmware uploading to Arduino Leonardo based boards
(`issue #691 <https://github.com/platformio/platformio/issues/691>`_)
* Fixed issue with ``-L relative/path`` when parsing ``build_flags``
(`issue #688 <https://github.com/platformio/platformio/issues/688>`_)
2.9.4 (2016-06-04)
~~~~~~~~~~~~~~~~~~
* Show ``udev`` warning only for the Linux OS while uploading firmware
2.9.3 (2016-06-03)
~~~~~~~~~~~~~~~~~~
* Added support for `Arduboy <https://www.arduboy.com>`__, the game system
the size of a credit card
* Updated `99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`__ for Linux OS
* Refactored firmware uploading to the embedded boards with SAM-BA bootloader
2.9.2 (2016-06-02)
~~~~~~~~~~~~~~~~~~
* Simplified `Continuous Integration with AppVeyor <http://docs.platformio.org/en/latest/ci/appveyor.html>`__
(`issue #671 <https://github.com/platformio/platformio/issues/671>`_)
* Automatically add source directory to ``CPPPATH`` of Build System
* Added support for Silicon Labs SLSTK3401A (Pearl Gecko) and
MultiTech mDot F411 ARM mbed based boards
* Added support for MightyCore ATmega8535 board
(`issue #585 <https://github.com/platformio/platformio/issues/585>`_)
* Added ``stlink`` as the default uploader for STM32 Discovery boards
(`issue #665 <https://github.com/platformio/platformio/issues/665>`_)
* Use HTTP mirror for Package Manager in a case with SSL errors
(`issue #645 <https://github.com/platformio/platformio/issues/645>`_)
* Improved firmware uploading to Arduino Leonardo/Due based boards
* Fixed bug with ``env_default`` when ``pio run -e`` is used
* Fixed issue with ``src_filter`` option for Windows OS
(`issue #652 <https://github.com/platformio/platformio/issues/652>`_)
* Fixed configuration data for TI LaunchPads based on msp430fr4133 and
msp430fr6989 MCUs
(`issue #676 <https://github.com/platformio/platformio/issues/676>`_)
* Fixed issue with ARM mbed framework and multiple definition errors
on FRDM-KL46Z board
(`issue #641 <https://github.com/platformio/platformio/issues/641>`_)
* Fixed issue with ARM mbed framework when abstract class breaks compile
for LPC1768
(`issue #666 <https://github.com/platformio/platformio/issues/666>`_)
2.9.1 (2016-04-30)
~~~~~~~~~~~~~~~~~~
@@ -646,7 +798,7 @@ PlatformIO 1.0
(`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>`__
* Added `examples <https://github.com/platformio/platformio-examples/tree/develop>`__
with preconfigured IDE projects
(`issue #154 <https://github.com/platformio/platformio/issues/154>`_)
* Fixed firmware uploading under Linux OS for Arduino Leonardo board

View File

@@ -16,11 +16,8 @@ PlatformIO
.. 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/community/PlatformIO.png
:alt: Join the chat at https://gitter.im/platformio/platformio
:alt: Community Forums
:target: https://community.platformio.org
.. image:: https://img.shields.io/donate/PlatformIO.png?color=yellow
:alt: Donate for PlatformIO.Org
@@ -29,7 +26,7 @@ PlatformIO
`Home <http://platformio.org>`_ |
`IDE <http://platformio.org/platformio-ide>`_ |
`Project Examples <https://github.com/platformio/platformio/tree/develop/examples>`_ |
`Project Examples <https://github.com/platformio/platformio-examples/tree/develop>`_ |
`Docs <http://docs.platformio.org>`_ |
`Twitter <https://twitter.com/PlatformIO_Org>`_ |
`Facebook <https://www.facebook.com/platformio>`_ |
@@ -62,9 +59,9 @@ IDE integration. Arduino and MBED compatible. Ready for Cloud compiling.
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.*
*Atmel AVR & SAM, Espressif, Freescale Kinetis, Intel ARC32, Lattice iCE40,
Microchip PIC32, 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
@@ -161,6 +158,9 @@ It has support for the most popular embedded platforms:
* `Atmel SAM <http://platformio.org/platforms/atmelsam>`_
* `Espressif <http://platformio.org/platforms/espressif>`_
* `Freescale Kinetis <http://platformio.org/platforms/freescalekinetis>`_
* `Intel ARC32 <http://platformio.org/platforms/intel_arc32>`_
* `Lattice iCE40 <http://platformio.org/platforms/lattice_ice40>`_
* `Microchip PIC32 <http://platformio.org/platforms/microchippic32>`_
* `Nordic nRF51 <http://platformio.org/platforms/nordicnrf51>`_
* `NXP LPC <http://platformio.org/platforms/nxplpc>`_
* `ST STM32 <http://platformio.org/platforms/ststm32>`_
@@ -185,26 +185,12 @@ For further details, please refer to `What is PlatformIO? <http://docs.platformi
Contributing
------------
1. Fork the repository on GitHub.
2. Make a branch off of ``develop``
3. Run ``pip install tox``
4. Go to the root of project where is located ``tox.ini`` and run ``tox -e develop``
5. Activate current development environment:
See `contributing guidelines <https://github.com/platformio/platformio/blob/develop/CONTRIBUTING.md>`_.
* Windows: ``.tox\develop\Scripts\activate``
* Bash/ZSH: ``source .tox/develop/bin/activate``
* Fish: ``source .tox/bin/activate.fish``
6. Make changes to code, documentation, etc.
7. Lint source code ``tox -e lint``
8. Run the tests ``tox -e py27``
9. Commit changes to your forked repository
10. Submit a Pull Request on GitHub.
Licence
License
-------
Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
The PlatformIO is licensed under the permissive Apache 2.0 licence,
The PlatformIO is licensed under the permissive Apache 2.0 license,
so you can use it in both commercial and personal projects with confidence.

View File

@@ -1,27 +1,13 @@
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
- cmd: git submodule update --init --recursive
- cmd: SET PATH=%PATH%;C:\Python27\Scripts;C:\MinGW\bin
- cmd: pip install tox
test_script:
- "%PYTHON_HOME%\\Scripts\\tox --version"
- "%PYTHON_HOME%\\Scripts\\pip --version"
- "%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\tox"
- cmd: tox

BIN
docs/_static/ide-eclipse-virtualiot.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View File

@@ -23,10 +23,30 @@ Here are recent articles about PlatformIO:
2016
^^^^
* Jul 5, 2016 - **Ivan Kravets, Ph.D.** - `Explore the new development instruments for Arduino with PlatformIO ecosystem <http://www.slideshare.net/ivankravets/explore-the-new-development-instruments-for-arduino-with-platformio-ecosystem>`_
* Jul 5, 2016 - **Belinda** - `Monte Bianco Arduino Developer Summit <http://www.arduino.org/blog/arduino-developer-summit>`_
* Jul 1, 2016 - **Tam Hanna** - `Mikrocontroller-Gipfel in den Alpen: Arduino Developer Summit, Tag eins (Microcontroller peaks in the Alps: Arduino Developer Summit, Day One, German) <http://www.heise.de/make/meldung/Mikrocontroller-Gipfel-in-den-Alpen-Arduino-Developer-Summit-Tag-eins-3252421.html>`_
* Jun 14, 2016 - **Glyn Hudson** - `OpenEnergyMonitor Part 2/3: Firmware Continuous Test & Build <https://blog.openenergymonitor.org/2016/06/auto-build-continuous-test-firmware/>`_
* Jun 13, 2016 - **Daniel Eichhorn** - `New Weather Station Demo on Github <http://blog.squix.org/2016/06/new-weather-station-demo-on-github.html>`_
* Jun 12, 2016 - **Glyn Hudson** - `OpenEnergyMonitor Part 1/3: PlatformIO open-source embedded development ecosystem <https://blog.openenergymonitor.org/2016/06/platformio/>`_
* Jun 12, 2016 - **Uli Wolf** - `Nutzung von PlatformIO im Atom Editor zur Entwicklung von Arduino Code (Use PlatformIO and Atom Editor to develop Arduino code, German) <https://wolf-u.li/5668/nutzung-von-platform-io-im-atom-editor-zur-entwicklung-von-arduino-code/>`_
* Jun 3, 2016 - **Daniel Eichhorn** - `ESP8266: Continuous Delivery Pipeline Push To Production <http://blog.squix.org/2016/06/esp8266-continuous-delivery-pipeline-push-to-production.html>`_
* May 30, 2016 - **Ron Moerman** - `IoT Development with PlatformIO <https://electronicsworkbench.io/blog/platformio>`_
* May 29, 2016 - **Chris Synan** - `Reverse Engineer RF Remote Controller for IoT! <http://www.instructables.com/id/Reverse-Engineer-RF-Remote-Controller-for-IoT/?ALLSTEPS>`_
* May 26, 2016 - **Charlie Key** - `7 Best Developer Tools To Build Your NEXT Internet of Things Application <https://www.losant.com/blog/7-best-developer-tools-to-build-your-next-internet-of-things-application>`_
* May 22, 2016 - **Pedro Minatel** - `Estação meteorológica com ESP8266 (Weather station with ESP8266, Portuguese) <http://pedrominatel.com.br/esp8266/estacao-meteorologica-com-esp8266/>`_
* May 16, 2016 - **Pedro Minatel** - `Controle remoto WiFi com ESP8266 (WiFi remote control using ESP8266, Portuguese) <http://pedrominatel.com.br/esp8266/controle-remoto-wifi-com-esp8266/>`_
* May 11, 2016 - **Jo Vandeginste** - `Using PlatformIO to compile for Jeelabs' Jeenode Micro <http://jovandeginste.github.io/2016/05/11/using-platformio-to-compile-for-jeelabs-jeenode-micro.html>`_
* May 08, 2016 - **Radoslaw Bob** - `Touch controlled buzzer (Nodemcu ESP8266) <https://gettoknowthebob.wordpress.com/2016/05/08/touch-controlled-buzzer-nodemcu-esp8266/>`_
* May 06, 2016 - **Jean Roux** - `The IoT building blocks I use for my home-automation projects <http://iotplay.blogspot.fr/2016/05/the-components-i-use-for-my-projects.html/>`_
* May 05, 2016 - **Ivan Kravets, Ph.D. / Eclipse Virtual IoT Meetup** - `PlatformIO: a cross-platform IoT solution to build them all! <http://www.meetup.com/Virtual-IoT/events/229964142/>`_
* May 01, 2016 - **Pedro Minatel** - `PlatformIO Uma alternativa ao Arduino IDE (PlatformIO - An alternative to the Arduino IDE, Portuguese) <http://pedrominatel.com.br/ferramentas/platformio-uma-alternativa-ao-arduino-ide/>`_
* Apr 23, 2016 - **Al Williams** - `Hackaday: Atomic Arduino (and Other) Development <http://hackaday.com/2016/04/23/atomic-arduino-and-other-development/>`_
* Apr 16, 2016 - **Sathittham Sangthong** - `[PlatformIO] มาลองเล่น PlatformIO แทน Arduino IDE กัน (Let's play together with PlatformIO IDE [alternative to Arduino IDE], Thai) <http://www.sathittham.com/platformio/platformio-ide/>`_
* Apr 15, 2016 - **Daniel Eichhorn** - `ESP8266: Offline Debugging with the Platformio Environment <http://blog.squix.ch/2016/04/esp8266-offline-debugging-with.html>`_
* Apr 11, 2016 - **Matjaz Trcek** - `Top 5 Arduino integrated development environments <https://codeandunicorns.com/top-5-arduino-integrated-development-environments-ide/>`_
* Apr 06, 2016 - **Aleks** - `PlatformIO ausprobiert (Tried PlatformIO, German) <http://5volt-junkie.net/platformio/>`_
* Apr 02, 2016 - **Diego Pinto** - `Você tem coragem de abandonar a IDE do Arduino? PlatformIO + Atom (Do you dare to leave the Arduino IDE? PlatformIO + Atom, Portuguese) <http://www.clubemaker.com.br/?rota=artigo/81>`_
* Mar 30, 2016 - **Brandon Cannaday** - `Getting Started with PlatformIO and ESP8266 NodeMcu <https://www.losant.com/blog/getting-started-with-platformio-esp8266-nodemcu>`_
* Mar 29, 2016 - **Pablo Peñalve** - `PlatformIO + Geany + Raspberry PI, Spanish <http://ret-catriel.blogspot.com/2016/03/framework-platformio-geany-raspberry-pi.html>`_
* Mar 24, 2016 - **NAzT** - `PlatformIO และการปรับแต่ง เพื่อใช้สำหรับพัฒนา Arduino Library (PlatformIO and advanced development for Arduino Library, Thai) <https://cmmakerclub.com/tools-2/config-platformio-for-arduino-framework-developer/>`_

View File

@@ -44,142 +44,20 @@ Put ``appveyor.yml`` to the root directory of the GitHub repository.
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'
matrix:
- PLATFORMIO_CI_SRC: "path\\to\\source\\file.c"
- PLATFORMIO_CI_SRC: "path\\to\\source\\file.ino"
- PLATFORMIO_CI_SRC: "path\\to\\source\\directory"
Then create ``scripts/appveyor`` folder and put these 2 scripts (they are the
same for the all projects, don't need to modify them):
install:
- cmd: git submodule update --init --recursive
- cmd: SET PATH=%PATH%;C:\Python27\Scripts
- cmd: pip install -U platformio
1. ``scripts/appveyor/install.ps1``:
test_script:
- cmd: platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
.. 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.
@@ -194,20 +72,16 @@ Examples
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'
matrix:
- PLATFORMIO_CI_SRC: "examples\\Bluetooth\\PS3SPP\\PS3SPP.ino"
- PLATFORMIO_CI_SRC: "examples\\pl2303\\pl2303_gps\\pl2303_gps.ino"
install:
- cmd: git submodule update --init --recursive
- cmd: SET PATH=%PATH%;C:\Python27\Scripts
- cmd: pip install -U platformio
- cmd: git clone https://github.com/xxxajk/spi4teensy3.git C:\spi4teensy
test_script:
- cmd: platformio ci --lib="." --lib="C:\\spi4teensy" --board=uno --board=teensy31 --board=due

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -19,7 +19,7 @@ Demo & Projects
Project Examples
----------------
Preconfigured demo projects are located in `PlatformIO GitHub <https://github.com/platformio/platformio/tree/develop/examples>`_ repository.
Pre-configured demo projects are located in `PlatformIO GitHub <https://github.com/platformio/platformio-examples/tree/develop>`_ repository.
"Blink Project"
---------------

View File

@@ -14,6 +14,10 @@
Frequently Asked Questions
==========================
.. note::
We have a big database with `Frequently Asked Questions in our Community Forums <https://community.platformio.org/c/faq>`_.
Please have a look at it.
.. contents::
General

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -92,6 +92,13 @@ Adafruit
- Flash
- RAM
* - ``adafruit_feather_m0_usb``
- `Adafruit Feather M0 <https://www.adafruit.com/product/2772>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``bluefruitmicro``
- `Adafruit Bluefruit Micro <https://www.adafruit.com/products/2661>`_
- ATMEGA32U4
@@ -176,6 +183,33 @@ Adafruit
- 8 Kb
- 0.5 Kb
Arduboy
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``arduboy``
- `Arduboy <https://www.arduboy.com>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``arduboy_devkit``
- `Arduboy DevKit <https://www.arduboy.com>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
Arduino
~~~~~~~
@@ -350,6 +384,34 @@ Arduino
- 32 Kb
- 2 Kb
* - ``mkr1000USB``
- `Arduino MKR1000 <https://www.arduino.cc/en/Main/ArduinoMKR1000>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``mzeroUSB``
- `Arduino M0 <http://www.arduino.org/products/boards/arduino-m0>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``mzeropro``
- `Arduino M0 Pro (Programming Port) <http://www.arduino.org/products/boards/arduino-m0-pro>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``mzeroproUSB``
- `Arduino M0 Pro (Native USB Port) <http://www.arduino.org/products/boards/arduino-m0-pro>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``nanoatmega168``
- `Arduino Nano ATmega168 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA168
@@ -406,6 +468,13 @@ Arduino
- 32 Kb
- 2.5 Kb
* - ``tian``
- `Arduino Tian <http://www.arduino.org/products/boards/arduino-tian>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``uno``
- `Arduino Uno <http://www.arduino.org/products/boards/4-arduino-boards/arduino-uno>`_
- ATMEGA328P
@@ -571,13 +640,6 @@ Digilent
- 512 Kb
- 128 Kb
* - ``openbci``
- `Digilent OpenScope <http://store.digilentinc.com/>`_
- 32MX250F128B
- 40 MHz
- 128 Kb
- 32 Kb
* - ``openscope``
- `Digilent OpenScope <http://store.digilentinc.com/>`_
- 32MZ2048EFG124
@@ -782,6 +844,13 @@ Espressif
- 4096 Kb
- 80 Kb
* - ``esp8285``
- `Generic ESP8285 Module <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 448 Kb
- 80 Kb
* - ``esp_wroom_02``
- `ESP-WROOM-02 <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
@@ -789,6 +858,27 @@ Espressif
- 4096 Kb
- 50 Kb
* - ``phoenix_v1``
- `Phoenix 1.0 <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``phoenix_v2``
- `Phoenix 2.0 <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``wifinfo``
- `WifInfo <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 448 Kb
- 80 Kb
Fubarino
~~~~~~~~
@@ -1020,6 +1110,13 @@ Mcudude
- 64 Kb
- 4 Kb
* - ``mightycore8535``
- `MightyCore ATmega8535 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA16
- 16 MHz
- 8 Kb
- 0.5 Kb
Microduino
~~~~~~~~~~
@@ -1150,6 +1247,46 @@ Olimex
- 256 Kb
- 32 Kb
OpenBCI
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``openbci``
- `OpenBCI 32bit <http://shop.openbci.com/>`_
- 32MX250F128B
- 40 MHz
- 128 Kb
- 32 Kb
OpenEnergyMonitor
~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``emonpi``
- `OpenEnergyMonitor emonPi <https://github.com/openenergymonitor/emonpi>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
- 2 Kb
PONTECH
~~~~~~~
@@ -1204,6 +1341,26 @@ PanStamp
- 32 Kb
- 4 Kb
Pinoccio
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``pinoccio``
- `Pinoccio Scout <https://www.crowdsupply.com/pinoccio/mesh-sensor-network>`_
- ATMEGA256RFR2
- 16 MHz
- 256 Kb
- 32 Kb
Punch Through
~~~~~~~~~~~~~
@@ -1496,6 +1653,20 @@ SparkFun
- 32 Kb
- 2 Kb
* - ``sparkfun_samd21_dev_usb``
- `SparkFun SAMD21 Dev Breakout <https://www.sparkfun.com/products/13672>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``sparkfun_samd21_mini_usb``
- `SparkFun SAMD21 Mini Breakout <https://www.sparkfun.com/products/13664>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``thing``
- `SparkFun ESP8266 Thing <https://www.sparkfun.com/products/13231>`_
- ESP8266
@@ -1713,6 +1884,26 @@ Wicked Device
- 128 Kb
- 16 Kb
chipKIT
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``lenny``
- `chipKIT Lenny <http://chipkit.net/tag/lenny/>`_
- 32MX270F256D
- 40 MHz
- 128 Kb
- 32 Kb
element14
~~~~~~~~~

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -77,7 +77,7 @@ TI
* - ``lpmsp430fr4133``
- `TI LaunchPad w/ msp430fr4133 <http://www.ti.com/tool/msp-exp430fr4133>`_
- MSP430G2553
- MSP430FR4133
- 16 MHz
- 16 Kb
- 2 Kb
@@ -98,7 +98,7 @@ TI
* - ``lpmsp430fr6989``
- `TI LaunchPad w/ msp430fr6989 <http://www.ti.com/tool/msp-exp430fr6989>`_
- MSP430G2553
- MSP430FR6989
- 16 MHz
- 128 Kb
- 2 Kb

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -286,6 +286,26 @@ JKSoft
- 128 Kb
- 16 Kb
MultiTech
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``mts_mdot_f411re``
- `MultiTech mDot F411 <https://developer.mbed.org/platforms/MTS-mDot-F411/>`_
- STM32F411RET6
- 100 MHz
- 512 Kb
- 128 Kb
NGX Technologies
~~~~~~~~~~~~~~~~
@@ -609,6 +629,13 @@ ST
- 512 Kb
- 128 Kb
* - ``nucleo_l031k6``
- `ST Nucleo L031K6 <https://developer.mbed.org/platforms/ST-Nucleo-L031K6/>`_
- STM32L031K6T6
- 32 MHz
- 32 Kb
- 8 Kb
* - ``nucleo_l053r8``
- `ST Nucleo L053R8 <https://developer.mbed.org/platforms/ST-Nucleo-L053R8/>`_
- STM32L053R8T6
@@ -705,6 +732,13 @@ Silicon Labs
- 256 Kb
- 32 Kb
* - ``efm32pg_stk3401``
- `Silicon Labs SLSTK3401A (Pearl Gecko) <https://developer.mbed.org/platforms/EFM32-Pearl-Gecko/>`_
- EFM32PG1B200F256
- 40 MHz
- 256 Kb
- 32 Kb
* - ``efm32wg_stk3800``
- `Silicon Labs EFM32WG-STK3800 (Wonder Gecko) <https://developer.mbed.org/platforms/EFM32-Wonder-Gecko/>`_
- EFM32WG990F256

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -37,7 +37,7 @@ can customize to do anything but also use productively without ever touching a
config file.
.. image:: ../_static/ide-atom-platformio.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio.png
.. contents::
@@ -71,9 +71,10 @@ on the "Customize" stage, otherwise ``python`` command will not be available.
2. Clang for Intelligent Code Autocompletion
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PlatformIO IDE uses `clang <http://clang.llvm.org>`_ for the Intelligent Code Autocompletion.
To check that ``clang`` is available in your system, please open
Terminal and run ``clang --version``. If ``clang`` is not installed, then install it:
PlatformIO IDE uses `clang <http://clang.llvm.org>`_ for the Intelligent Code
Autocompletion. To check that ``clang`` is available in your system, please
open Terminal and run ``clang --version``. If ``clang`` is not installed,
then install it and restart Atom:
- **Mac OS X**: `Install the latest Xcode <https://developer.apple.com/xcode/download/>`_
along with the latest Command Line Tools
@@ -84,6 +85,12 @@ Terminal and run ``clang --version``. If ``clang`` is not installed, then instal
.. image:: ../_static/clang-installer-add-path.png
.. warning::
If you see ``Failed to find MSBuild toolsets directory`` error in
the installation console, please ignore it and press any key to close
this window. PlatformIO IDE uses only Clang completion engine that
should work after it without any problems.
- **Linux**: Using package managers: ``apt-get install clang`` or ``yum install clang``.
- **Other Systems**: Download the latest `Clang for the other systems <http://llvm.org/releases/download.html>`_.
@@ -137,30 +144,30 @@ Setting Up the Project
the corresponding icon in the PlatformIO toolbar as shown in the image below:
.. image:: ../_static/ide-atom-platformio-quick-start-1.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-1.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-1.png
2. In the "New Project Menu" choose desired boards (more than one board is
allowed) and select a project directory. Then press "Initialize" button:
.. image:: ../_static/ide-atom-platformio-quick-start-2.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-2.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-2.png
3. If everything is fine, you should see the success message and project tree
in the left panel:
.. image:: ../_static/ide-atom-platformio-quick-start-3.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-3.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-3.png
4. Now, let's create the first project source file: right-click on the folder
``src`` and choose ``New File``:
.. image:: ../_static/ide-atom-platformio-quick-start-4.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-4.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-4.png
Enter filename ``main.cpp``:
.. image:: ../_static/ide-atom-platformio-quick-start-5.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-5.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-5.png
Copy the next source code to the just created file ``main.cpp``:
@@ -202,13 +209,13 @@ upload firmware, run other targets) using:
- :ref:`ide_atom_building_targets` and hotkeys
.. image:: ../_static/ide-atom-platformio-quick-start-6.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-6.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-6.png
5. Run ``Build`` and you should see green "success" result in the building
panel:
.. image:: ../_static/ide-atom-platformio-quick-start-7.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-7.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-7.png
To upload firmware to the board run ``Upload``.
@@ -217,39 +224,39 @@ To upload firmware to the board run ``Upload``.
or call targets list from the status bar (bottom, left corner):
.. image:: ../_static/ide-atom-platformio-quick-start-8.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-8.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-8.png
And select desired target:
.. image:: ../_static/ide-atom-platformio-quick-start-9.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-9.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-9.png
7. To run built-in terminal interface choose ``Menu: PlatformIO > Terminal`` or
press the corresponding icon in the PlatformIO toolbar:
.. image:: ../_static/ide-atom-platformio-quick-start-10.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-10.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-10.png
It provides you fast access to all set of powerful PlatformIO CLI commands:
.. image:: ../_static/ide-atom-platformio-quick-start-11.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-11.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-11.png
8. To run built-in "Serial Monitor" choose ``Menu: PlatformIO > Serial Monitor``
or press the corresponding icon in the PlatformIO toolbar:
.. image:: ../_static/ide-atom-platformio-quick-start-12.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-12.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-12.png
It has several settings to adjust your connection:
.. image:: ../_static/ide-atom-platformio-quick-start-13.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-13.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-13.png
And allows you to communicate with your board in an easy way:
.. image:: ../_static/ide-atom-platformio-quick-start-14.png
:target: http://docs.platformio.org/en/latest/_images/ide-atom-platformio-quick-start-14.png
:target: http://docs.platformio.org/en/stable/_images/ide-atom-platformio-quick-start-14.png
User Guide
@@ -437,6 +444,19 @@ To force Smart Code Linter to use Arduino files as C++ please
Frequently Asked Questions
--------------------------
Keep build panel visible
~~~~~~~~~~~~~~~~~~~~~~~~
PlatformIO IDE hides build panel on success by default. Nevertheless, you can
keep it visible all time. Please follow to
``Menu: PlatformIO > Settings > Build`` and set ``Panel Visibility`` to
``Keep Visible``.
Key-bindings (toggle panel):
* ``cmd+alt+v`` - Mac OS X
* ``ctrl+alt+v`` - Windows/Linux
Automatically save on build
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -458,10 +478,13 @@ package and `C/C++ Uncrustify Code Beautifier <http://sourceforge.net/projects/u
Articles / Manuals
------------------
* May 30, 2016 - **Ron Moerman** - `IoT Development with PlatformIO <https://electronicsworkbench.io/blog/platformio>`_
* May 01, 2016 - **Pedro Minatel** - `PlatformIO Uma alternativa ao Arduino IDE (PlatformIO - An alternative to the Arduino IDE, Portuguese) <http://pedrominatel.com.br/ferramentas/platformio-uma-alternativa-ao-arduino-ide/>`_
* Apr 23, 2016 - **Al Williams** - `Hackaday: Atomic Arduino (and Other) Development <http://hackaday.com/2016/04/23/atomic-arduino-and-other-development/>`_
* Apr 16, 2016 - **Sathittham Sangthong** - `[PlatformIO] มาลองเล่น PlatformIO แทน Arduino IDE กัน (Let's play together with PlatformIO IDE [alternative to Arduino IDE], Thai) <http://www.sathittham.com/platformio/platformio-ide/>`_
* Apr 11, 2016 - **Matjaz Trcek** - `Top 5 Arduino integrated development environments <https://codeandunicorns.com/top-5-arduino-integrated-development-environments-ide/>`_
* Apr 06, 2016 - **Aleks** - `PlatformIO ausprobiert (Tried PlatformIO, German) <http://5volt-junkie.net/platformio/>`_
* Apr 02, 2016 - **Diego Pinto** - `Você tem coragem de abandonar a IDE do Arduino? PlatformIO + Atom (Do you dare to leave the Arduino IDE? PlatformIO + Atom, Portuguese) <http://www.clubemaker.com.br/?rota=artigo/81>`_
* Mar 30, 2016 - **Brandon Cannaday** - `Getting Started with PlatformIO and ESP8266 NodeMcu <https://www.getstructure.io/blog/getting-started-with-platformio-esp8266-nodemcu>`_
* Mar 12, 2016 - **Peter Marks** - `PlatformIO, the Arduino IDE for programmers <http://blog.marxy.org/2016/03/platformio-arduino-ide-for-programmers.html>`_
* Mar 05, 2016 - **brichacek.net** - `PlatformIO otevřený ekosystém pro vývoj IoT (PlatformIO an open source ecosystem for IoT development, Czech) <http://blog.brichacek.net/platformio-otevreny-ekosystem-pro-vyvoj-iot/>`_

View File

@@ -24,7 +24,7 @@ Refer to the `CLion Documentation <https://www.jetbrains.com/clion/documentation
page for more detailed information.
.. image:: ../_static/ide-platformio-clion.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-clion.png
:target: http://docs.platformio.org/en/stable/_static/ide-platformio-clion.png
.. contents::
@@ -43,41 +43,94 @@ command and generate project via :option:`platformio init --ide` command:
Then:
1. Import this project via ``Menu: File > Import Project``
1. Place source files (``*.c, *.cpp, *.h, *.hpp``) to ``src`` directory
2. 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``.
3. Open source file from ``src`` directory
4. Build project (*DO NOT RUN*): ``Menu: Run > Build``.
.. warning::
See know issue: :ref:`ide_clion_knownissues_inopde_not_supported` and how
to resolve it.
There are 6 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.
* ``PLATFORMIO_PROGRAM`` - Build and upload using external programmer (if no errors), see :ref:`atmelavr_upload_via_programmer`.
* ``PLATFORMIO_UPLOADFS`` - Upload files to file system SPIFFS, see :ref:`platform_espressif_uploadfs`.
* ``PLATFORMIO_UPDATE`` - Update installed platforms and libraries via :ref:`cmd_update`.
* ``PLATFORMIO_UPLOAD`` - Build and upload (if no errors)
* ``PLATFORMIO_CLEAN`` - Clean compiled objects
* ``PLATFORMIO_PROGRAM`` - Build and upload using external programmer
(if no errors), see :ref:`atmelavr_upload_via_programmer`
* ``PLATFORMIO_UPLOADFS`` - Upload files to file system SPIFFS,
see :ref:`platform_espressif_uploadfs`
* ``PLATFORMIO_UPDATE`` - Update installed platforms and libraries via :ref:`cmd_update`
* ``PLATFORMIO_REBUILD_PROJECT_INDEX`` - Rebuild C/C++ Index for the Project.
Allows to fix code completion and code linting issues.
.. 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).
after generating process wont be reflected in IDE. To fix it please run
``PLATFORMIO_REBUILD_PROJECT_INDEX`` target.
.. warning::
PlatformIO generates empty project by default and **code auto-completion
will not work!** To enable auto-completion please choose one of:
Known issues
------------
* 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).
.. _ide_clion_knownissues_inopde_not_supported:
``*.ino`` file isn't acceptable for ``add_executable`` command. You should
convert it manually to ``*.cpp``. See `project example <https://github.com/platformio/platformio-examples/tree/develop/ide/clion>`_.
Arduino ``.ino`` files are not supported
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CLion uses "CMake" tool for code completion and code linting. As result, it
doesn't support Arduino files (``*.ino`` and ``.pde``) because they are
not valid C/C++ based source files:
1. Missing includes such as ``#include <Arduino.h>``
2. Function declarations are omitted.
Convert Arduino file to C++ manually
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For example, we have the next ``Demo.ino`` file:
.. code-block:: cpp
void function setup () {
someFunction(13);
}
void function loop() {
delay(1000);
}
void someFunction(int num) {
}
Let's convert it to ``Demo.cpp``:
1. Add ``#include <Arduino.h>`` at the top of the source file
2. Declare each custom function (excluding built-in, such as ``setup`` and ``loop``)
before it will be called.
The final ``Demo.cpp``:
.. code-block:: cpp
#include <Arduino.h>
void someFunction(int num);
void function setup () {
someFunction(13);
}
void function loop() {
delay(1000);
}
void someFunction(int num) {
}
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
------------------
@@ -92,6 +145,6 @@ Examples
--------
"Blink" Project
^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~
Source code of `CLion "Blink" Project <https://github.com/platformio/platformio-examples/tree/develop/ide/clion>`_.

View File

@@ -14,16 +14,16 @@
CodeBlocks
==========
Code::Blocks is a free, open-source cross-platform IDE that supports multiple
compilers including GCC, Clang and Visual C++. It is developed in C++ using
wxWidgets as the GUI toolkit. Using a plugin architecture, its capabilities
and features are defined by the provided plugins. Currently, Code::Blocks is
Code::Blocks is a free, open-source cross-platform IDE that supports multiple
compilers including GCC, Clang and Visual C++. It is developed in C++ using
wxWidgets as the GUI toolkit. Using a plugin architecture, its capabilities
and features are defined by the provided plugins. Currently, Code::Blocks is
oriented towards C, C++, and Fortran.
CodeBlocks IDE can be downloaded from `here <http://www.codeblocks.org/downloads>`_.
.. image:: ../_static/ide-platformio-codeblocks.png
:target: http://docs.platformio.org/en/latest/_images/ide-platformio-codeblocks.png
:target: http://docs.platformio.org/en/stable/_images/ide-platformio-codeblocks.png
.. contents::

View File

@@ -28,7 +28,7 @@ Refer to the `CDT Documentation <https://eclipse.org/cdt/documentation.php>`_
page for more detailed information.
.. image:: ../_static/ide-platformio-eclipse.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-eclipse.png
:target: http://docs.platformio.org/en/stable/_static/ide-platformio-eclipse.png
.. contents::
@@ -51,7 +51,7 @@ Then:
``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 using ``Menu: Project > Build Project`` or preconfigured
3. Build project using ``Menu: Project > Build Project`` or pre-configured
Make Targets (see screenshot below):
+ ``PlatformIO: Build`` - Build project without auto-uploading
@@ -59,21 +59,37 @@ Then:
+ ``PlatformIO: Upload`` - Build and upload (if no errors)
+ ``PlatformIO: Upload using Programmer`` see :ref:`atmelavr_upload_via_programmer`
+ ``PlatformIO: Upload SPIFFS image`` see :ref:`platform_espressif_uploadfs`
+ ``PlatformIO: Update platforms and libraries`` - Update installed platforms and libraries via :ref:`cmd_update`.
+ ``PlatformIO: Update platforms and libraries`` - Update installed
platforms and libraries via :ref:`cmd_update`
+ ``PlatformIO: Rebuild C/C++ Project Index`` - Rebuild C/C++ Index for the Project.
Allows to fix code completion and code linting issues.
If you have some problems with unresolved includes, defines, etc., then
* Restart Eclipse IDE
* Rebuild index using ``Menu: Project > C/C++ Index > Rebuild``.
1. Rebuild PlatformIO Project Index:
``PlatformIO: Rebuild C/C++ Project Index`` target
2. Rebuild Eclipse Project Index: ``Menu: Project > C/C++ Index > Rebuild``
3. Refresh Project, right click on the project ``Project > Refresh`` (F5) or
restart Eclipse IDE.
.. 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).
after generating process wont be reflected in IDE. To fix it please run
``PlatformIO: Rebuild C/C++ Project Index`` target and right click on the
project and ``Project > Refresh`` (F5).
Live Integration
----------------
Eclipse Virtual IoT Meetup: `PlatformIO: a cross-platform IoT solution to build them all! <http://www.meetup.com/Virtual-IoT/events/229964142/>`_
.. image:: ../_static/ide-eclipse-virtualiot.jpg
:target: https://www.youtube.com/watch?v=6t7UbX812Yw
Articles / Manuals
------------------
* May 05, 2016 - **Ivan Kravets, Ph.D. / Eclipse Virtual IoT Meetup** - `PlatformIO: a cross-platform IoT solution to build them all! <http://www.meetup.com/Virtual-IoT/events/229964142/>`_
* 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>`_

View File

@@ -23,7 +23,7 @@ Refer to the `Emacs Documentation <https://www.gnu.org/software/emacs/#Manuals>`
page for more detailed information.
.. image:: ../_static/ide-platformio-emacs.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-emacs.png
:target: http://docs.platformio.org/en/stable/_static/ide-platformio-emacs.png
.. contents::

View File

@@ -26,7 +26,7 @@ Just make sure you download the C/C++ version (or if you already use NetBeans,
install the C/C++ development plugins).
.. image:: ../_static/ide-platformio-netbeans.png
:target: http://docs.platformio.org/en/latest/_images/ide-platformio-netbeans.png
:target: http://docs.platformio.org/en/stable/_images/ide-platformio-netbeans.png
.. contents::

View File

@@ -20,7 +20,7 @@ Refer to the `Qt-creator Manual <http://doc.qt.io/qtcreator/>`_
page for more detailed information.
.. image:: ../_static/ide-platformio-qtcreator-7.png
:target: http://docs.platformio.org/en/latest/_static/ide-platformio-qtcreator-7.png
:target: http://docs.platformio.org/en/stable/_static/ide-platformio-qtcreator-7.png
.. contents::
@@ -83,7 +83,7 @@ Then:
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
:target: http://docs.platformio.org/en/stable/_static/ide-platformio-qtcreator-3.png
.. warning::
The libraries which are added, installed or used in the project
@@ -99,7 +99,7 @@ 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
:target: http://docs.platformio.org/en/stable/_static/ide-platformio-qtcreator-1.png
On the next steps select any available kit and click Finish button.
@@ -108,7 +108,7 @@ On the next steps select any available kit and click Finish button.
Secondly, we need to delete default build and clean steps and configure project with PlatformIO Build System (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
:target: http://docs.platformio.org/en/stable/_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:
@@ -125,7 +125,7 @@ Thirdly, change project file by adding path to directories with header files. Pl
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
:target: http://docs.platformio.org/en/stable/_static/ide-platformio-qtcreator-4.png
First program in Qt Creator
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -136,7 +136,7 @@ Simple "Blink" project will consist from two files:
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
:target: http://docs.platformio.org/en/stable/_static/ide-platformio-qtcreator-5.png
Copy the source code which is described below to file ``main.c``.
@@ -161,22 +161,19 @@ Copy the source code which is described below to file ``main.c``.
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
:target: http://docs.platformio.org/en/stable/_static/ide-platformio-qtcreator-6.png
Edit the content to match the code described below.
.. code-block:: none
#
# Project Configuration File
# PlatformIO Project Configuration File
#
# A detailed documentation with the EXAMPLES is located here:
# http://docs.platformio.org/en/latest/projectconf.html
# Please make sure to read documentation with examples first
# http://docs.platformio.org/en/stable/projectconf.html
#
# A sign `#` at the beginning of the line indicates a comment
# Comment lines are ignored.
[env:arduino_uno]
platform = atmelavr
framework = arduino

View File

@@ -167,15 +167,12 @@ Copy the source code which is described below to it.
.. code-block:: none
#
# Project Configuration File
# PlatformIO Project Configuration File
#
# A detailed documentation with the EXAMPLES is located here:
# http://docs.platformio.org/en/latest/projectconf.html
# Please make sure to read documentation with examples first
# http://docs.platformio.org/en/stable/projectconf.html
#
# A sign `#` at the beginning of the line indicates a comment
# Comment lines are ignored.
[env:arduino_uno]
platform = atmelavr
framework = arduino

View File

@@ -20,7 +20,7 @@ Refer to the `Visual Studio Documentation <https://msdn.microsoft.com/library/vs
page for more detailed information.
.. image:: ../_static/ide-vs-platformio-newproject-8.png
:target: http://docs.platformio.org/en/latest/_static/ide-vs-platformio-newproject-8.png
:target: http://docs.platformio.org/en/stable/_static/ide-vs-platformio-newproject-8.png
.. contents::
@@ -127,15 +127,12 @@ Copy the source code which is described below to it.
.. code-block:: none
#
# Project Configuration File
# PlatformIO Project Configuration File
#
# A detailed documentation with the EXAMPLES is located here:
# http://docs.platformio.org/en/latest/projectconf.html
# Please make sure to read documentation with examples first
# http://docs.platformio.org/en/stable/projectconf.html
#
# A sign `#` at the beginning of the line indicates a comment
# Comment lines are ignored.
[env:arduino_uno]
platform = atmelavr
framework = arduino
@@ -175,4 +172,4 @@ disable IntelliSense error reporting at all.
See details in `issue #543 <https://github.com/platformio/platformio/issues/543>`_
.. image:: ../_static/ide-vs-platformio-newproject-9.png
:target: http://docs.platformio.org/en/latest/_static/ide-vs-platformio-newproject-9.png
:target: http://docs.platformio.org/en/stable/_static/ide-vs-platformio-newproject-9.png

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -19,7 +19,7 @@ integration. Arduino and MBED compatible. Ready for Cloud compiling.**
C/C++ Intelligent Code Completion and Smart Code Linter for the super-fast coding.
Multi-projects workflow with Multiple Panes. Themes Support with dark and light colors.
Built-in Terminal with PlatformIO CLI tool and support for the powerful Serial Port Monitor.
All advanced instruments without leaving your favourite development environment.
All advanced instruments without leaving your favorite development environment.
* **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)
@@ -39,7 +39,7 @@ libOpenCM3, etc.*
* :ref:`ide_atom`
* `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>`_
* `Project Examples <https://github.com/platformio/platformio-examples/tree/develop>`_
* `Source Code <https://github.com/platformio/platformio>`_ |
`Issues <https://github.com/platformio/platformio/issues>`_
* `Blog <http://www.ikravets.com/category/computer-life/platformio>`_ |
@@ -57,8 +57,7 @@ Embedded Development. *Easier Than Ever.*
* 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>`
* Pre-built toolchains, :ref:`frameworks` for the :ref:`platforms`
Smart Build System. *Fast and Reliable.*
----------------------------------------
@@ -108,8 +107,10 @@ Contents
:caption: Instruments
:maxdepth: 3
Platforms & Boards <platforms/index>
platforms/index
platforms/embedded_boards
frameworks/index
platforms/custom_platform_and_board
.. toctree::
:caption: Library Manager

View File

@@ -141,7 +141,7 @@ Examples:
The repository in which the source code can be found. The field consists for the
next items:
* ``type``
* ``type`` the only "git", "hg" or "svn" are supported
* ``url``
* ``branch`` if is not specified, default branch will be used. This field will
be ignored if tag/release exists with the value of :ref:`libjson_version`.

View File

@@ -20,6 +20,9 @@ source code structure. The only one requirement is library's manifest file -
:ref:`library_config`. It can be located inside your library or in the another
location where |PIOAPICR| will have *HTTP* access.
Updates to existing libraries are done every 24 hours. In case a more urgent
update is required, you can post a request on PlatformIO `community <https://community.platformio.org/>`_.
.. contents::
Source Code Location
@@ -152,6 +155,12 @@ to :ref:`install <cmd_lib_install>` it.
Examples
--------
Command:
.. code-block:: bash
$ platformio lib register http://my.example.com/library.json
* `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,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -43,16 +43,6 @@ Packages
* - ``tool-micronucleus``
- `Micronucleus <https://github.com/micronucleus/micronucleus>`_
.. 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::
@@ -166,6 +156,33 @@ Adafruit
- 8 Kb
- 0.5 Kb
Arduboy
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``arduboy``
- `Arduboy <https://www.arduboy.com>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``arduboy_devkit``
- `Arduboy DevKit <https://www.arduboy.com>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
Arduino
~~~~~~~
@@ -702,6 +719,13 @@ Mcudude
- 64 Kb
- 4 Kb
* - ``mightycore8535``
- `MightyCore ATmega8535 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA16
- 16 MHz
- 8 Kb
- 0.5 Kb
Microduino
~~~~~~~~~~
@@ -778,6 +802,26 @@ Microduino
- 64 Kb
- 4 Kb
OpenEnergyMonitor
~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``emonpi``
- `OpenEnergyMonitor emonPi <https://github.com/openenergymonitor/emonpi>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
- 2 Kb
PanStamp
~~~~~~~~
@@ -798,6 +842,26 @@ PanStamp
- 32 Kb
- 2 Kb
Pinoccio
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``pinoccio``
- `Pinoccio Scout <https://www.crowdsupply.com/pinoccio/mesh-sensor-network>`_
- ATMEGA256RFR2
- 16 MHz
- 256 Kb
- 32 Kb
Punch Through
~~~~~~~~~~~~~

View File

@@ -95,6 +95,13 @@ Configuration for the programmers:
upload_port = SERIAL_PORT_HERE
upload_speed = 19200
Upload EEPROM data
------------------
To upload EEPROM data (from EEMEM directive) you need to use ``uploadeep``
target instead ``upload`` for :option:`platformio run --target` command.
For example, ``platformio run -t uploadeep``.
Articles
--------

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -28,23 +28,26 @@ Packages
* - 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/>`_
* - ``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>`_
* - ``framework-simba``
- `Simba Framework <https://github.com/eerimoq/simba>`_
* - ``tool-openocd``
- `OpenOCD <http://openocd.org>`_
* - ``framework-mbed``
- `mbed Framework <http://mbed.org>`_
* - ``ldscripts``
- `Linker Scripts <https://sourceware.org/binutils/docs/ld/Scripts.html>`_
* - ``tool-avrdude``
- `AVRDUDE <http://www.nongnu.org/avrdude/>`_
* - ``tool-bossac``
- `BOSSA CLI <https://sourceforge.net/projects/b-o-s-s-a/>`_
@@ -85,6 +88,26 @@ 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
* - ``adafruit_feather_m0_usb``
- `Adafruit Feather M0 <https://www.adafruit.com/product/2772>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
Arduino
~~~~~~~
@@ -112,6 +135,41 @@ Arduino
- 512 Kb
- 32 Kb
* - ``mkr1000USB``
- `Arduino MKR1000 <https://www.arduino.cc/en/Main/ArduinoMKR1000>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``mzeroUSB``
- `Arduino M0 <http://www.arduino.org/products/boards/arduino-m0>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``mzeropro``
- `Arduino M0 Pro (Programming Port) <http://www.arduino.org/products/boards/arduino-m0-pro>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``mzeroproUSB``
- `Arduino M0 Pro (Native USB Port) <http://www.arduino.org/products/boards/arduino-m0-pro>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``tian``
- `Arduino Tian <http://www.arduino.org/products/boards/arduino-tian>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``zero``
- `Arduino Zero (Programming Port) <https://www.arduino.cc/en/Main/ArduinoBoardZero>`_
- SAMD21G18A
@@ -206,3 +264,30 @@ SainSmart
- 84 MHz
- 512 Kb
- 32 Kb
SparkFun
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``sparkfun_samd21_dev_usb``
- `SparkFun SAMD21 Dev Breakout <https://www.sparkfun.com/products/13672>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb
* - ``sparkfun_samd21_mini_usb``
- `SparkFun SAMD21 Mini Breakout <https://www.sparkfun.com/products/13664>`_
- SAMD21G18A
- 48 MHz
- 256 Kb
- 32 Kb

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -11,8 +11,8 @@
.. _board_creating:
Custom Board
============
Custom Embedded Board
=====================
*PlatformIO* has pre-built settings for the most popular embedded boards. This
list is available:
@@ -33,10 +33,9 @@ JSON Structure
The key fields:
* ``build`` data will be used by :ref:`Platforms <platforms>` and
:ref:`frameworks` builders
* ``build`` data will be used by :ref:`platforms` and :ref:`frameworks` builders
* ``frameworks`` is the list with supported :ref:`frameworks`
* ``platform`` main type of :ref:`Platforms <platforms>`
* ``platform`` main type of :ref:`platforms`
* ``upload`` upload settings which depend on the ``platform``
.. code-block:: json

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -11,8 +11,8 @@
.. _platform_creating:
Custom Platform
===============
Custom Development 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`
@@ -27,7 +27,7 @@ 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
:ref:`platforms`, you don't need to create (or duplicate) own
development platforms! Please use :ref:`projectconf_build_flags` option.
**Step-by-Step Manual**
@@ -143,6 +143,9 @@ Packages
* - ``tool-scons``
- `SCons software construction tool <http://www.scons.org>`_
* - ``tool-sreccat``
- `Merging tool <https://github.com/marcows/SRecord>`_
* - ``tool-stlink``
- `ST-Link <https://github.com/texane/stlink>`_

View File

@@ -0,0 +1,19 @@
.. Copyright 2014-present 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 Platform & Board
=======================
.. toctree::
:maxdepth: 2
creating_platform
creating_board

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -210,6 +210,13 @@ Espressif
- 4096 Kb
- 80 Kb
* - ``esp8285``
- `Generic ESP8285 Module <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 448 Kb
- 80 Kb
* - ``esp_wroom_02``
- `ESP-WROOM-02 <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
@@ -217,6 +224,27 @@ Espressif
- 4096 Kb
- 50 Kb
* - ``phoenix_v1``
- `Phoenix 1.0 <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``phoenix_v2``
- `Phoenix 2.0 <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``wifinfo``
- `WifInfo <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 448 Kb
- 80 Kb
NodeMCU
~~~~~~~

View File

@@ -240,6 +240,12 @@ Using Arduino Framework with Staging version
Articles
--------
* Jun 13, 2016 - **Daniel Eichhorn** - `New Weather Station Demo on Github <http://blog.squix.org/2016/06/new-weather-station-demo-on-github.html>`_
* Jun 3, 2016 - **Daniel Eichhorn** - `ESP8266: Continuous Delivery Pipeline Push To Production <http://blog.squix.org/2016/06/esp8266-continuous-delivery-pipeline-push-to-production.html>`_
* May 29, 2016 - **Chris Synan** - `Reverse Engineer RF Remote Controller for IoT! <http://www.instructables.com/id/Reverse-Engineer-RF-Remote-Controller-for-IoT/?ALLSTEPS>`_
* May 22, 2016 - **Pedro Minatel** - `Estação meteorológica com ESP8266 (Weather station with ESP8266, Portuguese) <http://pedrominatel.com.br/esp8266/estacao-meteorologica-com-esp8266/>`_
* May 16, 2016 - **Pedro Minatel** - `Controle remoto WiFi com ESP8266 (WiFi remote control using ESP8266, Portuguese) <http://pedrominatel.com.br/esp8266/controle-remoto-wifi-com-esp8266/>`_
* May 08, 2016 - **Radoslaw Bob** - `Touch controlled buzzer (Nodemcu ESP8266) <https://gettoknowthebob.wordpress.com/2016/05/08/touch-controlled-buzzer-nodemcu-esp8266/>`_
* Mar 07, 2016 - **Joran Jessurun** - `Nieuwe wereld met PlatformIO (New world with PlatformIO, Dutch) <http://blog.wisclub.nl/#post178>`_
* Feb 25, 2016 - **NutDIY** - `PlatformIO Blink On Nodemcu Dev Kit V1.0 (ESP 12-E) <http://nutdiy.blogspot.com/2016/02/platformio-blink-on-nodemcu-dev-kit-v10.html>`_
* Feb 23, 2016 - **Ptarmigan Labs** - `ESP8266 Over The Air updating what are the options? <https://ptarmiganlabs.com/blog/2016/02/23/esp8266-over-the-air-updating-what-are-the-options/>`_

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -11,8 +11,8 @@
.. _platforms:
Platforms & Embedded Boards
===========================
Development Platforms
=====================
*PlatformIO* has pre-built different development platforms for popular OS
(*Mac OS X, Linux (+ARM) and Windows*). Each of them include compiler,
@@ -54,12 +54,3 @@ Desktop
linux_i686
linux_x86_64
windows_x86
Custom Platform & Board
-----------------------
.. toctree::
:maxdepth: 2
creating_platform
creating_board

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -177,13 +177,6 @@ Digilent
- 512 Kb
- 128 Kb
* - ``openbci``
- `Digilent OpenScope <http://store.digilentinc.com/>`_
- 32MX250F128B
- 40 MHz
- 128 Kb
- 32 Kb
* - ``openscope``
- `Digilent OpenScope <http://store.digilentinc.com/>`_
- 32MZ2048EFG124
@@ -245,6 +238,26 @@ Olimex
- 256 Kb
- 32 Kb
OpenBCI
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``openbci``
- `OpenBCI 32bit <http://shop.openbci.com/>`_
- 32MX250F128B
- 40 MHz
- 128 Kb
- 32 Kb
PONTECH
~~~~~~~
@@ -319,6 +332,26 @@ UBW32
- 512 Kb
- 128 Kb
chipKIT
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``lenny``
- `chipKIT Lenny <http://chipkit.net/tag/lenny/>`_
- 32MX270F256D
- 40 MHz
- 128 Kb
- 32 Kb
element14
~~~~~~~~~

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -37,6 +37,9 @@ Packages
* - ``toolchain-gccarmnoneeabi``
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
* - ``tool-sreccat``
- `Merging tool <https://github.com/marcows/SRecord>`_
* - ``framework-arduinonordicnrf51``
- `Arduino Wiring-based Framework (RFduino Core) <https://github.com/RFduino/RFduino>`_

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -98,6 +98,13 @@ Silicon Labs
- 256 Kb
- 32 Kb
* - ``efm32pg_stk3401``
- `Silicon Labs SLSTK3401A (Pearl Gecko) <https://developer.mbed.org/platforms/EFM32-Pearl-Gecko/>`_
- EFM32PG1B200F256
- 40 MHz
- 256 Kb
- 32 Kb
* - ``efm32wg_stk3800``
- `Silicon Labs EFM32WG-STK3800 (Wonder Gecko) <https://developer.mbed.org/platforms/EFM32-Wonder-Gecko/>`_
- EFM32WG990F256

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -142,6 +142,26 @@ Armstrap
- 512 Kb
- 192 Kb
MultiTech
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``mts_mdot_f411re``
- `MultiTech mDot F411 <https://developer.mbed.org/platforms/MTS-mDot-F411/>`_
- STM32F411RET6
- 100 MHz
- 512 Kb
- 128 Kb
ST
~~
@@ -337,6 +357,13 @@ ST
- 512 Kb
- 128 Kb
* - ``nucleo_l031k6``
- `ST Nucleo L031K6 <https://developer.mbed.org/platforms/ST-Nucleo-L031K6/>`_
- STM32L031K6T6
- 32 MHz
- 32 Kb
- 8 Kb
* - ``nucleo_l053r8``
- `ST Nucleo L053R8 <https://developer.mbed.org/platforms/ST-Nucleo-L053R8/>`_
- STM32L053R8T6

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -9,6 +9,33 @@
See the License for the specific language governing permissions and
limitations under the License.
USB Features
------------
If you want to use Teensy USB Features, you need to add special
acros/define using :ref:`projectconf_build_flags`:
* ``-D USB_HID``
* ``-D USB_SERIAL_HID``
* ``-D USB_DISK``
* ``-D USB_DISK_SDFLASH``
* ``-D USB_MIDI``
* ``-D USB_RAWHID``
* ``-D USB_FLIGHTSIM``
* ``-D USB_DISABLED``
Example:
.. code-block:: ini
[env:teensy_hid_device]
platform = teensy
framework = arduino
board = teensy20
build_flags = -D USB_RAWHID
See `Teensy USB Examples <https://www.pjrc.com/teensy/usb_debug_only.html>`_.
Examples
--------

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -122,7 +122,7 @@ TI
* - ``lpmsp430fr4133``
- `TI LaunchPad w/ msp430fr4133 <http://www.ti.com/tool/msp-exp430fr4133>`_
- MSP430G2553
- MSP430FR4133
- 16 MHz
- 16 Kb
- 2 Kb
@@ -143,7 +143,7 @@ TI
* - ``lpmsp430fr6989``
- `TI LaunchPad w/ msp430fr6989 <http://www.ti.com/tool/msp-exp430fr6989>`_
- MSP430G2553
- MSP430FR6989
- 16 MHz
- 128 Kb
- 2 Kb

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -97,7 +97,11 @@ This option can be overridden by global environment variable
``envs_dir``
^^^^^^^^^^^^
This is a cache directory. *PlatformIO Build System* uses this folder for project
.. warning::
**PLEASE DO NOT EDIT FILES IN THIS FOLDER**. PlatformIO will overwrite
your changes on the next build. **THIS IS A CACHE DIRECTORY**.
*PlatformIO Build System* uses this folder for project
environments to store compiled object files, static libraries, firmwares and
other cached information. It allows PlatformIO to build source code extremely
fast!
@@ -194,7 +198,7 @@ General options
``platform``
^^^^^^^^^^^^
:ref:`Platform <platforms>` type.
:ref:`platforms` type.
.. _projectconf_env_framework:
@@ -351,6 +355,10 @@ Example:
[env:specific_ld_script]
build_flags = -Wl,-T/path/to/ld_script.ld
[env:exec_command]
# get VCS revision "on-the-fly"
build_flags = !echo "-DPIO_SRC_REV="$(git rev-parse HEAD)
For more detailed information about available flags/options go to:
@@ -373,7 +381,7 @@ For more detailed information about available flags/options go to:
``src_build_flags``
^^^^^^^^^^^^^^^^^^^
An option ``src_build_flags`` has the same behaviour like ``build_flags``
An option ``src_build_flags`` has the same behavior like ``build_flags``
but will be applied only for the project source code from
:ref:`projectconf_pio_src_dir` directory.
@@ -585,7 +593,7 @@ Example:
``lib_dfcyclic``
^^^^^^^^^^^^^^^^
Control cyclic (recursive) behaviour for ``Library Dependency Finder (LDF)``.
Control cyclic (recursive) behavior for ``Library Dependency Finder (LDF)``.
By default, this option is turned OFF (``lib_dfcyclic=False``) and means that
``LDF`` will find only libraries which are included in source files from the
project :ref:`projectconf_pio_src_dir`.
@@ -610,7 +618,7 @@ Examples
.. note::
A full list with project examples can be found in
`PlatformIO Repository <https://github.com/platformio/platformio/tree/develop/examples>`_.
`PlatformIO Repository <https://github.com/platformio/platformio-examples/tree/develop>`_.
1. :ref:`platform_atmelavr`: Arduino UNO board with auto pre-configured
``board_*`` and ``upload_*`` options (use only ``board`` option) and Arduino

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -15,7 +15,7 @@ Quick Start
===========
.. note::
If you are looking for a Qucik Start for PlatformIO IDE please follow to
If you are looking for a Quick Start for PlatformIO IDE please follow to
:ref:`PlatformIO IDE Quick Start <atom_ide_quickstart>` page.
This tutorial introduces you to the basics of PlatformIO Command Line Interface
@@ -30,7 +30,7 @@ PlatformIO CLI provides special :ref:`cmd_init` command for configuring your pro
It allows to initialize new empty project or update existing with the new data.
What is more, :ref:`cmd_init` can be used for :ref:`ide`. It means that you will
be able to import pre-generated PlatformIO project using favourite IDE and
be able to import pre-generated PlatformIO project using favorite IDE and
extend it with the professional instruments for IoT development.
This tutorial is based on the next popular embedded boards and development
@@ -147,24 +147,12 @@ The result of just generated ``platformio.ini``:
.. code-block:: ini
#
# Project Configuration File
# PlatformIO Project Configuration File
#
# A detailed documentation with the EXAMPLES is located here:
# http://docs.platformio.org/en/latest/projectconf.html
# Please make sure to read documentation with examples first
# http://docs.platformio.org/en/stable/projectconf.html
#
# A sign `#` at the beginning of the line indicates a comment
# Comment lines are ignored.
# Simple and base environment
# [env:mybaseenv]
# platform = %INSTALLED_PLATFORM_NAME_HERE%
# framework =
# board =
#
# Automatic targets - enable auto-uploading
# targets = upload
[env:uno]
platform = atmelavr
framework = arduino
@@ -256,5 +244,5 @@ Arduino Uno:
Further Reading
---------------
* `Project examples <https://github.com/platformio/platformio/tree/develop/examples>`_
* `Project examples <https://github.com/platformio/platformio-examples/tree/develop>`_
* :ref:`userguide` for PlatformIO CLI commands

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -29,7 +29,7 @@ Description
:ref:`cmd_ci` command is conceived of as "hot key" for building project with
arbitrary source code structure. In a nutshell, using ``SRC`` and
:option:`platformio ci --lib` contents PlatformIO initialises via
:option:`platformio ci --lib` contents PlatformIO initializes via
:ref:`cmd_init` new project in :option:`platformio ci --build-dir`
with the build environments (using :option:`platformio ci --board` or
:option:`platformio ci --project-conf`) and processes them via :ref:`cmd_run`

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -47,7 +47,7 @@ Options
.. option::
-d, --project-dir
A path to the directory where *PlatformIO* will initialise new project.
A path to the directory where *PlatformIO* will initialize new project.
.. option::
-b, --board

View File

@@ -207,14 +207,11 @@ default ``20`` (DEC)
Diagnostics: suppress non-error messages, default ``Off``
.. option::
--echo
Enable local echo, default ``Off``
**REMOVED**: Is not available in Miniterm/PySerial 3.0
.. option::
--cr

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -27,7 +27,7 @@ Usage
Description
-----------
Check or update installed :ref:`Platforms <platforms>` and
Check or update installed :ref:`platforms` and
:ref:`Libraries <librarymanager>`

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -27,8 +27,7 @@ Usage
Description
-----------
Install pre-built development :ref:`Platforms <platforms>` with related
packages.
Install pre-built development :ref:`platforms` with related packages.
There are several predefined aliases for packages, such as:

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -27,7 +27,7 @@ Usage
Description
-----------
List installed :ref:`Platforms <platforms>`
List installed :ref:`platforms`
Options
~~~~~~~

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -27,7 +27,7 @@ Usage
Description
-----------
Search for development :ref:`Platforms <platforms>`
Search for development :ref:`platforms`
Options
~~~~~~~

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -27,7 +27,7 @@ Usage
Description
-----------
Show details about the installed :ref:`Platforms <platforms>`
Show details about the installed :ref:`platforms`
Examples

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -27,7 +27,7 @@ Usage
Description
-----------
Uninstall specified :ref:`Platforms <platforms>`
Uninstall specified :ref:`platforms`
Examples

View File

@@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present 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
@@ -27,7 +27,7 @@ Usage
Description
-----------
Check or update installed :ref:`Platforms <platforms>`
Check or update installed :ref:`platforms`
Examples

View File

@@ -14,7 +14,7 @@
import sys
VERSION = (2, 9, 1)
VERSION = (2, 11, 2)
__version__ = ".".join([str(s) for s in VERSION])
__title__ = "platformio"

View File

@@ -122,7 +122,7 @@ An unexpected error occurred. Further steps:
`pip install -U platformio` command
* Try to find answer in FAQ Troubleshooting section
http://docs.platformio.org/en/latest/faq.html
http://docs.platformio.org/en/stable/faq.html
* Report this problem to the developers
https://github.com/platformio/platformio/issues

View File

@@ -46,7 +46,7 @@ DEFAULT_SETTINGS = {
},
"enable_telemetry": {
"description": (
"Telemetry service <http://docs.platformio.org/en/latest/"
"Telemetry service <http://docs.platformio.org/en/stable/"
"userguide/cmd_settings.html?#enable-telemetry> (Yes/No)"),
"value": True
},

View File

@@ -7,7 +7,7 @@
"mcu": "atmega32u4",
"usb_product": "Adafruit Flora",
"variant": "flora",
"hwid": [
"hwids": [
["0x239A", "0x8004"]
]
},
@@ -36,7 +36,7 @@
"mcu": "atmega32u4",
"usb_product": "Bluefruit Micro",
"variant": "bluefruitmicro",
"hwid": [
"hwids": [
["0x239A", "0x800A"]
]
},
@@ -85,7 +85,7 @@
"mcu": "atmega32u4",
"usb_product": "Feather 32u4",
"variant": "feather32u4",
"hwid": [
"hwids": [
["0x239A", "0x800C"]
]
},
@@ -248,5 +248,35 @@
},
"url": "http://www.adafruit.com/products/2000",
"vendor": "Adafruit"
},
"adafruit_feather_m0_usb": {
"build": {
"core": "arduino_zero",
"extra_flags": "-DARDUINO_SAMD_FEATHER_M0 -DARDUINO_ARCH_SAMD -D__SAMD21G18A__",
"f_cpu": "48000000L",
"mcu": "samd21g18a",
"cpu": "cortex-m0plus",
"usb_product": "Adafruit Feather M0",
"variant": "arduino_zero",
"ldscript": "flash_with_bootloader.ld",
"hwids": [
["0x239A", "0x800B"],
["0x239A", "0x000B"]
]
},
"frameworks": ["arduino"],
"name": "Adafruit Feather M0",
"platform": "atmelsam",
"upload": {
"disable_flushing": true,
"maximum_ram_size": 32768,
"maximum_size": 262144,
"protocol": "sam-ba",
"require_upload_port" : true,
"use_1200bps_touch": true,
"wait_for_upload_port": true
},
"url": "https://www.adafruit.com/product/2772",
"vendor": "Adafruit"
}
}

View File

@@ -7,7 +7,7 @@
"mcu": "atmega32u4",
"usb_product": "LilyPad USB",
"variant": "leonardo",
"hwid": [
"hwids": [
["0x1B4F", "0x9207"],
["0x1B4F", "0x9208"]
]
@@ -164,7 +164,7 @@
"mcu": "atmega32u4",
"usb_product": "Arduino Esplora",
"variant": "leonardo",
"hwid": [
"hwids": [
["0x2341", "0x003C"],
["0x2341", "0x803C"],
["0x2A03", "0x003C"],
@@ -237,7 +237,7 @@
"mcu": "atmega32u4",
"usb_product": "Arduino Leonardo",
"variant": "leonardo",
"hwid": [
"hwids": [
["0x2341", "0x0036"],
["0x2341", "0x8036"],
["0x2A03", "0x0036"],
@@ -268,7 +268,7 @@
"mcu": "atmega32u4",
"usb_product": "Arduino Leonardo ETH",
"variant": "leonardo",
"hwid": [
"hwids": [
["0x2A03", "0x8040"],
["0x2A03", "0x0040"]
]
@@ -402,7 +402,7 @@
"mcu": "atmega32u4",
"usb_product": "Arduino Micro",
"variant": "micro",
"hwid": [
"hwids": [
["0x2341", "0x0037"],
["0x2341", "0x8037"],
["0x2A03", "0x0037"],
@@ -601,7 +601,7 @@
"mcu": "atmega32u4",
"usb_product": "Robot Control",
"variant": "robot_control",
"hwid": [
"hwids": [
["0x2341", "0x0038"],
["0x2341", "0x8038"],
["0x2A03", "0x0038"],
@@ -632,7 +632,7 @@
"mcu": "atmega32u4",
"usb_product": "Robot Motor",
"variant": "robot_motor",
"hwid": [
"hwids": [
["0x2341", "0x0039"],
["0x2341", "0x8039"],
["0x2A03", "0x0039"],
@@ -662,7 +662,7 @@
"f_cpu": "16000000L",
"mcu": "atmega328p",
"variant": "standard",
"hwid": [
"hwids": [
["0x2341", "0x0043"],
["0x2341", "0x0001"],
["0x2A03", "0x0043"]
@@ -689,7 +689,7 @@
"mcu": "atmega32u4",
"usb_product": "Arduino Yun",
"variant": "yun",
"hwid": [
"hwids": [
["0x2341", "0x0041"],
["0x2341", "0x8041"],
["0x2A03", "0x0041"],
@@ -721,7 +721,7 @@
"mcu": "atmega32u4",
"usb_product": "Arduino Yun Mini",
"variant": "yun",
"hwid": [
"hwids": [
["0x2A03", "0x8050"],
["0x2A03", "0x0050"]
]
@@ -751,7 +751,7 @@
"mcu": "atmega32u4",
"usb_product": "Arduino Industrial 101",
"variant": "yun",
"hwid": [
"hwids": [
["0x2A03", "0x8056"],
["0x2A03", "0x0056"]
]
@@ -781,7 +781,7 @@
"mcu": "atmega32u4",
"usb_product": "Linino One",
"variant": "yun",
"hwid": [
"hwids": [
["0x2A03", "0x8001"],
["0x2A03", "0x0001"]
]
@@ -813,7 +813,7 @@
"usb_product": "Arduino Due",
"variant": "arduino_due_x",
"ldscript": "sam3x8e.ld",
"hwid": [
"hwids": [
["0x2341", "0x003D"],
["0x2A03", "0x003D"]
]
@@ -843,7 +843,7 @@
"usb_product": "Arduino Due",
"variant": "arduino_due_x",
"ldscript": "sam3x8e.ld",
"hwid": [
"hwids": [
["0x2341", "0x003E"],
["0x2A03", "0x003E"]
]
@@ -873,7 +873,7 @@
"usb_product": "Arduino Zero",
"variant": "arduino_zero",
"ldscript": "flash_with_bootloader.ld",
"hwid": [
"hwids": [
["0x2341", "0x804D"],
["0x03EB", "0x2157"]
]
@@ -881,14 +881,18 @@
"frameworks": ["arduino"],
"name": "Arduino Zero (Programming Port)",
"platform": "atmelsam",
"debug": {
"openocdcfg": "arduino_zero.cfg"
},
"upload": {
"disable_flushing": true,
"maximum_ram_size": 32768,
"maximum_size": 262144,
"protocol": "sam-ba",
"protocol": "openocd",
"require_upload_port" : false,
"use_1200bps_touch": false,
"wait_for_upload_port": false
"wait_for_upload_port": false,
"section_start": "0x2000"
},
"url": "https://www.arduino.cc/en/Main/ArduinoBoardZero",
"vendor": "Arduino"
@@ -903,7 +907,7 @@
"usb_product": "Arduino Zero",
"variant": "arduino_zero",
"ldscript": "flash_with_bootloader.ld",
"hwid": [
"hwids": [
["0x2341", "0x804D"],
["0x2341", "0x004D"],
["0x2341", "0x824D"]
@@ -923,5 +927,167 @@
},
"url": "https://www.arduino.cc/en/Main/ArduinoBoardZero",
"vendor": "Arduino"
},
"mkr1000USB": {
"build": {
"core": "arduino_zero",
"extra_flags": "-DARDUINO_SAMD_MKR1000 -DARDUINO_ARCH_SAMD -D__SAMD21G18A__",
"f_cpu": "48000000L",
"mcu": "samd21g18a",
"cpu": "cortex-m0plus",
"usb_product": "Arduino MKR1000",
"variant": "mkr1000",
"ldscript": "flash_with_bootloader.ld",
"hwids": [
["0x2341", "0x804E"],
["0x2341", "0x004E"],
["0x2341", "0x824E"],
["0x2341", "0x024E"]
]
},
"frameworks": ["arduino"],
"name": "Arduino MKR1000",
"platform": "atmelsam",
"upload": {
"disable_flushing": true,
"maximum_ram_size": 32768,
"maximum_size": 262144,
"protocol": "sam-ba",
"require_upload_port" : true,
"use_1200bps_touch": true,
"wait_for_upload_port": true
},
"url": "https://www.arduino.cc/en/Main/ArduinoMKR1000",
"vendor": "Arduino"
},
"mzeropro": {
"build": {
"core": "arduino_zero_org",
"extra_flags": "-DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD -D__SAMD21G18A__",
"f_cpu": "48000000L",
"mcu": "samd21g18a",
"cpu": "cortex-m0plus",
"usb_product": "Arduino M0 Pro",
"variant": "arduino_zero_org",
"ldscript": "samd21g18a_bootloader_org.ld",
"hwids": [
["0x2A03", "0x804F"],
["0x03EB", "0x2111"]
]
},
"frameworks": ["arduino"],
"name": "Arduino M0 Pro (Programming Port)",
"platform": "atmelsam",
"debug": {
"openocdcfg": "arduino_zero_org.cfg"
},
"upload": {
"disable_flushing": true,
"maximum_ram_size": 32768,
"maximum_size": 262144,
"protocol": "openocd",
"require_upload_port" : false,
"use_1200bps_touch": false,
"wait_for_upload_port": false,
"section_start": "0x4000"
},
"url": "http://www.arduino.org/products/boards/arduino-m0-pro",
"vendor": "Arduino"
},
"mzeroproUSB": {
"build": {
"core": "arduino_zero_org",
"extra_flags": "-DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD -D__SAMD21G18A__",
"f_cpu": "48000000L",
"mcu": "samd21g18a",
"cpu": "cortex-m0plus",
"usb_product": "Arduino M0 Pro",
"variant": "arduino_zero_org",
"ldscript": "samd21g18a_bootloader_org.ld",
"hwids": [
["0x2A03", "0x804F"],
["0x2A03", "0x004F"]
]
},
"frameworks": ["arduino"],
"name": "Arduino M0 Pro (Native USB Port)",
"platform": "atmelsam",
"upload": {
"disable_flushing": true,
"maximum_ram_size": 32768,
"maximum_size": 262144,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 57600,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"section_start": "0x4000"
},
"url": "http://www.arduino.org/products/boards/arduino-m0-pro",
"vendor": "Arduino"
},
"mzeroUSB": {
"build": {
"core": "arduino_zero_org",
"extra_flags": "-DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD -D__SAMD21G18A__",
"f_cpu": "48000000L",
"mcu": "samd21g18a",
"cpu": "cortex-m0plus",
"usb_product": "Arduino M0",
"variant": "arduino_zero_org",
"ldscript": "samd21g18a_bootloader_org.ld",
"hwids": [
["0x2A03", "0x804E"],
["0x2A03", "0x004E"]
]
},
"frameworks": ["arduino"],
"name": "Arduino M0",
"platform": "atmelsam",
"upload": {
"disable_flushing": true,
"maximum_ram_size": 32768,
"maximum_size": 262144,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 57600,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"section_start": "0x4000"
},
"url": "http://www.arduino.org/products/boards/arduino-m0",
"vendor": "Arduino"
},
"tian": {
"build": {
"core": "arduino_zero_org",
"extra_flags": "-DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD -D__SAMD21G18A__",
"f_cpu": "48000000L",
"mcu": "samd21g18a",
"cpu": "cortex-m0plus",
"usb_product": "Arduino Tian",
"variant": "arduino_zero_org",
"ldscript": "samd21g18a_bootloader_org.ld",
"hwids": [
["0x2A03", "0x8052"],
["0x10C4", "0xEA70"]
]
},
"frameworks": ["arduino"],
"name": "Arduino Tian",
"platform": "atmelsam",
"upload": {
"disable_flushing": true,
"maximum_ram_size": 32768,
"maximum_size": 262144,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 57600,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"section_start": "0x4000"
},
"url": "http://www.arduino.org/products/boards/arduino-tian",
"vendor": "Arduino"
}
}

View File

@@ -8,7 +8,11 @@
"frameworks": ["mbed"],
"name": "Atmel ATSAMR21-XPRO",
"platform": "atmelsam",
"debug": {
"openocdcfg": "atmel_samr21_xplained_pro.cfg"
},
"upload": {
"protocol": "openocd",
"maximum_ram_size": 32768,
"maximum_size": 262144
},
@@ -24,7 +28,11 @@
"frameworks": ["mbed"],
"name": "Atmel SAML21-XPRO-B",
"platform": "atmelsam",
"debug": {
"openocdcfg": "atmel_saml21_xplained_pro.cfg"
},
"upload": {
"protocol": "openocd",
"maximum_ram_size": 32768,
"maximum_size": 262144
},
@@ -40,7 +48,11 @@
"frameworks": ["mbed"],
"name": "Atmel SAMD21-XPRO",
"platform": "atmelsam",
"debug": {
"openocdcfg": "atmel_samd21_xplained_pro.cfg"
},
"upload": {
"protocol": "openocd",
"maximum_ram_size": 32768,
"maximum_size": 262144
},

View File

@@ -85,7 +85,7 @@
"ldscript": "sam3x8e.ld",
"usb_product": "Digistump DigiX",
"variant": "digispark_digix",
"hwid": [
"hwids": [
["0x16D0", "0x078A"]
]
},

View File

@@ -7,7 +7,7 @@
"mcu": "atmega32u4",
"usb_product": "EngduinoV1",
"variant": "engduinov1",
"hwid": [
"hwids": [
["0x1B4F", "0x9208"]
]
},
@@ -35,7 +35,7 @@
"mcu": "atmega32u4",
"usb_product": "EngduinoV2",
"variant": "engduinov2",
"hwid": [
"hwids": [
["0x1B4F", "0x9208"]
]
},
@@ -63,7 +63,7 @@
"mcu": "atmega32u4",
"usb_product": "EngduinoV3",
"variant": "engduinov3",
"hwid": [
"hwids": [
["0x1B4F", "0x9208"]
]
},

View File

@@ -133,7 +133,10 @@
"flash_mode": "qio",
"ldscript": "esp8266.flash.4m1m.ld",
"mcu": "esp8266",
"variant": "nodemcu"
"variant": "nodemcu",
"hwids": [
["0x10C4", "0xEA60"]
]
},
"frameworks": ["arduino", "simba"],
"name": "NodeMCU 0.9 (ESP-12 Module)",
@@ -158,7 +161,10 @@
"flash_mode": "dio",
"ldscript": "esp8266.flash.4m1m.ld",
"mcu": "esp8266",
"variant": "nodemcu"
"variant": "nodemcu",
"hwids": [
["0x10C4", "0xEA60"]
]
},
"frameworks": ["arduino", "simba"],
"name": "NodeMCU 1.0 (ESP-12E Module)",
@@ -352,7 +358,7 @@
"d1": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_NODEMCU",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DESP8266_WEMOS_D1MINI",
"f_cpu": "80000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
@@ -377,7 +383,7 @@
"d1_mini": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_NODEMCU",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DESP8266_WEMOS_D1MINI",
"f_cpu": "80000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
@@ -472,5 +478,105 @@
},
"url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family",
"vendor": "Espressif"
},
"esp8285": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DESP8266_ESP01",
"f_cpu": "80000000L",
"f_flash": "40000000L",
"flash_mode": "dout",
"ldscript": "esp8266.flash.1m256.ld",
"mcu": "esp8266",
"variant": "generic"
},
"frameworks": ["arduino"],
"name": "Generic ESP8285 Module",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 434160,
"resetmethod": "ck",
"require_upload_port" : true,
"speed": 115200
},
"url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family",
"vendor": "Espressif"
},
"phoenix_v1": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DESP8266_PHOENIX_V1",
"f_cpu": "80000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"ldscript": "esp8266.flash.4m1m.ld",
"mcu": "esp8266",
"variant": "phoenix_v1"
},
"frameworks": ["arduino"],
"name": "Phoenix 1.0",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 1044464,
"resetmethod": "nodemcu",
"require_upload_port" : true,
"speed": 115200
},
"url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family",
"vendor": "Espressif"
},
"phoenix_v2": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DESP8266_PHOENIX_V2",
"f_cpu": "80000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"ldscript": "esp8266.flash.4m1m.ld",
"mcu": "esp8266",
"variant": "phoenix_v2"
},
"frameworks": ["arduino"],
"name": "Phoenix 2.0",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 1044464,
"resetmethod": "ck",
"require_upload_port" : true,
"speed": 115200
},
"url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family",
"vendor": "Espressif"
},
"wifinfo": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DWIFINFO",
"f_cpu": "80000000L",
"f_flash": "40000000L",
"flash_mode": "qio",
"ldscript": "esp8266.flash.1m256.ld",
"mcu": "esp8266",
"variant": "wifinfo"
},
"frameworks": ["arduino"],
"name": "WifInfo",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 434160,
"resetmethod": "nodemcu",
"require_upload_port" : true,
"speed": 115200
},
"url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family",
"vendor": "Espressif"
}
}

View File

@@ -6,9 +6,10 @@
"f_cpu": "32000000L",
"ldscript": "flash.ld",
"mcu": "ARCv2EM",
"cpu": "quarkse_em",
"usb_product": "Genuino 101",
"variant": "arduino_101",
"hwid": [
"hwids": [
["0x8087", "0x0AB6"]
]
},
@@ -17,14 +18,13 @@
"platform": "intel_arc32",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 196608,
"use_1200bps_touch": true,
"maximum_size": 155648,
"protocol": "script",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": false
"use_1200bps_touch": true
},
"url": "https://www.arduino.cc/en/Main/ArduinoBoard101",
"vendor": "Intel"
}
}

View File

@@ -6,7 +6,7 @@
"cpu": "fpga",
"mcu": "ice40hx1k",
"variant": "1k",
"hwid": [
"hwids": [
["0x0403", "0x6010"]
]
},
@@ -28,7 +28,7 @@
"cpu": "fpga",
"mcu": "ice40hx1k",
"variant": "1k",
"hwid": [
"hwids": [
["0x0403", "0x6010"]
]
},

View File

@@ -16,8 +16,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/cerebot-32mx4-limited-time-see-chipkit-pro-mx4/",
"vendor": "Digilent"
@@ -40,8 +39,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=TDGL004",
"vendor": "Digilent"
@@ -64,8 +62,7 @@
"maximum_size": 126976,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/chipkit-mx3-microcontroller-board-with-pmod-headers/",
"vendor": "Digilent"
@@ -88,8 +85,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/chipkit-pro-mx4-embedded-systems-trainer-board/",
"vendor": "Digilent"
@@ -112,8 +108,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/chipkit-pro-mx7-advanced-peripherals-embedded-systems-trainer-board/",
"vendor": "Digilent"
@@ -124,7 +119,7 @@
"core": "pic32",
"extra_flags": "-D_BOARD_CHIPKIT_PI_",
"f_cpu": "40000000L",
"ldscript": "cchipKIT-application-32MX250F128.ld",
"ldscript": "chipKIT-application-32MX250F128.ld",
"mcu": "32MX250F128B",
"variant": "ChipKIT_Pi"
},
@@ -136,8 +131,7 @@
"maximum_size": 122880,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://www.element14.com/community/community/knode/dev_platforms_kits/element14_dev_kits/microchip-chipkit/chipkit_pi",
"vendor": "element14"
@@ -160,8 +154,7 @@
"maximum_size": 126976,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/chipkit-cmod-breadboardable-mz-microcontroller-board/",
"vendor": "Digilent"
@@ -184,8 +177,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://www.seeedstudio.com/wiki/CUI32Stem",
"vendor": "SeeedStudio"
@@ -208,8 +200,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://www.schmalzhaus.com/UBW32/",
"vendor": "UBW32"
@@ -232,8 +223,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://www.schmalzhaus.com/UBW32/",
"vendor": "UBW32"
@@ -246,7 +236,7 @@
"f_cpu": "80000000L",
"ldscript": "chipKIT-application-32MX440F512.ld",
"mcu": "32MX440F512H",
"variant": "Default_64"
"variant": "PONTECH_UAV100"
},
"frameworks": ["arduino"],
"name": "PONTECH UAV100",
@@ -256,8 +246,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://www.pontech.com/productdisplay/uav100",
"vendor": "PONTECH"
@@ -280,8 +269,7 @@
"maximum_size": 122880,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/chipkit-dp32-dip-package-prototyping-microcontroller-board/",
"vendor": "Digilent"
@@ -304,8 +292,7 @@
"maximum_size": 122880,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://fubarino.org/mini/",
"vendor": "Fubarino"
@@ -328,8 +315,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://fubarino.org/sd/index.html",
"vendor": "Fubarino"
@@ -352,8 +338,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/chipkit-max32-microcontroller-board-with-mega-r3-headers/",
"vendor": "Digilent"
@@ -376,8 +361,7 @@
"maximum_size": 258048,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "https://www.olimex.com/Products/Duino/PIC32/PIC32-PINGUINO/open-source-hardware",
"vendor": "Olimex"
@@ -400,8 +384,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://www.4dsystems.com.au/product/Picadillo_35T/",
"vendor": "4DSystems"
@@ -424,8 +407,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://quick240.com/quicki/",
"vendor": "PONTECH"
@@ -448,8 +430,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/chipkit-uc32-basic-microcontroller-board-with-uno-r3-headers/",
"vendor": "Digilent"
@@ -472,8 +453,7 @@
"maximum_size": 126976,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/chipkit-uno32-basic-microcontroller-board-retired-see-chipkit-uc32/",
"vendor": "Digilent"
@@ -496,8 +476,7 @@
"maximum_size": 520192,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/chipkit-wf32-wifi-enabled-microntroller-board-with-uno-r3-headers/",
"vendor": "Digilent"
@@ -520,8 +499,7 @@
"maximum_size": 2080768,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/chipkit-wi-fire-wifi-enabled-mz-microcontroller-board/",
"vendor": "Digilent"
@@ -532,7 +510,7 @@
"core": "pic32",
"extra_flags": "-D_BOARD_OPENSCOPE_",
"f_cpu": "200000000L",
"ldscript": "MZ-application-32MZ2048ECX.ld",
"ldscript": "OpenScope.ld",
"mcu": "32MZ2048EFG124",
"variant": "OpenScope"
},
@@ -544,8 +522,7 @@
"maximum_size": 2080768,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/",
"vendor": "Digilent"
@@ -561,17 +538,39 @@
"variant": "OpenBCI"
},
"frameworks": ["arduino"],
"name": "Digilent OpenScope",
"name": "OpenBCI 32bit",
"platform": "microchippic32",
"upload": {
"maximum_ram_size": 32768,
"maximum_size": 122880,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200,
"wait_for_upload_port": true
"speed": 115200
},
"url": "http://store.digilentinc.com/",
"vendor": "Digilent"
"url": "http://shop.openbci.com/",
"vendor": "OpenBCI"
},
"lenny": {
"build": {
"core": "pic32",
"extra_flags": "-D_BOARD_LENNY_ -D_USE_USB_FOR_SERIAL_",
"f_cpu": "40000000L",
"ldscript": "chipKIT-application-32MX270F256.ld",
"mcu": "32MX270F256D",
"variant": "Lenny"
},
"frameworks": ["arduino"],
"name": "chipKIT Lenny",
"platform": "microchippic32",
"upload": {
"maximum_ram_size": 32768,
"maximum_size": 122880,
"protocol": "stk500v2",
"require_upload_port" : true,
"speed": 115200
},
"url": "http://chipkit.net/tag/lenny/",
"vendor": "chipKIT"
}
}

View File

@@ -132,7 +132,7 @@
"f_cpu": "16000000L",
"mcu": "atmega32u4",
"variant": "32u4",
"hwid": [
"hwids": [
["0x2341", "0x8036"]
]
},

View File

@@ -129,5 +129,27 @@
},
"url": "https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board",
"vendor": "Mcudude"
},
"mightycore8535": {
"build": {
"core": "MightyCore",
"extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_ATmega8535",
"f_cpu": "16000000L",
"mcu": "atmega16",
"variant": "mightycore"
},
"frameworks": ["arduino"],
"name": "MightyCore ATmega8535",
"platform": "atmelavr",
"upload": {
"maximum_ram_size": 512,
"maximum_size": 7680,
"protocol": "arduino",
"require_upload_port" : true,
"speed": 115200
},
"url": "https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board",
"vendor": "Mcudude"
}
}
}

View File

@@ -43,6 +43,28 @@
"vendor": "BitWizard"
},
"emonpi": {
"build": {
"core": "arduino",
"extra_flags": "-DARDUINO_ARCH_AVR -DAVR_EMONPI",
"f_cpu": "16000000L",
"mcu": "atmega328p",
"variant": "standard"
},
"frameworks": ["arduino"],
"name": "OpenEnergyMonitor emonPi",
"platform": "atmelavr",
"upload": {
"maximum_ram_size": 2048,
"maximum_size": 30720,
"protocol": "arduino",
"require_upload_port" : true,
"speed": 115200
},
"url": "https://github.com/openenergymonitor/emonpi",
"vendor": "OpenEnergyMonitor"
},
"sainSmartDue": {
"build": {
"core": "arduino",
@@ -53,7 +75,7 @@
"usb_product": "Arduino Due",
"variant": "arduino_due_x",
"ldscript": "sam3x8e.ld",
"hwid": [
"hwids": [
["0x2341", "0x003E"]
]
},
@@ -82,7 +104,7 @@
"usb_product": "Arduino Due",
"variant": "arduino_due_x",
"ldscript": "sam3x8e.ld",
"hwid": [
"hwids": [
["0x2341", "0x003E"]
]
},
@@ -326,7 +348,7 @@
"mcu": "atmega32u4",
"usb_product": "RedBearLab Blend",
"variant": "leonardo",
"hwid": [
"hwids": [
["0x2341", "0x8036"]
]
},
@@ -355,7 +377,7 @@
"mcu": "atmega32u4",
"usb_product": "RedBearLab Blend",
"variant": "micro",
"hwid": [
"hwids": [
["0x03EB", "0x2404"]
]
},
@@ -384,7 +406,7 @@
"mcu": "atmega32u4",
"usb_product": "RedBearLab Blend",
"variant": "micro",
"hwid": [
"hwids": [
["0x03EB", "0x2404"]
]
},
@@ -435,7 +457,7 @@
"mcu": "atmega32u4",
"usb_product": "LightUp",
"variant": "leonardo",
"hwid": [
"hwids": [
["0x1d50", "0x6096"]
]
},
@@ -531,7 +553,7 @@
"mcu": "atmega32u4",
"variant" : "quirkbot",
"usb_product": "Quirkbot",
"hwid": [
"hwids": [
["0x2886", "0xf004"],
["0x2886", "0xf005"],
["0x2886", "0xf006"],
@@ -738,5 +760,87 @@
},
"url": "http://www.atmel.com/devices/ATTINY85.aspx",
"vendor": "Generic ATTiny"
},
"arduboy": {
"build": {
"core": "arduino",
"extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_ARDUBOY -DARDUBOY_10",
"f_cpu": "16000000L",
"mcu": "atmega32u4",
"usb_product": "Arduboy",
"variant": "leonardo",
"hwids": [
["0x2341", "0x0036"],
["0x2341", "0x8036"]
]
},
"frameworks": ["arduino"],
"name": "Arduboy",
"platform": "atmelavr",
"upload": {
"disable_flushing": true,
"maximum_ram_size": 2560,
"maximum_size": 28672,
"protocol": "avr109",
"require_upload_port" : true,
"speed": 57600,
"use_1200bps_touch": true,
"wait_for_upload_port": true
},
"url": "https://www.arduboy.com",
"vendor": "Arduboy"
},
"arduboy_devkit": {
"build": {
"core": "arduino",
"extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_ARDUBOY_DEVKIT -DAB_DEVKIT",
"f_cpu": "16000000L",
"mcu": "atmega32u4",
"usb_product": "Arduboy DevKit",
"variant": "leonardo",
"hwids": [
["0x2341", "0x0036"],
["0x2341", "0x8036"]
]
},
"frameworks": ["arduino"],
"name": "Arduboy DevKit",
"platform": "atmelavr",
"upload": {
"disable_flushing": true,
"maximum_ram_size": 2560,
"maximum_size": 28672,
"protocol": "avr109",
"require_upload_port" : true,
"speed": 57600,
"use_1200bps_touch": true,
"wait_for_upload_port": true
},
"url": "https://www.arduboy.com",
"vendor": "Arduboy"
},
"pinoccio": {
"build": {
"core": "arduino",
"extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_PINOCCIO -D__PROG_TYPES_COMPAT__",
"f_cpu": "16000000L",
"mcu": "atmega256rfr2",
"variant": "pinoccio"
},
"frameworks": ["arduino"],
"name": "Pinoccio Scout",
"platform": "atmelavr",
"upload": {
"maximum_ram_size": 32768,
"maximum_size": 253952,
"protocol": "wiring",
"require_upload_port" : true,
"speed": 115200
},
"url": "https://www.crowdsupply.com/pinoccio/mesh-sensor-network",
"vendor": "Pinoccio"
}
}

View File

@@ -82,5 +82,22 @@
},
"url": "https://developer.mbed.org/platforms/EFM32-Happy-Gecko/",
"vendor": "Silicon Labs"
},
"efm32pg_stk3401": {
"build": {
"f_cpu": "40000000L",
"cpu": "cortex-m4",
"mcu": "efm32pg1b200f256"
},
"frameworks": ["mbed"],
"name": "Silicon Labs SLSTK3401A (Pearl Gecko)",
"platform": "siliconlabsefm32",
"upload": {
"maximum_ram_size": 32768,
"maximum_size": 262144
},
"url": "https://developer.mbed.org/platforms/EFM32-Pearl-Gecko/",
"vendor": "Silicon Labs"
}
}

View File

@@ -28,7 +28,7 @@
"mcu": "atmega32u4",
"usb_product": "SparkFun Pro Micro",
"variant": "sparkfun_promicro",
"hwid": [
"hwids": [
["0x1B4F", "0x9205"],
["0x1B4F", "0x9206"]
]
@@ -57,7 +57,7 @@
"mcu": "atmega32u4",
"usb_product": "SparkFun Pro Micro",
"variant": "sparkfun_promicro",
"hwid": [
"hwids": [
["0x1B4F", "0x9203"],
["0x1B4F", "0x9204"]
]
@@ -86,7 +86,7 @@
"mcu": "atmega32u4",
"usb_product": "SparkFun Fio v3",
"variant": "sparkfun_promicro",
"hwid": [
"hwids": [
["0x1B4F", "0xF100"],
["0x1B4F", "0xF101"]
]
@@ -115,7 +115,7 @@
"mcu": "atmega32u4",
"usb_product": "SparkFun MaKey",
"variant": "sparkfun_promicro",
"hwid": [
"hwids": [
["0x1B4F", "0x2B74"],
["0x1B4F", "0x2B75"]
]
@@ -238,5 +238,67 @@
},
"url": "https://www.sparkfun.com/products/12923",
"vendor": "SparkFun"
},
"sparkfun_samd21_dev_usb": {
"build": {
"core": "arduino_zero",
"extra_flags": "-DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD -D__SAMD21G18A__",
"f_cpu": "48000000L",
"mcu": "samd21g18a",
"cpu": "cortex-m0plus",
"usb_product": "SparkFun SAMD21",
"variant": "arduino_zero",
"ldscript": "flash_with_bootloader.ld",
"hwids": [
["0x1B4F", "0x8D21"],
["0x1B4F", "0x0D21"]
]
},
"frameworks": ["arduino"],
"name": "SparkFun SAMD21 Dev Breakout",
"platform": "atmelsam",
"upload": {
"disable_flushing": true,
"maximum_ram_size": 32768,
"maximum_size": 262144,
"protocol": "sam-ba",
"require_upload_port" : true,
"use_1200bps_touch": true,
"wait_for_upload_port": true
},
"url": "https://www.sparkfun.com/products/13672",
"vendor": "SparkFun"
},
"sparkfun_samd21_mini_usb": {
"build": {
"core": "arduino_zero",
"extra_flags": "-DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD -D__SAMD21G18A__",
"f_cpu": "48000000L",
"mcu": "samd21g18a",
"cpu": "cortex-m0plus",
"usb_product": "SparkFun SAMD21",
"variant": "SparkFun_SAMD_Mini",
"ldscript": "flash_with_bootloader.ld",
"hwids": [
["0x1B4F", "0x8D21"],
["0x1B4F", "0x0D21"]
]
},
"frameworks": ["arduino"],
"name": "SparkFun SAMD21 Mini Breakout",
"platform": "atmelsam",
"upload": {
"disable_flushing": true,
"maximum_ram_size": 32768,
"maximum_size": 262144,
"protocol": "sam-ba",
"require_upload_port" : true,
"use_1200bps_touch": true,
"wait_for_upload_port": true
},
"url": "https://www.sparkfun.com/products/13664",
"vendor": "SparkFun"
}
}
}

View File

@@ -14,7 +14,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 131072,
"maximum_size": 1048576
"maximum_size": 1048576,
"protocol": "stlink"
},
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419",
"vendor": "ST"
@@ -34,7 +35,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 16384,
"maximum_size": 131072
"maximum_size": 131072,
"protocol": "stlink"
},
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515",
"vendor": "ST"
@@ -54,7 +56,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 49152,
"maximum_size": 262144
"maximum_size": 262144,
"protocol": "stlink"
},
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044",
"vendor": "ST"
@@ -70,7 +73,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 8192,
"maximum_size": 131072
"maximum_size": 131072,
"protocol": "stlink"
},
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF250863",
"vendor": "ST"
@@ -86,7 +90,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 8192,
"maximum_size": 65536
"maximum_size": 65536,
"protocol": "stlink"
},
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF253215",
"vendor": "ST"
@@ -102,7 +107,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 16384,
"maximum_size": 65536
"maximum_size": 65536,
"protocol": "stlink"
},
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260318",
"vendor": "ST"
@@ -118,7 +124,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 65536,
"maximum_size": 262144
"maximum_size": 262144,
"protocol": "stlink"
},
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259098",
"vendor": "ST"
@@ -134,7 +141,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 262144,
"maximum_size": 2097152
"maximum_size": 2097152,
"protocol": "stlink"
},
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259090",
"vendor": "ST"
@@ -425,7 +433,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 8192,
"maximum_size": 65536
"maximum_size": 65536,
"protocol": "stlink"
},
"url": "http://www.st.com/web/en/catalog/tools/PF260319",
"vendor": "ST"
@@ -441,7 +450,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 12288,
"maximum_size": 65536
"maximum_size": 65536,
"protocol": "stlink"
},
"url": "http://www.st.com/web/en/catalog/tools/PF260318",
"vendor": "ST"
@@ -457,7 +467,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 393216,
"maximum_size": 1048576
"maximum_size": 1048576,
"protocol": "stlink"
},
"url": "http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1848/PF262395",
"vendor": "ST"
@@ -473,7 +484,8 @@
"platform": "ststm32",
"upload": {
"maximum_ram_size": 131072,
"maximum_size": 1048576
"maximum_size": 1048576,
"protocol": "stlink"
},
"url": "http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1848/PF261635",
"vendor": "ST"
@@ -574,6 +586,22 @@
"url": "https://developer.mbed.org/platforms/ST-Nucleo-L073RZ/",
"vendor": "ST"
},
"nucleo_l031k6": {
"build": {
"f_cpu": "32000000L",
"cpu": "cortex-m0plus",
"mcu": "stm32l031k6t6"
},
"frameworks": ["mbed"],
"name": "ST Nucleo L031K6",
"platform": "ststm32",
"upload": {
"maximum_ram_size": 8192,
"maximum_size": 32768
},
"url": "https://developer.mbed.org/platforms/ST-Nucleo-L031K6/",
"vendor": "ST"
},
"seeedArchMax": {
"build": {
"f_cpu": "168000000L",
@@ -605,5 +633,21 @@
},
"url": "https://developer.mbed.org/platforms/ST-B96B-F446VE/",
"vendor": "96Boards"
},
"mts_mdot_f411re": {
"build": {
"f_cpu": "100000000L",
"cpu": "cortex-m4",
"mcu": "stm32f411ret6"
},
"frameworks": ["mbed"],
"name": "MultiTech mDot F411",
"platform": "ststm32",
"upload": {
"maximum_ram_size": 131072,
"maximum_size": 524288
},
"url": "https://developer.mbed.org/platforms/MTS-mDot-F411/",
"vendor": "MultiTech"
}
}

View File

@@ -129,7 +129,7 @@
"build": {
"core": "msp430",
"f_cpu": "16000000L",
"mcu": "msp430g2553",
"mcu": "msp430fr4133",
"variant": "launchpad_fr4133"
},
"frameworks": ["energia"],
@@ -147,7 +147,7 @@
"build": {
"core": "msp430",
"f_cpu": "16000000L",
"mcu": "msp430g2553",
"mcu": "msp430fr6989",
"variant": "launchpad_fr6989"
},
"frameworks": ["energia"],

View File

@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import base64
import json
import sys
from os import environ
@@ -99,6 +100,12 @@ DefaultEnvironment(
)
env = DefaultEnvironment()
# decode common variables
for k in commonvars.keys():
if k in env:
env[k] = base64.b64decode(env[k])
env.Prepend(LIBPATH=[join("$PIOPACKAGES_DIR", "ldscripts")])
if "BOARD" in env:

View File

@@ -49,23 +49,24 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
env.AutodetectUploadPort()
env.Append(UPLOADERFLAGS=["-P", '"$UPLOAD_PORT"'])
if env.subst("$BOARD") == "raspduino":
if env.subst("$BOARD") in ("raspduino", "emonpi"):
def _rpi_sysgpio(path, value):
with open(path, "w") as f:
f.write(str(value))
_rpi_sysgpio("/sys/class/gpio/export", 18)
_rpi_sysgpio("/sys/class/gpio/gpio18/direction", "out")
_rpi_sysgpio("/sys/class/gpio/gpio18/value", 1)
pin_num = 18 if env.subst("$BOARD") == "raspduino" else 4
_rpi_sysgpio("/sys/class/gpio/export", pin_num)
_rpi_sysgpio("/sys/class/gpio/gpio%d/direction" % pin_num, "out")
_rpi_sysgpio("/sys/class/gpio/gpio%d/value" % pin_num, 1)
sleep(0.1)
_rpi_sysgpio("/sys/class/gpio/gpio18/value", 0)
_rpi_sysgpio("/sys/class/gpio/unexport", 18)
_rpi_sysgpio("/sys/class/gpio/gpio%d/value" % pin_num, 0)
_rpi_sysgpio("/sys/class/gpio/unexport", pin_num)
else:
if not upload_options.get("disable_flushing", False):
env.FlushSerialBuffer("$UPLOAD_PORT")
before_ports = [i['port'] for i in get_serialports()]
before_ports = get_serialports()
if upload_options.get("use_1200bps_touch", False):
env.TouchSerialPort("$UPLOAD_PORT", 1200)
@@ -148,10 +149,9 @@ AlwaysBuild(upload)
# Target: Upload EEPROM data (from EEMEM directive)
#
uploadeep = env.Alias(
"uploadeep",
env.ElfToEep(join("$BUILD_DIR", "firmware"), target_elf),
[BeforeUpload, "$UPLOADEEPCMD"])
uploadeep = env.Alias("uploadeep",
env.ElfToEep(join("$BUILD_DIR", "firmware"), target_elf),
[BeforeUpload, "$UPLOADEEPCMD"])
AlwaysBuild(uploadeep)
#

View File

@@ -18,30 +18,20 @@
from os.path import basename, join
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default,
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Builder, Default,
DefaultEnvironment, SConscript)
from platformio.util import get_serialports
def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
env.AutodetectUploadPort()
board_type = env.subst("$BOARD")
if "zero" not in board_type:
env.Append(
UPLOADERFLAGS=[
"-U",
"true" if ("usb" in board_type.lower(
) or board_type == "digix") else "false"
])
upload_options = env.get("BOARD_OPTIONS", {}).get("upload", {})
if not upload_options.get("disable_flushing", False):
env.FlushSerialBuffer("$UPLOAD_PORT")
before_ports = [i['port'] for i in get_serialports()]
before_ports = get_serialports()
if upload_options.get("use_1200bps_touch", False):
env.TouchSerialPort("$UPLOAD_PORT", 1200)
@@ -50,7 +40,8 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort(before_ports))
# use only port name for BOSSA
if "/" in env.subst("$UPLOAD_PORT"):
if ("/" in env.subst("$UPLOAD_PORT") and
env.subst("$UPLOAD_PROTOCOL") == "sam-ba"):
env.Replace(UPLOAD_PORT=basename(env.subst("$UPLOAD_PORT")))
@@ -58,41 +49,8 @@ env = DefaultEnvironment()
SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "basearm.py")))
if env.subst("$BOARD") == "zero":
env.Replace(
UPLOADER=join("$PIOPACKAGES_DIR", "tool-openocd", "bin", "openocd"),
UPLOADERFLAGS=[
"-d2",
"-s",
join(
"$PIOPACKAGES_DIR",
"tool-openocd", "share", "openocd", "scripts"),
"-f",
join(
"$PLATFORMFW_DIR", "variants",
"${BOARD_OPTIONS['build']['variant']}", "openocd_scripts",
"${BOARD_OPTIONS['build']['variant']}.cfg"
),
"-c", "\"telnet_port", "disabled;",
"program", "{{$SOURCES}}",
"verify", "reset", "0x00002000;", "shutdown\""
],
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS'
)
else:
env.Replace(
UPLOADER=join("$PIOPACKAGES_DIR", "$PIOPACKAGE_UPLOADER", "bossac"),
UPLOADERFLAGS=[
"--info",
"--port", '"$UPLOAD_PORT"',
"--erase",
"--write",
"--verify",
"--reset",
"--debug"
],
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES'
)
BOARD_OPTIONS = env.get("BOARD_OPTIONS", {})
env.Append(
@@ -111,8 +69,7 @@ env.Append(
],
CPPDEFINES=[
"USBCON",
'USB_MANUFACTURER="PlatformIO"'
"USBCON"
],
LINKFLAGS=[
@@ -123,8 +80,21 @@ env.Append(
]
)
user_code_section = BOARD_OPTIONS.get("upload", {}).get("section_start", False)
if "sam3x8e" in env.get("BOARD_OPTIONS", {}).get("build", {}).get("mcu", None):
if user_code_section:
env.Append(
CPPDEFINES=[
"printf=iprintf"
],
LINKFLAGS=[
"-Wl,--entry=Reset_Handler",
"-Wl,--section-start=.text=%s" % user_code_section
]
)
if "sam3x8e" in BOARD_OPTIONS.get("build", {}).get("mcu", ""):
env.Append(
CPPDEFINES=[
"printf=iprintf"
@@ -133,14 +103,10 @@ if "sam3x8e" in env.get("BOARD_OPTIONS", {}).get("build", {}).get("mcu", None):
LINKFLAGS=[
"-Wl,--entry=Reset_Handler",
"-Wl,--start-group"
],
UPLOADERFLAGS=[
"--boot",
]
)
elif "zero" in env.subst("$BOARD"):
elif "samd" in BOARD_OPTIONS.get("build", {}).get("mcu", ""):
env.Append(
LINKFLAGS=[
"--specs=nosys.specs",
@@ -148,6 +114,100 @@ elif "zero" in env.subst("$BOARD"):
]
)
upload_protocol = BOARD_OPTIONS.get("upload", {}).get("protocol", None)
if upload_protocol == "openocd":
env.Replace(
UPLOADER=join("$PIOPACKAGES_DIR", "tool-openocd", "bin", "openocd"),
UPLOADERFLAGS=[
"-d2",
"-f", join(BOARD_OPTIONS.get("debug", {}).get("openocdcfg", "")),
"-s", join("$PIOPACKAGES_DIR", "tool-openocd",
"share", "openocd", "scripts"),
"-s", join("$PIOPACKAGES_DIR", "tool-openocd",
"share", "openocd", "scripts", "board")
],
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS'
)
if "zero" in env.subst("$BOARD"):
env.Append(
UPLOADERFLAGS=[
"-s", join("$PLATFORMFW_DIR", "variants",
"${BOARD_OPTIONS['build']['variant']}",
"openocd_scripts")
]
)
env.Append(
UPLOADERFLAGS=[
"-c", "\"telnet_port", "disabled;",
"program", "{{$SOURCES}}",
"verify", "reset",
"%s;" % user_code_section if user_code_section else "",
"shutdown\""
]
)
elif upload_protocol == "sam-ba":
board_type = env.subst("$BOARD")
env.Replace(
UPLOADER=join("$PIOPACKAGES_DIR", "$PIOPACKAGE_UPLOADER", "bossac"),
UPLOADERFLAGS=[
"--info",
"--port", '"$UPLOAD_PORT"',
"--erase",
"--write",
"--verify",
"--reset",
"--debug",
"-U",
"true" if ("usb" in board_type.lower(
) or board_type == "digix") else "false"
],
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES'
)
if "sam3x8e" in BOARD_OPTIONS.get("build", {}).get("mcu", ""):
env.Append(UPLOADERFLAGS=["--boot"])
elif upload_protocol == "stk500v2":
env.Append(
BUILDERS=dict(
ElfToHex=Builder(
action=" ".join([
"$OBJCOPY",
"-O",
"ihex",
"-R",
".eeprom",
"$SOURCES",
"$TARGET"]),
suffix=".hex"
)
)
)
env.Replace(
UPLOADER=join("$PIOPACKAGES_DIR", "tool-avrdude", "avrdude"),
UPLOADERFLAGS=[
"-C", '"%s"' % join("$PIOPACKAGES_DIR",
"tool-avrdude", "avrdude.conf"),
"-v",
"-p", "atmega2560", # Arduino M0/Tian upload hook
"-c", "$UPLOAD_PROTOCOL",
"-P", '"$UPLOAD_PORT"',
"-b", "$UPLOAD_SPEED"
],
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS -U flash:w:$SOURCES:i'
)
#
# Target: Build executable and linkable firmware
#
@@ -160,6 +220,8 @@ target_elf = env.BuildProgram()
if "uploadlazy" in COMMAND_LINE_TARGETS:
target_firm = join("$BUILD_DIR", "firmware.bin")
elif upload_protocol == "stk500v2":
target_firm = env.ElfToHex(join("$BUILD_DIR", "firmware"), target_elf)
else:
target_firm = env.ElfToBin(join("$BUILD_DIR", "firmware"), target_elf)
@@ -174,11 +236,12 @@ AlwaysBuild(target_size)
# Target: Upload by default .bin file
#
if env.subst("$BOARD") == "zero":
if upload_protocol == "openocd":
upload = env.Alias(["upload", "uploadlazy"], target_firm, "$UPLOADCMD")
else:
upload = env.Alias(["upload", "uploadlazy"], target_firm,
[BeforeUpload, "$UPLOADCMD"])
upload = env.Alias(
["upload", "uploadlazy"], target_firm,
[env.AutodetectUploadPort, BeforeUpload, "$UPLOADCMD"])
AlwaysBuild(upload)

View File

@@ -82,8 +82,7 @@ env.Replace(
"-falign-functions=4",
"-U__STRICT_ANSI__",
"-ffunction-sections",
"-fdata-sections",
"-MMD" # output dependancy info
"-fdata-sections"
],
CXXFLAGS=[
@@ -346,7 +345,7 @@ AlwaysBuild(target_size)
target_upload = env.Alias(
["upload", "uploadlazy", "uploadfs"], target_firm,
[lambda target, source, env: env.AutodetectUploadPort(), "$UPLOADCMD"])
[env.AutodetectUploadPort, "$UPLOADCMD"])
env.AlwaysBuild(target_upload)

View File

@@ -55,13 +55,17 @@ elif env.get("PLATFORM") == "timsp430":
)
elif env.get("PLATFORM") == "espressif":
env.Prepend(
CPPDEFINES=["LWIP_OPEN_SRC"],
CPPPATH=[
join("$PLATFORMFW_DIR", "tools", "sdk", "include"),
join("$PLATFORMFW_DIR", "tools", "sdk", "lwip", "include")
],
LIBPATH=[join("$PLATFORMFW_DIR", "tools", "sdk", "lib")],
LIBS=["mesh", "wpa2", "smartconfig", "pp", "main", "wpa", "lwip",
"net80211", "wps", "crypto", "phy", "hal", "axtls", "gcc", "m"]
LIBS=[
"mesh", "wpa2", "smartconfig", "pp", "main", "wpa", "lwip_gcc",
"net80211", "wps", "crypto", "phy", "hal", "axtls", "gcc",
"m", "stdc++"
]
)
env.VariantDirWrap(
join("$BUILD_DIR", "generic"),
@@ -112,7 +116,10 @@ elif env.get("PLATFORM") == "microchippic32":
"$PLATFORMFW_DIR", "variants",
"${BOARD_OPTIONS['build']['variant']}"
)
]
],
CPPDEFINES=["ARDUINO_ARCH_PIC32"]
)
elif "intel" in env.get("PLATFORM"):
@@ -179,8 +186,8 @@ ARDUINO_VERSION = int(
ARDUINO_USBDEFINES = []
if "usb_product" in BOARD_BUILDOPTS:
ARDUINO_USBDEFINES = [
"USB_VID=${BOARD_OPTIONS['build']['hwid'][0][0]}",
"USB_PID=${BOARD_OPTIONS['build']['hwid'][0][1]}",
"USB_VID=${BOARD_OPTIONS['build']['hwids'][0][0]}",
"USB_PID=${BOARD_OPTIONS['build']['hwids'][0][1]}",
'USB_PRODUCT=\\"%s\\"' % (env.subst(
"${BOARD_OPTIONS['build']['usb_product']}").replace('"', "")),
'USB_MANUFACTURER=\\"%s\\"' % (env.subst(
@@ -192,6 +199,20 @@ if env.get("PLATFORM") == "teensy":
"ARDUINO=10600",
"TEENSYDUINO=%d" % ARDUINO_VERSION
]
USB_FLAGS = (
"USB_HID",
"USB_SERIAL_HID",
"USB_DISK",
"USB_DISK_SDFLASH",
"USB_MIDI",
"USB_RAWHID",
"USB_FLIGHTSIM",
"USB_DISABLED"
)
if not any(f in env.get("BUILD_FLAGS", []) for f in USB_FLAGS):
env.Append(CPPDEFINES=["USB_SERIAL"])
else:
ARDUINO_USBDEFINES += ["ARDUINO=%d" % ARDUINO_VERSION]
@@ -210,11 +231,21 @@ env.Append(
if env.subst("${PLATFORMFW_DIR}")[-3:] == "sam":
env.VariantDirWrap(
join("$BUILD_DIR", "FrameworkCMSISInc"),
join("$PLATFORMFW_DIR", "system", "CMSIS", "CMSIS", "Include")
join(
"$PLATFORMFW_DIR", "system",
"CMSIS%s" % (
"_ORG" if BOARD_CORELIBDIRNAME.endswith("_org") else ""),
"CMSIS", "Include"
)
)
env.VariantDirWrap(
join("$BUILD_DIR", "FrameworkDeviceInc"),
join("$PLATFORMFW_DIR", "system", "CMSIS", "Device", "ATMEL")
join(
"$PLATFORMFW_DIR", "system",
"CMSIS%s" % (
"_ORG" if BOARD_CORELIBDIRNAME.endswith("_org") else ""),
"Device", "ATMEL"
)
)
env.VariantDirWrap(
join("$BUILD_DIR", "FrameworkLibSam"),
@@ -294,6 +325,8 @@ if BOARD_BUILDOPTS.get("core", None) == "teensy":
with open(file_path, "w") as fp:
fp.write(content)
env.Append(CPPPATH=[join("$PLATFORMFW_DIR", "cores")])
#
# Target: Build Core Library
#

View File

@@ -28,6 +28,7 @@ http://mbed.org/
from __future__ import print_function
import json
import re
import sys
import xml.etree.ElementTree as ElementTree
@@ -71,7 +72,7 @@ MBED_VARIANTS = {
"samr21_xpro": "SAMR21G18A",
"saml21_xpro_b": "SAML21J18A",
"samd21_xpro": "SAMD21J18A",
"bbcmicrobit": "NRF51822"
"bbcmicrobit": "NRF51_MICROBIT"
}
MBED_LIBS_MAP = {
@@ -86,7 +87,7 @@ MBED_LIBS_MAP = {
def get_mbedlib_includes():
result = []
for lib in MBED_LIBS_MAP.keys():
for lib in MBED_LIBS_MAP:
includes = []
lib_dir = join(env.subst("$PLATFORMFW_DIR"), "libs", lib)
for _, _, files in walk(lib_dir):
@@ -145,10 +146,27 @@ def add_mbedlib(libname, libar):
"lwip-sys"
)
target_map = {
"nxplpc": "NXP",
"freescalekinetis": "Freescale",
"ststm32": "STM"
}
target_includes = (
"TARGET_%s" % target_map.get(env.subst("$PLATFORM"), ""),
"TARGET_%s" % variant,
"TARGET_CORTEX_M"
)
for root, _, files in walk(lib_dir):
if (not any(f.endswith(".h") for f in files) and
basename(root) not in sysincdirs):
continue
if "TARGET_" in root:
if all([p not in root for p in target_includes]):
continue
var_dir = join("$BUILD_DIR", "FrameworkMbed%sInc%d" %
(libname.upper(), crc32(root)))
if var_dir in env.get("CPPPATH"):
@@ -183,6 +201,11 @@ def parse_eix_file(filename):
result[key].append(
node.get(_nkeys[0]) if len(_nkeys) == 1 else node.attrib)
if "LINKFLAGS" in result:
for i, flag in enumerate(result["LINKFLAGS"]):
if flag.startswith("-u "):
result["LINKFLAGS"][i] = result["LINKFLAGS"][i].split(" ")
return result
@@ -199,7 +222,7 @@ def get_build_flags(data):
def _mbed_whole_archive_hook(libs_):
if (not isinstance(libs_, list) or
env.get("BOARD_OPTIONS", {}).get("platform") != "ststm32"):
env.subst("$PLATFORM") == "nordicnrf51"):
return libs_
_dynlibs = []
@@ -229,6 +252,37 @@ eixdata = parse_eix_file(
build_flags = get_build_flags(eixdata)
variant_dir = join("$PLATFORMFW_DIR", "variant", variant)
def _find_soft_device_hex():
if not isfile(join(env.subst("$PLATFORMFW_DIR"), "targets.json")):
return None
with open(join(env.subst("$PLATFORMFW_DIR"), "targets.json")) as fp:
data = json.load(fp)
def _find_hex(target_name):
assert isinstance(data, dict)
if target_name not in data:
return None
target = data[target_name]
if "EXPECTED_SOFTDEVICES_WITH_OFFSETS" not in target:
try:
return _find_hex(target.get("inherits", [])[0])
except IndexError:
return None
else:
return target['EXPECTED_SOFTDEVICES_WITH_OFFSETS'][0]['name']
softdevice_name = _find_hex(variant)
if softdevice_name:
for root, _, files in walk(env.subst(variant_dir)):
if softdevice_name in files:
return join(root, softdevice_name)
env.Exit("Error: Cannot find SoftDevice binary file for your board!")
env.Replace(
_mbed_whole_archive_hook=_mbed_whole_archive_hook,
_LIBFLAGS="${_mbed_whole_archive_hook(%s)}" % env.get("_LIBFLAGS")[2:-1],
@@ -241,11 +295,17 @@ env.Replace(
join(variant_dir, eixdata.get("LDSCRIPT_PATH")[0]))
)
if env.get("PLATFORM") == "nordicnrf51":
env.Append(SOFTDEVICEHEX=_find_soft_device_hex())
# restore external build flags
env.ProcessFlags([
env.get("BOARD_OPTIONS", {}).get("build", {}).get("extra_flags"),
env.get("BUILD_FLAGS")
])
env.ProcessFlags(
env.get("BOARD_OPTIONS", {}).get("build", {}).get("extra_flags"))
# remove base flags
env.ProcessUnFlags(env.get("BUILD_UNFLAGS"))
# apply user flags
env.ProcessFlags(env.get("BUILD_FLAGS"))
# Hook for K64F and K22F
if board_type in ("frdm_k22f", "frdm_k64f"):

View File

@@ -21,22 +21,16 @@ from os.path import join
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Builder, Default,
DefaultEnvironment)
env = DefaultEnvironment()
def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
if "program" in COMMAND_LINE_TARGETS:
return
env.AutodetectUploadPort()
env.Prepend(UPLOADERFLAGS=['"$UPLOAD_PORT"'])
if env.get("BOARD_OPTIONS", {}).get("upload", {}).get(
"use_1200bps_touch", False):
env.TouchSerialPort("$UPLOAD_PORT", 1200)
env = DefaultEnvironment()
env.Replace(
AR="arc-elf32-ar",
AS="arc-elf32-as",
@@ -56,9 +50,8 @@ env.Replace(
"-ffunction-sections",
"-fdata-sections",
"-Wall",
"-mav2em",
"-mlittle-endian",
"-m${BOARD_OPTIONS['build']['mcu']}",
"-mcpu=${BOARD_OPTIONS['build']['cpu']}",
"-fno-reorder-functions",
"-fno-asynchronous-unwind-tables",
"-fno-omit-frame-pointer",
@@ -96,7 +89,7 @@ env.Replace(
"-Wl,--gc-sections",
"-Wl,-X",
"-Wl,-N",
"-Wl,-m${BOARD_OPTIONS['build']['mcu']}",
"-Wl,-mcpu=${BOARD_OPTIONS['build']['cpu']}",
"-Wl,-marcelf",
"-static",
"-nostdlib",
@@ -107,13 +100,16 @@ env.Replace(
"-Wl,--no-whole-archive"
],
LIBS=["c", "m", "gcc"],
LIBS=["nsim", "c", "m", "gcc"],
SIZEPRINTCMD='"$SIZETOOL" -B -d $SOURCES',
UPLOADER=join("$PIOPACKAGES_DIR", "tool-arduino101load", "arduino101load"),
UPLOADERFLAGS=[
'"$UPLOAD_PORT"'
],
DFUUTIL=join("$PIOPACKAGES_DIR", "tool-arduino101load", "dfu-util"),
UPLOADCMD='"$UPLOADER" $DFUUTIL $SOURCES $UPLOADERFLAGS verbose',
UPLOADCMD='"$UPLOADER" "$DFUUTIL" $SOURCES $UPLOADERFLAGS verbose',
PROGNAME="firmware",
PROGSUFFIX=".elf"
@@ -189,8 +185,8 @@ AlwaysBuild(target_size)
# Target: Upload firmware
#
upload = env.Alias(
["upload", "uploadlazy"], target_firm, [BeforeUpload, "$UPLOADCMD"])
upload = env.Alias(["upload", "uploadlazy"], target_firm,
[env.AutodetectUploadPort, BeforeUpload, "$UPLOADCMD"])
AlwaysBuild(upload)
#

View File

@@ -21,12 +21,6 @@ from os.path import join
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Builder, Default,
DefaultEnvironment)
def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
env.AutodetectUploadPort()
env.Prepend(UPLOADERFLAGS=["-d", '"$UPLOAD_PORT"'])
env = DefaultEnvironment()
env.Replace(
@@ -77,7 +71,19 @@ env.Replace(
"-mprocessor=$BOARD_MCU",
"-mno-peripheral-libs",
"-nostartfiles",
"-Wl,--gc-sections"
"-Wl,--gc-sections",
join(
"$PLATFORMFW_DIR",
"cores",
"${BOARD_OPTIONS['build']['core']}",
"cpp-startup.S"
),
join(
"$PLATFORMFW_DIR",
"cores",
"${BOARD_OPTIONS['build']['core']}",
"crti.S"
)
],
LIBS=["m"],
@@ -86,7 +92,8 @@ env.Replace(
UPLOADER=join("$PIOPACKAGES_DIR", "tool-pic32prog", "pic32prog"),
UPLOADERFLAGS=[
"-b", "$UPLOAD_SPEED"
"-b", "$UPLOAD_SPEED",
"-d", '"$UPLOAD_PORT"'
],
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES',
@@ -97,6 +104,7 @@ env.Replace(
if int(env.get("BOARD_OPTIONS", {}).get(
"upload", {}).get("maximum_ram_size", 0)) < 65535:
env.Append(
ASFLAGS=["-G1024"],
CCFLAGS=["-G1024"]
)
@@ -120,15 +128,7 @@ env.Append(
),
ElfToHex=Builder(
action=" ".join([
"$OBJCOPY",
"-O",
"ihex",
"-R",
".eeprom",
"$SOURCES",
"$TARGET"]),
suffix=".hex"
action=" ".join(["pic32-bin2hex", "-a", "$SOURCES"]), suffix=".hex"
)
)
)
@@ -166,7 +166,7 @@ env.Append(
if "uploadlazy" in COMMAND_LINE_TARGETS:
target_firm = join("$BUILD_DIR", "firmware.hex")
else:
target_firm = env.ElfToHex(join("$BUILD_DIR", "firmware"), target_elf)
target_firm = env.ElfToHex(target_elf)
#
# Target: Print binary size
@@ -179,8 +179,8 @@ AlwaysBuild(target_size)
# Target: Upload firmware
#
upload = env.Alias(
["upload", "uploadlazy"], target_firm, [BeforeUpload, "$UPLOADCMD"])
upload = env.Alias(["upload", "uploadlazy"], target_firm,
[env.AutodetectUploadPort, "$UPLOADCMD"])
AlwaysBuild(upload)
#

View File

@@ -18,7 +18,7 @@
from os.path import join
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default,
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Builder, Default,
DefaultEnvironment, SConscript)
env = DefaultEnvironment()
@@ -35,6 +35,25 @@ if env.subst("$BOARD") == "rfduino":
UPLOADERFLAGS=["-q", '"$UPLOAD_PORT"'],
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES'
)
else:
env.Append(
BUILDERS=dict(
MergeHex=Builder(
action=" ".join([
join("$PIOPACKAGES_DIR", "tool-sreccat", "srec_cat"),
"$SOFTDEVICEHEX",
"-intel",
"$SOURCES",
"-intel",
"-o",
"$TARGET",
"-intel",
"--line-length=44"
]),
suffix=".hex"
)
)
)
#
# Target: Build executable and linkable firmware
@@ -49,7 +68,13 @@ target_elf = env.BuildProgram()
if "uploadlazy" in COMMAND_LINE_TARGETS:
target_firm = join("$BUILD_DIR", "firmware.hex")
else:
target_firm = env.ElfToHex(join("$BUILD_DIR", "firmware"), target_elf)
if env.subst("$BOARD") == "rfduino":
target_firm = env.ElfToHex(join("$BUILD_DIR", "firmware"), target_elf)
else:
target_firm = env.MergeHex(
join("$BUILD_DIR", "firmware"),
env.ElfToHex(join("$BUILD_DIR", "userfirmware"), target_elf)
)
#
# Target: Print binary size
@@ -63,9 +88,8 @@ AlwaysBuild(target_size)
#
if env.subst("$BOARD") == "rfduino":
upload = env.Alias(
["upload", "uploadlazy"], target_firm,
[lambda target, source, env: env.AutodetectUploadPort(), "$UPLOADCMD"])
upload = env.Alias(["upload", "uploadlazy"], target_firm,
[env.AutodetectUploadPort, "$UPLOADCMD"])
else:
upload = env.Alias(["upload", "uploadlazy"], target_firm, env.UploadToDisk)
AlwaysBuild(upload)

View File

@@ -17,19 +17,10 @@
"""
from os.path import join
from shutil import copyfile
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default,
DefaultEnvironment, SConscript)
def UploadToDisk(target, source, env): # pylint: disable=W0613,W0621
env.AutodetectUploadPort()
copyfile(join(env.subst("$BUILD_DIR"), "firmware.bin"),
join(env.subst("$UPLOAD_PORT"), "firmware.bin"))
print("Firmware has been successfully uploaded.\n"
"Please restart your board.")
env = DefaultEnvironment()
SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "basearm.py")))
@@ -60,7 +51,7 @@ AlwaysBuild(target_size)
# Target: Upload by default .bin file
#
upload = env.Alias(["upload", "uploadlazy"], target_firm, UploadToDisk)
upload = env.Alias(["upload", "uploadlazy"], target_firm, env.UploadToDisk)
AlwaysBuild(upload)
#

View File

@@ -100,8 +100,7 @@ AlwaysBuild(target_size)
#
if "mbed" in env.subst("$FRAMEWORK") and not env.subst("$UPLOAD_PROTOCOL"):
upload = env.Alias(["upload", "uploadlazy"],
target_firm, env.UploadToDisk)
upload = env.Alias(["upload", "uploadlazy"], target_firm, env.UploadToDisk)
else:
upload = env.Alias(["upload", "uploadlazy"], target_firm, "$UPLOADCMD")
AlwaysBuild(upload)

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