Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DigiKeypack

A bundle of keyboard layouts for digistump AVR boards including many layouts.

ℹ️ General Info

Extension of the Digispark Keyboard library, originally included in the DigistumpArduino drivers for the Arduino IDE.

(c) ANYGATE 2026 - Licensed under GNU GPL
⚠️ Intended for educational purposes only if used for pen-testing.

Tested & working on:

  • macOS
  • Windows 10 & 11
  • Kali Linux
  • Ubuntu 20 & 22

Credits

Adaptation of Layouts

  • digistump (US)
  • adnan-alhomssi (De)
  • Maiux92 (It)
  • Robotechnic (Fr)

All users are on Github

V-USB driver by OBJECTIVE DEVELOPMENT GmbH. Distributed under GNU GPL v2 by digistump.

Documentation

The library works like the original.

Quick explaination

DigiKeyboard.sendKeyStroke( int );

Sends a specific Key, e.g. the Windows key (128).

DigiKeyboard.print( String );

Prints a string.

DigiKeyboard.delay( int );

Delay to keep the device alive when plugged in.
Windows keeps checking if the device is alive, so by using DigiKeyboard.delay(); it keeps it alive even during a pause. The default Arduino delay won't.

Currently supported layouts

Listed with the Language followed by the language code in brackets:

  • US (Us)
  • German (De)
  • Italian (It)
  • French (Fr)

Installation

  1. Download (or clone) this repository.
  2. Copy the downloaded or cloned folder.
  3. Go to your Documents folder, then to the Arduino folder. If there is a "libraries" folder simply open it, if not create one and then continue.
  4. Paste the DigiKeypack folder here.
  5. Restart your Arduino IDE
    And you're done!

Usage/Examples

It is really simple to use. Simply include the header file with the desired layout and use it like the original library.

To select a layout, simply add the language code (see documentation above) at the end of "DigiKeyboard", so that it would be like this: #include DigiKeyboard[lang].h

For the US layout would that be: #include "DigiKeyboardUs.h"

⚠️ Including more than one layout will give an error when you try to compile.

Examples for all layouts (Windows):

US Layout

//Including the US layout
#include "DigiKeyboardUs.h"

void setup() {
    DigiKeyboard.sendKeyStroke(0);          //Pressing nothing (used for older systems)
    DigiKeyboard.sendKeyStroke(0, 128);     //Pressing the Windows-key

    DigiKeyboard.delay(1000);               //Wait a second

    DigiKeyboard.print("Notepad");          //Writes "Notepad" in the search bar.
    DigiKeyboard.delay(300);                //300ms delay
    DigiKeyboard.sendKeyStroke(KEY_ENTER);  //Pressing enter

    DigiKeyboard.delay(1000);               //Wait a second

    DigiKeyboard.print("Hello world!");     //Writes "Hello world!" into Notepad
}

void loop () {
    //Do nothing.
}

German layout

//Including the German layout
#include "DigiKeyboardDe.h"

void setup() {
    DigiKeyboard.sendKeyStroke(0);          //Pressing nothing (used for older systems)
    DigiKeyboard.sendKeyStroke(0, 128);     //Pressing the Windows-key

    DigiKeyboard.delay(1000);               //Wait a second

    DigiKeyboard.print("Notepad");          //Writes "Notepad" in the search bar.
    DigiKeyboard.delay(300);                //300ms delay
    DigiKeyboard.sendKeyStroke(KEY_ENTER);  //Pressing enter

    DigiKeyboard.delay(1000);               //Wait a second

    DigiKeyboard.print("Hello world!");     //Writes "Hello world!" into Notepad
}

void loop () {
    //Do nothing.
}

Italian Layout

//Including the Italian layout
#include "DigiKeyboardIt.h"

void setup() {
    DigiKeyboard.sendKeyStroke(0);          //Pressing nothing (used for older systems)
    DigiKeyboard.sendKeyStroke(0, 128);     //Pressing the Windows-key

    DigiKeyboard.delay(1000);               //Wait a second

    DigiKeyboard.print("Notepad");          //Writes "Notepad" in the search bar.
    DigiKeyboard.delay(300);                //300ms delay
    DigiKeyboard.sendKeyStroke(KEY_ENTER);  //Pressing enter

    DigiKeyboard.delay(1000);               //Wait a second

    DigiKeyboard.print("Hello world!");     //Writes "Hello world!" into Notepad
}

void loop () {
    //Do nothing.
}

French Layout

//Including the French layout
#include "DigiKeyboardFr.h"

void setup() {
    DigiKeyboard.sendKeyStroke(0);          //Pressing nothing (used for older systems)
    DigiKeyboard.sendKeyStroke(0, 128);     //Pressing the Windows-key

    DigiKeyboard.delay(1000);               //Wait a second

    DigiKeyboard.print("Notepad");          //Writes "Notepad" in the search bar.
    DigiKeyboard.delay(300);                //300ms delay
    DigiKeyboard.sendKeyStroke(KEY_ENTER);  //Pressing enter

    DigiKeyboard.delay(1000);               //Wait a second

    DigiKeyboard.print("Hello world!");     //Writes "Hello world!" into Notepad
}

void loop () {
    //Do nothing.
}

About

A bundle of keyboard layouts for digistump AVR boards including many layouts.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages