GithubHelp home page GithubHelp logo

espusbhost's Introduction

This is a library for using USB Host with ESP32.

Target board

  • ESP32-S3-DevKitC
  • M5Stack ATOMS3

function

  • USB Keybord
  • USB Mouse

Usage

#include "EspUsbHost.h"

class MyEspUsbHost : public EspUsbHost {
  void onKeyboardKey(uint8_t ascii, uint8_t keycode, uint8_t modifier) {
    if (' ' <= ascii && ascii <= '~') {
      Serial.printf("%c", ascii);
    } else if (ascii == '\r') {
      Serial.println();
    }
  };
};

MyEspUsbHost usbHost;

void setup() {
  Serial.begin(115200);
  delay(500);

  usbHost.begin();
  usbHost.setHIDLocal(HID_LOCAL_Japan_Katakana);
}

void loop() {
  usbHost.task();
}

Virtual function

common

  • virtual void onData(const usb_transfer_t *transfer);
  • virtual void onGone(const usb_host_client_event_msg_t *eventMsg);

Keyboard

  • virtual uint8_t getKeycodeToAscii(uint8_t keycode, uint8_t shift);
  • virtual void onKeyboard(hid_keyboard_report_t report, hid_keyboard_report_t last_report);
  • virtual void onKeyboardKey(uint8_t ascii, uint8_t keycode, uint8_t modifier);

Mouse

  • virtual void onMouse(hid_mouse_report_t report, uint8_t last_buttons);
  • virtual void onMouseButtons(hid_mouse_report_t report, uint8_t last_buttons);
  • virtual void onMouseMove(hid_mouse_report_t report);

espusbhost's People

Contributors

tanakamasayuki avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.