Windows kernel-mode driver emulating well-known USB game controllers.

ViGEm Bus Driver

Windows kernel-mode driver emulating well-known USB game controllers.

Build status Discord Website GitHub followers Twitter Follow

(This project is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addition to maintenance and stability there are many desirable features yet to be added. If your company is using components of ViGEm, please consider reaching out.)

Businesses: support continued development via invoiced technical support, maintenance, sponsoring contracts:
  E-mail: vigem @ nefarius dot at

Individuals: support continued maintenance and development via PayPal donations.


About

The ViGEmBus driver and ViGEmClient libraries represent the core of the Virtual Gamepad Emulation Framework (or ViGEm , for short). ViGEm aims for a 100% accurate emulation of well-known gaming peripherals as pure software-based devices at kernel level. As it mimics "the real thing" games and other processes require no additional modification whatsoever to detect ViGEm-based devices (no Proxy-DLLs or API-Hooking) and simply work out of the box. While the (now obsolete) Scarlett.Crush Productions Virtual Bus Driver is the spiritual father of this project, ViGEm has been designed and written from the ground up utilizing Microsoft's Kernel-Mode Driver Framework.

Emulated devices

Currently supports emulation of the following USB Gamepads:

Use cases

A few examples of the most common use cases for ViGEm are:

  • You have an unsupported input device you'd like to use within games without modifying said game.
  • You want the freedom to use a different controller of your choice in PS4 Remote Play.
  • You encountered a game not compatible with x360ce (prior to version 4.x).
  • You want to extend the reach of your input device (like send traffic to a different machine over a network).
  • You want to test/benchmark your game and need a replay mechanism for your user inputs.
  • You want to work around player slot assignment order issues in XInput.

Supported Systems

Version 1.16 and below

The driver is built for Windows 7/8.1/10/Server 2016/Server 2019 (x86 and amd64).

Version 1.17 and above

The driver is built for Windows 10/Server 2016/Server 2019 only (x86 and amd64).

License

The ViGEm Bus Driver is licensed under the BSD-3-Clause, see LICENSE for more information.

How to build

Prerequisites

You can build directly within Visual Studio.

Do bear in mind that you'll need to sign the driver to use it without test mode.

Contribute

Bugs & Features

Found a bug and want it fixed? Open a detailed issue on the GitHub issue tracker!

Have an idea for a new feature? Let's have a chat about your request on Discord or the community forums.

Questions & Support

Please respect that the GitHub issue tracker isn't a helpdesk. We offer a Discord server and forums, where you're welcome to check out and engage in discussions!

Installation

Pre-built production-signed binaries are provided by Nefarius Software Solutions e.U. and available as an all-in-one setup.

Sponsors

Sponsors listed here have helped the project flourish by either financial support or by gifting licenses:

Known users of ViGEm

A brief listing of projects/companies/vendors known to build upon the powers of ViGEm.

This list is non-exhaustive, if you'd like to see your project included, contact us!

