Hike News
Hike News

【IC】The LittleFoot LX - (Prototype Pics!)

类型: IC
作者: The_Royal
发布时间: 2019-11-08 16:54:41
更新时间: 2019-12-17 21:07:22
原链接: https://geekhack.org/index.php?topic=103338.0


Little Foot (Luxury Ed.)
A Mighty Small Keyboard

What’s up my people, Im back here today to open up the interest check on a more interesting project of mine in the works to come to fruition in the near future.
Meet, the Little Foot! A small, fun, and classy “45%” keyboard.
Where We Began:

The Little Foot is a project of mine that all started as a sort of personal challenge.
Both in some tray-mounting design, as well as some more complex firmware/code construction.
Trying to push the limit of how small I could realistically go, I wanted to dive more into chording, combos, layer tapping and LED configuration, all without making something overtly complicated. Keeping it fun; as I often really try to do.
Overall, I’ve been pretty happy with the outcome.
The Pro Micro Revision (most recent full rev) has/currently is already Fully Open Sourced.
You can find a link to the full Little Foot rev2.3 GitHub Repository here:
https://github.com/TheRoyalSweatshirt/The-Little_Foot-Keyboard-rev2.3
With people responding well to the project in general, I thought it would be fun to explore the idea of giving the Little Foot a nice, premium option of case and PCB. For those that want the ultimate experience in obscurity and unique’ish keyboards.
The Case:
Taking a few design inspirations from easily one of my favorite designers in the community, LazyDesigners, The Little Foot Case is a simple no frills, case with a classy finish.


Key Case Notes:

  • Balanced Tray Mounting style design (i.e. Good Tray Mounting; Even typing feel)
  • 4° Typing Angle
  • Small, but Hefty Case Walls
  • Back Face “Badge”/“Weight”
  • Heavy-Biased Chamfered Edges
  • Integrated M2 Mounting Points
    Will be offered in two variants:
  • Anodized Aluminum: PANTONE “Warm Grey 1C”
  • Bead Blasted Clear Polycarbonate
    The PCB:
    The Simple and Playful Design and Focus of the Little Foot lends itself to be a perfect board to experiment with. Playing with different switches, different layouts, or maybe just a larger than average Macro Pad. This is what it was designed around.
    /*/*Renders of rev.Alpha LittleFoot LX PCB: Subject to change (its a bit ugly right now lol) everything will be cleaned up substantially after this initial alpha testing has passed QC.


    Key PCB Notes:
  • Full Kaihl Hot-Swap Integration
  • USB Type-C
  • x4 Mounting points; Even feel and sound
  • x2 RGB LED Indicators; Layer Triggers, Mini Dance Parties, or whatever else the QMK Masterminds come up with.
  • Simple Layout Options: No more bUT HOw DO yoU tYpE NUmBeRs?!…Now you can have your 45% Keyboard, and dish out them sweet numerical data entries with ease.
  • Clean Silkscreen Design (if that matters to anyone lol)
    The Little Foot Layout:

    As part of the basis for this project, the biggest Challenge was…obviously…how can I make this actually usable as a fully functional keyboard?
    I dove into the interwebs and sought the help of some of the Grand Master of QMK to assist me in getting the knowlege I required to craft the firmware for the Little Foot.
    After YEARS of dedicated study and hours of copy/pasting lines of code…I completed my mission.
    Comprehensive Deluxe Little Foot Layout:
  • A graphical representation -
    /*/*This keymap gets better everyday so it might be slightly different at GB…but I’m trying to perfect the 7u “Alpha-Only” layout to make it as complete as possible :)

    Raw keymap.c Code:
    More

Code: [Select]

