SpacehuhnTech / esp8266_deauther

Affordable WiFi hacking platform for testing and learning
http://deauther.com
Other
13.34k stars 2.57k forks source link

Lolin NodeMCU v3 (CH340) No Display, Resets (SLOVED) #1498

Closed captclearleft closed 2 years ago

captclearleft commented 2 years ago

I will continue to look for and post a solution.

I am having the same exact issues described as resets constantly in the Testing section of the tutorial. Following the "Setup Display & Buttons" exactly. (NodeMCU with Display Example I2c) I am using the LOLIN NodeMCU v3 with the ch340 chip (I have 3 of them, and have tried 2 of em). I tried changing the code for the SDA and SCK pins from 5, 4 to 4,5 to D1,D2. I tried swapping those wires.
I tried uncommenting these lines in the A_config.h...

define NODEMCU

   #define DISPLAY_EXAMPLE_I2C

I tried different power sources. I tried just flashing it with the Node MCU Flasher and the .bin file.

I don't have any custom anything going on, just set up exactly as described in the tutorial.

The regular NodeMCU code without display works flawlessly on both boards.
When I run the OLED display code from https://github.com/squix78/esp8266-oled-ssd1306 The display works fine. No resets, and the display shows everything just fine.

I am guessing its something to do with the way this board and the ch340 chip exists.
Maybe ill try the resistors on D4 and D8.

Any one else use this board, or have a solution? Thanks so much.

_Originally posted by @captclearleft in https://github.com/SpacehuhnTech/esp8266_deauther/issues/1452#issuecomment-990300764_

welcome[bot] commented 2 years ago

Congrats on opening your first issue on this repository! 🎉
This is a automated message to help you avoid common pitfalls when asking for help online.
👉 Be sure to:
đŸ‡Ŧ🇧 Communicate in English so everybody can understand you
📖 Have a look at the Wiki and README for information
🔍 Search for similar issues (open and closed)
✍ī¸ Provide enough information to understand, recreate and help out with your problem
ℹī¸ Let us know if you find a solution and please share it with us
📕 Close the issue when your problem has been solved

captclearleft commented 2 years ago

Just another update. Tried adding the resistors (D4 - High, D8 - Low, and I even tried Pulling Reset High (10k)) Same results - No display, constant resets...

wdt reset load 0x4010f000, len 3460, room 16 tail 4 chksum 0xcc load 0x3fff20b8, len 40, room 4 tail 4 chksum 0xc9 csum 0xc9 v000cb3d0 ~ld

Reloaded the SSD1306SimpleDemo.ino sketch. Screen still works fine. I still think its something screwy with this ch340 chipped LOLIN NodeMCU.

I did try my Adafruit feather esp8266 - That didnt work either. I may have not hooked that up correctly as there are only the two SDA and SCK (4,5) on that board and thats what I used...

I updated all my libraries for Arduino, still no luck. Any ideas would be appreciated. Thanks

captclearleft commented 2 years ago

Update. I am able to run the Version 3 code no problem (No Display, No Resets).
I ordered the NodeMCU With the CP2102 usb chip (Im guessing thats the fix.) I might try today to change the SDA SCK pins to other pins to see if that works.

captclearleft commented 2 years ago

