Help plase with connect keyboard to arduino

First of all, I hope for your help, because I really need to connect this keyboard very much.
Secondly, I bought an Arduino Uno, a Lenardo and a Mini, and I tried all of this and the keyboard did not work for me. when i use sketch hidkb.io Nothing happens when i use sketch hid multi kb and mouse see word start in serial monitor I see word start When I press any button on the keyboard, it says "start"
my keyboard Is drevo blademaster with arm cortex 32bit mcu

EDIT

try-1
enable debugging with arduino leonardo with USBHIDMultimediaKbd.io

Start
HU Init
Addr:01
NC:01
Cnf:01
NumIface:02
SetIdle:00
SetIdle:01
HU configured

00 00 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 29 3B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 29 3B 3A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 29 3A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 29 3B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 29 3B 3A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

try -2
enable debugging with arduino leonardo with USBHIDBootKbdAndMouse.io ---- but my arduino It stops or slows down and does not respond until it is restarted again

Start
BM Init
01
HID_PROTOCOL_KEYBOARD AND MOUSE
bNumEP:03
Cnf:01
bIfaceNum:01
bNumIface:00

Interface:00
PROTOCOL SET HID_BOOT rcode:00
SET_IDLE rcode:00
RPIPE rcode:00

Interface:01
PROTOCOL SET HID_BOOT rcode:00
SET_IDLE rcode:00
RPIPE rcode:00
BM configured
M Butt Dn
dx=0 dy=70
04 00 46 29 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

try -3
enable debugging with arduino uno with USBHID_desc.io

Start
Count(10)
Report Size(01)
Input(00000010)
End Collection
Usage Page Gen Desktop Ctrls(01)Start
HU Init
Addr:01
NC:01
Cnf:01
NumIface:02
SetIdle:00
SetIdle:01
HU configured
0000: 05 01 09 06 A1 01 85 02 05 07 19 E0 29 E7 15 00
0010: 25 01 75 01 95 08 81 02 95 01 75 08 81 03 95 05
0020: 75 01 05 08 19 01 29 05 91 02 95 01 75 03 91 03
0030: 95 3D 75 08 15 00 26 98 00 05 07 19 00 29 98 81
0040: 00 C0 05 0C 09 01 A1 01 85 03 09 E9 09 EA 09 E2
0050: 0A 92 01 0A 94 01 0A 23 02 0A 8A 01 0A 21 02 0A
0060: 83 01 09 B6 09 CD 09 B5 09 B7 0A 2A 02 0A 24 02
0070: 0A 25 02 15 00 25 01 95 10 75 01 81 02 C0 05 01

Usage Page Gen Desktop Ctrls(01)
Usage Keypad
Collection Application
Report Id(02)
Usage Page Kbrd/Keypad(07)
Usage Min(E0)
Usage Max(E7)
Logical Min(00)
Logical Max(01)
Report Size(01)
Report Count(08)
Input(00000010)
Report Count(01)
Report Size(08)
Input(00000011)
Report Count(05)
Report Size(01)
Usage Page LEDs(08)
Usage Min(01)
Usage Max(05)
Output(00000010)
Report Count(01)
Report Size(03)
Output(00000011)
Report Count(3D)
Report Size(08)
Logical Min(00)
Logical Max(9800)
Usage Page Kbrd/Keypad(07)
Usage Min(00)
Usage Max(98)
Input(00000000)
End Collection
Usage Page Consumer(0C)
Usage Consumer Ctrl
Collection Application
Report Id(03)
Usage Vol Inc
Usage Vol Dec
Usage Mute
Usage AL Calc
Usage AL Loc Mach Brow
Usage AC Scroll Up
Usage AL E-mail Rdr
Usage AC Norm View
Usage AL Cons Ctrl Cfg
Usage Prev Track
Usage Play/Pause
Usage Next Track
Usage Stop
Usage AC Tile Horiz
Usage AC Scroll Down
Usage AC Scroll
Logical Min(00)
Logical Max(01)
Report Count(10)
Report Size(01)
Input(00000010)
End Collection
Usage Page Gen Desktop Ctrls(01)

