logo elektroda
logo elektroda
X
logo elektroda

[Solved] How to configure OLED 0.66 I2C with esp8266_deauther on WeMos D1 mini?

Ch4ist0 6324 34
Best answers

How can I make esp8266_deauther work with a 64x48 0.66" SSD1306 I2C OLED on a WeMos D1 mini?

The Deauther sources are written for a 128x64 OLED, so a 64x48 0.66" SSD1306 will be cut off unless you modify the UI code; there is no simple A_config.h-only fix. [#17993036][#17991974] Install the OLED libraries in the Arduino IDE (not inside A_config.h); the project uses the ThingPulse `esp8266-oled-ssd1306`/`SSD1306Wire` library and its dependencies, and the display type and pins are selected in `A_config.h`. [#17989329][#17991197] If you want to try the 0.66", set the display init to `SSD1306Wire display = SSD1306Wire(0x3c, 5, 4, GEOMETRY_64_48);` and then edit the display layout constants in `DisplayUI.h`/`DisplayUI.cpp` to fit the smaller screen. [#17991974][#17993036] You will likely also need smaller fonts and shorter menu labels because the original UI text is sized for 128x64. [#17993036] If you want a plug-and-play solution, the practical fix is to use the standard 0.96" 128x64 SSD1306 I2C OLED that Deauther supports by default. [#17993349]
Generated by the language model.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
  • #31 17993121
    Ch4ist0
    Level 8  
    Posts: 21
    Rate: 8
    kaczakat wrote:
    Maybe being a hacker is not your calling?


    Maybe it isn't but I haven't mentioned it once so I don't know where such questions come from....

    PS. I've never been a hacker and I probably won't be because computer science is just my hobby and education, if I were I wouldn't be cluttering up such posts....

    And as for my question, I know the subject of deauth attack very well and I can do it perfectly myself in unix system, I use WeMos D1 module not to bring my laptop....
  • ADVERTISEMENT
  • Helpful post
    #32 17993349
    rb401
    Level 39  
    Posts: 3000
    Help: 750
    Rate: 980
    Ch4ist0 wrote:
    I use the WeMos D1 module to avoid lugging my laptop around with me....
    .

    If you need this as a useful tool and you don't have much strength or time to fight with the software (where you would have to accept some compromises to the original anyway), some simple but effective solution to your problem came to my mind.

    I took this display from D1 and a normal common OLED I2C 128x64 0.96" and noticed that the width of these boards is identical.
    What's more, I took the "universal" for D1 and it turned out that here not only the width agrees but also the position of the leads on the OLED board with the free points on the universal (exact as if they were made for this application):


    How to configure OLED 0.66 I2C with esp8266_deauther on WeMos D1 mini? .


    Here so "dry" put together:


    How to configure OLED 0.66 I2C with esp8266_deauther on WeMos D1 mini? .

    and here in comparison with the OLED for the D1.
    Only the pins on the sides are covered from above, but this does not harm anything, because no board is inserted above the display:

    How to configure OLED 0.66 I2C with esp8266_deauther on WeMos D1 mini? .

    That is, from such a universal and a simple Arduino OLED module, you can literally make, in 15 minutes, a decent display module for D1 128x64 by soldering this module to this board and stress-free pulling the four wires from the bottom to the corresponding D1 bus signals (+3,3V, GND, SDA and SCL). And fit within the dimensions of D1.
    Upload a ready-made 128x64 OLED and you're done.

    Alternatively, you can solder a goldpin socket (e.g. a piece like the one supplied with the universal) to the universal to simply insert the display into it. This will, however, increase the board gap to somewhere around 10.6mm compared to 2.6mm when soldered directly. If it doesn't make any difference, it is probably better to use this socket, especially as such sockets will be left over after the job is done if you buy a universal with a choice of connectors included:

    How to configure OLED 0.66 I2C with esp8266_deauther on WeMos D1 mini? .
  • ADVERTISEMENT
  • Helpful post
    #33 17993402
    Anonymous
    Level 1  
  • ADVERTISEMENT
  • #34 17993444
    kaczakat
    Level 34  
    Posts: 1748
    Help: 317
    Rate: 229
    khoam wrote:
    The advice of colleague @rb401 makes perfect sense. Use the kind of display envisaged in this project. Instead of playing "hacker", as one juggernaut here tried to describe you, don't try to make changes to the code by force. In a while a new version of the program will come out and you will again be wondering what you need to change in "your" version of the source code - this makes no sense if you do not want to actively participate (as a programmer) in the esp8266_deauther project.
    .
    I see you're drinking at me again, but I noticed this 10 posts ago:
    kaczakat wrote:
    You can add support for this geometry yourself, but there is no guarantee that it will work properly, the texts may be too long, the number of lines may look funny too.
    .
    But it's cool that an expert is proposing the same solution as me - juggler/amateur, just for what? Are you gaining posts? And what do you think the deauther project is for:
    How to configure OLED 0.66 I2C with esp8266_deauther on WeMos D1 mini? .
    Even if it's improvised attacks on your own network that's what playing "hacker" is all about.
    Helpful post? Buy me a coffee.
  • #35 17994645
    Ch4ist0
    Level 8  
    Posts: 21
    Rate: 8
    Hello, topic to be closed...

    I bought a larger display OLED 0,96" 128x64 SSD1306 I2C such as is dedicated by default for ESP8266 Deauther 2.1.0 .

    As colleagues above wrote it would be too cumbersome to rewrite the software for a 0.66" screen...It is possible but I chose the simpler way.

    Thanks to all for your participation and help :) .

