diff --git a/.gitmodules b/.gitmodules index 7dbf4492..73c2c24d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ -[submodule "examples/atmelavr-and-arduino/arduino-adafruit-library/lib/Adafruit_CC3000_Library"] - path = examples/atmelavr-and-arduino/arduino-adafruit-library/lib/Adafruit_CC3000_Library - url = https://github.com/adafruit/Adafruit_CC3000_Library.git +[submodule "examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library"] + path = examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library + url = https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library.git +[submodule "examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library"] + path = examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library + url = https://github.com/adafruit/Adafruit-GFX-Library.git diff --git a/examples/atmelavr-and-arduino/arduino-adafruit-library/README.rst b/examples/atmelavr-and-arduino/arduino-adafruit-library/README.rst deleted file mode 100644 index 606c6479..00000000 --- a/examples/atmelavr-and-arduino/arduino-adafruit-library/README.rst +++ /dev/null @@ -1,84 +0,0 @@ -Arduino Example: Build \*.ino file with external Adafruit library -================================================================= - -1. Download ``platformio`` - `sources `_ -2. Extract ZIP archive -3. Then run these commands: - -.. code-block:: bash - - # Change directory to example - > cd platformio-develop/examples/atmelavr-and-arduino/arduino-adafruit-library - - # Process example project - > platformio run - - # Upload firmware - > platformio run --target upload - - # Clean build files - > platformio run --target clean - -Console Output --------------- - -.. code-block:: bash - - > cd examples/atmelavr-and-arduino/arduino-adafruit-library - (arduino-adafruit-library) > platformio run - Processing arduino_uno environment: - avr-g++ -o .pioenvs/arduino_uno/src/EchoServer.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/src/EchoServer.cpp - avr-g++ -o .pioenvs/arduino_uno/SPI/SPI.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/SPI/SPI.cpp - avr-ar rcs .pioenvs/arduino_uno/libSPI.a .pioenvs/arduino_uno/SPI/SPI.o - avr-ranlib .pioenvs/arduino_uno/libSPI.a - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/Adafruit_CC3000.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/Adafruit_CC3000.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/Adafruit_CC3000_Server.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/Adafruit_CC3000_Server.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/ccspi.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/ccspi.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/cc3000_common.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/cc3000_common.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/debug.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/debug.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/evnt_handler.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/evnt_handler.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/hci.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/hci.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/netapp.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/netapp.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/nvmem.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/nvmem.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/security.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/security.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/sntp.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/sntp.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/socket.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/socket.cpp - avr-g++ -o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/wlan.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant -I.pioenvs/arduino_uno/Adafruit_CC3000_Library -I.pioenvs/arduino_uno/SPI -I.pioenvs/arduino_uno/Adafruit_CC3000_Library/utility .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/wlan.cpp - avr-ar rcs .pioenvs/arduino_uno/libAdafruit_CC3000_Library.a .pioenvs/arduino_uno/Adafruit_CC3000_Library/Adafruit_CC3000.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/Adafruit_CC3000_Server.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/ccspi.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/cc3000_common.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/debug.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/evnt_handler.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/hci.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/netapp.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/nvmem.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/security.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/sntp.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/socket.o .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/wlan.o - avr-ranlib .pioenvs/arduino_uno/libAdafruit_CC3000_Library.a - avr-gcc -o .pioenvs/arduino_uno/FrameworkArduino/WInterrupts.o -c -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/WInterrupts.c - avr-gcc -o .pioenvs/arduino_uno/FrameworkArduino/hooks.o -c -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/hooks.c - avr-gcc -o .pioenvs/arduino_uno/FrameworkArduino/wiring.o -c -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/wiring.c - avr-gcc -o .pioenvs/arduino_uno/FrameworkArduino/wiring_analog.o -c -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/wiring_analog.c - avr-gcc -o .pioenvs/arduino_uno/FrameworkArduino/wiring_digital.o -c -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/wiring_digital.c - avr-gcc -o .pioenvs/arduino_uno/FrameworkArduino/wiring_pulse.o -c -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/wiring_pulse.c - avr-gcc -o .pioenvs/arduino_uno/FrameworkArduino/wiring_shift.o -c -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/wiring_shift.c - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/CDC.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/CDC.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/HID.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/HID.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial0.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial0.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial1.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial1.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial2.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial2.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial3.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial3.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/IPAddress.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/IPAddress.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/Print.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/Print.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/Stream.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/Stream.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/Tone.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/Tone.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/USBCore.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/USBCore.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/WMath.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/WMath.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/WString.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/WString.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/abi.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/abi.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/main.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/main.cpp - avr-g++ -o .pioenvs/arduino_uno/FrameworkArduino/new.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=158 -I.pioenvs/arduino_uno/FrameworkArduino -I.pioenvs/arduino_uno/FrameworkArduinoVariant .pioenvs/arduino_uno/FrameworkArduino/new.cpp - avr-ar rcs .pioenvs/arduino_uno/libFrameworkArduino.a .pioenvs/arduino_uno/FrameworkArduino/WInterrupts.o .pioenvs/arduino_uno/FrameworkArduino/hooks.o .pioenvs/arduino_uno/FrameworkArduino/wiring.o .pioenvs/arduino_uno/FrameworkArduino/wiring_analog.o .pioenvs/arduino_uno/FrameworkArduino/wiring_digital.o .pioenvs/arduino_uno/FrameworkArduino/wiring_pulse.o .pioenvs/arduino_uno/FrameworkArduino/wiring_shift.o .pioenvs/arduino_uno/FrameworkArduino/CDC.o .pioenvs/arduino_uno/FrameworkArduino/HID.o .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial.o .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial0.o .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial1.o .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial2.o .pioenvs/arduino_uno/FrameworkArduino/HardwareSerial3.o .pioenvs/arduino_uno/FrameworkArduino/IPAddress.o .pioenvs/arduino_uno/FrameworkArduino/Print.o .pioenvs/arduino_uno/FrameworkArduino/Stream.o .pioenvs/arduino_uno/FrameworkArduino/Tone.o .pioenvs/arduino_uno/FrameworkArduino/USBCore.o .pioenvs/arduino_uno/FrameworkArduino/WMath.o .pioenvs/arduino_uno/FrameworkArduino/WString.o .pioenvs/arduino_uno/FrameworkArduino/abi.o .pioenvs/arduino_uno/FrameworkArduino/main.o .pioenvs/arduino_uno/FrameworkArduino/new.o - avr-ranlib .pioenvs/arduino_uno/libFrameworkArduino.a - avr-g++ -o .pioenvs/arduino_uno/firmware.elf -Os -mmcu=atmega328p -Wl,--gc-sections -Wl,--start-group .pioenvs/arduino_uno/src/EchoServer.o -L.pioenvs/arduino_uno .pioenvs/arduino_uno/libSPI.a .pioenvs/arduino_uno/libAdafruit_CC3000_Library.a .pioenvs/arduino_uno/libFrameworkArduino.a -lm - avr-objcopy -O ihex -R .eeprom .pioenvs/arduino_uno/firmware.elf .pioenvs/arduino_uno/firmware.hex - .pioenvs/arduino_uno/Adafruit_CC3000_Library/Adafruit_CC3000.cpp: In member function 'size_t Adafruit_CC3000_Client::fastrprint(const __FlashStringHelper*)': - .pioenvs/arduino_uno/Adafruit_CC3000_Library/Adafruit_CC3000.cpp:1528:23: warning: '__progmem__' attribute ignored [-Wattributes] - const char PROGMEM *p = (const char PROGMEM *)ifsh; - ^ - .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/sntp.cpp: In member function 'char sntp::GetNTPServerList(const char**, uint32_t*, int)': - .pioenvs/arduino_uno/Adafruit_CC3000_Library/utility/sntp.cpp:360:25: warning: converting to non-pointer type 'uint32_t {aka long unsigned int}' from NULL [-Wconversion-null] - uint32_t ntpServer= NULL; diff --git a/examples/atmelavr-and-arduino/arduino-adafruit-library/lib/Adafruit_CC3000_Library b/examples/atmelavr-and-arduino/arduino-adafruit-library/lib/Adafruit_CC3000_Library deleted file mode 160000 index fe3af3da..00000000 --- a/examples/atmelavr-and-arduino/arduino-adafruit-library/lib/Adafruit_CC3000_Library +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fe3af3da4dd448dd326b39b36c92f1fa6a9dbf90 diff --git a/examples/atmelavr-and-arduino/arduino-adafruit-library/platformio.ini b/examples/atmelavr-and-arduino/arduino-adafruit-library/platformio.ini deleted file mode 100644 index b4e1139a..00000000 --- a/examples/atmelavr-and-arduino/arduino-adafruit-library/platformio.ini +++ /dev/null @@ -1,25 +0,0 @@ -# -# 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:arduino_uno] -platform = atmelavr -framework = arduino -board = uno - -# targets = upload diff --git a/examples/atmelavr-and-arduino/arduino-adafruit-library/src/EchoServer.ino b/examples/atmelavr-and-arduino/arduino-adafruit-library/src/EchoServer.ino deleted file mode 100755 index e747cd85..00000000 --- a/examples/atmelavr-and-arduino/arduino-adafruit-library/src/EchoServer.ino +++ /dev/null @@ -1,185 +0,0 @@ - -/*************************************************** - Adafruit CC3000 Breakout/Shield TCP Echo Server - - This is a simple implementation of the echo - protocol, RFC 862 http://tools.ietf.org/html/rfc862 , - for the Arduino platform and Adafruit CC3000 breakout - or shield. This sketch will create a TCP server that - listens by default on port 7 and echos back any data - received. Up to 3 clients can be connected concurrently - to the server. This sketch is meant as an example of how - to write a simple server with the Arduino and CC3000. - - See the CC3000 tutorial on Adafruit's learning system - for more information on setting up and using the - CC3000: - http://learn.adafruit.com/adafruit-cc3000-wifi - - Requirements: - - This sketch requires the Adafruit CC3000 library. You can - download the library from: - https://github.com/adafruit/Adafruit_CC3000_Library - - For information on installing libraries in the Arduino IDE - see this page: - http://arduino.cc/en/Guide/Libraries - - Usage: - - Update the SSID and, if necessary, the CC3000 hardware pin - information below, then run the sketch and check the - output of the serial port. After connecting to the - wireless network successfully the sketch will output - the IP address of the server and start listening for - connections. Once listening for connections, connect - to the server from your computer using a telnet client - on port 7. - - For example on Linux or Mac OSX, if your CC3000 has an - IP address 192.168.1.100 you would execute in a command - window: - - telnet 192.168.1.100 7 - - After connecting, notice that as you type input and - press enter to send it the CC3000 will echo back exactly - what you typed. Press ctrl-] and type quit at the prompt - to close the telnet session. - - On Windows you'll need to download a telnet client. PuTTY - is a good, free GUI client: - http://www.chiark.greenend.org.uk/~sgtatham/putty/ - - License: - - This example is copyright (c) 2013 Tony DiCola (tony@tonydicola.com) - and is released under an open source MIT license. See details at: - http://opensource.org/licenses/MIT - - This code was adapted from Adafruit CC3000 library example - code which has the following license: - - Designed specifically to work with the Adafruit WiFi products: - ----> https://www.adafruit.com/products/1469 - - Adafruit invests time and resources providing this open source code, - please support Adafruit and open-source hardware by purchasing - products from Adafruit! - - Written by Limor Fried & Kevin Townsend for Adafruit Industries. - BSD license, all text above must be included in any redistribution - ****************************************************/ -#include -#include -#include "utility/debug.h" -#include "utility/socket.h" - -// These are the interrupt and control pins -#define ADAFRUIT_CC3000_IRQ 3 // MUST be an interrupt pin! -// These can be any two pins -#define ADAFRUIT_CC3000_VBAT 5 -#define ADAFRUIT_CC3000_CS 10 -// Use hardware SPI for the remaining pins -// On an UNO, SCK = 13, MISO = 12, and MOSI = 11 -Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT, - SPI_CLOCK_DIVIDER); // you can change this clock speed - -#define WLAN_SSID "myNetwork" // cannot be longer than 32 characters! -#define WLAN_PASS "myPassword" -// Security can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2 -#define WLAN_SECURITY WLAN_SEC_WPA2 - -#define LISTEN_PORT 7 // What TCP port to listen on for connections. The echo protocol uses port 7. - -Adafruit_CC3000_Server echoServer(LISTEN_PORT); - -void setup(void) -{ - Serial.begin(115200); - Serial.println(F("Hello, CC3000!\n")); - - Serial.print("Free RAM: "); Serial.println(getFreeRam(), DEC); - - /* Initialise the module */ - Serial.println(F("\nInitializing...")); - if (!cc3000.begin()) - { - Serial.println(F("Couldn't begin()! Check your wiring?")); - while(1); - } - - Serial.print(F("\nAttempting to connect to ")); Serial.println(WLAN_SSID); - if (!cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) { - Serial.println(F("Failed!")); - while(1); - } - - Serial.println(F("Connected!")); - - Serial.println(F("Request DHCP")); - while (!cc3000.checkDHCP()) - { - delay(100); // ToDo: Insert a DHCP timeout! - } - - /* Display the IP address DNS, Gateway, etc. */ - while (! displayConnectionDetails()) { - delay(1000); - } - - /*********************************************************/ - /* You can safely remove this to save some flash memory! */ - /*********************************************************/ - Serial.println(F("\r\nNOTE: This sketch may cause problems with other sketches")); - Serial.println(F("since the .disconnect() function is never called, so the")); - Serial.println(F("AP may refuse connection requests from the CC3000 until a")); - Serial.println(F("timeout period passes. This is normal behaviour since")); - Serial.println(F("there isn't an obvious moment to disconnect with a server.\r\n")); - - // Start listening for connections - echoServer.begin(); - - Serial.println(F("Listening for connections...")); -} - -void loop(void) -{ - // Try to get a client which is connected. - Adafruit_CC3000_ClientRef client = echoServer.available(); - if (client) { - // Check if there is data available to read. - if (client.available() > 0) { - // Read a byte and write it to all clients. - uint8_t ch = client.read(); - client.write(ch); - } - } -} - -/**************************************************************************/ -/*! - @brief Tries to read the IP address and other connection details -*/ -/**************************************************************************/ -bool displayConnectionDetails(void) -{ - uint32_t ipAddress, netmask, gateway, dhcpserv, dnsserv; - - if(!cc3000.getIPAddress(&ipAddress, &netmask, &gateway, &dhcpserv, &dnsserv)) - { - Serial.println(F("Unable to retrieve the IP Address!\r\n")); - return false; - } - else - { - Serial.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress); - Serial.print(F("\nNetmask: ")); cc3000.printIPdotsRev(netmask); - Serial.print(F("\nGateway: ")); cc3000.printIPdotsRev(gateway); - Serial.print(F("\nDHCPsrv: ")); cc3000.printIPdotsRev(dhcpserv); - Serial.print(F("\nDNSserv: ")); cc3000.printIPdotsRev(dnsserv); - Serial.println(); - return true; - } -} diff --git a/examples/atmelavr-and-arduino/arduino-external-libs/README.rst b/examples/atmelavr-and-arduino/arduino-external-libs/README.rst new file mode 100644 index 00000000..675b2129 --- /dev/null +++ b/examples/atmelavr-and-arduino/arduino-external-libs/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/arduino-external-libs + + # 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/arduino-external-libs/lib/Adafruit-GFX-Library b/examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library new file mode 160000 index 00000000..a9e5bc47 --- /dev/null +++ b/examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library @@ -0,0 +1 @@ +Subproject commit a9e5bc470736ffe9c9ef11d778bc4dcd47169d42 diff --git a/examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library b/examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library new file mode 160000 index 00000000..32ca9ca7 --- /dev/null +++ b/examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library @@ -0,0 +1 @@ +Subproject commit 32ca9ca73942b67688ca6946bbc43b0a9729c4fc diff --git a/examples/atmelavr-and-arduino/arduino-external-libs/platformio.ini b/examples/atmelavr-and-arduino/arduino-external-libs/platformio.ini new file mode 100644 index 00000000..8b2638cc --- /dev/null +++ b/examples/atmelavr-and-arduino/arduino-external-libs/platformio.ini @@ -0,0 +1,63 @@ +# +# 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:arduino_uno] +platform = atmelavr +framework = arduino +board = uno + +[env:arduino_ethernet] +platform = atmelavr +framework = arduino +board = ethernet + +[env:arduino_leonardo] +platform = atmelavr +framework = arduino +board = leonardo + +[env:arduino_pro16MHzatmega168] +platform = atmelavr +framework = arduino +board = pro16MHzatmega168 + +[env:arduino_megaatmega1280] +platform = atmelavr +framework = arduino +board = megaatmega1280 + +[env:arduino_micro] +platform = atmelavr +framework = arduino +board = micro + +[env:arduino_robotControl] +platform = atmelavr +framework = arduino +board = robotControl + +[env:arduino_yun] +platform = atmelavr +framework = arduino +board = yun + +#[env:arduino_due] +#platform = atmelsam +#framework = arduino +#board = due diff --git a/examples/atmelavr-and-arduino/arduino-external-libs/src/pcdtest.ino b/examples/atmelavr-and-arduino/arduino-external-libs/src/pcdtest.ino new file mode 100644 index 00000000..2fa0ce22 --- /dev/null +++ b/examples/atmelavr-and-arduino/arduino-external-libs/src/pcdtest.ino @@ -0,0 +1,350 @@ +/********************************************************************* +This is an example sketch for our Monochrome Nokia 5110 LCD Displays + + Pick one up today in the adafruit shop! + ------> http://www.adafruit.com/products/338 + +These displays use SPI to communicate, 4 or 5 pins are required to +interface + +Adafruit invests time and resources providing this open source code, +please support Adafruit and open-source hardware by purchasing +products from Adafruit! + +Written by Limor Fried/Ladyada for Adafruit Industries. +BSD license, check license.txt for more information +All text above, and the splash screen must be included in any redistribution +*********************************************************************/ + +#include +#include +#include + +// Software SPI (slower updates, more flexible pin options): +// pin 7 - Serial clock out (SCLK) +// pin 6 - Serial data out (DIN) +// pin 5 - Data/Command select (D/C) +// pin 4 - LCD chip select (CS) +// pin 3 - LCD reset (RST) +Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3); + +// Hardware SPI (faster, but must use certain hardware pins): +// SCK is LCD serial clock (SCLK) - this is pin 13 on Arduino Uno +// MOSI is LCD DIN - this is pin 11 on an Arduino Uno +// pin 5 - Data/Command select (D/C) +// pin 4 - LCD chip select (CS) +// pin 3 - LCD reset (RST) +// Adafruit_PCD8544 display = Adafruit_PCD8544(5, 4, 3); +// Note with hardware SPI MISO and SS pins aren't used but will still be read +// and written to during SPI transfer. Be careful sharing these pins! + +#define NUMFLAKES 10 +#define XPOS 0 +#define YPOS 1 +#define DELTAY 2 + + +#define LOGO16_GLCD_HEIGHT 16 +#define LOGO16_GLCD_WIDTH 16 + +static const unsigned char PROGMEM logo16_glcd_bmp[] = +{ B00000000, B11000000, + B00000001, B11000000, + B00000001, B11000000, + B00000011, B11100000, + B11110011, B11100000, + B11111110, B11111000, + B01111110, B11111111, + B00110011, B10011111, + B00011111, B11111100, + B00001101, B01110000, + B00011011, B10100000, + B00111111, B11100000, + B00111111, B11110000, + B01111100, B11110000, + B01110000, B01110000, + B00000000, B00110000 }; + +void setup() { + Serial.begin(9600); + + display.begin(); + // init done + + // you can change the contrast around to adapt the display + // for the best viewing! + display.setContrast(50); + + display.display(); // show splashscreen + delay(2000); + display.clearDisplay(); // clears the screen and buffer + + // draw a single pixel + display.drawPixel(10, 10, BLACK); + display.display(); + delay(2000); + display.clearDisplay(); + + // draw many lines + testdrawline(); + display.display(); + delay(2000); + display.clearDisplay(); + + // draw rectangles + testdrawrect(); + display.display(); + delay(2000); + display.clearDisplay(); + + // draw multiple rectangles + testfillrect(); + display.display(); + delay(2000); + display.clearDisplay(); + + // draw mulitple circles + testdrawcircle(); + display.display(); + delay(2000); + display.clearDisplay(); + + // draw a circle, 10 pixel radius + display.fillCircle(display.width()/2, display.height()/2, 10, BLACK); + display.display(); + delay(2000); + display.clearDisplay(); + + testdrawroundrect(); + delay(2000); + display.clearDisplay(); + + testfillroundrect(); + delay(2000); + display.clearDisplay(); + + testdrawtriangle(); + delay(2000); + display.clearDisplay(); + + testfilltriangle(); + delay(2000); + display.clearDisplay(); + + // draw the first ~12 characters in the font + testdrawchar(); + display.display(); + delay(2000); + display.clearDisplay(); + + // text display tests + display.setTextSize(1); + display.setTextColor(BLACK); + display.setCursor(0,0); + display.println("Hello, world!"); + display.setTextColor(WHITE, BLACK); // 'inverted' text + display.println(3.141592); + display.setTextSize(2); + display.setTextColor(BLACK); + display.print("0x"); display.println(0xDEADBEEF, HEX); + display.display(); + delay(2000); + + // rotation example + display.clearDisplay(); + display.setRotation(1); // rotate 90 degrees counter clockwise, can also use values of 2 and 3 to go further. + display.setTextSize(1); + display.setTextColor(BLACK); + display.setCursor(0,0); + display.println("Rotation"); + display.setTextSize(2); + display.println("Example!"); + display.display(); + delay(2000); + + // revert back to no rotation + display.setRotation(0); + + // miniature bitmap display + display.clearDisplay(); + display.drawBitmap(30, 16, logo16_glcd_bmp, 16, 16, 1); + display.display(); + + // invert the display + display.invertDisplay(true); + delay(1000); + display.invertDisplay(false); + delay(1000); + + // draw a bitmap icon and 'animate' movement + testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_WIDTH, LOGO16_GLCD_HEIGHT); +} + + +void loop() { + +} + + +void testdrawbitmap(const uint8_t *bitmap, uint8_t w, uint8_t h) { + uint8_t icons[NUMFLAKES][3]; + srandom(666); // whatever seed + + // initialize + for (uint8_t f=0; f< NUMFLAKES; f++) { + icons[f][XPOS] = random() % display.width(); + icons[f][YPOS] = 0; + icons[f][DELTAY] = random() % 5 + 1; + + Serial.print("x: "); + Serial.print(icons[f][XPOS], DEC); + Serial.print(" y: "); + Serial.print(icons[f][YPOS], DEC); + Serial.print(" dy: "); + Serial.println(icons[f][DELTAY], DEC); + } + + while (1) { + // draw each icon + for (uint8_t f=0; f< NUMFLAKES; f++) { + display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, BLACK); + } + display.display(); + delay(200); + + // then erase it + move it + for (uint8_t f=0; f< NUMFLAKES; f++) { + display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, WHITE); + // move it + icons[f][YPOS] += icons[f][DELTAY]; + // if its gone, reinit + if (icons[f][YPOS] > display.height()) { + icons[f][XPOS] = random() % display.width(); + icons[f][YPOS] = 0; + icons[f][DELTAY] = random() % 5 + 1; + } + } + } +} + + +void testdrawchar(void) { + display.setTextSize(1); + display.setTextColor(BLACK); + display.setCursor(0,0); + + for (uint8_t i=0; i < 168; i++) { + if (i == '\n') continue; + display.write(i); + //if ((i > 0) && (i % 14 == 0)) + //display.println(); + } + display.display(); +} + +void testdrawcircle(void) { + for (int16_t i=0; i0; i-=5) { + display.fillTriangle(display.width()/2, display.height()/2-i, + display.width()/2-i, display.height()/2+i, + display.width()/2+i, display.height()/2+i, color); + if (color == WHITE) color = BLACK; + else color = WHITE; + display.display(); + } +} + +void testdrawroundrect(void) { + for (int16_t i=0; i=0; i-=4) { + display.drawLine(0, display.height()-1, display.width()-1, i, BLACK); + display.display(); + } + delay(250); + + display.clearDisplay(); + for (int16_t i=display.width()-1; i>=0; i-=4) { + display.drawLine(display.width()-1, display.height()-1, i, 0, BLACK); + display.display(); + } + for (int16_t i=display.height()-1; i>=0; i-=4) { + display.drawLine(display.width()-1, display.height()-1, 0, i, BLACK); + display.display(); + } + delay(250); + + display.clearDisplay(); + for (int16_t i=0; i`_ -2. Extract ZIP archive -3. Then run these commands: - -.. code-block:: bash - - # Change directory to example - $ cd platformio-develop/examples/arduino-internal-library/ - - # Install Atmel AVR development platform with Arduino Framework - $ platformio install atmelavr - - # Process example project - $ platformio run - -.. image:: console-result.png diff --git a/examples/atmelavr-and-arduino/arduino-internal-library/platformio.ini b/examples/atmelavr-and-arduino/arduino-internal-library/platformio.ini deleted file mode 100644 index f0ad3a13..00000000 --- a/examples/atmelavr-and-arduino/arduino-internal-library/platformio.ini +++ /dev/null @@ -1,25 +0,0 @@ -# -# 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:arduino_pro5v] -platform = atmelavr -framework = arduino -board = pro16MHzatmega168 - -# targets = upload diff --git a/examples/atmelavr-and-arduino/arduino-internal-library/src/main.cpp b/examples/atmelavr-and-arduino/arduino-internal-library/src/main.cpp deleted file mode 100644 index 92b55e2b..00000000 --- a/examples/atmelavr-and-arduino/arduino-internal-library/src/main.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright (C) Ivan Kravets - * See LICENSE for details. - */ - -/* - * EEPROM Read - * - * Reads the value of each byte of the EEPROM and prints it - * to the computer. - * This example code is in the public domain. - * - * https://github.com/arduino/Arduino/blob/master/libraries/EEPROM/examples/eeprom_read/eeprom_read.ino - */ - -#include -#include - -// start reading from the first byte (address 0) of the EEPROM -int address = 0; -byte value; - -void setup() -{ - // initialize serial and wait for port to open: - Serial.begin(9600); - while (!Serial) { - ; // wait for serial port to connect. Needed for Leonardo only - } -} - -void loop() -{ - // read a byte from the current address of the EEPROM - value = EEPROM.read(address); - - Serial.print(address); - Serial.print("\t"); - Serial.print(value, DEC); - Serial.println(); - - // advance to the next address of the EEPROM - address = address + 1; - - // there are only 512 bytes of EEPROM, from 0 to 511, so if we're - // on address 512, wrap around to address 0 - if (address == 512) - address = 0; - - delay(500); -} diff --git a/examples/atmelavr-and-arduino/arduino-internal-libs/README.rst b/examples/atmelavr-and-arduino/arduino-internal-libs/README.rst new file mode 100644 index 00000000..cb17077d --- /dev/null +++ b/examples/atmelavr-and-arduino/arduino-internal-libs/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/arduino-internal-libs + + # 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/arduino-internal-libs/platformio.ini b/examples/atmelavr-and-arduino/arduino-internal-libs/platformio.ini new file mode 100644 index 00000000..8b2638cc --- /dev/null +++ b/examples/atmelavr-and-arduino/arduino-internal-libs/platformio.ini @@ -0,0 +1,63 @@ +# +# 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:arduino_uno] +platform = atmelavr +framework = arduino +board = uno + +[env:arduino_ethernet] +platform = atmelavr +framework = arduino +board = ethernet + +[env:arduino_leonardo] +platform = atmelavr +framework = arduino +board = leonardo + +[env:arduino_pro16MHzatmega168] +platform = atmelavr +framework = arduino +board = pro16MHzatmega168 + +[env:arduino_megaatmega1280] +platform = atmelavr +framework = arduino +board = megaatmega1280 + +[env:arduino_micro] +platform = atmelavr +framework = arduino +board = micro + +[env:arduino_robotControl] +platform = atmelavr +framework = arduino +board = robotControl + +[env:arduino_yun] +platform = atmelavr +framework = arduino +board = yun + +#[env:arduino_due] +#platform = atmelsam +#framework = arduino +#board = due diff --git a/examples/atmelavr-and-arduino/arduino-internal-libs/src/ChatServer.ino b/examples/atmelavr-and-arduino/arduino-internal-libs/src/ChatServer.ino new file mode 100644 index 00000000..927a60e1 --- /dev/null +++ b/examples/atmelavr-and-arduino/arduino-internal-libs/src/ChatServer.ino @@ -0,0 +1,80 @@ +/* + Chat Server + + A simple server that distributes any incoming messages to all + connected clients. To use telnet to your device's IP address and type. + You can see the client's input in the serial monitor as well. + Using an Arduino Wiznet Ethernet shield. + + Circuit: + * Ethernet shield attached to pins 10, 11, 12, 13 + * Analog inputs attached to pins A0 through A5 (optional) + + created 18 Dec 2009 + by David A. Mellis + modified 9 Apr 2012 + by Tom Igoe + + */ + +#include +#include + +// Enter a MAC address and IP address for your controller below. +// The IP address will be dependent on your local network. +// gateway and subnet are optional: +byte mac[] = { + 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED +}; +IPAddress ip(192, 168, 1, 177); +IPAddress gateway(192, 168, 1, 1); +IPAddress subnet(255, 255, 0, 0); + + +// telnet defaults to port 23 +EthernetServer server(23); +boolean alreadyConnected = false; // whether or not the client was connected previously + +void setup() { + // initialize the ethernet device + Ethernet.begin(mac, ip, gateway, subnet); + // start listening for clients + server.begin(); + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for Leonardo only + } + + + Serial.print("Chat server address:"); + Serial.println(Ethernet.localIP()); +} + +void loop() { + // wait for a new client: + EthernetClient client = server.available(); + + // when the client sends the first byte, say hello: + if (client) { + if (!alreadyConnected) { + // clead out the input buffer: + client.flush(); + Serial.println("We have a new client"); + client.println("Hello, client!"); + alreadyConnected = true; + } + + if (client.available() > 0) { + // read the bytes incoming from the client: + char thisChar = client.read(); + // echo the bytes back to the client: + server.write(thisChar); + // echo the bytes to the server as well: + Serial.write(thisChar); + } + } +} + + + diff --git a/examples/atmelavr-and-arduino/atmelavr-native-blink/README.rst b/examples/atmelavr-and-arduino/atmelavr-native-blink/README.rst index 6ab96193..14bfc2de 100644 --- a/examples/atmelavr-and-arduino/atmelavr-native-blink/README.rst +++ b/examples/atmelavr-and-arduino/atmelavr-native-blink/README.rst @@ -1,20 +1,21 @@ -Atmel AVR: Native Blink Example -=============================== +How to buid PlatformIO based project +==================================== -1. Download ``platformio`` - `sources `_ -2. Extract ZIP archive -3. Then run these commands: +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-native-blink/ - - # Install Atmel AVR development platform - $ platformio install atmelavr + > cd platformio-develop/examples/atmelavr-and-arduino/atmelavr-native-blink # Process example project - $ platformio run + > platformio run -.. image:: console-result.png + # Upload firmware + > platformio run --target upload + + # Clean build files + > platformio run --target clean diff --git a/examples/atmelavr-and-arduino/atmelavr-native-blink/console-result.png b/examples/atmelavr-and-arduino/atmelavr-native-blink/console-result.png deleted file mode 100644 index 189a8c82..00000000 Binary files a/examples/atmelavr-and-arduino/atmelavr-native-blink/console-result.png and /dev/null differ diff --git a/platformio/builder/scripts/atmelavr.py b/platformio/builder/scripts/atmelavr.py index ed090862..2c6e7c29 100644 --- a/platformio/builder/scripts/atmelavr.py +++ b/platformio/builder/scripts/atmelavr.py @@ -56,7 +56,7 @@ env.Replace( "-Os", "-mmcu=$BOARD_MCU", "-Wl,--gc-sections", - "-Wl,--start-group" + # "-Wl,--start-group" ], SIZEPRINTCMD='"$SIZETOOL" --mcu=$BOARD_MCU -C -d $SOURCES',