GithubHelp home page GithubHelp logo

hotkey's Introduction

Hotkey

Introduction

Elevate your 3D printing experience with our latest innovation, the HotKey Macro Buttons designed exclusively for the discerning 3D printing enthusiast.

Key Features:

  • Dedicated MCU: Built on the robust and reliable RP2040 platform, our HotKey system guarantees a seamless integration and flawless performance.
  • 12 Linear Red Switched Macro Buttons: Customize your 3D printer like never before. With 12 programmable macro buttons, execute your frequently used commands with a single press. Whether you’re toggling between settings, setting up a new print, or any other task, speed and convenience are at your fingertips.
  • Designed with Voron in Mind: While our HotKey Macro Buttons can enhance any 3D printing setup, they were meticulously designed with the Voron Trident and Voron 2.4 models as the primary inspiration. This ensures an impeccable fit and intuitive usage for Voron users.
  • Seamless Integration: Add these buttons to your printer's skirt without any hassle. Our design philosophy prioritizes both aesthetics and functionality, ensuring your 3D printer not only gets a boost in efficiency but also looks sleeker.

Firmware

Katapult (Formally CAN Boot)

Katapult is used to allow easy upgrading of your formware down the line, and is not just soley for CAN based devices.

Setup Katapult

If you already have Katapult installed, you can skip this step.

  1. Connect to your Klipper host computer via ssh.
  2. Clone the Katapult firmware to your Klipper Host
cd ~/
git clone https://github.com/Arksine/katapult
  1. Within either Fluidd or Mainsail UI, Edit your Moonraker.conf and add the following at the bottom to allow Moonraker to manage your Katapult updates.
[update_manager Katapult]
type: git_repo
path: ~/katapult
origin: https://github.com/Arksine/katapult.git
is_system_service: False

Compile Katapult Firmware

  1. Navigate into the Katapult Directory
cd ~/katapult
  1. Run make clean
make clean KCONFIG_CONFIG=config.hotkey
  1. Open menuconfig
make menuconfig KCONFIG_CONFIG=config.hotkey
  1. Set the following settings
    • Micro-controller Architecture (Raspberry Pi RP2040)
    • Flash Chip (W25Q080 with CLKDIV 2)
    • Build Katapult deployment application (Do not build)
    • Communication interface (USB)
    • () GPIO pins to set on bootloader entry
    • [*] Support bootloader entry on rapid double clip of reset button
    • [_] Enable bootloader entry on button (or gpio) state
    • [_] Enable Status LED

image

  1. Quit and save the configuration
  2. Run the make command to compile the firmware
   make KCONFIG_CONFIG=config.hotkey -j4
  1. You should now have a katapult.uf2 file at ~/katapult/out/

Burn Katapult Firmware to the Hotkey Pad

  1. Use a USB-C data cable to connect the Hotkey Pad board to the klipper host.
  2. Press the boot button while inserting the USB Cable to put the Hotkey Pad into boot mode.
  3. Run lsusb to see if the connection is successful.
  lsusb

image

You should see a device with the ID 2e8a:0003 Raspberry Pi RP2 Boot, if that doesn't show, please start at step 1 again.

  1. Flash the Hotkey Pad
sudo make KCONFIG_CONFIG=config.hotkey flash FLASH_DEVICE=2e8a:0003
  • You will be prompted to enter your password.
  • This will flash the Katapult bootloader image and restart the Hotkey Pad
  1. Once complete, reboot your host computer and move onto flashing Klipper

Klipper

Compile Klipper firmware for the Hotkey Pad

  1. Connect to your Klipper host computer via ssh.
  2. cd to the Klipper directory
cd ~/klipper
  1. Run make clean
make clean KCONFIG_CONFIG=config.hotkey
  1. Open menuconfig
make menuconfig KCONFIG_CONFIG=config.hotkey
  1. Set the following settings

    • [*] Enable extra low-level configuration options
    • Micro-controller Architecture (Raspberry Pi RP2040)
    • Bootloader offset (16KiB bootloader)
    • Communication interface (USB)
    • ( ) GPIO pins to set at micro-controller startup (NEW) image
  2. Quit (press q) and save the configuration

  3. Run Make to compile the firmware

make KCONFIG_CONFIG=config.hotkey -j4

Flash Klipper USB firmware with Katapult over USB

  1. Find the Serial ID (hint - it will likely say rp2040 in the name. If you have multiple rp2040 based devices, check your printer.cfg and see which ones you are already using).
ls /dev/serial/by-id

image

  1. Copy the ID containing ‘rp2040’ and make a note of it for use in your printer.cfg.
  2. Run the make flash command to flash the firmware
make KCONFIG_CONFIG=config.hotkey flash FLASH_DEVICE= {Your serial ID here }

Example

make KCONFIG_CONFIG=config.hotkey flash FLASH_DEVICE=/dev/serial/by-id/usb-katapult_rp2040_E6625C4893378533-if00

image

  1. Your Hotkey Pad should now have Klipper Firmware installed and be ready to use. You can check it's worked by running another
ls /dev/serial/by-id

Configuration

How to use all this stuff:

  1. Copy this .cfg file into your Klipper config directory and then add [include Hotkey.cfg] to the top of your printer.cfg in order to register the MCU, LEDs and macros with Klipper.
  2. If you installed the Stealthburner as well and want to get the "STATUS_ERROR" state transmitted to the hotkey button PCB, you have to replace the "STATUS_ERROR" Macro in your stealthburner_leds.cfg with this:
[gcode_macro status_error]
gcode:
    STATUS_ERROR_HOTKEY
    _set_sb_leds_by_name leds="logo" color="error" transmit=0
    _set_sb_leds_by_name leds="nozzle" color="error" transmit=1
  1. Connect the PCB via USB to your RaspberryPi and SSH to your Pi
  2. Get the Serial ID of the PCB with "ls /dev/serial/by-id/*". Usualy it´s like usb-Klipper_rp2040_xxx
  3. Replace the serial under the [mcu hotkey] section with your id
  4. Save your config and restart Klipper.

hotkey's People

Contributors

eliwong avatar richardthf 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.