diff --git a/boards.txt b/boards.txt index 5b6bf365b0..37fcbe69d1 100644 --- a/boards.txt +++ b/boards.txt @@ -4245,3 +4245,224 @@ wifiduino.menu.UploadSpeed.460800.upload.speed=460800 wifiduino.menu.UploadSpeed.512000.windows=512000 wifiduino.menu.UploadSpeed.512000.upload.speed=512000 +############################################################## +wifi_slot.name=Amperka WiFi Slot +wifi_slot.build.board=AMPERKA_WIFI_SLOT +wifi_slot.build.variant=wifi_slot +wifi_slot.upload.tool=esptool +wifi_slot.upload.maximum_data_size=81920 +wifi_slot.upload.wait_for_upload_port=true +wifi_slot.upload.erase_cmd= +wifi_slot.serial.disableDTR=true +wifi_slot.serial.disableRTS=true +wifi_slot.build.mcu=esp8266 +wifi_slot.build.core=esp8266 +wifi_slot.build.spiffs_pagesize=256 +wifi_slot.build.debug_port= +wifi_slot.build.debug_level= +wifi_slot.menu.CpuFrequency.80=80 MHz +wifi_slot.menu.CpuFrequency.80.build.f_cpu=80000000L +wifi_slot.menu.CpuFrequency.160=160 MHz +wifi_slot.menu.CpuFrequency.160.build.f_cpu=160000000L +wifi_slot.menu.VTable.flash=Flash +wifi_slot.menu.VTable.flash.build.vtable_flags=-DVTABLES_IN_FLASH +wifi_slot.menu.VTable.heap=Heap +wifi_slot.menu.VTable.heap.build.vtable_flags=-DVTABLES_IN_DRAM +wifi_slot.menu.VTable.iram=IRAM +wifi_slot.menu.VTable.iram.build.vtable_flags=-DVTABLES_IN_IRAM +wifi_slot.upload.resetmethod=nodemcu +wifi_slot.menu.FlashFreq.40=40MHz +wifi_slot.menu.FlashFreq.40.build.flash_freq=40 +wifi_slot.menu.FlashFreq.80=80MHz +wifi_slot.menu.FlashFreq.80.build.flash_freq=80 +wifi_slot.menu.FlashMode.qio=QIO +wifi_slot.menu.FlashMode.qio.build.flash_mode=qio +wifi_slot.menu.FlashMode.qout=QOUT +wifi_slot.menu.FlashMode.qout.build.flash_mode=qout +wifi_slot.menu.FlashMode.dio=DIO +wifi_slot.menu.FlashMode.dio.build.flash_mode=dio +wifi_slot.menu.FlashMode.dout=DOUT +wifi_slot.menu.FlashMode.dout.build.flash_mode=dout +wifi_slot.menu.FlashSize.1M0=1M (no SPIFFS) +wifi_slot.menu.FlashSize.1M0.build.flash_size=1M +wifi_slot.menu.FlashSize.1M0.build.flash_size_bytes=0x100000 +wifi_slot.menu.FlashSize.1M0.build.flash_ld=eagle.flash.1m0.ld +wifi_slot.menu.FlashSize.1M0.build.spiffs_pagesize=256 +wifi_slot.menu.FlashSize.1M0.upload.maximum_size=1023984 +wifi_slot.menu.FlashSize.1M0.build.rfcal_addr=0xFC000 +wifi_slot.menu.FlashSize.1M64=1M (64K SPIFFS) +wifi_slot.menu.FlashSize.1M64.build.flash_size=1M +wifi_slot.menu.FlashSize.1M64.build.flash_size_bytes=0x100000 +wifi_slot.menu.FlashSize.1M64.build.flash_ld=eagle.flash.1m64.ld +wifi_slot.menu.FlashSize.1M64.build.spiffs_pagesize=256 +wifi_slot.menu.FlashSize.1M64.upload.maximum_size=958448 +wifi_slot.menu.FlashSize.1M64.build.rfcal_addr=0xFC000 +wifi_slot.menu.FlashSize.1M64.build.spiffs_start=0xEB000 +wifi_slot.menu.FlashSize.1M64.build.spiffs_end=0xFB000 +wifi_slot.menu.FlashSize.1M64.build.spiffs_blocksize=4096 +wifi_slot.menu.FlashSize.1M128=1M (128K SPIFFS) +wifi_slot.menu.FlashSize.1M128.build.flash_size=1M +wifi_slot.menu.FlashSize.1M128.build.flash_size_bytes=0x100000 +wifi_slot.menu.FlashSize.1M128.build.flash_ld=eagle.flash.1m128.ld +wifi_slot.menu.FlashSize.1M128.build.spiffs_pagesize=256 +wifi_slot.menu.FlashSize.1M128.upload.maximum_size=892912 +wifi_slot.menu.FlashSize.1M128.build.rfcal_addr=0xFC000 +wifi_slot.menu.FlashSize.1M128.build.spiffs_start=0xDB000 +wifi_slot.menu.FlashSize.1M128.build.spiffs_end=0xFB000 +wifi_slot.menu.FlashSize.1M128.build.spiffs_blocksize=4096 +wifi_slot.menu.FlashSize.1M144=1M (144K SPIFFS) +wifi_slot.menu.FlashSize.1M144.build.flash_size=1M +wifi_slot.menu.FlashSize.1M144.build.flash_size_bytes=0x100000 +wifi_slot.menu.FlashSize.1M144.build.flash_ld=eagle.flash.1m144.ld +wifi_slot.menu.FlashSize.1M144.build.spiffs_pagesize=256 +wifi_slot.menu.FlashSize.1M144.upload.maximum_size=876528 +wifi_slot.menu.FlashSize.1M144.build.rfcal_addr=0xFC000 +wifi_slot.menu.FlashSize.1M144.build.spiffs_start=0xD7000 +wifi_slot.menu.FlashSize.1M144.build.spiffs_end=0xFB000 +wifi_slot.menu.FlashSize.1M144.build.spiffs_blocksize=4096 +wifi_slot.menu.FlashSize.1M160=1M (160K SPIFFS) +wifi_slot.menu.FlashSize.1M160.build.flash_size=1M +wifi_slot.menu.FlashSize.1M160.build.flash_size_bytes=0x100000 +wifi_slot.menu.FlashSize.1M160.build.flash_ld=eagle.flash.1m160.ld +wifi_slot.menu.FlashSize.1M160.build.spiffs_pagesize=256 +wifi_slot.menu.FlashSize.1M160.upload.maximum_size=860144 +wifi_slot.menu.FlashSize.1M160.build.rfcal_addr=0xFC000 +wifi_slot.menu.FlashSize.1M160.build.spiffs_start=0xD3000 +wifi_slot.menu.FlashSize.1M160.build.spiffs_end=0xFB000 +wifi_slot.menu.FlashSize.1M160.build.spiffs_blocksize=4096 +wifi_slot.menu.FlashSize.1M192=1M (192K SPIFFS) +wifi_slot.menu.FlashSize.1M192.build.flash_size=1M +wifi_slot.menu.FlashSize.1M192.build.flash_size_bytes=0x100000 +wifi_slot.menu.FlashSize.1M192.build.flash_ld=eagle.flash.1m192.ld +wifi_slot.menu.FlashSize.1M192.build.spiffs_pagesize=256 +wifi_slot.menu.FlashSize.1M192.upload.maximum_size=827376 +wifi_slot.menu.FlashSize.1M192.build.rfcal_addr=0xFC000 +wifi_slot.menu.FlashSize.1M192.build.spiffs_start=0xCB000 +wifi_slot.menu.FlashSize.1M192.build.spiffs_end=0xFB000 +wifi_slot.menu.FlashSize.1M192.build.spiffs_blocksize=4096 +wifi_slot.menu.FlashSize.1M256=1M (256K SPIFFS) +wifi_slot.menu.FlashSize.1M256.build.flash_size=1M +wifi_slot.menu.FlashSize.1M256.build.flash_size_bytes=0x100000 +wifi_slot.menu.FlashSize.1M256.build.flash_ld=eagle.flash.1m256.ld +wifi_slot.menu.FlashSize.1M256.build.spiffs_pagesize=256 +wifi_slot.menu.FlashSize.1M256.upload.maximum_size=761840 +wifi_slot.menu.FlashSize.1M256.build.rfcal_addr=0xFC000 +wifi_slot.menu.FlashSize.1M256.build.spiffs_start=0xBB000 +wifi_slot.menu.FlashSize.1M256.build.spiffs_end=0xFB000 +wifi_slot.menu.FlashSize.1M256.build.spiffs_blocksize=4096 +wifi_slot.menu.FlashSize.1M512=1M (512K SPIFFS) +wifi_slot.menu.FlashSize.1M512.build.flash_size=1M +wifi_slot.menu.FlashSize.1M512.build.flash_size_bytes=0x100000 +wifi_slot.menu.FlashSize.1M512.build.flash_ld=eagle.flash.1m512.ld +wifi_slot.menu.FlashSize.1M512.build.spiffs_pagesize=256 +wifi_slot.menu.FlashSize.1M512.upload.maximum_size=499696 +wifi_slot.menu.FlashSize.1M512.build.rfcal_addr=0xFC000 +wifi_slot.menu.FlashSize.1M512.build.spiffs_start=0x7B000 +wifi_slot.menu.FlashSize.1M512.build.spiffs_end=0xFB000 +wifi_slot.menu.FlashSize.1M512.build.spiffs_blocksize=8192 +wifi_slot.menu.FlashSize.2M=2M (1M SPIFFS) +wifi_slot.menu.FlashSize.2M.build.flash_size=2M +wifi_slot.menu.FlashSize.2M.build.flash_size_bytes=0x200000 +wifi_slot.menu.FlashSize.2M.build.flash_ld=eagle.flash.2m.ld +wifi_slot.menu.FlashSize.2M.build.spiffs_pagesize=256 +wifi_slot.menu.FlashSize.2M.upload.maximum_size=1044464 +wifi_slot.menu.FlashSize.2M.build.rfcal_addr=0x1FC000 +wifi_slot.menu.FlashSize.2M.build.spiffs_start=0x100000 +wifi_slot.menu.FlashSize.2M.build.spiffs_end=0x1FB000 +wifi_slot.menu.FlashSize.2M.build.spiffs_blocksize=8192 +wifi_slot.menu.LwIPVariant.v2mss536=v2 Lower Memory +wifi_slot.menu.LwIPVariant.v2mss536.build.lwip_include=lwip2/include +wifi_slot.menu.LwIPVariant.v2mss536.build.lwip_lib=-llwip2 +wifi_slot.menu.LwIPVariant.v2mss536.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 +wifi_slot.menu.LwIPVariant.v2mss1460=v2 Higher Bandwidth +wifi_slot.menu.LwIPVariant.v2mss1460.build.lwip_include=lwip2/include +wifi_slot.menu.LwIPVariant.v2mss1460.build.lwip_lib=-llwip2_1460 +wifi_slot.menu.LwIPVariant.v2mss1460.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 +wifi_slot.menu.LwIPVariant.Prebuilt=v1.4 Higher Bandwidth +wifi_slot.menu.LwIPVariant.Prebuilt.build.lwip_lib=-llwip_gcc +wifi_slot.menu.LwIPVariant.Prebuilt.build.lwip_flags=-DLWIP_OPEN_SRC +wifi_slot.menu.LwIPVariant.OpenSource=v1.4 Compile from source +wifi_slot.menu.LwIPVariant.OpenSource.build.lwip_lib=-llwip_src +wifi_slot.menu.LwIPVariant.OpenSource.build.lwip_flags=-DLWIP_OPEN_SRC +wifi_slot.menu.LwIPVariant.OpenSource.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-" +wifi_slot.menu.Debug.Disabled=Disabled +wifi_slot.menu.Debug.Disabled.build.debug_port= +wifi_slot.menu.Debug.Serial=Serial +wifi_slot.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +wifi_slot.menu.Debug.Serial1=Serial1 +wifi_slot.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 +wifi_slot.menu.DebugLevel.None____=None +wifi_slot.menu.DebugLevel.None____.build.debug_level= +wifi_slot.menu.DebugLevel.SSL=SSL +wifi_slot.menu.DebugLevel.SSL.build.debug_level= -DDEBUG_ESP_SSL +wifi_slot.menu.DebugLevel.TLS_MEM=TLS_MEM +wifi_slot.menu.DebugLevel.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM +wifi_slot.menu.DebugLevel.HTTP_CLIENT=HTTP_CLIENT +wifi_slot.menu.DebugLevel.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT +wifi_slot.menu.DebugLevel.HTTP_SERVER=HTTP_SERVER +wifi_slot.menu.DebugLevel.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER +wifi_slot.menu.DebugLevel.SSLTLS_MEM=SSL+TLS_MEM +wifi_slot.menu.DebugLevel.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM +wifi_slot.menu.DebugLevel.SSLHTTP_CLIENT=SSL+HTTP_CLIENT +wifi_slot.menu.DebugLevel.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT +wifi_slot.menu.DebugLevel.SSLHTTP_SERVER=SSL+HTTP_SERVER +wifi_slot.menu.DebugLevel.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER +wifi_slot.menu.DebugLevel.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT +wifi_slot.menu.DebugLevel.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +wifi_slot.menu.DebugLevel.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER +wifi_slot.menu.DebugLevel.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +wifi_slot.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER +wifi_slot.menu.DebugLevel.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +wifi_slot.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT +wifi_slot.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT +wifi_slot.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER +wifi_slot.menu.DebugLevel.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER +wifi_slot.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER +wifi_slot.menu.DebugLevel.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +wifi_slot.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER +wifi_slot.menu.DebugLevel.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +wifi_slot.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER +wifi_slot.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER +wifi_slot.menu.DebugLevel.CORE=CORE +wifi_slot.menu.DebugLevel.CORE.build.debug_level= -DDEBUG_ESP_CORE +wifi_slot.menu.DebugLevel.WIFI=WIFI +wifi_slot.menu.DebugLevel.WIFI.build.debug_level= -DDEBUG_ESP_WIFI +wifi_slot.menu.DebugLevel.HTTP_UPDATE=HTTP_UPDATE +wifi_slot.menu.DebugLevel.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE +wifi_slot.menu.DebugLevel.UPDATER=UPDATER +wifi_slot.menu.DebugLevel.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER +wifi_slot.menu.DebugLevel.OTA=OTA +wifi_slot.menu.DebugLevel.OTA.build.debug_level= -DDEBUG_ESP_OTA +wifi_slot.menu.DebugLevel.OOM=OOM +wifi_slot.menu.DebugLevel.OOM.build.debug_level= -DDEBUG_ESP_OOM +wifi_slot.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +wifi_slot.menu.DebugLevel.COREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM +wifi_slot.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM +wifi_slot.menu.DebugLevel.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM +wifi_slot.menu.DebugLevel.NoAssert-NDEBUG=NoAssert-NDEBUG +wifi_slot.menu.DebugLevel.NoAssert-NDEBUG.build.debug_level= -DNDEBUG +wifi_slot.menu.FlashErase.none=Only Sketch +wifi_slot.menu.FlashErase.none.upload.erase_cmd= +wifi_slot.menu.FlashErase.sdk=Sketch + WiFi Settings +wifi_slot.menu.FlashErase.sdk.upload.erase_cmd=-ca "{build.rfcal_addr}" -cz 0x4000 +wifi_slot.menu.FlashErase.all=All Flash Contents +wifi_slot.menu.FlashErase.all.upload.erase_cmd=-ca 0x0 -cz "{build.flash_size_bytes}" +wifi_slot.menu.UploadSpeed.115200=115200 +wifi_slot.menu.UploadSpeed.115200.upload.speed=115200 +wifi_slot.menu.UploadSpeed.9600=9600 +wifi_slot.menu.UploadSpeed.9600.upload.speed=9600 +wifi_slot.menu.UploadSpeed.57600=57600 +wifi_slot.menu.UploadSpeed.57600.upload.speed=57600 +wifi_slot.menu.UploadSpeed.230400.linux=230400 +wifi_slot.menu.UploadSpeed.230400.macosx=230400 +wifi_slot.menu.UploadSpeed.230400.upload.speed=230400 +wifi_slot.menu.UploadSpeed.256000.windows=256000 +wifi_slot.menu.UploadSpeed.256000.upload.speed=256000 +wifi_slot.menu.UploadSpeed.460800.linux=460800 +wifi_slot.menu.UploadSpeed.460800.macosx=460800 +wifi_slot.menu.UploadSpeed.460800.upload.speed=460800 +wifi_slot.menu.UploadSpeed.512000.windows=512000 +wifi_slot.menu.UploadSpeed.512000.upload.speed=512000 +wifi_slot.menu.UploadSpeed.921600=921600 +wifi_slot.menu.UploadSpeed.921600.upload.speed=921600 + diff --git a/doc/boards.rst b/doc/boards.rst index 8b49832a13..d83e032b4e 100644 --- a/doc/boards.rst +++ b/doc/boards.rst @@ -389,3 +389,8 @@ WiFiduino Product page: https://wifiduino.com/esp8266 +Amperka WiFi Slot +----------------- + +Product page: http://wiki.amperka.ru/wifi-slot + diff --git a/package/package_esp8266com_index.template.json b/package/package_esp8266com_index.template.json index 21d5a33b1f..e746e7960e 100644 --- a/package/package_esp8266com_index.template.json +++ b/package/package_esp8266com_index.template.json @@ -94,6 +94,9 @@ }, { "name": "WiFiduino" + }, + { + "name": "Amperka WiFi Slot" } ], "toolsDependencies": [ diff --git a/tools/boards.txt.py b/tools/boards.txt.py index 483f7b2052..f55fd6cbbf 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -728,6 +728,20 @@ 'serial': '921', 'desc': [ 'Product page: https://wifiduino.com/esp8266' ], }), + ( 'wifi_slot', { + 'name': 'Amperka WiFi Slot', + 'opts': { + '.build.board': 'AMPERKA_WIFI_SLOT', + '.build.variant': 'wifi_slot', + }, + 'macro': [ + 'resetmethod_nodemcu', + 'flashfreq_menu', + 'flashmode_menu', + '1M', '2M', + ], + 'desc': [ 'Product page: http://wiki.amperka.ru/wifi-slot' ], + }), ]) ################################################################ diff --git a/variants/wifi_slot/analogRead.cpp b/variants/wifi_slot/analogRead.cpp new file mode 100644 index 0000000000..f2c1f3c7a2 --- /dev/null +++ b/variants/wifi_slot/analogRead.cpp @@ -0,0 +1,50 @@ +#include "wiring_private.h" +#include "pins_arduino.h" + +extern "C" int __analogRead(uint8_t pin); + +extern "C" int analogRead(uint8_t pin) { + + static uint8_t currentAin = 0; + + delay(0); + if (pin >= ANALOG_INPUT_HARDWARE) { + return 0; + } + uint8_t ain = analog_pin_to_mux_channel[pin]; + if (ain == (uint8_t)NOT_A_PIN) { + return 0; + } + if (currentAin > ain) { + for (int i = 0; i < (8 - currentAin); ++i) + { + digitalWrite(ANALOG_INPUT_SELECTOR_PIN, HIGH); + digitalWrite(ANALOG_INPUT_SELECTOR_PIN, LOW); + digitalWrite(ANALOG_INPUT_SELECTOR_PIN, HIGH); + digitalWrite(ANALOG_INPUT_SELECTOR_PIN, LOW); + } + currentAin = 0; + } + for (int i = currentAin; i < ain; ++i) + { + digitalWrite(ANALOG_INPUT_SELECTOR_PIN, HIGH); + digitalWrite(ANALOG_INPUT_SELECTOR_PIN, LOW); + digitalWrite(ANALOG_INPUT_SELECTOR_PIN, HIGH); + digitalWrite(ANALOG_INPUT_SELECTOR_PIN, LOW); + } + currentAin = ain; + return __analogRead(ANALOG_INPUT_HARDWARE); +} + +void initVariant() { + // we need to reset analog mux. When ANALOG_INPUT_SELECTOR_PIN is high + // on ~0.4 ms, mux channel is becoming 0. + // Mux channel is swithing on back \_ front. But there is no switching + // - rc reset is still high when ANALOG_INPUT_SELECTOR_PIN became low + uint16_t resetDelay = 777; + pinMode(ANALOG_INPUT_SELECTOR_PIN, OUTPUT); + digitalWrite(ANALOG_INPUT_SELECTOR_PIN, HIGH); + delayMicroseconds(resetDelay); + digitalWrite(ANALOG_INPUT_SELECTOR_PIN, LOW); + delayMicroseconds(resetDelay); +} diff --git a/variants/wifi_slot/pins_arduino.h b/variants/wifi_slot/pins_arduino.h new file mode 100644 index 0000000000..a3fbfaaa4e --- /dev/null +++ b/variants/wifi_slot/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 WIFIO board by Ivan Grokhotkov, 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 : 24.11.2017 Vasily Basalaev + Definition for WiFi Slot + Amperka LLC + http://amperka.ru + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#define PIN_WIRE_SDA (2) +#define PIN_WIRE_SCL (0) + +static const uint8_t SDA = PIN_WIRE_SDA; +static const uint8_t SCL = PIN_WIRE_SCL; + +#define PIN_A0 (3) +#define PIN_A1 (1) +#define PIN_A2 (16) +#define PIN_A3 (13) +#define PIN_A4 (5) +#define PIN_A5 (14) +#define PIN_A6 (4) +#define PIN_A7 (12) + +// A0 will be assigned in "../generic/common.h" +// static const uint8_t A0 = PIN_A0; +static const uint8_t A1 = PIN_A1; +static const uint8_t A2 = PIN_A2; +static const uint8_t A3 = PIN_A3; +static const uint8_t A4 = PIN_A4; +static const uint8_t A5 = PIN_A5; +static const uint8_t A6 = PIN_A6; +static const uint8_t A7 = PIN_A7; + +#define LED_BUILTIN 2 + +static const uint8_t ANALOG_INPUT_SELECTOR_PIN = 15; +static const uint8_t ANALOG_INPUT_HARDWARE = 17; + +static const uint8_t analog_pin_to_mux_channel[] = { + (uint8_t)NOT_A_PIN // 0 + , 1 // 1 + , (uint8_t)NOT_A_PIN // 2 + , 0 // 3 + , 6 // 4 + , 4 // 5 + , (uint8_t)NOT_A_PIN // 6 + , (uint8_t)NOT_A_PIN // 7 + , (uint8_t)NOT_A_PIN // 8 + , (uint8_t)NOT_A_PIN // 9 + , (uint8_t)NOT_A_PIN // 10 + , (uint8_t)NOT_A_PIN // 11 + , 7 // 12 + , 3 // 13 + , 5 // 14 + , (uint8_t)NOT_A_PIN // 15 + , 2 // 16 +}; + +#include "../generic/common.h" + +#endif /* Pins_Arduino_h */