From ccc411fb4736fff801fc0422846099e53cff6ecd Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Mon, 16 Mar 2015 19:24:51 +0200 Subject: [PATCH] Add support for "panStamp" boards // Resolve #117 --- .../panstamp-blink/README.rst | 21 ++++++++++ .../panstamp-blink/platformio.ini | 23 +++++++++++ .../panstamp-blink/src/Blink.ino | 29 ++++++++++++++ examples/timsp430/panstamp-blink/README.rst | 21 ++++++++++ .../timsp430/panstamp-blink/platformio.ini | 23 +++++++++++ .../timsp430/panstamp-blink/src/Blink.ino | 29 ++++++++++++++ platformio/boards/misc.json | 39 +++++++++++++++++++ .../builder/scripts/frameworks/arduino.py | 7 +++- platformio/platforms/base.py | 4 ++ platformio/platforms/timsp430.py | 4 ++ 10 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 examples/atmelavr-and-arduino/panstamp-blink/README.rst create mode 100644 examples/atmelavr-and-arduino/panstamp-blink/platformio.ini create mode 100644 examples/atmelavr-and-arduino/panstamp-blink/src/Blink.ino create mode 100644 examples/timsp430/panstamp-blink/README.rst create mode 100644 examples/timsp430/panstamp-blink/platformio.ini create mode 100644 examples/timsp430/panstamp-blink/src/Blink.ino diff --git a/examples/atmelavr-and-arduino/panstamp-blink/README.rst b/examples/atmelavr-and-arduino/panstamp-blink/README.rst new file mode 100644 index 00000000..e0a3e32a --- /dev/null +++ b/examples/atmelavr-and-arduino/panstamp-blink/README.rst @@ -0,0 +1,21 @@ +How to buid PlatformIO based project +==================================== + +1. `Install PlatformIO `_ +2. Download `source code with examples `_ +3. Extract ZIP archive +4. Run these commands: + +.. code-block:: bash + + # Change directory to example + > cd platformio-develop/examples/atmelavr-and-arduino/panstamp-blink + + # Process example project + > platformio run + + # Upload firmware + > platformio run --target upload + + # Clean build files + > platformio run --target clean diff --git a/examples/atmelavr-and-arduino/panstamp-blink/platformio.ini b/examples/atmelavr-and-arduino/panstamp-blink/platformio.ini new file mode 100644 index 00000000..fa51205f --- /dev/null +++ b/examples/atmelavr-and-arduino/panstamp-blink/platformio.ini @@ -0,0 +1,23 @@ +# +# Project Configuration File +# +# A detailed documentation with the EXAMPLES is located here: +# http://docs.platformio.org/en/latest/projectconf.html +# + +# A sign `#` at the beginning of the line indicates a comment +# Comment lines are ignored. + +# Simple and base environment +# [env:mybaseenv] +# platform = %INSTALLED_PLATFORM_NAME_HERE% +# framework = +# board = +# +# Automatic targets - enable auto-uploading +# targets = upload + +[env:panStampAVR] +platform = atmelavr +framework = arduino +board = panStampAVR diff --git a/examples/atmelavr-and-arduino/panstamp-blink/src/Blink.ino b/examples/atmelavr-and-arduino/panstamp-blink/src/Blink.ino new file mode 100644 index 00000000..b0db92b8 --- /dev/null +++ b/examples/atmelavr-and-arduino/panstamp-blink/src/Blink.ino @@ -0,0 +1,29 @@ +/* + Blink + Turns on an LED on for one second, then off for one second, repeatedly. + + Most Arduinos have an on-board LED you can control. On the Uno and + Leonardo, it is attached to digital pin 13. If you're unsure what + pin the on-board LED is connected to on your Arduino model, check + the documentation at http://arduino.cc + + This example code is in the public domain. + + modified 8 May 2014 + by Scott Fitzgerald + */ + + +// the setup function runs once when you press reset or power the board +void setup() { + // initialize digital pin 13 as an output. + pinMode(13, OUTPUT); +} + +// the loop function runs over and over again forever +void loop() { + digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) + delay(1000); // wait for a second + digitalWrite(13, LOW); // turn the LED off by making the voltage LOW + delay(1000); // wait for a second +} diff --git a/examples/timsp430/panstamp-blink/README.rst b/examples/timsp430/panstamp-blink/README.rst new file mode 100644 index 00000000..f812cba1 --- /dev/null +++ b/examples/timsp430/panstamp-blink/README.rst @@ -0,0 +1,21 @@ +How to buid PlatformIO based project +==================================== + +1. `Install PlatformIO `_ +2. Download `source code with examples `_ +3. Extract ZIP archive +4. Run these commands: + +.. code-block:: bash + + # Change directory to example + > cd platformio-develop/examples/timsp430/panstamp-blink + + # Process example project + > platformio run + + # Upload firmware + > platformio run --target upload + + # Clean build files + > platformio run --target clean diff --git a/examples/timsp430/panstamp-blink/platformio.ini b/examples/timsp430/panstamp-blink/platformio.ini new file mode 100644 index 00000000..c273de4a --- /dev/null +++ b/examples/timsp430/panstamp-blink/platformio.ini @@ -0,0 +1,23 @@ +# +# Project Configuration File +# +# A detailed documentation with the EXAMPLES is located here: +# http://docs.platformio.org/en/latest/projectconf.html +# + +# A sign `#` at the beginning of the line indicates a comment +# Comment lines are ignored. + +# Simple and base environment +# [env:mybaseenv] +# platform = %INSTALLED_PLATFORM_NAME_HERE% +# framework = +# board = +# +# Automatic targets - enable auto-uploading +# targets = upload + +[env:panStampNRG] +platform = timsp430 +framework = arduino +board = panStampNRG diff --git a/examples/timsp430/panstamp-blink/src/Blink.ino b/examples/timsp430/panstamp-blink/src/Blink.ino new file mode 100644 index 00000000..b0db92b8 --- /dev/null +++ b/examples/timsp430/panstamp-blink/src/Blink.ino @@ -0,0 +1,29 @@ +/* + Blink + Turns on an LED on for one second, then off for one second, repeatedly. + + Most Arduinos have an on-board LED you can control. On the Uno and + Leonardo, it is attached to digital pin 13. If you're unsure what + pin the on-board LED is connected to on your Arduino model, check + the documentation at http://arduino.cc + + This example code is in the public domain. + + modified 8 May 2014 + by Scott Fitzgerald + */ + + +// the setup function runs once when you press reset or power the board +void setup() { + // initialize digital pin 13 as an output. + pinMode(13, OUTPUT); +} + +// the loop function runs over and over again forever +void loop() { + digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) + delay(1000); // wait for a second + digitalWrite(13, LOW); // turn the LED off by making the voltage LOW + delay(1000); // wait for a second +} diff --git a/platformio/boards/misc.json b/platformio/boards/misc.json index abb6d9a1..ad932077 100644 --- a/platformio/boards/misc.json +++ b/platformio/boards/misc.json @@ -75,5 +75,44 @@ }, "url": "http://www.sainsmart.com/arduino/control-boards/sainsmart-due-atmel-sam3x8e-arm-cortex-m3-board-black.html", "vendor": "SainSmart" + }, + "panStampAVR": { + "build": { + "core": "panstamp", + "extra_flags": "-DPANSTAMP_AVR", + "f_cpu": "8000000L", + "mcu": "atmega328p", + "variant": "panstamp" + }, + "frameworks": ["arduino"], + "name": "PanStamp AVR", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 2048, + "maximum_size": 32256, + "protocol": "arduino", + "require_upload_port" : true, + "speed": 57600 + }, + "url": "http://www.panstamp.com/product/panstamp-avr/", + "vendor": "PanStamp" + }, + "panStampNRG": { + "build": { + "core": "panstamp", + "f_cpu": "12000000L", + "mcu": "cc430f5137", + "variant": "panstamp_nrg_1.1" + }, + "frameworks": ["arduino"], + "name": "PanStamp NRG 1.1", + "platform": "timsp430", + "upload": { + "maximum_ram_size": 4096, + "maximum_size": 32640, + "protocol": "flash-bsl" + }, + "url": "http://www.panstamp.com/product/197/", + "vendor": "PanStamp" } } \ No newline at end of file diff --git a/platformio/builder/scripts/frameworks/arduino.py b/platformio/builder/scripts/frameworks/arduino.py index f9e5e741..f20846c8 100644 --- a/platformio/builder/scripts/frameworks/arduino.py +++ b/platformio/builder/scripts/frameworks/arduino.py @@ -29,12 +29,17 @@ BOARD_BUILDOPTS = BOARD_OPTS.get("build", {}) PLATFORMFW_DIR = join("$PIOPACKAGES_DIR", "framework-arduino${PLATFORM.replace('atmel', '')}") -if env.get("PLATFORM") == "digistump": +if "digispark" in BOARD_BUILDOPTS.get("core"): PLATFORMFW_DIR = join( "$PIOPACKAGES_DIR", "framework-arduino%s" % ( "sam" if BOARD_BUILDOPTS.get("cpu") == "cortex-m3" else "avr") ) +elif env.get("PLATFORM") == "timsp430": + PLATFORMFW_DIR = join( + "$PIOPACKAGES_DIR", + "framework-arduinomsp430" + ) env.Replace(PLATFORMFW_DIR=PLATFORMFW_DIR) diff --git a/platformio/platforms/base.py b/platformio/platforms/base.py index 02e0ebb6..72f7c77d 100644 --- a/platformio/platforms/base.py +++ b/platformio/platforms/base.py @@ -26,6 +26,10 @@ PLATFORM_PACKAGES = { ("Arduino Wiring-based Framework", "http://arduino.cc/en/Reference/HomePage") ], + "framework-arduinomsp430": [ + ("Arduino Wiring-based Framework (MSP430 Core)", + "http://arduino.cc/en/Reference/HomePage") + ], "framework-energiamsp430": [ ("Energia Wiring-based Framework (MSP430 Core)", "http://energia.nu/reference/") diff --git a/platformio/platforms/timsp430.py b/platformio/platforms/timsp430.py index 48fe652e..8973cded 100644 --- a/platformio/platforms/timsp430.py +++ b/platformio/platforms/timsp430.py @@ -29,6 +29,10 @@ class Timsp430Platform(BasePlatform): "framework-energiamsp430": { "default": True + }, + + "framework-arduinomsp430": { + "default": True } }