Owner
Virtual Gamepad Emulation Framework
Projects devoted to USB input device emulation and game peripherals reverse engineering.
Virtual Gamepad Emulation Framework
Comments
  • Driver deadlock

    Driver deadlock

    Describe the bug With a virtual Xbox 360 controller enabled, programs that poll controller input will be unable to launch. They deadlock attempting to open a handle to the device. This happens with feeder applications as well.

    It also prevents any real devices from connecting to or disconnecting from my system.

    To Reproduce I've been unable to consistently reproduce it. It happens fairly frequently, but with no specific steps that I could identify. If applications begin failing to launch with a feeder and Xbox 360 endpoint, however:

    1. Launch an application that polls for controller input (a game, Uplay, Steam, Battle.net).
    2. The application will stall or fail to launch.
    3. Attempt to disable the device with Device Manager/etc, and it will also stall.
    4. When the feeder is killed, the Xbox 360 endpoint device will enter an error state, displayed in Device Manager.

    Expected behavior Some kind of error handling or error logging. ViGEmClient has error logging, but it doesn't appear to encounter any errors when this deadlock occurs.

    Screenshots image

    I attempted to disable the device, Device Manager stalled, and both the Game Controllers dialog and Battle.net immediately launched. Opening another instance of Device Manager reveals that the device is still enabled:

    image

    System details (please complete the following information):

    • OS: Windows 10 Pro 1903
    • Feeder software: ds4wizard
    • Driver Version: 1.14.3.0

    Additional context It very well could be something I'm doing with my feeder, but I've been unable to figure it out.

  • [v1.17.33] Setup Wizard ended prematurely

    [v1.17.33] Setup Wizard ended prematurely

    Hello! I ran into a problem while installing ViGEmBusSetup. Installation fails with an error "Nefarius Virtual Gamepad Emulation Bus Driver Setup Wizard ended prematurely" =(

    OS: Windows 10 pro 19042.685

    ViGEmBus: 1.17.333 FireShock: 3.0.0.0 Shibari: 1.4.106 BthPS3: 1.2.4

    nW1MwWEQ_yM

  • Add touchscreen support for the Dualshock 4 touchpad

    Add touchscreen support for the Dualshock 4 touchpad

    I use ViGEm for using a tablet with game controls for remote play, which is better than Vita except clicking the touchscreen doesn't send touchpad events to the PS4. Could you please add this?

  • Setup isn't working here

    Setup isn't working here

    Describe the bug I downloaded the latest installer (ViGEmBus_Setup_1.16.115.exe) and tried to run it. Absolutely nothing happens. I already tried as admin and through powershell, nothing is printed either. I found out that GloSC wasn't working because the driver wasn't installed, so I tried to install it manually.

    To Reproduce

    1. Download the setup file
    2. Try to run it (double-click)
    3. Nothing opens

    Expected behavior The driver to be installed.

    System details (please complete the following information):

    • OS: Windows 10 Pro 1909 x64
    • Feeder software: GloSC
    • Driver Version: 1.16.115

    Are there any flags I can pass to the installer to make it verbose and give me any clues on what is happening?

  • vigem_target_add with x360 target hangs Windows 7

    vigem_target_add with x360 target hangs Windows 7

    Describe the bug Calling vigem_target_add with x360 target hangs (freezes) Windows 7. There is no BSOD nor error message, system simply stops.

    To Reproduce Consider following sample code:

    #include "utils/assert.h"
    #include "windows.h"
    #include "ViGEm/Client.h"
    // g++ -Iinclude -Ivigemclient/include/ ViGEmClient.cpp c-sample.c -lsetupapi -lhid
    
    static PVIGEM_CLIENT vigem;
    static PVIGEM_TARGET target;
    static XUSB_REPORT report;
    
    int main(int argc, char** argv) {
    	vigem = vigem_alloc();
    	ASSERT(vigem != NULL);
    	ASSERT(vigem_connect(vigem) == VIGEM_ERROR_NONE);
    	XUSB_REPORT_INIT(&report);
    	target = vigem_target_x360_alloc();
    	ASSERT(vigem_target_add(vigem, target) == VIGEM_ERROR_NONE);
    	
    	while (1) {
    		report.sThumbLX ++;
    		ASSERT(vigem_target_x360_update(vigem, target, report) == VIGEM_ERROR_NONE);
    		Sleep(10);
    	}
    }
    

    ... compiled with g++ from MinGW package.

    When code reaches vigem_target_add, it blocks briefly and I can clearly hear "ding" from new device notification. Right after it, entire system freezes, often even with last audio sample looping indefinitely.

    When ran on Windows 10 (recompiled or even same executable) or when DS4 target is used, code works exactly as expected.

    Expected behavior Not freezing.

    Screenshots I've captured output from serial console and uploaded it to pastebin, just in case it will be somehow useful. I believe it's same message repeated.

    System details (please complete the following information):

    • OS: Windows 7
    • Everything 32bit
    • Driver Version: 01/19/2018,1.14.3.0
    • Tested both with Virtualbox and real hardware
  • Win7 First Boot Gamepads in Joy.cpl DS4Windows Ryochan Issue

    Win7 First Boot Gamepads in Joy.cpl DS4Windows Ryochan Issue

    https://github.com/Ryochan7/DS4Windows/issues/1414

    Any way something can be done on this end regarding this issue? Windows 7 Ultimate 64 bit here.

    I do not have quickboot because it is not a feature of win7. System restore is not on, nor is hibernation mode. So nothing is being stored to memory when my cpu is shut down.

    When first starting windows (after their permanent controller feature was introduced, and turning on ds4windows for the first time nomatter with autoboot or manually, virtual xbox controllers are seen in the joy.cpl when no controller is connected and when ds4windows is not on permanent mode. I have to stop and restart ds4windows (the whole program) for everything to function correctly. If I just press stop/start, the output slots are not cleared inside ds4windows.

    So is there any way that something on the driver end can be adjusted to fix this issue for win7?

  • Rumble events lasts too much time in 1.17.333

    Rumble events lasts too much time in 1.17.333

    Using newer version of driver (1.17.333) "Tested with Cemu emulator" when a rumble event comes in, the rumble is extended too much time. For example, a rumble event that originally is only a hit or a shoot "0,25 seconds" the controller rumbles for 3-4 seconds. This is a bit annoying in games with too much rumble events.

    Previously I used 1.6 version with some issues like controller disconnected problems when the rumble event come in. In this case, this is now solved, but this problem replaced the old one.

    Using PS4 Dualshock V2. Windows 10 x64 H2 Build.

  • [Request] Add features byte info for DS4_OUTPUT_REPORT in DS4_REQUEST_NOTIFICATION struct

    [Request] Add features byte info for DS4_OUTPUT_REPORT in DS4_REQUEST_NOTIFICATION struct

    Is your feature request related to a problem? Please describe.

    Virtual DS4 rumble and lightbar passthru support has been a problem for a while but I have not had time to really look into it beforehand; I don't use the feature myself and I had removed support for it in DS4Windows at one point before mika-n added the routine back in the code. The feedback data returned by games can really differ and causes distinguishing between the type of event that the data represents virtually impossible. My main test games that provide native DS4 controller support are The Witcher 3 and Streets of Rage 4.

    Currently, DS4Windows tries to make an effort to determine whether an event should be considered a rumble event, lightbar event, or both. The workaround was mainly made using test feedback data given while playing The Witcher 3. Even before this current batch of tests, the data seemed to indicate that The Witcher 3 sent separate output reports for rumble events and lightbar events. The DS4 feedback notification delegate in DS4Windows works on that assumption so it tends to work fine for The Witcher 3; it is likely still not accurate but good enough to not cause major problems. Current tests show that the initial hypothesis is true and The Witcher 3 will change the HID output report features byte (byte 0x01) depending on whether the data represents a rumble event (set to 0x01), a lightbar event (set to 0x02), or both (set to 0x03); a value of 0x03 seems to be used most often for resetting both the rumble motors and lightbar.

    However, Streets of Rage 4 seems to include both rumble and lightbar data in the same report and uses a value of 0x07 for the features byte. Flag 0x04 is used to enable flash support for the lightbar although it looks like the game does not set any flash data in the output report buffer. The current DS4 feedback workaround does not really work at all for Streets of Rage 4 and can cause infinite rumble to occur at times.

    Location of the DS4 feedback delegate in the current code.

    https://github.com/Ryochan7/DS4Windows/blob/57ca7fa2f61ce8447d949760a0146d45aa1aa7cb/DS4Windows/DS4Control/ControlService.cs#L648

    Describe the solution you'd like

    In order to be able to properly distinguish whether a feedback event should be considered a rumble event, lightbar event, or possibly both, the features byte from the main HID output report buffer (byte 0x01) needs to be provided by ViGEmBus through the ViGEmClient. As it is now, that byte is skipped by ViGEmBus and starts copying report data starting at byte 0x04 (Right Light rumble).

    Describe alternatives you've considered

    A workaround has been available in DS4Windows for a while. It only works relatively fine in The Witcher 3. The feedback processing workaround fails completely in Streets of Rage 4 when using its native DS4 controller support.

    Additional context

    I wanted to provide some test data I gathered from Trace events using TraceView Plus. Unfortunately, it looks like TraceView Plus cannot just output the filtered messages to an output file. It still includes all received messages from a session and the process of making the XML file takes several minutes and my current file is around 448 MB. Instead, I can only provide a small snippet of the last group of sample messages shown in a screenshot. The data was gathered while playing The Witcher 3 for a few minutes using its native DS4 controller support.

    As you can see, the data differs depending on the flags set in the features byte.

    witcher3_ds4_notifications_traceview

    Not sure if it will be relevant but here is the code snippet I inserted into ViGEmBus to log those messages. The code was added to the EmulationTargetDS4::UsbBulkOrInterruptTransfer method in the Ds4Pdo.cpp file.

    PUCHAR rawOutputBuffer = static_cast<PUCHAR>(pTransfer->TransferBuffer);
    TraceEvents(TRACE_LEVEL_INFORMATION,
      TRACE_DS4,
      "TestBytes: %02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X\n",
      rawOutputBuffer[1],
      rawOutputBuffer[4],
      rawOutputBuffer[5],
      rawOutputBuffer[6],
      rawOutputBuffer[7],
      rawOutputBuffer[8],
      rawOutputBuffer[9],
      rawOutputBuffer[10]);
    
  • Vigem 1.16.116 rumble problem (Dualshock 4 v2)

    Vigem 1.16.116 rumble problem (Dualshock 4 v2)

    Some problems when the Vigem 1.16.116 are installed on the system. When a rumble event comes on some games (Using different emulators) the controller freezes and the character keeps walking/shooting/whatever. After uninstalling the Vigem, the problem was solved.

    This reminds me a similar problem on another software called ScpServer:

    https://github.com/nefarius/ScpToolkit/issues/39

    The thing is that I need Vigem in order to use DS4Windows + Cemu emulator. In this emulator, the problem happens in every game with rumble functions.

    On another emulators such as RPCS3, the problem happens also in the games. But if I uninstall Vigem (Since RPCS3 haves dualshock passthrough and it doesn't need an external software) the problem is solved again.

    There are any plans for releasing a new Vigem version? The latest one was on Dec 19. Almost a year ago.

    My specs:

    Windows 10 x64 GTX 970 i7 4790k 16 GB DDR3

    Thank you for this awesome software.

  • Fix bug, if the plugin fails, the `VIGEM_TARGETS_MAX` device will be created.

    Fix bug, if the plugin fails, the `VIGEM_TARGETS_MAX` device will be created.

    Hi,

    Describe the bug Starting from the fifth ‘plugin’, countless devices will be created. (VIGEM_TARGETS_MAX 0xFFFF)

    To Reproduce Run this:

    int main()
    {
        static const auto target_number = 5;
    
        const auto client = vigem_alloc();
        auto ret = vigem_connect(client);
        if (!VIGEM_SUCCESS(ret))
        {
            std::cerr << "vigem_connect() failed! ret: " << std::hex << ret << std::endl;
        }
    
        PVIGEM_TARGET targets[target_number] = { nullptr };
    
        for (auto i = 0u; i < target_number; ++i)
        {
            targets[i] = vigem_target_x360_alloc();
    
            ret = vigem_target_add(client, targets[i]);
    
            std::cerr << "vigem_target_add(" << std::dec << i << ") ret: " << std::hex << ret << std::endl;
        }
    
        // pause
        (void)getchar();
    
        for (auto i = 0u; i < target_number; ++i)
        {
            vigem_target_remove(client, targets[i]);
            vigem_target_free(targets[i]);
        }
    
        vigem_free(client);
    
        return 0;
    }
    

    Expected behavior Create 4 or 5 devices, But created countless. (VIGEM_TARGETS_MAX 0xFFFF)

    Screenshots image

    System details (please complete the following information):

    • OS: [Windows 10 1903]
    • Driver Version: [commit 288222f]
  • ViGEmBus does not install on Windows 11 Build 22000

    ViGEmBus does not install on Windows 11 Build 22000

    Describe the bug I have tried using the 64-bit installer for version 1.17.333. The installer makes no progress. After a reboot, the same thing happens with version 1.16.116. I cannot find the vigembus.sys driver installed anywhere on my system.

    To Reproduce

    1. Open ViGEmBus installer .msi or .exe
    2. Click to install
    3. Approve UAC prompt

    Expected behavior I expect for the installer to complete and for ViGEmBus to successfully install.

    Screenshots I am currently at my parents' house. I can add screenshots later if necessary.

    System details (please complete the following information):

    • OS: Windows 11 22000.176
    • Feeder software: Tried installing through latest Ryochan7 DS4Windows. Then tried with the executables hosted on this project's GitHub page
    • Driver Version: 1.17.333 64-bit and 1.16.116

    Additional context I do not think that I have installed ViGEmBus through any other means. DS4Windows sends a notification to Windows saying that the ViGEmBus driver is not installed. I keep BetterJoy around, but I do not think that I have made use of it on this install of Windows.

  • Add Winget Releaser workflow

    Add Winget Releaser workflow

    This action automatically generates manifests for WinGet Community Repository (microsoft/winget-pkgs) and submits them. This is in line with the PR in HidHide (https://github.com/ViGEm/HidHide/pull/80).

    Before merging this:

    • Follow the steps in https://github.com/ViGEm/HidHide/pull/80. See that PR for the rest of the information.

    Resolves #141

  • Publish to Windows Package Manager (WinGet)

    Publish to Windows Package Manager (WinGet)

    Is your feature request related to a problem? Please describe. N/A

    Describe the solution you'd like With every new release of ViGEmBus, use a GitHub workflow to update manifests at https://github.com/microsoft/winget-pkgs repository.

    I can create a pull request if you would like. It would help in keeping manifests up-to-date at WinGet with every new release automatically.

    Same can be done for HidHide.

    Describe alternatives you've considered N/A

    Additional context N/A

  • Weird Interactions with Focusrite Scarlett Drivers/Devices

    Weird Interactions with Focusrite Scarlett Drivers/Devices

    Describe the bug With both the ViGEmBus drivers and Focusrite drivers for their Scarlett 2i2 3rd gen interface installed, Windows experiences random audio cutout issues, where audio cuts out for around 2-5 seconds or longer. If I am in a Discord call, my microphone audio will be delayed by several seconds, so others in the call hear me several seconds after I say anything. It could usually be fixed by re-choosing the same microphone in Discord audio settings, but under specific circumstances (running Blue stacks emulating an Android game) Discord would refuse to be fixed until I quit the emulator. In one particularly egregious case, my audio output became delayed, so that I heard everything several seconds after it actually happened, while my input was on-time.

    To Reproduce Requires Focusrite Scarlett interface and drivers to reproduce

    • Install Focusrite drivers
    • Install ViGEmBus
    • Make sure Windows is using Scarlett interface as audio output
    • Play music or any kind of audio (tends to happen more often with greater CPU stress)
    • Wait

    System details (please complete the following information):

    • OS: Windows 10, Windows 11, the problem seems independent of sub-version because it has happened across two different versions of Windows
    • Feeder software: ??
    • Driver Version: Unknown, it was the version packaged with BetterJoy
    • Focusrite Scarlett driver version 4.102.4
    • NVidia RTX 3080
    • AMD Ryzen 3800x

    Additional context This seems to be a very specific issue that can't conveniently be replicated, but the problem was bugging me so much that I did a fresh install of Windows (and upgraded to Windows 11 in the meantime) to get rid of it. I wanted to be able to use BetterJoy again, so I installed the drivers again, and when I rebooted to initialize them my computer started experiencing the audio glitch within 10 minutes of the reboot. That's... not really a coincidence. Given, I'm only guessing that the problem is caused by some interaction with the Focusrite drivers, but it seems to me like a fair guess given that most people don't experience this problem, most people wouldn't have Scarlett interfaces, and on a practically fresh Windows 11 install, the most niche thing I'm running at the moment are those Focusrite drivers. If absolutely required I could try to uninstall the Focusrite drivers and see if that also fixes the issue, but I kind of need my interface to be able to use my computer normally. If it's any help, the problem seemed to be able to be fixed by switching Windows and Discord from the interface to another device.

  • Successor

    Successor "ViGEmBus 2" is in the works

    PSA

    A successor "ViGEmBus 2" (not the official name) is in development since the beginning of 2022 and will supersede this project eventually. No new features will be added to this repository, only bug-fix updates. This issue will be updated once more information is available.

  • Switch Pro controller Emulation Support

    Switch Pro controller Emulation Support

    It'd be awesome to have an emulated switch pro controller, as it has motion controls that work with Steam. It'd also allow the program BetterJoyForCemu to emulate a switch pro controller using joy cons, allowing the joy con motion controls to function on steam instead of emulating a mouse.

  • ViGEmBus issues in HP Omen Gaming Laptops caused by pre-installed, modified version of Vigem

    ViGEmBus issues in HP Omen Gaming Laptops caused by pre-installed, modified version of Vigem

    The issue

    HP's line of Omen gaming laptops come pre-installed with a modified version of the ViGEmBus driver. Apps trying to locate the latest ViGEmBus may end up detecting the modified HP driver instead, causing all sorts of issue since it is based on an older version of vigem (v1.4.3.X), but presents itself with a higher number (10.X...)

    Workaround

    HP's ViGEm driver must be disabled and its entry in Windows' registry deleted so only the actual Nefarius' ViGEmBus remains active on the system:

    Remember that you can click on the images to expand them

    • Open Device Manager by pressing the keys WIN + X and selecting it from the menu

    • Click on the View tab at the top and change the view type to Devices by connection

    • Look for the HP Omen Driver and expand it, then right-click on the Virtual Gamepad Emulation Bus under it and select Disable device
      DeviceManagerHPOmenDriver

    • After confirming the driver is disabled, open the Windows Run tool by pressing WIN + R and executing the regedit command. Windows' registry should then open

    • Navigate, carefully, to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses

    • When you reach DeviceClasses, right click on it and choose Find. Copy and paste {96e42b22-f5e9-42f8-b043-ed0f932f014f} on the appearing search box and then select Find Next RegistryHPOmenSearch

    • The search function should lead you to a folder. Expand it and look for a folder called: SWD\DRIVERENUM{2abac65e-84b2-4dbd-8ab1-2a2894991813}#HPIncVigemBusOmenFusionSoftware&4&14eddee5&0 (Emphazis on the HPIncVigemBUS in the middle of its name)

    • Right click on the (...)HPIncVigemBUS(...) entry and then delete it. Be EXTRA CAREFUL so you don't delete the wrong entry
      RegistryHPOmeDelete

    Deleting that entry should solve the problem for good, but keep in mind that HP's Virtual Gamepad Emulation Bus must remain disabled on the Device Manager, otherwise it will recreate that entry after every system reboot... like a virus...

    Proper solution

    Send angry e-mails to HP support to make this issue more relevant until they decide to actually fix it on their side (I'm being serious).

An IOS module that fakes Wiimotes from the input of USB game controllers

fakemote An IOS module that fakes Wiimotes from the input of USB game controllers. Supported USB game controllers Device Name Vendor Name Vendor ID Pr

Sep 16, 2022
New version of the well known ESP32 Radio. Now optional I2S output!

ESP32Radio-V2 New version of the well known ESP32 Radio. Now optional I2S output! Compile time configuration in config.h. Do not forget to upload the

Sep 19, 2022
Well known brainstorming and tricky coding questions

Interview questions NOTE:If you having any difficulty in solving then you can message me for solution Question 1 Rahman has N coins; let's denote the

May 5, 2022
Macos-arm64-emulation - A guide for emulating macOS arm64e on an x86-based host.

macos-arm64-emulation Use the following guide to download and configure all of the necessary tools and files for emulating the macOS arm64e kernel. Th

Sep 27, 2022
Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico
Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico

PicoMemcard PicoMemcard allows you to build your own supercharged PSX Memory Card that can be connected to your computer via USB in order to transfer

Sep 21, 2022
x64 Windows kernel driver mapper, inject unsigned driver using anycall
x64 Windows kernel driver mapper, inject unsigned driver using anycall

anymapper x64 Windows kernel driver mapper, inject unsigned driver using anycall This project is WIP. Todo Fix: Can't make API calls from IAT nor func

Aug 23, 2022
Hygieia, a vulnerable driver traces scanner written in C++ as an x64 Windows kernel driver.

Hygieia The Greek goddess of health, her name is the source for the word "hygiene". Hygieia is a windows driver that works similarly to how pagewalkr

Sep 22, 2022
SinMapper - usermode driver mapper that forcefully loads any signed kernel driver
SinMapper - usermode driver mapper that forcefully loads any signed kernel driver

usermode driver mapper that forcefully loads any signed kernel driver (legit cert) with a big enough section (example: .data, .rdata) to map your driver over. the main focus of this project is to prevent modern anti-cheats (BattlEye, EAC) from finding your driver and having the power to hook anything due to being inside of legit memory (signed legit driver).

Oct 1, 2022
ESP32 software USB host through general IO pins. We can connect up to 4 USB-LS HID (keyboard mouse joystick) devices simultaneously.

esp32_usb_soft_host esp32 USB-LS pure software host thru general IO pins. Up to 4 HID devices simultaneously. board ~$3 :https://www.aliexpress.com/pr

Sep 23, 2022
ESP8266 software USB host through general IO pins. We can connect up to 2 USB-LS HID (keyboard mouse joystick) devices simultaneously.
ESP8266 software USB host through general IO pins. We can connect up to 2 USB-LS HID (keyboard mouse joystick) devices simultaneously.

esp8266_usb_soft_host Test for esp8266 usb host . Works with ESP-IDF v3.4 80MHz and 160MHz. WorkInProgress Test run with mouse & combined mouse & keyb

Sep 1, 2022
Tiny and portable usb host and device stack for mcu with usb ip

Tiny and portable usb host and device stack for mcu with usb ip

Sep 25, 2022
USB-C_PCB_experiments - USB-C ports made from a flex PCB and an ATtiny84A
USB-C_PCB_experiments - USB-C ports made from a flex PCB and an ATtiny84A

USB-C PCB Experiments This is part of an ongoing series of projects involving creative interpretations of the USB mechanical standards. You've probabl

Sep 5, 2022
Anotter USB temperature logger that can record up to four channels with thermocouple or NTCs connected via CDC directly or SCPI to USB.
Anotter USB temperature logger that can record up to four channels with thermocouple or NTCs connected via CDC directly or SCPI to USB.

temperature-logger Anotter USB temperature logger that can record up to four channels with thermocouple or NTCs connected via CDC directly or SCPI to

Aug 11, 2022
x64 Windows kernel code execution via user-mode, arbitrary syscall, vulnerable IOCTLs demonstration
x64 Windows kernel code execution via user-mode, arbitrary syscall, vulnerable IOCTLs demonstration

anycall x64 Windows kernel code execution via user-mode, arbitrary syscall, vulnerable IOCTLs demonstration Read: https://www.godeye.club/2021/05/14/0

Sep 27, 2022
Streaming video over USB 3.0 using MAX10 FPGA and CYUSB3014 synchronous slave mode.
Streaming video over USB 3.0 using MAX10 FPGA and CYUSB3014 synchronous slave mode.

DECA_USB3_Cam Streaming video over USB 3.0 using MAX10 FPGA and CYUSB3014 synchronous slave mode. Video: Block diagram _______

Apr 18, 2022
Cross-OS library for implementing USB device-mode interfaces

libusbd Cross-OS library for implementing USB device-mode interfaces. WIP. I'm currently working out most of the API details with the programs in exam

Sep 19, 2022
If the button pressed esp will reset and App mode will on. App mode will on then led will on, network is connected led will off.

DHT22-to-Google-sheet-Reset-Using-ESP8266-LED-Switch If button pressed esp will reset and App mode will on. App mode will on then led will on, network

Aug 17, 2022
split89 keyboard - a 3d printed 89 key split TKL keyboard base powered by ATmega32U4 Pro Micro controllers with QMK Configurator support.
 split89 keyboard - a 3d printed 89 key split TKL keyboard base powered by ATmega32U4 Pro Micro controllers with QMK Configurator support.

split89 keyboard - a 3d printed 89 key split TKL keyboard base powered by ATmega32U4 Pro Micro controllers with QMK Configurator support. This keyboar

Aug 7, 2022
Connect 8Bit controllers to the PSVita

8BitVita Basically just X1Vita but with 8bitdo vid, pid, & mappings. Compatible 8bitdo controllers: Lite, Pro, Pro+, Pro 2, & Zero 2. Download: https:

Aug 20, 2022