diff --git a/boards.txt b/boards.txt index d5ca569be..7ab4fd9cb 100644 --- a/boards.txt +++ b/boards.txt @@ -542,3 +542,112 @@ esp210.menu.FlashSize.4M1M.build.spiffs_pagesize=256 # # wifio.upload.tool=esptool # + +############################################################## +d1.name=WeMos D1 + +d1.upload.tool=esptool +d1.upload.speed=460800 +d1.upload.resetmethod=ck +d1.upload.maximum_size=1044464 +d1.upload.maximum_data_size=81920 +d1.upload.wait_for_upload_port=true +d1.serial.disableDTR=true +d1.serial.disableRTS=true + +d1.build.mcu=esp8266 +d1.build.f_cpu=80000000L +d1.build.board=ESP8266_ESP12 +d1.build.core=esp8266 +d1.build.variant=d1 +d1.build.flash_mode=dio +d1.build.flash_size=4M +d1.build.flash_freq=40 +d1.build.flash_ld=eagle.flash.4m.ld +d1.build.spiffs_start=0x100000 +d1.build.spiffs_end=0x3FB000 +d1.build.spiffs_pagesize=256 +d1.build.spiffs_blocksize=8192 + +d1.menu.UploadTool.esptool=Serial +d1.menu.UploadTool.esptool.upload.tool=esptool +d1.menu.UploadTool.espota=OTA +d1.menu.UploadTool.espota.upload.tool=espota + +d1.menu.CpuFrequency.80=80 MHz +d1.menu.CpuFrequency.80.build.f_cpu=80000000L +d1.menu.CpuFrequency.160=160 MHz +d1.menu.CpuFrequency.160.build.f_cpu=160000000L + +d1.menu.UploadSpeed.460800=460800 +d1.menu.UploadSpeed.460800.upload.speed=460800 +d1.menu.UploadSpeed.115200=115200 +d1.menu.UploadSpeed.115200.upload.speed=115200 +d1.menu.UploadSpeed.9600=9600 +d1.menu.UploadSpeed.9600.upload.speed=9600 +d1.menu.UploadSpeed.57600=57600 +d1.menu.UploadSpeed.57600.upload.speed=57600 +d1.menu.UploadSpeed.256000.windows=256000 +d1.menu.UploadSpeed.256000.upload.speed=256000 +d1.menu.UploadSpeed.230400.linux=230400 +d1.menu.UploadSpeed.230400.macosx=230400 +d1.menu.UploadSpeed.230400.macosx=230400 +d1.menu.UploadSpeed.230400.upload.speed=230400 +d1.menu.UploadSpeed.512000.windows=512000 +d1.menu.UploadSpeed.512000.upload.speed=512000 +d1.menu.UploadSpeed.921600=921600 +d1.menu.UploadSpeed.921600.upload.speed=921600 +############################################################## +d1mini.name=WeMos D1 mini + +d1mini.upload.tool=esptool +d1mini.upload.speed=460800 +d1mini.upload.resetmethod=ck +d1mini.upload.maximum_size=1044464 +d1mini.upload.maximum_data_size=81920 +d1mini.upload.wait_for_upload_port=true +d1mini.serial.disableDTR=true +d1mini.serial.disableRTS=true + +d1mini.build.mcu=esp8266 +d1mini.build.f_cpu=80000000L +d1mini.build.board=ESP8266_ESP12 +d1mini.build.core=esp8266 +d1mini.build.variant=d1_mini +d1mini.build.flash_mode=dio +d1mini.build.flash_size=4M +d1mini.build.flash_freq=40 +d1mini.build.flash_ld=eagle.flash.4m.ld +d1mini.build.spiffs_start=0x100000 +d1mini.build.spiffs_end=0x3FB000 +d1mini.build.spiffs_pagesize=256 +d1mini.build.spiffs_blocksize=8192 + +d1mini.menu.UploadTool.esptool=Serial +d1mini.menu.UploadTool.esptool.upload.tool=esptool +d1mini.menu.UploadTool.espota=OTA +d1mini.menu.UploadTool.espota.upload.tool=espota + +d1mini.menu.CpuFrequency.80=80 MHz +d1mini.menu.CpuFrequency.80.build.f_cpu=80000000L +d1mini.menu.CpuFrequency.160=160 MHz +d1mini.menu.CpuFrequency.160.build.f_cpu=160000000L + +d1mini.menu.UploadSpeed.460800=460800 +d1mini.menu.UploadSpeed.460800.upload.speed=460800 +d1mini.menu.UploadSpeed.115200=115200 +d1mini.menu.UploadSpeed.115200.upload.speed=115200 +d1mini.menu.UploadSpeed.9600=9600 +d1mini.menu.UploadSpeed.9600.upload.speed=9600 +d1mini.menu.UploadSpeed.57600=57600 +d1mini.menu.UploadSpeed.57600.upload.speed=57600 +d1mini.menu.UploadSpeed.256000.windows=256000 +d1mini.menu.UploadSpeed.256000.upload.speed=256000 +d1mini.menu.UploadSpeed.230400.linux=230400 +d1mini.menu.UploadSpeed.230400.macosx=230400 +d1mini.menu.UploadSpeed.230400.macosx=230400 +d1mini.menu.UploadSpeed.230400.upload.speed=230400 +d1mini.menu.UploadSpeed.512000.windows=512000 +d1mini.menu.UploadSpeed.512000.upload.speed=512000 +d1mini.menu.UploadSpeed.921600=921600 +d1mini.menu.UploadSpeed.921600.upload.speed=921600 diff --git a/variants/d1/pins_arduino.h b/variants/d1/pins_arduino.h new file mode 100644 index 000000000..ddab599ba --- /dev/null +++ b/variants/d1/pins_arduino.h @@ -0,0 +1,86 @@ +/* + 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 = 4; +static const uint8_t SCL = 5; + +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 = 2;//new ESP-12E GPIO2 + +static const uint8_t A0 = 17; + +static const uint8_t D0 = 3; +static const uint8_t D1 = 1; +static const uint8_t D2 = 16; +static const uint8_t D3 = 5; +static const uint8_t D4 = 4; +static const uint8_t D5 = 14; +static const uint8_t D6 = 12; +static const uint8_t D7 = 13; +static const uint8_t D8 = 0; +static const uint8_t D9 = 2; +static const uint8_t D10 = 15; +static const uint8_t D11 = 13; +static const uint8_t D12 = 12; +static const uint8_t D13 = 14; +static const uint8_t D14 = 4; +static const uint8_t D15 = 5; + +// 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 */ diff --git a/variants/d1_mini/pins_arduino.h b/variants/d1_mini/pins_arduino.h new file mode 100644 index 000000000..160b9a442 --- /dev/null +++ b/variants/d1_mini/pins_arduino.h @@ -0,0 +1,83 @@ +/* + 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 = 4; +static const uint8_t SCL = 5; + +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 = 2; + +static const uint8_t A0 = 17; + +static const uint8_t D0 = 16; +static const uint8_t D1 = 5; +static const uint8_t D2 = 4; +static const uint8_t D3 = 0; +static const uint8_t D4 = 2; +static const uint8_t D5 = 14; +static const uint8_t D6 = 12; +static const uint8_t D7 = 13; +static const uint8_t D8 = 15; +static const uint8_t D9 = 3; +static const uint8_t D10 = 1; + +static const uint8_t D13 = 2; + +// 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 */