Tried changing SDA to 13 and SCK to 12. That did not work - Same results.
Tried changing the pin 5 to pin 4 and 4 to 5 in the code. tried switching the wires back and forth as well...
No luck. Also tried changing the display type to the SH1106 (even though I know its a SSD1306 (as it works with the https://github.com/squix78/esp8266-oled-ssd1306 code)... Hmmmmm. Has to be this board with the CH340.... Must be a mismatch on one of the pins.... Not sure yet.

captclearleft commented 2 years ago

Ok, I tried adding capacitors to the power line and the 3.3v line. No luck

captclearleft commented 2 years ago

I think we got this solved with the help of @strolll395 (https://github.com/strolll395)

https://github.com/wh1ter0z/esp8266_deauther/blob/v1/esp8266_deauther/A_config.h

Ok, So I copied the above A_config.h into the Arduino IDE replacing the original A_config.h code. Used "NodeMCU" As the "Board" and the "Deauther Config" under tools. And it worked.
So I took the 2.6.1 original A-cinfig.h file and stripped out all the stuff I would not be using. Took out most of the #if statements. It looks like there is something in the #if #elseif statements when using the "Deauther Config= Deisplay Example IIC" mode that causes an issue. Using just the file with all the #if #elseif statements removed and then just defining the display worked. Thanks https://github.com/wh1ter0z/esp8266_deauther

Here is my new 2.6.1 A-congig.h file

` / This software is licensed under the MIT License: https://github.com/spacehuhntech/esp8266_deauther /

pragma once

define ENABLE_DEBUG

define DEBUG_PORT Serial

define DEBUG_BAUD 115200

define DEFAULT_ESP8266

// ===== DISPLAY ===== // // #define SH1106_I2C

define SSD1306_I2C

define I2C_ADDR 0x3C

define I2C_SDA 5

define I2C_SCL 4

// #define FLIP_DIPLAY true

// ===== BUTTONS ===== //

define BUTTON_UP 14

define BUTTON_DOWN 12

define BUTTON_A 13

// ===== LED ===== //

define LED_NEOPIXEL_GRB

// #define LED_NEOPIXEL_RGB

define LED_NUM 1

define LED_NEOPIXEL_PIN 9

define LED_MODE_BRIGHTNESS 10

if defined(DEFAULT_ESP8266) || defined(NODEMCU) || defined(WEMOS_D1_MINI) || defined(DSTIKE_USB_DEAUTHER) || defined(DSTIKE_NODEMCU_07) || defined(DSTIKE_DEAUTHER_V1) || defined(DSTIKE_DEAUTHER_V2) || defined(DSTIKE_DEAUTHER_V3)

// ===== LED ===== //

define LED_DIGITAL

define LED_PIN_R 16 // NodeMCU on-board LED

define LED_PIN_B 2 // ESP-12 LED

endif / if defined(DEFAULT_ESP8266) || defined(NODEMCU) || defined(WEMOS_D1_MINI) || defined(DSTIKE_USB_DEAUTHER) || defined(DSTIKE_NODEMCU_07) || defined(DSTIKE_DEAUTHER) || defined(DSTIKE_DEAUTHER_V1) || defined(DSTIKE_DEAUTHER_V2) || defined(DSTIKE_DEAUTHER_V3) /

// ============================== //

// ========= FALLBACK ========= //

// ===== AUTOSAVE ===== //

ifndef AUTOSAVE_ENABLED

define AUTOSAVE_ENABLED true

endif / ifndef ATTACK_ALL_CH /

ifndef AUTOSAVE_TIME

define AUTOSAVE_TIME 60

endif / ifndef ATTACK_ALL_CH /

// ===== ATTACK ===== //

ifndef ATTACK_ALL_CH

define ATTACK_ALL_CH false

endif / ifndef ATTACK_ALL_CH /

ifndef RANDOM_TX

define RANDOM_TX false

endif / ifndef RANDOM_TX /

ifndef ATTACK_TIMEOUT

define ATTACK_TIMEOUT 600

endif / ifndef ATTACK_TIMEOUT /

ifndef DEAUTHS_PER_TARGET

define DEAUTHS_PER_TARGET 25

endif / ifndef DEAUTHS_PER_TARGET /

ifndef DEAUTH_REASON

define DEAUTH_REASON 1

endif / ifndef DEAUTH_REASON /

ifndef BEACON_INTERVAL_100MS

define BEACON_INTERVAL_100MS true

endif / ifndef BEACON_INTERVAL_100MS /

ifndef PROBE_FRAMES_PER_SSID

define PROBE_FRAMES_PER_SSID 1

endif / ifndef PROBE_FRAMES_PER_SSID /

// ===== SNIFFER ===== //

ifndef CH_TIME

define CH_TIME 200

endif / ifndef CH_TIME /

ifndef MIN_DEAUTH_FRAMES

define MIN_DEAUTH_FRAMES 3

endif / ifndef MIN_DEAUTH_FRAMES /

// ===== ACCESS POINT ===== //

ifndef AP_SSID

define AP_SSID "pwned"

endif / ifndef AP_SSID /

ifndef AP_PASSWD

define AP_PASSWD "deauther"

endif / ifndef AP_PASSWD /

ifndef AP_HIDDEN

define AP_HIDDEN false

endif / ifndef AP_HIDDEN /

ifndef AP_IP_ADDR

define AP_IP_ADDR { 192, 168, 4, 1 }

endif / ifndef AP_IP_ADDR /

// ===== WEB INTERFACE ===== //

ifndef WEB_ENABLED

define WEB_ENABLED true

endif / ifndef WEB_ENABLED /

ifndef WEB_CAPTIVE_PORTAL

define WEB_CAPTIVE_PORTAL false

endif / ifndef WEB_CAPTIVE_PORTAL /

ifndef WEB_USE_SPIFFS

define WEB_USE_SPIFFS false

endif / ifndef WEB_USE_SPIFFS /

ifndef DEFAULT_LANG

define DEFAULT_LANG "en"

endif / ifndef DEFAULT_LANG /

// ===== CLI ===== //

ifndef CLI_ENABLED

define CLI_ENABLED true

endif / ifndef CLI_ENABLED /

ifndef CLI_ECHO

define CLI_ECHO true

endif / ifndef CLI_ECHO /

// =============== LED =============== //

if defined(LED_NEOPIXEL_RGB) || defined(LED_NEOPIXEL_GRB)

define LED_NEOPIXEL

endif / if defined(LED_NEOPIXEL_RGB) || defined(LED_NEOPIXEL_GRB) /

if !defined(LED_DIGITAL) && !defined(LED_RGB) && !defined(LED_NEOPIXEL) && !defined(LED_MY92) && !defined(LED_DOTSTAR)

define LED_DIGITAL

define USE_LED false

else // if !defined(LED_DIGITAL) && !defined(LED_RGB) && !defined(LED_NEOPIXEL) && !defined(LED_MY92) && !defined(LED_DOTSTAR)

define USE_LED true

endif // if !defined(LED_DIGITAL) && !defined(LED_RGB) && !defined(LED_NEOPIXEL) && !defined(LED_MY92) && !defined(LED_DOTSTAR)

ifndef LED_PIN_R

define LED_PIN_R 255

endif / ifndef LED_PIN_R /

ifndef LED_PIN_G

define LED_PIN_G 255

endif / ifndef LED_PIN_G /

ifndef LED_PIN_B

define LED_PIN_B 255

endif / ifndef LED_PIN_B /

ifndef LED_ANODE

define LED_ANODE false

endif / ifndef LED_ANODE /

ifndef LED_MODE_OFF

define LED_MODE_OFF 0, 0, 0

endif / ifndef LED_MODE_OFF /

ifndef LED_MODE_SCAN

define LED_MODE_SCAN 0, 0, 255

endif / ifndef LED_MODE_SCAN /

ifndef LED_MODE_ATTACK

define LED_MODE_ATTACK 255, 0, 0

endif / ifndef LED_MODE_ATTACK /

ifndef LED_MODE_IDLE

define LED_MODE_IDLE 0, 255, 0

endif / ifndef LED_MODE_IDLE /

ifndef LED_MODE_BRIGHTNESS

define LED_MODE_BRIGHTNESS 10

endif / ifndef LED_MODE_BRIGHTNESS /

// =============== DISPLAY =============== //

ifndef DISPLAY_TIMEOUT

define DISPLAY_TIMEOUT 600

endif / ifndef DISPLAY_TIMEOUT /

ifndef DISPLAY_TEXT

define DISPLAY_TEXT ""

endif / ifndef DISPLAY_TEXT /

ifndef FLIP_DIPLAY

define FLIP_DIPLAY false

endif / ifndef FLIP_DIPLAY /

if !defined(SSD1306_I2C) && !defined(SSD1306_SPI) && !defined(SH1106_I2C) && !defined(SH1106_SPI)

define SSD1306_I2C

define USE_DISPLAY false

else / if !defined(SSD1306_I2C) && !defined(SSD1306_SPI) && !defined(SH1106_I2C) && !defined(SH1106_SPI) /

define USE_DISPLAY true

endif / if !defined(SSD1306_I2C) && !defined(SSD1306_SPI) && !defined(SH1106_I2C) && !defined(SH1106_SPI) /

ifndef I2C_ADDR

define I2C_ADDR 0x3C

endif / ifndef I2C_ADDR /

ifndef I2C_SDA

define I2C_SDA 5

endif / ifndef I2C_SDA /

ifndef I2C_SCL

define I2C_SCL 4

endif / ifndef I2C_SCL /

ifndef SPI_RES

define SPI_RES 5

endif / ifndef SPI_RES /

ifndef SPI_DC

define SPI_DC 4

endif / ifndef SPI_DC /

ifndef SPI_CS

define SPI_CS 15

endif / ifndef SPI_CS /

// =============== BUTTONS =============== //

ifndef BUTTON_UP

define BUTTON_UP 255

endif // ifndef BUTTON_UP

ifndef BUTTON_DOWN

define BUTTON_DOWN 255

endif // ifndef BUTTON_DOWN

ifndef BUTTON_A

define BUTTON_A 255

endif // ifndef BUTTON_A

ifndef BUTTON_B

define BUTTON_B 255

endif // ifndef BUTTON_B

// ===== Reset ====== //

ifndef RESET_BUTTON

if BUTTON_UP != 0 && BUTTON_DOWN != 0 && BUTTON_A != 0 && BUTTON_B != 0

#define RESET_BUTTON 0

else // if BUTTON_UP != 0 && BUTTON_DOWN != 0 && BUTTON_A != 0 && BUTTON_B != 0

#define RESET_BUTTON 255

endif // if BUTTON_UP != 0 && BUTTON_DOWN != 0 && BUTTON_A != 0 && BUTTON_B != 0

endif // ifndef RESET_BUTTON

// ===== Web ===== //

ifndef WEB_IP_ADDR

define WEB_IP_ADDR (192, 168, 4, 1)

endif // ifndef WEB_IP_ADDR

ifndef WEB_URL

define WEB_URL "deauth.me"

endif // ifndef WEB_URL

// ======== CONSTANTS ========== // // Do not change these values unless you know what you're doing!

define DEAUTHER_VERSION "2.6.1"

define DEAUTHER_VERSION_MAJOR 2

define DEAUTHER_VERSION_MINOR 6

define DEAUTHER_VERSION_REVISION 1

define EEPROM_SIZE 4095

define BOOT_COUNTER_ADDR 1

define SETTINGS_ADDR 100

// ======== AVAILABLE SETTINGS ========== //

/* // ===== ATTACK ===== //

define ATTACK_ALL_CH false

define RANDOM_TX false

define ATTACK_TIMEOUT 600

define DEAUTHS_PER_TARGET 25

define DEAUTH_REASON 1

define BEACON_INTERVAL_100MS true

define PROBE_FRAMES_PER_SSID 1

// ====== SNIFFER ====== //

define CH_TIME 200

define MIN_DEAUTH_FRAMES 3

// ===== ACCESS POINT ===== //

define AP_SSID "pwned"

define AP_PASSWD "deauther"

define AP_HIDDEN false

define AP_IP_ADDR {192, 168, 4, 1}

// ===== WEB INTERFACE ===== //

define WEB_ENABLED true

define WEB_CAPTIVE_PORTAL false

define WEB_USE_SPIFFS false

define DEFAULT_LANG "en"

// ===== CLI ===== //

define CLI_ENABLED true

define CLI_ECHO true

// ===== LED ===== //

define USE_LED true

define LED_DIGITAL

define LED_RGB

define LED_NEOPIXEL

define LED_MY92

define LED_ANODE false

define LED_PIN_R 16

define LED_PIN_G 255

define LED_PIN_B 2

define LED_NEOPIXEL_RGB

define LED_NEOPIXEL_GRB

define LED_NUM 1

define LED_NEOPIXEL_PIN 255

define LED_MODE_OFF 0,0,0

define LED_MODE_SCAN 0,0,255

define LED_MODE_ATTACK 255,0,0

define LED_MODE_IDLE 0,255,0

define LED_MODE_BRIGHTNESS 10

define LED_NUM 1

define LED_MY92_DATA 4

define LED_MY92_CLK 5

define LED_MY92_CH_R 0

define LED_MY92_CH_G 1

define LED_MY92_CH_B 2

define LED_MY92_CH_BRIGHTNESS 3

define LED_MY92_MODEL MY92XX_MODEL_MY9291

define LED_MY92_MODEL MY92XX_MODEL_MY9231

define LED_DOTSTAR

define LED_NUM 1

define LED_DOTSTAR_CLK 12

define LED_DOTSTAR_DATA 13

// ===== DISPLAY ===== //

define USE_DISPLAY false

define DISPLAY_TIMEOUT 600

define FLIP_DIPLAY false

define SSD1306_I2C

define SSD1306_SPI

define SH1106_I2C

define SH1106_SPI

define I2C_ADDR 0x3C

define I2C_SDA 5

define I2C_SCL 4

define SPI_RES 5

define SPI_DC 4

define SPI_CS 15

// ===== BUTTONS ===== //

define BUTTON_UP 255

define BUTTON_DOWN 255

define BUTTON_A 255

define BUTTON_B 255

// ===== Reset ====== //

define RESET_BUTTON 5

// ===== Web ===== //

define WEB_IP_ADDR (192, 168, 4, 1)

define WEB_URL "deauth.me"

*/

// ========== ERROR CHECKS ========== //

if LED_MODE_BRIGHTNESS == 0

error LED_MODE_BRIGHTNESS must not be zero!

endif / if LED_MODE_BRIGHTNESS == 0 /

`

captclearleft commented 2 years ago

I actually think the rests were being caused by the LED settings In the default A_config file these are commented out:

define LED_DIGITAL

define LED_PIN_R 16 // NodeMCU on-board LED

define LED_PIN_B 2 // ESP-12 LED

I found that this being commented out was causing resets: #define LED_DIGITAL I now have it uncommented.

clisterX commented 1 year ago

I was giving up after hours of trial and error and then in a last attempt I copied your code and it's working don't know why, don't know how. Thank you very much!