/#include QMK_KEYBOARD_H /#include “quantum.h” /#include “rgblight.h” // Layer names enum{ // - Base layer: _BASE, // - Symbols, numbers, and functions: _FN, // - Alternate Function layer: _LN, // - HYPE-BOI Function layer: _HYPE }; //Tap Dance Declarations enum { TD_QUES_ENT = 0, TD_SPC_SHFT = 1, TD_CTRL_Z = 2, TD_CTRL_Y = 3, TD_CTRL_C = 4, TD_CTRL_V = 5, TD_CTRL_A = 6, TD_P_BSLS = 7, TD_QUOTE = 8, TD_SDCOL = 9 }; //Tap Dance Definitions qk_tap_dance_action_t tap_dance_actions[] = { //Tap once for /?, twice for Enter [TD_QUES_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_ENT), [TD_SPC_SHFT] = ACTION_TAP_DANCE_DOUBLE(KC_SPACE, KC_LSFT), [TD_CTRL_Z] = ACTION_TAP_DANCE_DOUBLE(KC_Z, LCTL(KC_Z)), [TD_CTRL_Y] = ACTION_TAP_DANCE_DOUBLE(KC_Y, LCTL(KC_Y)), [TD_CTRL_C] = ACTION_TAP_DANCE_DOUBLE(KC_C, LCTL(KC_C)), [TD_CTRL_V] = ACTION_TAP_DANCE_DOUBLE(KC_V, LCTL(KC_V)), [TD_CTRL_A] = ACTION_TAP_DANCE_DOUBLE(KC_A, LCTL(KC_A)), [TD_P_BSLS] = ACTION_TAP_DANCE_DOUBLE(KC_P, KC_BSLS), [TD_QUOTE] = ACTION_TAP_DANCE_DOUBLE(KC_QUOTE, KC_DQT), [TD_SDCOL] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_COLN) // Other declarations would go here, separated by commas, if you have them }; enum combos { combo_ESC, combo_BACK, combo_TAB, combo_PINKYCTRL, combo_DELETE, combo_ALT }; const uint16_t PROGMEM esc_combo[] = {KC_1, KC_2, COMBO_END}; const uint16_t PROGMEM bspc_combo[] = {KC_9, KC_0, COMBO_END}; const uint16_t PROGMEM tab_combo[] = {KC_Q, KC_W, COMBO_END}; const uint16_t PROGMEM pinkyctrl_combo[] = {KC_A, KC_S, COMBO_END}; const uint16_t PROGMEM del_combo[] = {KC_1, KC_0, COMBO_END}; const uint16_t PROGMEM alt_combo[] = {KC_COMM, KC_DOT, COMBO_END}; combo_t key_combos[COMBO_COUNT] = { [combo_ESC] = COMBO(esc_combo, KC_ESC), [combo_BACK] = COMBO(bspc_combo, KC_BSPC), [combo_TAB] = COMBO(tab_combo, KC_TAB), [combo_PINKYCTRL] = COMBO(pinkyctrl_combo, KC_LCTRL), [combo_DELETE] = COMBO(del_combo, KC_DEL), [combo_ALT] = COMBO(alt_combo, KC_LALT) }; enum custom_keycodes { PASTA = SAFE_RANGE, DBLBK, ALLCOPY }; bool process_record_user(uint16_t keycode, keyrecord_t /*record) { switch (keycode) { case PASTA: if (record->event.pressed) { // when keycode QMKBEST is pressed SEND_STRING(“HERE WE GO BOYS! The [INSERT SUB-60 KEYBOARD HERE] layout is the greatest thing ever let me tell you sir. First of all class ic inspirations on the [Keyboard] blocker style IT also has the ; and ‘ kjeys unless other competitors in the 40% space which I find completely unreplaceable in layers it also has extra keys for macros (read: artisans- I absolutely love the layout where you have numbers/!@/#$%^ that replace qwerty it means i can type for long periods of time without twisting my hands at all whereas on a normal board you ahve to twist your wrists sometimes to type for me I just have to hold down left space and click asdf to get to numbers It’s also just gorgeous IMO Ano quality is good, engraving is good, I like how he made it so you can buy a 40% sized board/layout but not need to buy 40% sized modifiers for your keyboard so you can use base kits and uh yeah that’s it That’s why the [INSERT SUB-60 KEYBOARD HERE] is my every day board I literally am typing on it right now and have used it every single day at work for the last 4 months 0 inftention to ever stop”); } else { // when keycode QMKBEST is released } break; case DBLBK: if (record->event.pressed) { // when keycode QMKURL is pressed SEND_STRING(“[]” SS_TAP(X_LEFT)); } else { // when keycode QMKURL is released } break; case ALLCOPY: if (record->event.pressed) { SEND_STRING(SS_LCTRL(“ac”)); // selects all and copies } break; } return true; }; /#define FN MO(_FN) /#define LN MO(_LN) /#define xxx KC_TRNS const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_big_space_base( KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, FN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD_QUES_ENT), MT(MOD_LSFT, KC_SPC) ), [_FN] = LAYOUT_big_space_base( TD(TD_QUOTE), xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_PLUS, KC_MINS, TD(TD_SDCOL), KC_UP, xxx, xxx, xxx, xxx, xxx, xxx, KC_EQL, KC_UNDS, KC_LEFT, KC_DOWN, KC_RGHT, xxx, xxx, xxx, DBLBK, xxx, TD(TD_SDCOL), xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_LCBR, KC_RCBR, xxx, KC_BSLS, LN ), [_LN] = LAYOUT_big_space_base( DBLBK, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, PASTA, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, LCTL(KC_A), xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, LCTL(KC_Z), xxx, LCTL(KC_C), LCTL(KC_V), xxx, xxx, xxx, xxx, xxx, KC_PIPE, xxx ) }; layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(state)) { case _FN: rgblight_setrgb (RGB_BLUE); break; case _LN: rgblight_setrgb (RGB_RED); break; default: // for any other layers, or the default layer rgblight_setrgb (RGB_WHITE); break; } return state; }
It’s almost enough to bring a tear to your eye :D
And it is in fact very usable once you get used to it. I have constructed this entire IC Thread with nothing but a Pro-Micro Based Little Foot.
Renders of Little Foots…Little Feet?:













