Status: Undetected (External Hardware + Kernel Read)
IMPORTANT: The offsets have to be always updated, you can find it here:
EDUCATIONAL PURPOSES ONLY. Playing like an idiot will result in account bans (VAC/Game Ban). Since the software is undetected, the only way to get banned is by playing like a psycho and shooting through smokes all the time. Manual gameplay review is the only real threat, so just play like a 'very good player' and don't tell your team you have a 'little' help."
- Microcontroller: ESP32-S3 (DevKitC or similar) running circuitpython.
- Display: ST7789 1.3" or 1.54" IPS LCD (240x240 resolution).
- Note: Code is configured for Version 1.1 displays.
- Connection: USB-C Data Cable (for serial communication).
- Wiring:
- CLK (SCL): GPIO 12
- MOSI (SDA): GPIO 11
- RES (Reset): GPIO 9
- DC (Data/Command): GPIO 8
- CS (Chip Select): GPIO 10
CS2-Hardware-Radar/
├── Driver/ # Kernel Driver (NXWire)
│ └── main.cpp # Driver Entry & Memory Operations
├── Client/ # User-Mode Application
│ ├── main.cpp # Logic to read memory & send to Serial
│ ├── client_dll.hpp # Generated Schema
│ └── offsets.hpp # Generated Offsets
└── Firmware/ # ESP32 CircuitPython Code
├── code.py # Rendering Logic
└── lib/
├── adafruit_display_text/ # Library to render text
└── adafruit_st7789.mpy # Library to render the graphs
The driver handles the MmCopyVirtualMemory calls to read game memory from the kernel level, bypassing user-mode anti-cheat hooks.
- Prerequisites:
- Visual Studio 2022 with Desktop development with C++.
- Windows Driver Kit (WDK) installed.
- Important: Ensure your WDK version matches your Windows version and Visual Studio configuration. You may need to adjust the driver project properties to target the correct Windows SDK version and Driver Development Kit version if you encounter compilation errors. Check your WDK installation and update accordingly.
- Build:
- Open the Driver project properties.
- Set configuration to Release / x64.
- Note: If you encounter errors related to Windows SDK or WDK version mismatch, you may need to change the target driver development kit version in the project properties to match your installed WDK version.
- Build the solution to generate
NXWire.sys.
- Loading:
- This step depends, I sign this driver with a leaked chinese certificate that I found long time ago, if you don't have one, or you just use kdmapper, load it with that and you will be fine.
- Install CircuitPython:
- Put your ESP32-S3 into bootloader mode.
- Flash the latest CircuitPython 9.x
.uf2for your specific board.
- Install Libraries:
- Download the Adafruit CircuitPython Bundle.
- Copy the following folders/files to the
libfolder on yourCIRCUITPYdrive:adafruit_display_text/adafruit_st7789.mpy
- Deploy Code:
- Copy the provided python script to the root of the drive and name it
code.py. - Config: If your screen colors are inverted or the screen is mirrored, adjust
ROTATIONor the initialization arguments incode.py.
- Copy the provided python script to the root of the drive and name it
- Update Offsets:
- CS2 updates frequently. You must generate new offsets using a tool like a2x/cs2-dumper, or download it on the page I put on the top.
- Place
client_dll.hppandoffsets.hppin the Client source folder.
- Build:
- Open the C++ Client project in Visual Studio.
- Set configuration to Release / x64.
- Build the executable.
- Connect the Hardware: Plug in the ESP32-S3 via USB. The screen should show:
"WAITING FOR PROGRAM..."
- Load the Driver:.
- Start CS2: Launch the game and wait until you are in a match.
- Run the Client:
- Run the compiled
NXConnect.exeas Administrator. - The client will automatically detect the COM port of your ESP32 and perform an automatic handshake (sending
RADAR_INITand waiting forRADAR_ACK). - If auto-detection fails, you will be prompted for the COM Port (e.g., if ESP32 is on COM3, type
3).
- Run the compiled
- Play:
- The "Waiting" screen on the ESP32 will disappear once data is received.
- Enemies appear as Red Dots.
- You are the Green Dot (Center).
- Spectator Mode: If you die, the radar automatically adjusts to the POV of the player you are spectating, so a little help for the rest when you are dead.
- Bomb: When planted, an 'A' or 'B' indicator appears at the top of the radar, this is not 100% accurate, so on a couple of maps B = A and A = B.
The client uses an automatic handshake mechanism to establish communication with the ESP32 display:
- Handshake Message (
RADAR_INIT): The client sendsRADAR_INIT\nto the ESP32. - Expected Response (
RADAR_ACK): The ESP32 responds withRADAR_ACK\n. - Timeout: The handshake has a 2-second timeout. If no acknowledgment is received within this time, the COM port is considered unavailable and the client moves to the next port.
- Auto-Detection: The client automatically scans COM ports 1-20 to find the ESP32, performing the handshake on each port until successful connection is established.
To change how much of the map is visible, edit code.py:
# Lower = Zoom In | Higher = Zoom Out
scale = (WIDTH / 2) / 2100.0 To move the player dot (to see more in front or behind), edit code.py:
# +50 moves player down (see more in front)
RADAR_CY = RADAR_Y_START + (RADAR_HEIGHT // 2) + 50 - Screen is Black:
- Check wiring (GPIO 12/11/9/8/10).
- Ensure CircuitPython libraries are in
lib/.
- Windows crashes:
- The
offsetsmight be outdated. Update them.
- The
- Enemies Not Appearing:
- Update the
offsets and client_dll
- Update the
- Debugging Issues:
- The client creates a debug log file named
out.txton your Desktop if it already exists. To enable logging:- Create an empty file named
out.txton your Desktop. - Run
NXConnect.exeas Administrator. - Check
out.txtfor detailed logs about COM port detection, handshake attempts, and any errors encountered.
- Create an empty file named
- This log file includes information about the automatic handshake process and can help identify why the COM port auto-detection might be failing.
- The client creates a debug log file named
- Set 24AWG Cables, 8CM 120 u
- Aliexpress, like $2
- Cables
- Set Dupont Line, 10CM, 120 u
- Aliexpress, like $2.7
- Kit
- PCB Set, mixed, 5 u
- Aliexpress, like $2.4
- PCB
- 1x40Pin 2,54mm, 10 Uds
- Aliexpress, like $1.8
- Connectors