Topic summary

✨ The discussion revolves around configuring a 0.66" OLED I2C display with the esp8266_deauther software on a WeMos D1 mini. The user encountered issues with display compatibility, as the software was designed for a 0.96" display, leading to incorrect rendering of information. Participants suggested using the U8G library and the Adafruit_SSD1306 library to support the 64x48 resolution of the OLED. The user was guided on how to install libraries, modify the A_config.h file, and compile the project. Ultimately, the user decided to switch to a 0.96" OLED display, which is natively supported by the software, to avoid the complexities of modifying the code for the smaller screen.
Generated by the language model.

FAQ

TL;DR: Using a 64 × 48 OLED gives 63 % fewer pixels than the 128 × 64 panel supported by Deauther; “the display is rigidly written for 128×64” [Elektroda, rb401, post #17993036] Fixing it means editing two library files or swapping to a 0.96" 128×64 screen.

Why it matters: A mismatched geometry wastes hours of troubleshooting and breaks on every firmware update.

Quick Facts

• Default Deauther OLED: 128 × 64, I²C address 0x3C [Elektroda, A_config.h, post #17988650] • 0.66" module: 64 × 48 SSD1306, same address 0x3C [Elektroda, Ch4ist0, post #17988805] • ThingPulse esp8266-oled-ssd1306 v4.0.0 supports only 128×64 & 128×32 geometries [Elektroda, kaczakat, post #17989415] • Frame-buffer size drops from 1024 B (128×64) to 384 B (64×48), saving 640 B RAM (62.5 %) [calc] • 0.96" 128×64 OLED price: approx. US $3–5 (“AliExpress search 2023”)

1. Why does the 0.66" OLED show cropped or garbled output with ESP8266 Deauther?

The firmware hard-codes 128 × 64 coordinates. A 64 × 48 panel therefore overflows both X and Y limits, so only part of each frame appears [Elektroda, rb401, post #17993036]

2. Which display drivers does Deauther 2.1.0 support out of the box?

A_config.h includes SSD1306Wire, SH1106Wire, SSD1306Spi and SH1106Spi; all assume 128 × 64 (or 128 × 32) resolution [Elektroda, A_config.h, post #17988650]

3. Can I make the 64 × 48 SSD1306 work without editing source code?

No. You must either patch the library to add GEOMETRY_64_48 and adjust DisplayUI dimensions, or replace the display [Elektroda, kaczakat, post #17989415]

4. How do I add 64 × 48 geometry to the ThingPulse library?

  1. Edit OLEDDisplay.h: add GEOMETRY_64_48.
  2. Edit OLEDDisplay.cpp: set width = 64, height = 48 wherever geometry is checked.
  3. Recompile Deauther [Elektroda, kaczakat, post #17989415]

5. Where are OLEDDisplay.h and OLEDDisplay.cpp located?

They sit inside your Arduino libraries folder: …/libraries/esp8266-oled-ssd1306-4.x.x/src/ [Elektroda, kaczakat, post #17991974]

6. What must change in A_config.h after adding new geometry?

Replace the display macro with:

define DEAUTHER_DISPLAY SSD1306Wire display = SSD1306Wire(0x3C, 5, 4, GEOMETRY_64_48); [Elektroda, kaczakat, post #17991974]

7. How do I compile Deauther and export a .bin file in Arduino IDE?

Select Board > "WEMOS D1 mini", choose the correct port, then Sketch > Export compiled Binary. A ready-to-flash .bin appears in the sketch folder [Elektroda, khoam, post #17988885]

8. I get “redefinition of void setup()” errors; what causes this?

Two .ino tabs were open (e.g., sample ssd1306_64x48 and esp8266_deauther). The IDE concatenates them, duplicating setup()/loop(). Close the extra tab and rebuild [Elektroda, khoam, post #17989081]

9. Which libraries must be installed before Deauther will compile?

Install: 1) esp8266-oled-ssd1306, 2) ArduinoJson v5, 3) LinkedList. No Adafruit SSD1306 is required unless you switch libraries [Elektroda, khoam, post #17989329]

10. Is there a hardware workaround instead of editing code?

Yes. Swap to a standard 0.96" 128 × 64 I²C OLED; it shares the D1 Mini footprint and pinout, eliminating software changes [Elektroda, rb401, post #17993349]

11. How big is the memory impact of adding 64 × 48 support?

The frame buffer shrinks by 640 B (1024 B → 384 B), freeing 1.5 % of ESP8266 RAM—a negligible gain [calc].

12. What is the risk of future updates breaking my patched code?

High. Upgrading esp8266-oled-ssd1306 or Deauther will overwrite your edits. You must re-merge changes manually after each update [experience note].

13. Edge case: What happens if multiple OLED libraries remain installed?

Arduino may include the wrong header, causing ‘BLACK redefined’ or similar compile errors [Elektroda, Ch4ist0, post #17989352] Keep only the chosen library to avoid conflicts.

14. Quick 3-step hardware swap to 0.96" 128×64 OLED

  1. Solder or socket a 0.96" 128×64 OLED onto the D1 Mini shield or protoboard.
  2. Wire VCC, GND, SDA (D2), SCL (D1).
  3. Flash stock Deauther 2.1.0; display works instantly [Elektroda, rb401, post #17993349] "Sometimes hardware is the simplest patch," notes rb401.
Generated by the language model.
ADVERTISEMENT