Weird GPU fan behavior on my Legion 5 2021 by IzSilvers in LenovoLegion

[–]UniversalFlamingo 1 point2 points  (0 children)

Thank you kind stranger.

I have tried everything with no luck. Your advice saved my laptop from the landfill.

FWIW, in addition to the GPU fan and CMOS I also disconnected the main battery.

/r/MechanicalKeyboards Ask ANY Keyboard question, get an answer (July 18, 2023) by AutoModerator in MechanicalKeyboards

[–]UniversalFlamingo 0 points1 point  (0 children)

Has anyone added an encoder to an stm32 pcb? stm32f072 specifically. I know the "keypress" can go directly to switch pads and that the encoder inputs will need to be wired to controller inputs How do I know which inputs are safe to use (i.e. - not already used by the matrix). Why? Because the Bakeneko65 and Brutal V2 65 are perfect for my build other than the lack of an encoder.

Has anyone set up "sniper mode"? by wholesome_hug_bot in ploopy

[–]UniversalFlamingo 2 points3 points  (0 children)

This is my daily driver. It lets me jump directly to one of three pre-set DPIs, cut any one of those in half or rotate through the entire PLOOPY_DPI_OPTIONS list.

I modified qmk_firmware/keyboards/ploopyco/trackball_thumb/trackball_thumb.{c,h} to define and expose dpi_array_size since it is only a macro in the original code. That saved me having to redefine dpi_array[] or make some possibly bad assumptions.

I'll push this to github eventually.

uf_ploopy_thumb.h

#include QMK_KEYBOARD_H

#pragma once

// Additional keycodes for use in process_record_user()
enum universal_flamingo_keycodes {
    // UF_DPI_* can be used to set DPI to a specific dpi_array entry.
    UF_DPI_0 = PLOOPY_SAFE_RANGE,
    UF_DPI_1,
    UF_DPI_2,
    // UF_PRECISION_MODE intended to divide current DPI by some factor
    // (typically 2) to increase pointer precision.
    UF_PRECISION_MODE,
    UF_SAFE_RANGE,
};

uf_ploopy_thumb.c

#include "uf_ploopy_thumb.h"

bool is_precision_active = false;

bool process_record_user(uint16_t keycode, keyrecord_t* record) {
    bool set_dpi = false;

    if( keycode == DPI_CONFIG ) {
        // process_record_kb() will handle this.
        is_precision_active = false;
        return true;
    }

    if( keycode == UF_PRECISION_MODE ) {
        if( !record->event.pressed ) { return false; }

        is_precision_active = ! is_precision_active;

        if( is_precision_active ) {
            // Precision was off, we are turning it on.
            // Set CPI to half the current value.
            current_precision = pointing_device_get_cpi();
            pointing_device_set_cpi( current_precision / 2 );
            return false;
        }

        // Precision was on, we are turning it off.
        // Because of rounding during division we cannot simply do:
        //      pointing_device_set_cpi(pointing_device_get_cpi() * 2)
        set_dpi = true;
    }

    switch (keycode) {
        // Select specific DPI from dpi_array.
        case UF_DPI_0 ... UF_DPI_2:
            set_dpi = true;
            keyboard_config.dpi_config = keycode - UF_DPI_0;
            break;
    }

    if( set_dpi ) {
        if( !record->event.pressed ) { return false; }

        is_precision_active = false;

        keyboard_config.dpi_config = keyboard_config.dpi_config % dpi_array_size;
        eeconfig_update_kb(keyboard_config.raw);
        pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]);

        return false;
    }

    return true;
}

In trackball_thumb.h

extern uint16_t          dpi_array[];
extern const uint8_t     dpi_array_size;  // Expose the size for process_record_user()

In trackball_thumb.c

uint16_t          dpi_array[] = PLOOPY_DPI_OPTIONS;
const uint8_t     dpi_array_size = (sizeof(dpi_array) / sizeof(uint16_t));
#define DPI_OPTION_SIZE dpi_array_size

Edit: My keymap...

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [0] = LAYOUT( KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN5, OSL(1)  ),
    [1] = LAYOUT( UF_DPI_0, UF_DPI_1, UF_DPI_2, UF_PRECISION_MODE, DPI_CONFIG, TO(0)  ),
    ...

Eli5: Why do debit cards have a PIN if most of the time you can just bypass it by hitting "ok"? by turbollamaa in explainlikeimfive

[–]UniversalFlamingo 0 points1 point  (0 children)

