Giter Site home page Giter Site logo

rpipico-macroboard---beginner-project's Introduction

RPIPico-Macroboard---Beginner-Project

This is a simple macroboard made using Raspberry PI Pico and Circuitpython, with a couple of extra components to spice it up, such as:

  • A programmable ssd1306 oled screen for displaying custom wallpapers and command names
  • Powerful default preset with support for various uses
  • Simple and customizable code (made specifically to make adding new buttons/commands relatively simple)
  • Knob control with a rotary encoder
  • Customizable aesthetic settings with txt files

Setup

First and foremost, we are going to need:

  • Raspberry Pi Pico (pico H and W should also work fine) with Circuitpython flashed onto it (I'm using version 8.2.6) To flash it use the guide: https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/circuitpython
  • Circuitpython library bundle on your Desktop, we will need some of the libraries in this for our project
  • Simple Circuitry gear: breadboard, LEDs, jumper wires, pushbuttons (unless you want to jump straight from prototyping to a PCB)
  • SSD1306 Oled 128x64 screen --Note: other models might also work, but this guide uses this screen specifically due to its low cost and good performance.
  • Basic rotary encoder (works as long as it has the usual CLK, DT and SW pins, further explanations on them will come later)
  • Mechanical keyboard switches

Useful links:

Installing and running code

Running the code should be as simple as plugging in your components, uploading the code and files in the HID folder to your CIRCUITPY drive and running it (assuming the correct pins are connected, this will be standardized if you use the PCB model)

Example:

#add your shortcut to a button's corresponding actionIndex in the actionList in the specific mode you want it to be in:
#for example, here's how I would add Copy and Paste to the same button in different modes:

#define the shortcut in actionList
actionList = [[Keycode.COMMAND, Keycode.C], [Keycode.COMMAND, Keycode.V]]

#or on windows
actionList = [[Keycode.CONTROL, Keycode.C], [Keycode.CONTROL, Keycode.V]]

#define btn and actionIndex in index 0
button1 = btn(board.GP20, 0, ["Copy", "Paste"])

rpipico-macroboard---beginner-project's People

Contributors

gabiervo avatar

Watchers

 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.