Hi, welcome to the forum.

Are you using a smart phone that translates some words to links ? It is very confusing.
When you have access to a desktop computer, then you might try to modify your post.

Which keyboard to you have ? A "PRO" or a "TE" ?
This the the BladeMaster TE: https://www.drevo.net/product/keyboard/blademaster-te

What do you want to do with that keyboard ?
Does the keyboard work when you connect it to a computer ? What do you want to do with a Arduino ?

When you use a library or a sketch, please give a link to it or show the sketch.

It is an easy way to connect arduino to keyboard by simple process of programming.

@williamander please prove that you are a human being and are interested in Arduino.

1 Like

thanks for reply
1- iam use drevo blademaster te
2-i want to convert this wired to BT
3-yes workin on my pc
4-i want to connect keyboard to arduino to use BT
5-iam use library usb host shield v 2.0

Is there a dongle/converter for that ?

The normal Bluetooth modules are only for Serial communication. There are also Bluetooth modules that are more versatile.
I have never looked into this, so if you search for a solution then you find as much as I can find.

I found this: https://hackaday.com/2016/09/04/convert-any-usb-keyboard-to-bluetooth/

I want to convert this keyboard from wire to bluetooth
I applied all the steps that you mentioned in the topic you shared with me, but the keyboard did not work
All I need from you is one thing
I want to play the keyboard on a USB host shield with arduino
But when I use the library, the keyboard does not work and gives the results that I mentioned in the first topic

What model of "USB Host Shield" do you have?

Which library are you using?
V1: GitHub - felis/USB_Host_Shield: Libraries and code for Circuits@Home Arduino USB Host Shield
V2: GitHub - felis/USB_Host_Shield_2.0: Revision 2.0 of USB Host Library for Arduino.
Some other library?

Is this the sketch you are running?

yes I have usb host shield v2.0
iam use sketch USBHIDMultimediaKbd.io

Did you try a Google search for:
usb host shield 2.0 "osc did not start"

It's saying that your USB Host Shield is not getting power from the Arduino UNO. Is there some jumper you are supposed to use to power up the board?

no
usb host shield power up and power up my keyboard and i making jumper power 5v and try with external power

iam do not know how to decode the hex dumps
i want any help to modify this sketch to workin without hex

#include <hidcomposite.h>
#include <usbhub.h>

// Satisfy the IDE, which needs to see the include statment in the ino too.
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif
#include <SPI.h>

// Override HIDComposite to be able to select which interface we want to hook into
class HIDSelector : public HIDComposite
{
public:
HIDSelector(USB *p) : HIDComposite(p) {};

protected:
void ParseHIDData(USBHID *hid, uint8_t ep, bool is_rpt_id, uint8_t len, uint8_t *buf); // Called by the HIDComposite library
bool SelectInterface(uint8_t iface, uint8_t proto);
};

// Return true for the interface we want to hook into
bool HIDSelector::SelectInterface(uint8_t iface, uint8_t proto)
{
if (proto != 0)
return true;

return false;
}

// Will be called for all HID data received from the USB interface
void HIDSelector::ParseHIDData(USBHID *hid, uint8_t ep, bool is_rpt_id, uint8_t len, uint8_t *buf) {
#if 1
if (len && buf) {
Serial.print(F("\r\n"));
for (uint8_t i = 0; i < len; i++) {
if (buf[i] < 16) Serial.print(F("0"));
Serial.print(buf[i], HEX);
Serial.print(F(" "));
}
}
#endif
}

USB Usb;
//USBHub Hub(&Usb);
HIDSelector hidSelector(&Usb);

void setup()
{
Serial.begin( 115200 );
#if !defined(MIPSEL)
while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
#endif
Serial.println("Start");

if (Usb.Init() == -1)
Serial.println("OSC did not start.");

// Set this to higher values to enable more debug information
// minimum 0x00, maximum 0xff, default 0x80
UsbDEBUGlvl = 0xff;

delay( 200 );
}

