well, I accidentally made a keyboard backwards. that's a new thing.
I needed a USB keyboard that responded to BT Serial commands. I accidentally made a BT keyboard that responds to USB serial commands
well, I accidentally made a keyboard backwards. that's a new thing.
I needed a USB keyboard that responded to BT Serial commands. I accidentally made a BT keyboard that responds to USB serial commands
okay I made instead a keyboard that listens for UDP packets.
if you send it a single byte UDP packet, it types that key. there is no authentication. you just need to know that you have to send it to port 8365
@foone does it listen on loopback because I have a funny idea
@munin yes? but it's a pico-w so I can't exactly NC-loop it to itself
I now have an HTTP proxy for my keyboard. You just hit http://localhost:5000/65 and it'll send the UDP for you, so it types an "A"
aw, hell. so no fun "figure out the resonant frequency of the keyboard" then.
@whitequark @munin bad idea:
keyboard that lets you reprogram the firmware, and it does it by typing out it's own source into the attached PC
(hard mode: it includes the compiler/programmer binaries)
hmm. I might make it scancodes instead of ASCII, just because actually programming scancodes properly into the other end of the keyboard is a pain, so maybe I'll just let each key send whatever number it feels like, then I'll make the HTTP proxy translate them. why not?
I mean it's terrible but it saves me like 5 minutes of manual work so who is to say if it's bad or not?
one of my keyboard keys didn't boot up properly, because while I had the right boot files in the right places, I had left a bootable floppy disk in the drive. no "Z" key for me
@keithmann building a very bad keyboard, so it's 60% insecure protocol converters
@foone Taking the long way to KVM over IP? ;-)
@moira that's not a bad idea.
@foone stop making me want to make a keyboard that talks Commodore Serial Bus.
I gotta figure out how to store some webapp state so I can keep track of if the shift key is down, because that's a separate HTTP request
@astrid thankfully my requesting system doesn't even support cookies (unless I manually track/pass them) so that's out. I'm just making it server-wide state
@foone first keyboard to require cookies
how it works:
$ curl http://localhost:5000/29
unshifted
$ curl http://localhost:5000/6
ok (types "a")
$ curl http://localhost:5000/29
shifted
$ curl http://localhost:5000/6
ok (types "A")
Make it more cursed:
http://localhost:5000/6?down
http://localhost:5000/6?up
@retroswim that's not actually possible, because the keyboard key for "6" is running on a separate virtual computer than the shift key, and they can't communicate with each other!
this is the first and hopefully not the last time a llama has gotten in the way of my attempts to record a video of my new keyboard in use
@foone I didn't mean the shift key, I mean key down/press, key up/release!
@retroswim oh I see!
sadly not possible with my HTTP library
keyboard tested and video recorded!
well, videos. I'm running this across two computers, one Raspi Pico, one video game, and 32 virtual computers.
Editing this together is going to be UNFUN
FUCK one didn't record. Time to do it again, and then it gets harder: finding out if I can run divinci resolve on this laptop
@winissen yeah I'm a professional, I have had a lot of experience in developing bad ideas
@foone Bad ideas? No, only the worst possible ideas around here.
I KNOW PROGRAMMERS WHO USE DPI SCALING AND THEY'RE ALL COWARDS
@jaykass I think it came with The Learning Company's Super Solvers Gizmos & Gadgets
@foone AOL Free Trial? How do I get that?
okay I think I got it, I just need to render it and confirm it looks right on the render.
@RoganDawes can't! each key is a separate (virtual) computer, so they can't talk to each other. They each send separate UDP packets when pressed
@foone If it's a USB keyboard, why not send a complete 8-byte HID packet? That even gets you n-key rollover, and takes care of modifiers (shift, etc) at the same time. You can even extend that with chunks of 8, representing subsequent reports, finally ending with an implicit "all keys up".
e.g. /0000060000000000:0000070000000000
@foone Doesn't the keyboard indicate if it was pressed or released? You could make that PUT and DELETE requests.
@goleztrol hmm. Technically, yeah! I think so.
076萌SNS is a social network, courtesy of 076. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.
All 076萌SNS content and data are available under the Creative Commons Attribution 3.0 license.