Skip to content

Commit

Permalink
add support for wifi-link-12 with swapped uart pins
Browse files Browse the repository at this point in the history
  • Loading branch information
tve committed Aug 2, 2015
1 parent fa96241 commit 5fc65bd
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 11 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ ESPBAUD ?= 460800
# --------------- chipset configuration ---------------

# Pick your flash size: "512KB" or "4MB"
FLASH_SIZE ?= 512KB
FLASH_SIZE ?= 4MB

ifeq ("$(FLASH_SIZE)","512KB")
# Winbond 25Q40 512KB flash, typ for esp-01 thru esp-11
Expand Down
13 changes: 11 additions & 2 deletions serial/serbridge.c
Original file line number Diff line number Diff line change
Expand Up @@ -457,9 +457,18 @@ static void ICACHE_FLASH_ATTR serbridgeConnectCb(void *arg) {
void ICACHE_FLASH_ATTR serbridgeInitPins() {
mcu_reset_pin = flashConfig.reset_pin;
mcu_isp_pin = flashConfig.isp_pin;
os_printf("Serbridge pins: reset=%d isp=%d\n", mcu_reset_pin, mcu_isp_pin);
os_printf("Serbridge pins: reset=%d isp=%d swap=%d\n",
mcu_reset_pin, mcu_isp_pin, flashConfig.swap_uart);

if (flashConfig.swap_uart) system_uart_swap(); else system_uart_de_swap();
if (flashConfig.swap_uart) {
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, 4);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, 4);
system_uart_swap();
} else {
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, 0);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, 0);
system_uart_de_swap();
}

// set both pins to 1 before turning them on so we don't cause a reset
if (mcu_isp_pin >= 0) GPIO_OUTPUT_SET(mcu_isp_pin, 1);
Expand Down
20 changes: 12 additions & 8 deletions user/cgipins.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,13 @@ static const int num_map_func = sizeof(map_func)/sizeof(char*);

// Cgi to return choice of pin assignments
int ICACHE_FLASH_ATTR cgiPinsGet(HttpdConnData *connData) {
char buff[1024];
int len;
if (connData->conn==NULL) return HTTPD_CGI_DONE; // Connection aborted

if (connData->conn==NULL) {
return HTTPD_CGI_DONE; // Connection aborted
}
char buff[2048];
int len;

// figure out current mapping
int curr = 99;
int curr = 0;
for (int i=0; i<num_map_names; i++) {
int8_t *map = map_asn[i];
if (map[0] == flashConfig.reset_pin && map[1] == flashConfig.isp_pin &&
Expand All @@ -42,6 +40,7 @@ int ICACHE_FLASH_ATTR cgiPinsGet(HttpdConnData *connData) {
}
}

// print mapping
len = os_sprintf(buff, "{ \"curr\":\"%s\", \"map\": [ ", map_names[curr]);
for (int i=0; i<num_map_names; i++) {
if (i != 0) buff[len++] = ',';
Expand All @@ -52,8 +51,12 @@ int ICACHE_FLASH_ATTR cgiPinsGet(HttpdConnData *connData) {
len += os_sprintf(buff+len, ", \"descr\":\"");
for (int f=0; f<num_map_func; f++) {
int8_t p = map_asn[i][f];
if (p >= 0) len += os_sprintf(buff+len, " %s:gpio%d", map_func[f], p);
else len += os_sprintf(buff+len, " %s:n/a", map_func[f]);
if (f == 4)
len += os_sprintf(buff+len, " %s:%s", map_func[f], p?"yes":"no");
else if (p >= 0)
len += os_sprintf(buff+len, " %s:gpio%d", map_func[f], p);
else
len += os_sprintf(buff+len, " %s:n/a", map_func[f]);
}
len += os_sprintf(buff+len, "\" }");
}
Expand Down Expand Up @@ -89,6 +92,7 @@ int ICACHE_FLASH_ATTR cgiPinsSet(HttpdConnData *connData) {
flashConfig.isp_pin = map[1];
flashConfig.conn_led_pin = map[2];
flashConfig.ser_led_pin = map[3];
flashConfig.swap_uart = map[4];

serbridgeInitPins();
serledInit();
Expand Down

0 comments on commit 5fc65bd

Please sign in to comment.