diff --git a/.gitignore b/.gitignore index da4ee67..6070fe8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -**/build/* \ No newline at end of file +**/build/* +**/secret.h \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 562ed59..e0c38fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,8 +9,9 @@ add_executable(bmc ) target_link_libraries(bmc pico_stdlib - pico_cyw43_arch_none + pico_cyw43_arch_lwip_threadsafe_background ) -pico_enable_stdio_usb(bmc 1) -pico_enable_stdio_uart(bmc 0) -pico_add_extra_outputs(bmc) \ No newline at end of file +pico_enable_stdio_usb(bmc 1) +pico_enable_stdio_uart(bmc 0) +pico_add_extra_outputs(bmc) +target_include_directories(bmc PRIVATE ${CMAKE_CURRENT_LIST_DIR}) \ No newline at end of file diff --git a/bmc.c b/bmc.c index e0cfdca..cbd608a 100644 --- a/bmc.c +++ b/bmc.c @@ -1,19 +1,25 @@ #include #include "pico/stdlib.h" #include "pico/cyw43_arch.h" +#include "secret.h" int main() { stdio_init_all(); if (cyw43_arch_init()) { - printf("Wi-Fi init failed"); + printf("Wi-Fi init failed\n"); return -1; } + printf("Wi-Fi init succeeded\n"); + cyw43_arch_enable_sta_mode(); + if (cyw43_arch_wifi_connect_timeout_ms(ssid, pass, CYW43_AUTH_WPA2_AES_PSK, 10000)) { + printf("WiFi failed to connect\n"); + return -1; + } + printf("WiFi connected\n"); while (true) { cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 1); - printf("LED on"); sleep_ms(1000); cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 0); - printf("LED off"); sleep_ms(1000); } } \ No newline at end of file diff --git a/lwipopts.h b/lwipopts.h new file mode 100644 index 0000000..217cb13 --- /dev/null +++ b/lwipopts.h @@ -0,0 +1,90 @@ +#ifndef _LWIPOPTS_EXAMPLE_COMMONH_H +#define _LWIPOPTS_EXAMPLE_COMMONH_H + + +// Common settings used in most of the pico_w examples +// (see https://www.nongnu.org/lwip/2_1_x/group__lwip__opts.html for details) + +// allow override in some examples +#ifndef NO_SYS +#define NO_SYS 1 +#endif +// allow override in some examples +#ifndef LWIP_SOCKET +#define LWIP_SOCKET 0 +#endif +#if PICO_CYW43_ARCH_POLL +#define MEM_LIBC_MALLOC 1 +#else +// MEM_LIBC_MALLOC is incompatible with non polling versions +#define MEM_LIBC_MALLOC 0 +#endif +#define MEM_ALIGNMENT 4 +#define MEM_SIZE 4000 +#define MEMP_NUM_TCP_SEG 32 +#define MEMP_NUM_ARP_QUEUE 10 +#define PBUF_POOL_SIZE 24 +#define LWIP_ARP 1 +#define LWIP_ETHERNET 1 +#define LWIP_ICMP 1 +#define LWIP_RAW 1 +#define TCP_WND (8 * TCP_MSS) +#define TCP_MSS 1460 +#define TCP_SND_BUF (8 * TCP_MSS) +#define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1)) / (TCP_MSS)) +#define LWIP_NETIF_STATUS_CALLBACK 1 +#define LWIP_NETIF_LINK_CALLBACK 1 +#define LWIP_NETIF_HOSTNAME 1 +#define LWIP_NETCONN 0 +#define MEM_STATS 0 +#define SYS_STATS 0 +#define MEMP_STATS 0 +#define LINK_STATS 0 +// #define ETH_PAD_SIZE 2 +#define LWIP_CHKSUM_ALGORITHM 3 +#define LWIP_DHCP 1 +#define LWIP_IPV4 1 +#define LWIP_TCP 1 +#define LWIP_UDP 1 +#define LWIP_DNS 1 +#define LWIP_TCP_KEEPALIVE 1 +#define LWIP_NETIF_TX_SINGLE_PBUF 1 +#define DHCP_DOES_ARP_CHECK 0 +#define LWIP_DHCP_DOES_ACD_CHECK 0 + +#ifndef NDEBUG +#define LWIP_DEBUG 1 +#define LWIP_STATS 1 +#define LWIP_STATS_DISPLAY 1 +#endif + +#define ETHARP_DEBUG LWIP_DBG_OFF +#define NETIF_DEBUG LWIP_DBG_OFF +#define PBUF_DEBUG LWIP_DBG_OFF +#define API_LIB_DEBUG LWIP_DBG_OFF +#define API_MSG_DEBUG LWIP_DBG_OFF +#define SOCKETS_DEBUG LWIP_DBG_OFF +#define ICMP_DEBUG LWIP_DBG_OFF +#define INET_DEBUG LWIP_DBG_OFF +#define IP_DEBUG LWIP_DBG_OFF +#define IP_REASS_DEBUG LWIP_DBG_OFF +#define RAW_DEBUG LWIP_DBG_OFF +#define MEM_DEBUG LWIP_DBG_OFF +#define MEMP_DEBUG LWIP_DBG_OFF +#define SYS_DEBUG LWIP_DBG_OFF +#define TCP_DEBUG LWIP_DBG_OFF +#define TCP_INPUT_DEBUG LWIP_DBG_OFF +#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF +#define TCP_RTO_DEBUG LWIP_DBG_OFF +#define TCP_CWND_DEBUG LWIP_DBG_OFF +#define TCP_WND_DEBUG LWIP_DBG_OFF +#define TCP_FR_DEBUG LWIP_DBG_OFF +#define TCP_QLEN_DEBUG LWIP_DBG_OFF +#define TCP_RST_DEBUG LWIP_DBG_OFF +#define UDP_DEBUG LWIP_DBG_OFF +#define TCPIP_DEBUG LWIP_DBG_OFF +#define PPP_DEBUG LWIP_DBG_OFF +#define SLIP_DEBUG LWIP_DBG_OFF +#define DHCP_DEBUG LWIP_DBG_OFF + +#endif /* __LWIPOPTS_H__ */ diff --git a/template.secret.h b/template.secret.h new file mode 100644 index 0000000..78b37a7 --- /dev/null +++ b/template.secret.h @@ -0,0 +1,7 @@ +#ifndef SECRET_H +#define SECRET_H + +char ssid[] = "wifi ssid"; +char pass[] = "wifi pass"; + +#endif \ No newline at end of file