What Perfection Looks Like:

**/Note On Design:*
For those concerned, I’ve spoken with my engineers at the factory I will be using for the production milling and they have ensured me that these mounting points will be fine for this application in regards to the Polycarbonate variant of the Case.

I have a single prototype unit ordered in polycarbonate as well as the aluminum variant for testing. I’m not as experienced with the milling of plastics but this is a good opportunity for me to learn a few things :)
Estimate on Pricing:
No Final numbers by any means as of right now but the final cost of kit is estimated to be less than $150.00 USD for a complete Kit Including:

  • x1 HotSwap Little Foot SMD PCB
  • x1 Little Foot Case (Aluminum or PC Same Price)
  • x1 4mm Thick Sand Blasted Brass Back-Face Badge/“Weight”
  • x1 1.5mm SandBlased Brass Switch Plate
  • x2 Long Molded Silicone Bumpons
  • x8 7mm Barrel-Head SS M2 Torx Screws
  • Misc. Goodies & Stickers
    Current Details/What’s Next:
    Prototype Pics!









    Prototype PCBs Approved!


    GB Coming in January!
    Id love to hear your thoughts on the Little Foot project in general.
    Drop into the Little Foot Google Form and give me some of your input if your interested!
    I’m mainly wanting this first run to a smaller type buy, maybe ~20-30 Total Units with 2 Case Options, PANTONE Warm Grey 1C Anodized Aluminum, or Polycarbonate. Lower number of units Mainly because I just want one and Its much easier on my wallet if can make up some of the cost of design and prototyping with a few other order fulfillments as well.
    I don’t imagine there being a super high demand to entail a higher production of case.
    So, point being, if you are interested PLEASE LET ME KNOW, I may not have the opportunity to run this type of buy again. [/size]
    THANK YOU FOR READING THE WORDS I TYPED!
,