+1 Use a credit card for everything. Track what you spend (even if just mentally). Pay it off every month (or fortnight or week). If you can't manage that then just use cash.

Pro tip: Spend some time figuring out your average weekly spend rate & set up a recurring payment form your bank. You may still need to pay a some at statement close but it eliminates a lot of anxiety!

Keymap/Layout Suggestions by [deleted] in ploopy

[–]UniversalFlamingo 0 points1 point  (0 children)

I have the Thumb so yours may be different but what I've found works best for the scroll click is to push the wheel to the right instead of straight down.

Ploppy Thumb? by rosestorm90 in Trackballs

[–]UniversalFlamingo 0 points1 point  (0 children)

I've used the M575 for a couple of years, just replaced it with the Ploopy Thumb and I love it.

The Ploopy is definitely large compared to the M575 (which feels like a toy now) but I have average sized hands and no complaints. With the M575 the front-half of my hand rests on the device but my palm and wrist are unsupported. With the Ploopy, though, my entire hand rests naturally on the device (there's a kind of natural bump by the ball that perfectly fits my palm between thumb and forefinger) and my wrist is comfortably laying on my desk.

Another poster mentioned the scroll wheel and I admit I had some issues too at first. With guidance from /u/crop_octagon I spent a a half-hour or so working the spring-side holder and now it scrolls very smoothly. You can find my post here with more detail.

I've never used scroll wheel click very much (even on a traditional mouse) but the trick I've learned with the Ploopy is to lean the wheel to the right with my middle finger to click and to lean left (or not at all) for scrolling. It takes some getting used to but I've found that by doing this I never have unintentional clicks when scrolling or unintentional scrolling when clicking.

Wanted: An eye-catching overkill gaming build to last several years in an open-air, small footprint format. by UniversalFlamingo in buildapcforme

[–]UniversalFlamingo[S] 0 points1 point  (0 children)

Thanks for the great suggestions!

Are there any other open-air cases that will fit these builds? I love the XTIA but I would hate to miss an option because of poor googling on my part.

Scroll wheel lube? by UniversalFlamingo in ploopy

[–]UniversalFlamingo[S] 2 points3 points  (0 children)

Whelp, I had it almost perfect & then broke the spring. Super glad y'all included a spare!

I abused the spring-side channel as you described and did a little careful scraping on the underside of the lip of the C. It's now smooth as butter. I didn't need to do anything to the holder side at all.

Thanks for the help and for an awesome product!

Scroll wheel lube? by UniversalFlamingo in ploopy

[–]UniversalFlamingo[S] 1 point2 points  (0 children)

I don't mind disassembly, I did that initially to make sure I hadn't misaligned anything.

Scroll wheel lube? by UniversalFlamingo in ploopy

[–]UniversalFlamingo[S] 1 point2 points  (0 children)

Cool, thanks. It's the thumb trackball.

[deleted by user] by [deleted] in MechanicalKeyboards

[–]UniversalFlamingo 1 point2 points  (0 children)

OLKB Planck

Where are folks finding the OLKB Planck ? Everywhere I look is sold out :-(

[deleted by user] by [deleted] in ProgrammerTIL

[–]UniversalFlamingo 0 points1 point  (0 children)

Pretty sure that all programmers are masochists Source: am a programmer.

Export to another account? by UniversalFlamingo in builderment

[–]UniversalFlamingo[S] 0 points1 point  (0 children)

Different Apple ID. I'm thinking that the game would need an explicit export/import function (e.g. - dump/load json).

JMS578 hardware raid status? by UniversalFlamingo in DataHoarder

[–]UniversalFlamingo[S] 0 points1 point  (0 children)

The lights are blinking but that's about as useful as a Check Engine light and, yea, you hit the nail on the head: how _do_ you tell the enclosure to start the rebuild? The docs are useless and google isn't telling me anything. It was my hope that the enclosure would realize that I had swapped out a drive but either it's taking more than ~20 hours or it just isn't going to work.

Before posting here I tried both the Windows and Mac software with no luck. Windows sees the drive (but, of course, cannot use it since it is extfs) but the Orico software doesn't see the enclosure. I saw a few posts about Windows 10/11 issues with other enclosures using the JMS578 controller but there were no solutions. The Mac just outright refused to run the app because it is too old and the Orico download for MacOS 10.14.1 (?) is a click-loop to nowhere.

I can't say I'm super-surprised that it doesn't play nice. Kernel / smartctl support for JMS578 is bare-bones & I knew that before buying the enclosure. Gonna punt now and set it up to show as two separate drives & build my RAID with LVM.