jeelabs / esp-link

esp8266 wifi-serial bridge, outbound TCP, and arduino/AVR/LPC/NXP programmer
Other
2.82k stars 720 forks source link

Pin change from GPIO15 to other #408

Open kuzmanzs opened 5 years ago

kuzmanzs commented 5 years ago

Hi,

I am using it on Wemos mini in TX/RX swapped mode. Unfortunately it is sensitive the state of the GPIO15 pin during the boot. It is connected via TTL level shifter therefore it has HIGH state during the boot. I can pull down with resistor bit it is inconvenient.

Where can I change the GPIO15 port definition?

kuzmanzs commented 5 years ago

Nobody knows it where pins assignement stored?

I think it should be change here somehow.. but didn't find out how

serbridge.c

void ICACHE_FLASH_ATTR
serbridgeInitPins()
{
  mcu_reset_pin = flashConfig.reset_pin;
  mcu_isp_pin = flashConfig.isp_pin;
#ifdef SERBR_DBG
  os_printf("Serbridge pins: reset=%d isp=%d swap=%d\n",
      mcu_reset_pin, mcu_isp_pin, flashConfig.swap_uart);
#endif

  if (flashConfig.swap_uart) {
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, 4); // RX
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, 4); // TX
    PIN_PULLUP_DIS(PERIPHS_IO_MUX_MTDO_U);
    if (flashConfig.rx_pullup) PIN_PULLUP_EN(PERIPHS_IO_MUX_MTCK_U);
    else                       PIN_PULLUP_DIS(PERIPHS_IO_MUX_MTCK_U);
    system_uart_swap();
  } else {
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, 0);
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, 0);
    PIN_PULLUP_DIS(PERIPHS_IO_MUX_U0TXD_U);
    if (flashConfig.rx_pullup) PIN_PULLUP_EN(PERIPHS_IO_MUX_U0RXD_U);
    else                       PIN_PULLUP_DIS(PERIPHS_IO_MUX_U0RXD_U);
    system_uart_de_swap();
  }
uzi18 commented 5 years ago

I'm not sure it is possible txd2/rxd2 are on gpio13/15 You can add some hardware/gate to block external signal on low level.

fuadhayat commented 5 years ago

same here D8 prevent the nodemcu to start up.... any idea hoe to fix it???