diff --git a/boards.txt b/boards.txt
index 890a8bc0f..19a692de9 100644
--- a/boards.txt
+++ b/boards.txt
@@ -2021,3 +2021,68 @@ gen4iod.menu.UploadSpeed.512000.windows=512000
gen4iod.menu.UploadSpeed.512000.upload.speed=512000
gen4iod.menu.UploadSpeed.921600=921600
gen4iod.menu.UploadSpeed.921600.upload.speed=921600
+
+##############################################################
+oak.name=DigiStump Oak
+
+oak.upload.tool=esptool
+oak.upload.speed=115200
+oak.upload.resetmethod=ck
+oak.upload.maximum_size=1040368
+oak.upload.maximum_data_size=81920
+oak.upload.wait_for_upload_port=true
+oak.serial.disableDTR=true
+oak.serial.disableRTS=true
+
+oak.build.mcu=esp8266
+oak.build.f_cpu=80000000L
+oak.build.board=ESP8266_OAK
+oak.build.core=esp8266
+oak.build.variant=oak
+oak.build.flash_mode=dio
+oak.build.flash_size=4M
+oak.build.flash_freq=40
+oak.build.debug_port=
+oak.build.debug_level=
+
+oak.menu.CpuFrequency.80=80 MHz
+oak.menu.CpuFrequency.80.build.f_cpu=80000000L
+oak.menu.CpuFrequency.160=160 MHz
+oak.menu.CpuFrequency.160.build.f_cpu=160000000L
+
+oak.menu.UploadSpeed.921600=921600
+oak.menu.UploadSpeed.921600.upload.speed=921600
+oak.menu.UploadSpeed.115200=115200
+oak.menu.UploadSpeed.115200.upload.speed=115200
+oak.menu.UploadSpeed.9600=9600
+oak.menu.UploadSpeed.9600.upload.speed=9600
+oak.menu.UploadSpeed.57600=57600
+oak.menu.UploadSpeed.57600.upload.speed=57600
+oak.menu.UploadSpeed.256000.windows=256000
+oak.menu.UploadSpeed.256000.upload.speed=256000
+oak.menu.UploadSpeed.230400.linux=230400
+oak.menu.UploadSpeed.230400.macosx=230400
+oak.menu.UploadSpeed.230400.macosx=230400
+oak.menu.UploadSpeed.230400.upload.speed=230400
+oak.menu.UploadSpeed.460800.linux=460800
+oak.menu.UploadSpeed.460800.macosx=460800
+oak.menu.UploadSpeed.460800.upload.speed=460800
+oak.menu.UploadSpeed.512000.windows=512000
+oak.menu.UploadSpeed.512000.upload.speed=512000
+
+
+oak.menu.FlashSize.4M3M=4M (3M SPIFFS)
+oak.menu.FlashSize.4M3M.build.flash_size=4M
+oak.menu.FlashSize.4M3M.build.flash_ld=eagle.flash.4m.ld
+oak.menu.FlashSize.4M3M.build.spiffs_start=0x100000
+oak.menu.FlashSize.4M3M.build.spiffs_end=0x3FB000
+oak.menu.FlashSize.4M3M.build.spiffs_blocksize=8192
+oak.menu.FlashSize.4M3M.build.spiffs_pagesize=256
+
+oak.menu.FlashSize.4M1M=4M (1M SPIFFS)
+oak.menu.FlashSize.4M1M.build.flash_size=4M
+oak.menu.FlashSize.4M1M.build.flash_ld=eagle.flash.4m1m.ld
+oak.menu.FlashSize.4M1M.build.spiffs_start=0x300000
+oak.menu.FlashSize.4M1M.build.spiffs_end=0x3FB000
+oak.menu.FlashSize.4M1M.build.spiffs_blocksize=8192
+oak.menu.FlashSize.4M1M.build.spiffs_pagesize=256
diff --git a/doc/boards.rst b/doc/boards.rst
index ec085057b..c60469867 100644
--- a/doc/boards.rst
+++ b/doc/boards.rst
@@ -131,6 +131,15 @@ WifInfo integrates the ESP-12 or ESP-07+Ext antenna module with a 3.3v regulator
For more information, please see WifInfo related `blog `__ entries, `github `__ and `community `__ forum.
+DigiStump Oak
+-------------
+
+The Oak requires an [adapter](#serial-adapter) for a serial connection or flashing; its micro USB port is only for power.
+
+To make a serial connection, wire the adapter's **TX to P3**, **RX to P4**, and **GND** to **GND**. Supply 3.3v from the serial adapter if not already powered via USB.
+
+To put the board into bootloader mode, configure a serial connection as above, connect **P2 to GND**, then re-apply power. Once flashing is complete, remove the connection from P2 to GND, then re-apply power to boot into normal mode.
+
Generic ESP8266 modules
-----------------------
diff --git a/package/package_esp8266com_index.template.json b/package/package_esp8266com_index.template.json
index a1789f7b5..53c8dd407 100644
--- a/package/package_esp8266com_index.template.json
+++ b/package/package_esp8266com_index.template.json
@@ -73,6 +73,9 @@
},
{
"name": "4D Systems gen4 IoD Range"
+ },
+ {
+ "name": "DigiStump Oak"
}
],
"toolsDependencies": [
diff --git a/variants/oak/pins_arduino.h b/variants/oak/pins_arduino.h
new file mode 100644
index 000000000..757a5c523
--- /dev/null
+++ b/variants/oak/pins_arduino.h
@@ -0,0 +1,55 @@
+/*
+ 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
+
+static const uint8_t P0 = 2;
+static const uint8_t P1 = 5;
+static const uint8_t P2 = 0;
+static const uint8_t P3 = 3;
+static const uint8_t P4 = 1;
+static const uint8_t P5 = 4;
+static const uint8_t P6 = 15;
+static const uint8_t P7 = 13;
+static const uint8_t P8 = 12;
+static const uint8_t P9 = 14;
+static const uint8_t P10 = 16;
+static const uint8_t P11 = 17;
+
+static const uint8_t SDA = 2;
+static const uint8_t SCL = 0;
+
+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 LED_BUILTIN = 5;
+
+static const uint8_t A0 = 17;
+
+#endif /* Pins_Arduino_h */