From a9d5ef198a160d24a35b49d040168bbb57f93c10 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Wed, 22 Jul 2015 21:49:46 +0300 Subject: [PATCH] Fix SparkFun Thing board definition --- boards.txt | 26 ++++++++----- doc/boards.md | 8 +++- variants/thing/pins_arduino.h | 70 +++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 variants/thing/pins_arduino.h diff --git a/boards.txt b/boards.txt index a20435118..58eb78edb 100644 --- a/boards.txt +++ b/boards.txt @@ -229,7 +229,7 @@ nodemcu.menu.UploadSpeed.921600.upload.speed=921600 ############################################################## nodemcuv2.name=NodeMCU 1.0 (ESP-12E Module) - + nodemcuv2.upload.tool=esptool nodemcuv2.upload.speed=115200 nodemcuv2.upload.resetmethod=ck @@ -238,7 +238,7 @@ nodemcuv2.upload.maximum_data_size=81920 nodemcuv2.upload.wait_for_upload_port=true nodemcuv2.serial.disableDTR=true nodemcuv2.serial.disableRTS=true - + nodemcuv2.build.mcu=esp8266 nodemcuv2.build.f_cpu=80000000L nodemcuv2.build.board=ESP8266_ESP12 @@ -252,12 +252,12 @@ nodemcuv2.build.spiffs_start=0x100000 nodemcuv2.build.spiffs_end=0x3FB000 nodemcuv2.build.spiffs_pagesize=256 nodemcuv2.build.spiffs_blocksize=8192 - + nodemcuv2.menu.CpuFrequency.80=80 MHz nodemcuv2.menu.CpuFrequency.80.build.f_cpu=80000000L nodemcuv2.menu.CpuFrequency.160=160 MHz nodemcuv2.menu.CpuFrequency.160.build.f_cpu=160000000L - + nodemcuv2.menu.UploadSpeed.115200=115200 nodemcuv2.menu.UploadSpeed.115200.upload.speed=115200 nodemcuv2.menu.UploadSpeed.9600=9600 @@ -336,25 +336,30 @@ thing.name=SparkFun ESP8266 Thing thing.upload.tool=esptool thing.upload.speed=921600 thing.upload.resetmethod=ck -thing.upload.maximum_size=524288 +thing.upload.maximum_size=434160 +thing.upload.maximum_data_size=81920 thing.upload.wait_for_upload_port=true thing.serial.disableDTR=true thing.serial.disableRTS=true thing.build.mcu=esp8266 thing.build.f_cpu=80000000L -thing.build.board=ESP8266_ESP01 +thing.build.board=ESP8266_THING thing.build.core=esp8266 thing.build.variant=thing thing.build.flash_mode=qio -thing.build.flash_size=4M +# flash chip: AT25SF041 (512 kbyte, 4Mbit) +thing.build.flash_size=512K +thing.build.flash_ld=eagle.flash.512k.ld thing.build.flash_freq=40 -thing.build.flash_ld=eagle.flash.4m.ld -thing.build.spiffs_start=0x100000 -thing.build.spiffs_end=0x3FB000 +thing.build.spiffs_start=0x6B000 +thing.build.spiffs_end=0x7B000 +thing.build.spiffs_blocksize=4096 thing.menu.CpuFrequency.80=80 MHz thing.menu.CpuFrequency.80.build.f_cpu=80000000L +thing.menu.CpuFrequency.160=160 MHz +thing.menu.CpuFrequency.160.build.f_cpu=160000000L thing.menu.UploadSpeed.115200=115200 thing.menu.UploadSpeed.115200.upload.speed=115200 @@ -382,6 +387,7 @@ esp210.upload.tool=esptool esp210.upload.speed=115200 esp210.upload.resetmethod=ck esp210.upload.maximum_size=1044464 +esp210.upload.maximum_data_size=81920 esp210.upload.wait_for_upload_port=true esp210.serial.disableDTR=true esp210.serial.disableRTS=true diff --git a/doc/boards.md b/doc/boards.md index af9197029..99bb7cb8c 100644 --- a/doc/boards.md +++ b/doc/boards.md @@ -1,12 +1,12 @@ --- title: Supported Hardware -layout: page --- - [Adafruit HUZZAH ESP8266 (ESP-12)](#adafruit-huzzah-esp8266-esp-12) - [NodeMCU 0.9](#nodemcu-0-9) - [NodeMCU 1.0](#nodemcu-1-0) - [Olimex MOD-WIFI-ESP8266](#olimex-mod-wifi-esp8266) +- [SparkFun ESP8266 Thing](#sparkfun-esp8266-thing) - [SweetPea ESP-210](#sweetpea-esp-210) - [Generic ESP8266 modules](#generic-esp8266-modules) @@ -44,6 +44,12 @@ If you want to use NodeMCU pin 5, use D5 for pin number, and it will be translat *TODO: add notes* +### SparkFun ESP8266 Thing ### + +Product page: https://www.sparkfun.com/products/13231 + +*TODO: add notes* + ### SweetPea ESP-210 *TODO: add notes* diff --git a/variants/thing/pins_arduino.h b/variants/thing/pins_arduino.h new file mode 100644 index 000000000..72d0aaea1 --- /dev/null +++ b/variants/thing/pins_arduino.h @@ -0,0 +1,70 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + Modified for ESP8266 platform by Ivan Grokhotkov, 2014-2015. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#define EXTERNAL_NUM_INTERRUPTS 16 +#define NUM_DIGITAL_PINS 17 +#define NUM_ANALOG_INPUTS 1 + +#define analogInputToDigitalPin(p) ((p > 0)?NOT_A_PIN:0) +#define digitalPinToInterrupt(p) (((p) < EXTERNAL_NUM_INTERRUPTS)?p:NOT_A_PIN) +#define digitalPinHasPWM(p) (((p) < NUM_DIGITAL_PINS)?p:NOT_A_PIN) + +static const uint8_t SDA = 2; +static const uint8_t SCL = 14; + +static const uint8_t SS = 15; +static const uint8_t MOSI = 13; +static const uint8_t MISO = 12; +static const uint8_t SCK = 14; + +static const uint8_t BUILTIN_LED = 5; + +static const uint8_t A0 = 17; + + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_USBVIRTUAL Serial +#define SERIAL_PORT_HARDWARE Serial +#define SERIAL_PORT_HARDWARE_OPEN Serial + +#endif /* Pins_Arduino_h */