Skip to content

Commit

Permalink
time for kickstarter
Browse files Browse the repository at this point in the history
  • Loading branch information
dekuNukem committed Oct 23, 2020
1 parent d39b29e commit 91ba007
Show file tree
Hide file tree
Showing 61 changed files with 360 additions and 212 deletions.
243 changes: 205 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,237 @@
# duckyPad: Do-It-All Mechanical Macropad

![Alt text](resources/pics/title.jpg)
[Kickstarter](#help-fund-duckypad-on-kickstarter) | [Official Discord](https://discord.gg/4sJCBx5) | [Getting Started](getting_started.md) | [Table of Contents](#table-of-contents)

duckyPad is a 15-key mechanical macro keypad with RGB backlight and OLED screen.
![Alt text](resources/pics/title.png)

When pressed, each key executes a user-defined script from an SD card.
duckyPad is a 15-key mechanical macropad that helps **consolidate and speed up your workflow** by automating keyboard inputs.

The scripts can be as simple as shortcuts like `ctrl+c`, or as complex as [creating root backdoors](https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payload---OSX-Root-Backdoor) or [grabbing passwords](https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payload---download-mimikatz%2C-grab-passwords-and-email-them-via-gmail). All customizable by you.
duckyPad offers a sleek design and features of a high-end mechanical keyboard (**`Hot-swap`**, **`RGB lighting`**, **`USB-C`**), along with macropad-specific innovations such as **`OLED display`**, **`duckyScript`**, **`SD-card storage`**, and more.

duckyPad offers limitless possibilities to consolidate and customise your workflows.
![Alt text](resources/pics/teaser.gif)

![Alt text](resources/pics/demo.gif)
When pressed, each key executes a user-created script to automate keyboard actions:

## Get a duckyPad!
![Alt text](resources/pics/header.gif)

Please see [Purchase Information](./purchase_information.md).
The scripts can be as simple as shortcuts like `Control + C`, or as sophisticated as launching applications, managing livestreams, or even [creating root backdoors](https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payload---OSX-Root-Backdoor) or [grabbing passwords](https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payload---download-mimikatz%2C-grab-passwords-and-email-them-via-gmail). It's all up to you!

## Official Discord
## Help fund duckyPad on Kickstarter!

Feel free to join the [official duckyPad discord](https://discord.gg/4sJCBx5) for questions, discussions, and updates.
A Kickstarter campaign is planned around `early November` for a public release of duckyPad. The project is currently under review.

## Features
In the meantime, please join the [official duckyPad discord](https://discord.gg/4sJCBx5) to keep up with announcements and updates, feel free to post any questions and comments you might have!

## Highlights

* 15 Mechanical Switches (Gateron Green by default)
* **`Hot-Swap`** Sockets
* Per-Key **`RGB Lighting`**
* **`OLED Screen`**, showing profile and key names.
* 32 profiles of 480 [duckyScripts](duckyscript_info.md)
* microSD storage
* USB-C Connector
* Works with all major OSs, no driver needed.
* Multiple keyboard layouts (WQERTY, AERTY, Dvorak)
* Fully Open Source!

## Showcase

By **`automating commonly used actions with duckyPad`**, you can streamline and speed up your everyday routine. Here are a few examples:

### Photoshop / CAD

You can put all your commonly used shortcuts in one place, resulting in a more efficient workflow:

![Alt text](resources/pics/cad.gif)

### Managing Livestreams

With the press of a key, you can switch scenes, start/stop stream, start/stop recording, play ads, and a lot more!

* 15 Cherry MX-style mechanical switches
* Customisable per-key RGB backlights
* Up to 32 profiles supported for 480 scripts
* OLED screen displaying current profile and key functions
* Standard [duckyScript](https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Duckyscript) parsed directly from microSD card
* USB-C connector
* No driver needed
![Alt text](resources/pics/obs.gif)

## You can use duckyPad to...
### Launching Applications

* Consolidate all shortcuts of your favourite apps in one place
* Switch scenes during streaming
* Launch your favourite apps
* Experiment with [badUSB attacks](https://arstechnica.com/information-technology/2014/07/this-thumbdrive-hacks-computers-badusb-exploit-makes-devices-turn-evil/)
* ...do anything you can think of with a single keypress!
You can set up duckyPad to open your favourite app with the press of a button:

## Examples
![Alt text](resources/pics/winapps.gif)

1-key badUSB attack ([script](/sample_profiles/unused/DANGER_key6_admin.txt)):
### Security Research

With the ability to automate keyboard inputs, it is possible to take over an entire computer with the push of a button.

This is known as [BadUSB attack](https://arstechnica.com/information-technology/2014/07/this-thumbdrive-hacks-computers-badusb-exploit-makes-devices-turn-evil/), and it was the original purpose of [duckyScript and USB Rubber Ducky](https://shop.hak5.org/products/usb-rubber-ducky-deluxe).

But of course, it's up to you to decide what to do!

![Alt text](resources/pics/badusb.gif)

Controlling Firefox ([scripts](/sample_profiles/profile3_firefox)):

![Alt text](resources/pics/firefox.gif)
### One-finger Twitch Chat

😉

![Alt text](resources/pics/twitch.gif)

### Switching Profiles

With all those potential usages, duckyPad supports up to 32 profiles.

Simply press the +/- button to switch between them:

![Alt text](resources/pics/profiles.gif)

### ... and more!

Those are just some examples! You can use duckyPad to do whatever **`you`** want!

## Features

### Mechanical Switches

duckyPad is compatible with Cherry MX-style mechanical switches (3 or 5-pin).

By default, duckyPad comes with **`Gateron Green`** switches, which are linear and clicky.

![Alt text](resources/pics/switch.jpg)

Of course, you can also install your own switches!

### Keycaps

By default, duckyPad comes with 15 blank translucent ABS R4 keycaps that complement the RGB backlight in all conditions:

![Alt text](resources/pics/caps.jpg)

Of course, you can also install your own key caps!

### Hot-swap Sockets

duckyPad supports hot-swapping with Kailh sockets.

You can install/remove the switches by hand, **`no soldering needed`**.

![Alt text](resources/pics/hotswap.gif)

### Per-key RGB backlight

Switch scenes on livestream:
Each key on duckyPad has its own configurable RGB backlight. You can assign them unique colours to suit your needs.

![Alt text](resources/pics/stream.gif)
### OLED screen

Eagle shortcuts ([scripts](/sample_profiles/profile5_eagle)):
duckyPad has an OLED screen. It displays current **`profile and key names`**, so you know what each key does at a glance.

![Alt text](resources/pics/eagle.gif)
* 1.3-inch blue OLED display
* High contrast with true OLED black
* 128 x 64 resolution
* Burn-in prevention

One-finger twitch spam ([scripts](/sample_profiles/profile4_twitch)):
![Alt text](resources/pics/oled_closeup.jpg)

![Alt text](resources/pics/twitchspam.gif)
### duckyScript

Those are just some examples. You can make it do whatever you want to by writing your own scripts!
duckyPad uses [duckyScript](duckyscript_info.md), a simple scripting language for keyboard automation. It was originally developed for [USB Rubber Ducky](https://shop.hak5.org/products/usb-rubber-ducky-deluxe).

duckyScript is easy and straightforward to write, but can also achieve powerful results.

As a simple example, let's say you want to open Task Manager, the script would look like this:

`CONTROL SHIFT ESC`

Wasn't that bad was it? Now when you press the key, duckyPad will execute the script and bring up the task manager, eliminating the need for memorising and pressing a 3-key combo.

![Alt text](resources/pics/task.gif)

Of course, duckyScript can do much more than that!

Here is a multi-line example that open up notepad, types "Hello world", and increases text size:

```
WINDOWS R
DELAY 400
STRING notepad
ENTER
DELAY 400
STRING Hello World!
CONTROL +
REPEAT 10
```

Note how simple and intuitive it is. You can write you own duckyScript very easily to achieve powerful results.

![Alt text](resources/pics/hello.gif)

Whether it's a simple hotkey or multi-line epic, duckyScript is ready to meet all your keyboard automation needs!

### SD Card Storage

duckyPad stores its scripts and settings on a regular microSD card. Compared to other methods:

* MicroSD cards are universal and inexpensive
* Easy to edit and backup
* Up to 64GB supported with FAT32 format

![Alt text](resources/pics/sd.jpg)

### Companion App

duckyPad comes with a companion app for Windows 10, macOS, and Linux. You can use it to:

* Manage profiles
* Manage key names, colours, and arrangements.
* Write, debug, and test-run duckyScript.
* Change, save, and backup configurations.

![Alt text](resources/pics/pcapp.png)

But more importantly, duckyPad app **`respects your privacy`**:

* Fully open-source
* No need to create an account
* No data collection whatsoever
* No internet connection required
* You don’t even have to use it! You can [set up your duckyPad manually](./manual_setup.md).

### USB-C and Device Compatibility

duckyPad uses USB-C connector for maximum device compatibility.

![Alt text](resources/pics/usbc.jpg)

You can use duckyPad out-of-box on nearly anything that supports USB keyboards, **`no driver needed`**. Examples include:

* PC
* Mac
* Linux
* Raspberry Pi (yes i know it's linux too)
* iPhone / iPad
* Android phones and tablets
* Chromebooks
* Game consoles
* and more!

![Alt text](resources/pics/devices.gif)

duckyPad’s firmware can also be easily updated via USB-C for new features and bug fixes.

### Keyboard Layouts

duckyPad supports multiple keyboard layouts:

* WQERTY
* AZERTY (French)
* AZERTY (Belgium)
* Dvorak

More will be available if needed.

## I want one!

Please see [Purchase Information](./purchase_information.md).
A Kickstarter campaign is planned around `early November` for a public release of duckyPad. The project is currently under review.

In the meantime, please join the [official duckyPad discord](https://discord.gg/4sJCBx5) to keep up with announcements and updates, feel free to post any questions and comments you might have!

## Getting started

Expand All @@ -86,8 +253,6 @@ A number of projects are based on duckyPad, they are listed here!

[Main page](README.md)

[Buy a duckyPad](purchase_information.md)

[Getting Started Guide](getting_started.md)

[Kit Assembly Guide](kit_assembly_guide.md)
Expand All @@ -96,6 +261,8 @@ A number of projects are based on duckyPad, they are listed here!

[Firmware Updates and Version History](firmware_updates_and_version_history.md)

[Manual Setup](./manual_setup.md)

[Build a duckyPad Yourself](build_it_yourself.md)

## Questions or Comments?
Expand Down
8 changes: 4 additions & 4 deletions build_it_yourself.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Making a duckypad yourself
# Make a duckyPad Yourself!

[Table of Contents](#table-of-contents) | [Buy duckyPad](/purchase_information.md) | [Official Discord](https://discord.gg/4sJCBx5)
[Kickstarter](README.md#help-fund-duckypad-on-kickstarter) | [Official Discord](https://discord.gg/4sJCBx5) | [Table of Contents](#table-of-contents)

------

Expand Down Expand Up @@ -98,8 +98,6 @@ One interesting design detail is the RGB LED. The WS2812(and its clones) require

[Main page](README.md)

[Buy a duckyPad](purchase_information.md)

[Getting Started Guide](getting_started.md)

[Kit Assembly Guide](kit_assembly_guide.md)
Expand All @@ -108,6 +106,8 @@ One interesting design detail is the RGB LED. The WS2812(and its clones) require

[Firmware Updates and Version History](firmware_updates_and_version_history.md)

[Manual Setup](./manual_setup.md)

[Build a duckyPad Yourself](build_it_yourself.md)

## Questions or Comments?
Expand Down
6 changes: 3 additions & 3 deletions duckyscript_info.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Writing duckyScript

[Table of Contents](#table-of-contents) | [Buy duckyPad](/purchase_information.md) | [Official Discord](https://discord.gg/4sJCBx5)
[Kickstarter](README.md#help-fund-duckypad-on-kickstarter) | [Official Discord](https://discord.gg/4sJCBx5) | [Table of Contents](#table-of-contents)

------

Expand Down Expand Up @@ -174,8 +174,6 @@ CONTROL w

[Main page](README.md)

[Buy a duckyPad](purchase_information.md)

[Getting Started Guide](getting_started.md)

[Kit Assembly Guide](kit_assembly_guide.md)
Expand All @@ -184,6 +182,8 @@ CONTROL w

[Firmware Updates and Version History](firmware_updates_and_version_history.md)

[Manual Setup](./manual_setup.md)

[Build a duckyPad Yourself](build_it_yourself.md)

## Questions or Comments?
Expand Down
16 changes: 9 additions & 7 deletions firmware_updates_and_version_history.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# duckyPad Firmware Updates and Version History

[Table of Contents](#table-of-contents) | [Buy duckyPad](/purchase_information.md) | [Official Discord](https://discord.gg/4sJCBx5)
[Kickstarter](README.md#help-fund-duckypad-on-kickstarter) | [Official Discord](https://discord.gg/4sJCBx5) | [Table of Contents](#table-of-contents)

-----

Expand All @@ -22,17 +22,20 @@ You can update duckyPad's firmware via USB, for bug fixes and and/or new feature

To do this, download and install the [STM32 DfuSe tool](resources/en.stsw-stm32080_stm32_DfuSe.zip) from this repo. (You can also download it from [the official website](https://www.st.com/en/development-tools/stsw-stm32080.html), but it requires creating an account.)

First, locate the debug buttons on the board:
First, locate the **`DFU`** button on the board:

![Alt text](resources/pics/dfu_buttons_new.jpg)


![Alt text](resources/pics/buttons.jpg)

To update firmware:

* Make sure the board is unplugged.

* **Press and hold down the DFU button (one on the left)** while plugging it into a computer.
* **`Hold down DFU button`** while plugging it into a computer.

* Once it is plugged in, you can release the button.
* Once plugged in, you can release the button.

If all went well, the backlight and display should stay off.

Expand Down Expand Up @@ -134,8 +137,6 @@ Initial Release

[Main page](README.md)

[Buy a duckyPad](purchase_information.md)

[Getting Started Guide](getting_started.md)

[Kit Assembly Guide](kit_assembly_guide.md)
Expand All @@ -144,8 +145,9 @@ Initial Release

[Firmware Updates and Version History](firmware_updates_and_version_history.md)

[Build a duckyPad Yourself](build_it_yourself.md)
[Manual Setup](./manual_setup.md)

[Build a duckyPad Yourself](build_it_yourself.md)
## Questions or Comments?

Please feel free to [open an issue](https://github.com/dekuNukem/duckypad/issues), ask in the [official duckyPad discord](https://discord.gg/4sJCBx5), DM me on discord `dekuNukem#6998`, or email `dekuNukem`@`gmail`.`com` for inquires.
Loading

0 comments on commit 91ba007

Please sign in to comment.