void loop()
{
Usb.Task();
}

this is dump

Start
Start
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
usb_state: 90

//////////////////////////////////////////////////////////////////////
// USB_desc_dump
// Address: 01
// Lowspeed: 00

// Devicer dump:
12 01 00 02 00 00 00 08 2C 1A 1F B5 00 01 01 02
00 01

// Device:
bLength: 12
bDescriptorType: 01
bcdUSB: 0200
bDeviceClass: 00
bDeviceSubClass: 00
bDeviceProtocol: 00
bMaxPacketSize0: 08
idVendor: 1A2C
idProduct: B51F
bcdDevice: 0100
iManufacturer: 01
iProduct: 02
iSerialNumber: 00
bNumConfigurations: 01

// String Zero: len: 04
// 04 03 09 04
// LangId: 0409

// iManufacturer: String1(0409): len: 14
// 14 03 44 00 52 00 45 00 56 00 4F 00 2E 00 49 00
// 6E 00 63 00
// DREVO.Inc

// iProduct: String2(0409): len: 26
// 26 03 42 00 6C 00 61 00 64 00 65 00 4D 00 61 00
// 73 00 74 00 65 00 72 00 20 00 54 00 45 00 20 00
// 38 00 37 00 4B 00
// BladeMaster TE 87K

// Config0 dump: len: 003B
09 02 3B 00 02 01 00 A0 32 09 04 00 00 01 03 01
01 00 09 21 10 01 00 01 22 CF 00 07 05 82 03 40
00 01 09 04 01 00 01 03 01 01 00 09 21 10 01 00
01 22 40 00 07 05 81 03 40 00 01

// Config:
bLength: 09
bDescriptorType: 02
wTotalLength: 003B
bNumInterfaces: 02
bConfigurationValue: 01
iConfiguration: 00
bmAttributes: A0
bMaxPower: 32

// Interface0.0:
bLength: 09
bDescriptorType: 04
bInterfaceNumber: 00
bAlternateSetting: 00
bNumEndpoints: 01
bInterfaceClass: 03
bInterfaceSubClass: 01
bInterfaceProtocol: 01
iInterface: 00

// HID:
bLength: 09
bDescriptorType: 21
bcdHID: 0110
bCountryCode: 00
bNumDescriptors: 01
bDescrType: 22
wDescriptorLength: 00CF

// Report0 dump: len: 00CF
05 01 09 06 A1 01 85 02 05 07 19 E0 29 E7 15 00
25 01 75 01 95 08 81 02 95 01 75 08 81 03 95 05
75 01 05 08 19 01 29 05 91 02 95 01 75 03 91 03
95 3D 75 08 15 00 26 98 00 05 07 19 00 29 98 81
00 C0 05 0C 09 01 A1 01 85 03 09 E9 09 EA 09 E2
0A 92 01 0A 94 01 0A 23 02 0A 8A 01 0A 21 02 0A
83 01 09 B6 09 CD 09 B5 09 B7 0A 2A 02 0A 24 02
0A 25 02 15 00 25 01 95 10 75 01 81 02 C0 05 01
09 02 A1 01 85 04 09 01 A1 00 05 09 19 01 29 05
15 00 25 01 75 01 95 05 81 02 75 03 95 01 81 01
05 01 09 30 09 31 09 38 15 81 25 7F 75 08 95 03
81 06 C0 C0 06 00 FF 09 01 A1 01 85 05 75 08 95
07 15 00 26 FF 00 09 05 B1 02 09 06 91 02 C0

// Report:
Usage Page Gen Desktop Ctrls(01)
Usage Keypad
Collection Application
Report Id(02)
Usage Page Kbrd/Keypad(07)
Usage Min(E0)
Usage Max(E7)
Logical Min(00)
Logical Max(01)
Report Size(01)
Report Count(08)
Input(00000010)
Report Count(01)
Report Size(08)
Input(00000011)
Report Count(05)
Report Size(01)
Usage Page LEDs(08)
Usage Min(01)
Usage Max(05)
Output(00000010)
Report Count(01)
Report Size(03)
Output(00000011)
Report Count(3D)
Report Size(08)
Logical Min(00)
Logical Max(9800)
Usage Page Kbrd/Keypad(07)
Usage Min(00)
Usage Max(98)
Input(00000000)
End Collection
Usage Page Consumer(0C)
Usage Consumer Ctrl
Collection Application
Report Id(03)
Usage Vol Inc
Usage Vol Dec
Usage Mute
Usage AL Calc
Usage AL Loc Mach Brow
Usage AC Scroll Up
Usage AL E-mail Rdr
Usage AC Norm View
Usage AL Cons Ctrl Cfg
Usage Prev Track
Usage Play/Pause
Usage Next Track
Usage Stop
Usage AC Tile Horiz
Usage AC Scroll Down
Usage AC Scroll
Logical Min(00)
Logical Max(01)
Report Count(10)
Report Size(01)
Input(00000010)
End Collection
Usage Page Gen Desktop Ctrls(01)
Usage Mouse
Collection Application
Report Id(04)
Usage Pointer
Collection Physical
Usage Page Button(09)
Usage Min(01)
Usage Max(05)
Logical Min(00)
Logical Max(01)
Report Size(01)
Report Count(05)
Input(00000010)
Report Size(03)
Report Count(01)
Input(00000001)
Usage Page Gen Desktop Ctrls(01)
Usage X
Usage Y
Usage Wheel
Logical Min(81)
Logical Max(7F)
Report Size(08)
Report Count(03)
Input(00000110)
End Collection
End Collection
Usage Page Undef(00)
Usage
Collection Application
Report Id(05)
Report Size(08)
Report Count(07)
Logical Min(00)
Logical Max(FF00)
Usage
Feature(00000010)
Usage
Output(00000010)
End Collection

// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 82
bmAttributes: 03
wMaxPacketSize: 0040
bInterval: 01

// Interface1.0:
bLength: 09
bDescriptorType: 04
bInterfaceNumber: 01
bAlternateSetting: 00
bNumEndpoints: 01
bInterfaceClass: 03
bInterfaceSubClass: 01
bInterfaceProtocol: 01
iInterface: 00

// HID:
bLength: 09
bDescriptorType: 21
bcdHID: 0110
bCountryCode: 00
bNumDescriptors: 01
bDescrType: 22
wDescriptorLength: 0040

// Report0 dump: len: 0040
05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
75 01 95 08 81 02 95 01 75 08 81 03 95 05 75 01
05 08 19 01 29 05 91 02 95 01 75 03 91 03 95 3E
75 08 15 00 26 98 00 05 07 19 00 29 98 81 00 C0

// Report:
Usage Page Gen Desktop Ctrls(01)
Usage Keypad
Collection Application
Usage Page Kbrd/Keypad(07)
Usage Min(E0)
Usage Max(E7)
Logical Min(00)
Logical Max(01)
Report Size(01)
Report Count(08)
Input(00000010)
Report Count(01)
Report Size(08)
Input(00000011)
Report Count(05)
Report Size(01)
Usage Page LEDs(08)
Usage Min(01)
Usage Max(05)
Output(00000010)
Report Count(01)
Report Size(03)
Output(00000011)
Report Count(3E)
Report Size(08)
Logical Min(00)
Logical Max(9800)
Usage Page Kbrd/Keypad(07)
Usage Min(00)
Usage Max(98)
Input(00000000)
End Collection

// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 81
bmAttributes: 03
wMaxPacketSize: 0040
bInterval: 01

// Parse data here: USB Descriptor and Request Parser

follow my problem on github.com
my keyboard not working · Issue #660 · felis/USB_Host_Shield_2.0 · GitHub

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.