diff --git a/boards.txt b/boards.txt index 248622f74b..64c518e535 100644 --- a/boards.txt +++ b/boards.txt @@ -5,6 +5,7 @@ menu.FlashMode=Flash Mode menu.FlashFreq=Flash Frequency menu.UploadTool=Upload Using menu.ResetMethod=Reset Method +menu.ESPModule=Module ############################################################## generic.name=Generic ESP8266 Module @@ -95,6 +96,30 @@ generic.menu.FlashSize.1M256.build.spiffs_end=0xFB000 generic.menu.FlashSize.1M256.build.spiffs_blocksize=4096 generic.menu.FlashSize.1M256.upload.maximum_size=761840 +generic.menu.FlashSize.1M192=1M (192K SPIFFS) +generic.menu.FlashSize.1M192.build.flash_size=1M +generic.menu.FlashSize.1M192.build.flash_ld=eagle.flash.1m192.ld +generic.menu.FlashSize.1M192.build.spiffs_start=0xCB000 +generic.menu.FlashSize.1M192.build.spiffs_end=0xFB000 +generic.menu.FlashSize.1M192.build.spiffs_blocksize=4096 +generic.menu.FlashSize.1M192.upload.maximum_size=827376 + +generic.menu.FlashSize.1M160=1M (160K SPIFFS) +generic.menu.FlashSize.1M160.build.flash_size=1M +generic.menu.FlashSize.1M160.build.flash_ld=eagle.flash.1m160.ld +generic.menu.FlashSize.1M160.build.spiffs_start=0xD3000 +generic.menu.FlashSize.1M160.build.spiffs_end=0xFB000 +generic.menu.FlashSize.1M160.build.spiffs_blocksize=4096 +generic.menu.FlashSize.1M160.upload.maximum_size=860144 + +generic.menu.FlashSize.1M144=1M (144K SPIFFS) +generic.menu.FlashSize.1M144.build.flash_size=1M +generic.menu.FlashSize.1M144.build.flash_ld=eagle.flash.1m144.ld +generic.menu.FlashSize.1M144.build.spiffs_start=0xD7000 +generic.menu.FlashSize.1M144.build.spiffs_end=0xFB000 +generic.menu.FlashSize.1M144.build.spiffs_blocksize=4096 +generic.menu.FlashSize.1M144.upload.maximum_size=876528 + generic.menu.FlashSize.1M128=1M (128K SPIFFS) generic.menu.FlashSize.1M128.build.flash_size=1M generic.menu.FlashSize.1M128.build.flash_ld=eagle.flash.1m128.ld @@ -771,3 +796,126 @@ espino.menu.ResetMethod.ck=ck espino.menu.ResetMethod.ck.upload.resetmethod=ck espino.menu.ResetMethod.nodemcu=nodemcu espino.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu + +############################################################## +wifinfo.name=WifInfo + +wifinfo.upload.tool=esptool +wifinfo.upload.speed=115200 +wifinfo.upload.resetmethod=nodemcu +wifinfo.upload.maximum_size=434160 +wifinfo.upload.maximum_data_size=81920 +wifinfo.upload.wait_for_upload_port=true +wifinfo.serial.disableDTR=true +wifinfo.serial.disableRTS=true + +wifinfo.build.mcu=esp8266 +wifinfo.build.f_cpu=80000000L +wifinfo.build.core=esp8266 +wifinfo.build.variant=wifinfo +wifinfo.build.flash_mode=qio +wifinfo.build.spiffs_pagesize=256 + +#wifinfo.menu.ESPModule.ESP07512=ESP07 (1M/512K SPIFFS) +#wifinfo.menu.ESPModule.ESP07512.build.board=ESP8266_ESP07 +#wifinfo.menu.ESPModule.ESP07512.build.flash_size=1M +#wifinfo.menu.ESPModule.ESP07512.build.flash_ld=eagle.flash.1m512.ld +#wifinfo.menu.ESPModule.ESP07512.build.spiffs_start=0x7B000 +#wifinfo.menu.ESPModule.ESP07512.build.spiffs_end=0xFB000 +#wifinfo.menu.ESPModule.ESP07512.build.spiffs_blocksize=8192 +#wifinfo.menu.ESPModule.ESP07512.upload.maximum_size=499696 + +#wifinfo.menu.ESPModule.ESP07256=ESP07 (1M/256K SPIFFS) +#wifinfo.menu.ESPModule.ESP07256.build.board=ESP8266_ESP07 +#wifinfo.menu.ESPModule.ESP07256.build.flash_size=1M +#wifinfo.menu.ESPModule.ESP07256.build.flash_ld=eagle.flash.1m256.ld +#wifinfo.menu.ESPModule.ESP07256.build.spiffs_start=0xBB000 +#wifinfo.menu.ESPModule.ESP07256.build.spiffs_end=0xFB000 +##wifinfo.menu.ESPModule.ESP07256.build.spiffs_blocksize=4096 +#wifinfo.menu.ESPModule.ESP07256.upload.maximum_size=761840 + +wifinfo.menu.ESPModule.ESP07192=ESP07 (1M/192K SPIFFS) +wifinfo.menu.ESPModule.ESP07192.build.board=ESP8266_ESP07 +wifinfo.menu.ESPModule.ESP07192.build.flash_size=1M +wifinfo.menu.ESPModule.ESP07192.build.flash_ld=eagle.flash.1m192.ld +wifinfo.menu.ESPModule.ESP07192.build.spiffs_start=0xCB000 +wifinfo.menu.ESPModule.ESP07192.build.spiffs_end=0xFB000 +wifinfo.menu.ESPModule.ESP07192.build.spiffs_blocksize=4096 +wifinfo.menu.ESPModule.ESP07192.upload.maximum_size=827376 + +#wifinfo.menu.ESPModule.ESP07160=ESP07 (1M/160K SPIFFS) +#wifinfo.menu.ESPModule.ESP07160.build.board=ESP8266_ESP07 +#wifinfo.menu.ESPModule.ESP07160.build.flash_size=1M +#wifinfo.menu.ESPModule.ESP07160.build.flash_ld=eagle.flash.1m160.ld +#wifinfo.menu.ESPModule.ESP07160.build.spiffs_start=0xD3000 +#wifinfo.menu.ESPModule.ESP07160.build.spiffs_end=0xFB000 +#wifinfo.menu.ESPModule.ESP07160.build.spiffs_blocksize=4096 +#wifinfo.menu.ESPModule.ESP07160.upload.maximum_size=860144 +# +#wifinfo.menu.ESPModule.ESP07144=ESP07 (1M/144K SPIFFS) +#wifinfo.menu.ESPModule.ESP07144.build.board=ESP8266_ESP07 +#wifinfo.menu.ESPModule.ESP07144.build.flash_size=1M +#wifinfo.menu.ESPModule.ESP07144.build.flash_ld=eagle.flash.1m144.ld +#wifinfo.menu.ESPModule.ESP07144.build.spiffs_start=0xD7000 +#wifinfo.menu.ESPModule.ESP07144.build.spiffs_end=0xFB000 +#wifinfo.menu.ESPModule.ESP07144.build.spiffs_blocksize=4096 +#wifinfo.menu.ESPModule.ESP07144.upload.maximum_size=876528 +# +#wifinfo.menu.ESPModule.ESP07=ESP07 (1M/64K SPIFFS) +#wifinfo.menu.ESPModule.ESP07.build.board=ESP8266_ESP07 +#wifinfo.menu.ESPModule.ESP07.build.flash_size=1M +#wifinfo.menu.ESPModule.ESP07.build.flash_ld=eagle.flash.1m64.ld +#wifinfo.menu.ESPModule.ESP07.build.spiffs_start=0xEB000 +#wifinfo.menu.ESPModule.ESP07.build.spiffs_end=0xFB000 +#wifinfo.menu.ESPModule.ESP07.build.spiffs_blocksize=4096 +#wifinfo.menu.ESPModule.ESP07.upload.maximum_size=958448 + +wifinfo.menu.ESPModule.ESP12=ESP12 (4M/1M SPIFFS) +wifinfo.menu.ESPModule.ESP12.build.board=ESP8266_ESP12 +wifinfo.menu.ESPModule.ESP12.build.flash_size=4M +wifinfo.menu.ESPModule.ESP12.build.flash_ld=eagle.flash.4m1m.ld +wifinfo.menu.ESPModule.ESP12.build.spiffs_start=0x300000 +wifinfo.menu.ESPModule.ESP12.build.spiffs_end=0x3FB000 +wifinfo.menu.ESPModule.ESP12.build.spiffs_blocksize=8192 +wifinfo.menu.ESPModule.ESP12.build.spiffs_pagesize=256 +wifinfo.menu.ESPModule.ESP12.upload.maximum_size=1044464 + +wifinfo.menu.UploadTool.esptool=Serial +wifinfo.menu.UploadTool.esptool.upload.tool=esptool +wifinfo.menu.UploadTool.esptool.upload.verbose=-vv +wifinfo.menu.UploadTool.espota=OTA +wifinfo.menu.UploadTool.espota.upload.tool=espota + +wifinfo.menu.CpuFrequency.80=80 MHz +wifinfo.menu.CpuFrequency.80.build.f_cpu=80000000L +wifinfo.menu.CpuFrequency.160=160 MHz +wifinfo.menu.CpuFrequency.160.build.f_cpu=160000000L + +wifinfo.menu.FlashFreq.40=40MHz +wifinfo.menu.FlashFreq.40.build.flash_freq=40 +wifinfo.menu.FlashFreq.80=80MHz +wifinfo.menu.FlashFreq.80.build.flash_freq=80 + +wifinfo.menu.FlashMode.dio=DIO +wifinfo.menu.FlashMode.dio.build.flash_mode=dio +wifinfo.menu.FlashMode.qio=QIO +wifinfo.menu.FlashMode.qio.build.flash_mode=qio + +wifinfo.menu.UploadSpeed.115200=115200 +wifinfo.menu.UploadSpeed.115200.upload.speed=115200 +wifinfo.menu.UploadSpeed.9600=9600 +wifinfo.menu.UploadSpeed.9600.upload.speed=9600 +wifinfo.menu.UploadSpeed.57600=57600 +wifinfo.menu.UploadSpeed.57600.upload.speed=57600 +wifinfo.menu.UploadSpeed.256000.windows=256000 +wifinfo.menu.UploadSpeed.256000.upload.speed=256000 +wifinfo.menu.UploadSpeed.230400.linux=230400 +wifinfo.menu.UploadSpeed.230400.macosx=230400 +wifinfo.menu.UploadSpeed.230400.upload.speed=230400 +wifinfo.menu.UploadSpeed.460800.linux=460800 +wifinfo.menu.UploadSpeed.460800.macosx=460800 +wifinfo.menu.UploadSpeed.460800.upload.speed=460800 +wifinfo.menu.UploadSpeed.512000.windows=512000 +wifinfo.menu.UploadSpeed.512000.upload.speed=512000 +wifinfo.menu.UploadSpeed.921600=921600 +wifinfo.menu.UploadSpeed.921600.upload.speed=921600 diff --git a/doc/boards.md b/doc/boards.md index 578ea319db..6d2e811b2a 100644 --- a/doc/boards.md +++ b/doc/boards.md @@ -12,6 +12,7 @@ title: Supported Hardware * [SparkFun ESP8266 Thing](#sparkfun-esp8266-thing) * [SweetPea ESP\-210](#sweetpea-esp-210) * [ESPino](#espino) + * [WifInfo](#WifInfo) * [Generic ESP8266 modules](#generic-esp8266-modules) * [Serial Adapter](#serial-adapter) * [Minimal Hardware Setup for Bootloading and Usage](#minimal-hardware-setup-for-bootloading-and-usage) @@ -100,6 +101,12 @@ For more information about the hardware, pinout diagram and programming procedur Product page: http://www.espino.io/en +## WifInfo + +WifInfo integrates the ESP-12 or ESP-07+Ext antenna module with a 3.3v regulator and the hardware to be able to measure French telemetry issue from ERDF powering meter serial output. It has a USB connector for powering, an RGB WS2812 Led, 4 pins I2C connector to fit OLED or sensor, and two buttons + FTDI connector and auto reset feature. + +For more information, please see WifInfo related [blog](http://hallard.me/category/wifinfo/) entries, [github](https://github.com/hallard/WifInfo) and [community](https://community.hallard.me/category/16/wifinfo) forum. + ## Generic ESP8266 modules These modules come in different form factors and pinouts. See the page at ESP8266 community wiki for more info: diff --git a/package/package_esp8266com_index.template.json b/package/package_esp8266com_index.template.json index d070d48094..eaa364e777 100644 --- a/package/package_esp8266com_index.template.json +++ b/package/package_esp8266com_index.template.json @@ -51,6 +51,9 @@ }, { "name": "ESPino" + }, + { + "name": "WifInfo" } ], "toolsDependencies": [ diff --git a/tools/sdk/ld/eagle.flash.1m144.ld b/tools/sdk/ld/eagle.flash.1m144.ld new file mode 100644 index 0000000000..32c3d645ce --- /dev/null +++ b/tools/sdk/ld/eagle.flash.1m144.ld @@ -0,0 +1,19 @@ +/* Flash Split for 1M chips */ +/* sketch 855KB */ +/* spiffs 144KB */ +/* eeprom 20KB */ + +MEMORY +{ + dport0_0_seg : org = 0x3FF00000, len = 0x10 + dram0_0_seg : org = 0x3FFE8000, len = 0x14000 + iram1_0_seg : org = 0x40100000, len = 0x8000 + irom0_0_seg : org = 0x40201010, len = 0xd5ff0 +} + +PROVIDE ( _SPIFFS_start = 0x402D7000 ); +PROVIDE ( _SPIFFS_end = 0x402FB000 ); +PROVIDE ( _SPIFFS_page = 0x100 ); +PROVIDE ( _SPIFFS_block = 0x1000 ); + +INCLUDE "../ld/eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m160.ld b/tools/sdk/ld/eagle.flash.1m160.ld new file mode 100644 index 0000000000..89e7897f16 --- /dev/null +++ b/tools/sdk/ld/eagle.flash.1m160.ld @@ -0,0 +1,19 @@ +/* Flash Split for 1M chips */ +/* sketch 839KB */ +/* spiffs 160KB */ +/* eeprom 20KB */ + +MEMORY +{ + dport0_0_seg : org = 0x3FF00000, len = 0x10 + dram0_0_seg : org = 0x3FFE8000, len = 0x14000 + iram1_0_seg : org = 0x40100000, len = 0x8000 + irom0_0_seg : org = 0x40201010, len = 0xd1ff0 +} + +PROVIDE ( _SPIFFS_start = 0x402D3000 ); +PROVIDE ( _SPIFFS_end = 0x402FB000 ); +PROVIDE ( _SPIFFS_page = 0x100 ); +PROVIDE ( _SPIFFS_block = 0x1000 ); + +INCLUDE "../ld/eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.1m192.ld b/tools/sdk/ld/eagle.flash.1m192.ld new file mode 100644 index 0000000000..cf21286a93 --- /dev/null +++ b/tools/sdk/ld/eagle.flash.1m192.ld @@ -0,0 +1,19 @@ +/* Flash Split for 1M chips */ +/* sketch 807KB */ +/* spiffs 192KB */ +/* eeprom 20KB */ + +MEMORY +{ + dport0_0_seg : org = 0x3FF00000, len = 0x10 + dram0_0_seg : org = 0x3FFE8000, len = 0x14000 + iram1_0_seg : org = 0x40100000, len = 0x8000 + irom0_0_seg : org = 0x40201010, len = 0xc9ff0 +} + +PROVIDE ( _SPIFFS_start = 0x402CB000 ); +PROVIDE ( _SPIFFS_end = 0x402FB000 ); +PROVIDE ( _SPIFFS_page = 0x100 ); +PROVIDE ( _SPIFFS_block = 0x1000 ); + +INCLUDE "../ld/eagle.app.v6.common.ld" diff --git a/variants/wifinfo/pins_arduino.h b/variants/wifinfo/pins_arduino.h new file mode 100644 index 0000000000..f4000865cf --- /dev/null +++ b/variants/wifinfo/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 + + Changed : 20 Nov 2015 Charles-Henri Hallard + Definition for WifInfo boards + see https://github.com/hallard/LibTeleinfo/tree/master/examples/ESP8266_WifInfo + see https://hallard.me/wifinfo/ + + $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 = 12; + +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; + +// 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 Serial1 +#define SERIAL_PORT_USBVIRTUAL Serial +#define SERIAL_PORT_HARDWARE Serial +#define SERIAL_PORT_HARDWARE_OPEN Serial + +#endif /* Pins_Arduino_h */