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?

  • Vibration persists after being set to 0

    Vibration persists after being set to 0

    Describe the bug Two subsequent calls to XInputSetState with different values break the state of the motors (vibration persists after being reset to 0 on both motors). It can easily be tested with this configuration on Dolphin: Bug This happens on a DS4 with DS4Windows, though looking at DS4Windows, no XInput code seems to be there so I thought it was probably ViGEmBus? Sorry if I'm wrong. The bug does not happen on a real Xbox controller. I've also wrote some code that triggers the bug and pasted the pseudo code for you to reproduce it below. When setting "should_sleep" to true, the state won't break.

    To Reproduce Steps to reproduce the behavior (example):

    static bool should_sleep = false;
    static int sleep_time = 100;
    state_out.wLeftMotorSpeed = 0;
    state_out.wRightMotorSpeed= 65535;
    XInputSetState(i, &state_out););
    state_out.wLeftMotorSpeed = 65535;
    XInputSetState(i, &state_out););
    if (should_sleep)
      Sleep(sleep_time);
    state_out.wRightMotorSpeed= 0;
    XInputSetState(i, &state_out);
    state_out.wLeftMotorSpeed = 0;
    XInputSetState(i, &state_out);
    

    Expected behavior Vibration goes back to resting state.

    System details (please complete the following information):

    • OS: [e.g. Windows 10 19042]
    • Feeder software: [e.g. DS4Windows 2.2.1]
    • Driver Version: [e.g. 1.16.112.0]

    Additional context Add any other context about the problem here.

  • 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.

  • 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

  • Bump dessant/support-requests from 2 to 3

    Bump dessant/support-requests from 2 to 3

    Bumps dessant/support-requests from 2 to 3.

    Release notes

    Sourced from dessant/support-requests's releases.

    v3.0.0

    Learn more about this release from the changelog.

    v2.1.2

    Learn more about this release from the changelog.

    v2.1.1

    Learn more about this release from the changelog.

    v2.1.0

    Learn more about this release from the changelog.

    v2.0.1

    Learn more about this release from the changelog.

    Changelog

    Sourced from dessant/support-requests's changelog.

    2.1.2 (2021-10-02)

    2.1.1 (2021-07-09)

    Bug Fixes

    • update GitHub API calls (fa1e92b)

    2.1.0 (2021-07-09)

    Features

    • default github-token to github.token (#7) (731cce0)
    • document the use of personal access tokens (6ba0377)

    Bug Fixes

    • declare required permissions (692a08a)
    • lock temporarily unlocked issues even after an error (182adbd)

    2.0.1 (2021-01-01)

    Bug Fixes

    2.0.0 (2020-08-24)

    ⚠ BREAKING CHANGES

    • The deployment method and configuration options have changed.

    Features

    1.0.1 (2019-10-25)

    Bug Fixes

    1.0.0 (2019-06-10)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • BSOD on Windows 11 21H2

    BSOD on Windows 11 21H2

    I got BSOD while waking up from sleep. Bugcheck code is WDF_VIOLATION and parameter is 0x4

    I'm using the latest release version 1.21.442.0

    This is the stack stack

  • 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).

  • ds4 bluetooth audio sound support (working piece of the code)

    ds4 bluetooth audio sound support (working piece of the code)

    Hello! There are working piece of code, detail reverse engineering report with example how to implement that audio play through dual shock 4 controller

    https://translate.google.ru/translate?sl=ru&tl=en&u=https%3A%2F%2Fhabr.com%2Fru%2Fpost%2F302356%2F (translated)

    https://habr.com/ru/post/302356/ (original)

    Can you please implement that audio device inside ViGem driver or separated driver?

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

Dec 21, 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

Dec 28, 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

Jan 7, 2023
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

Dec 29, 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

Dec 26, 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

Dec 4, 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).

Dec 29, 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

Dec 30, 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

Jan 1, 2023
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

Jan 2, 2023
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

Nov 24, 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

Dec 13, 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
A kernel level driver for Windows built to configure the Blue Screen Of Death

BSODConfigure A kernel level driver for Windows built to configure the Blue Screen Of Death. Go see the writeup at https://www.phasetw0.com/configurin

Dec 22, 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

Jan 7, 2023