161
submitted 11 months ago* (last edited 11 months ago) by LazaroFilm@lemmy.world to c/ergomechkeyboards@lemmy.world

I took a WaveShare RP2040-Touch-LCD-1.28and made a program to use it as a touchscreen. This is still very much in the beta phase but the proof of concept works. Here’s my GitHub repo for it.

I’m planning on integrating it into my next split near the thumb cluster.

top 29 comments
sorted by: hot top controversial new old
[-] LazaroFilm@lemmy.world 8 points 11 months ago* (last edited 11 months ago)
[-] SuperFola@programming.dev 6 points 11 months ago

This is really cool! You could use it to display information about layers and when touched it transforms into a touchpad

[-] LazaroFilm@lemmy.world 5 points 11 months ago

That’s the idea

[-] tubbytwins@lemmy.world 6 points 11 months ago

Very cool indeed! I'd like to see the keyboard integration, once it's ready. Are there enough free pins on this module to handle the GPIOs for a keyboard matrix?

[-] LazaroFilm@lemmy.world 3 points 11 months ago* (last edited 11 months ago)

There are 6 GPIO available. So maybe a macro Pad… but my idea is do embed it in The case but still have a separate usb cable to it. You can also display things on the screen if you’d like. It has a RTC and a battery management circuit so you could make it into a clock, or use the GPIO to speak with your keyboard to send keystrokes data via serial…

[-] Tubbles@lemmy.world 2 points 11 months ago

I guess if the available pins support i2c you could hook it up to a gpio expander

[-] LazaroFilm@lemmy.world 5 points 11 months ago* (last edited 11 months ago)

Yes. It does I2C. It’s also a pi Pico core so dual core. So you could use a separate core to drive the screen independently from the keyboard to keep them fast.

Edit: actually the i2C is not exposed on the pins, but you should be able to use the BitBang_I2C library to expose them on any pair of GPIO pins. I’ll try it out and report back.

Edit2: actually, no need for that library you can set virtual I2C to any pins I tried it with another project on the same board.

[-] curioushom@lemmy.one 4 points 11 months ago

That's really cool! Looking forward to future updates, great work.

[-] LazaroFilm@lemmy.world 1 points 11 months ago

Thanks! Updates so far are:

  • turns out there is no multitouch, so no two finger right click or two finger scroll. I’ll need to work something else out. Likely will have to be. Key plus scroll or something…
  • there are only 6 pins exposed and none are I2C but you can use BitBang_I2C library to expose them then use an I2C expander board to use it in a full keyboard.
[-] naznsan@lemmy.world 2 points 11 months ago

Regarding the scrolling, do you reckon it'll be possible to implement it like how the Galaxy Watches do their scrolling?

If you touch the edge of the screen and rotate it, it scrolls clockwise and anti-clockwise. Works decently enough although I do prefer the physical wheel.

[-] LazaroFilm@lemmy.world 2 points 11 months ago

I just updated the GitHub repo. It now has circular scrolling. Still. But buggy but it’s progressing!!!

[-] Raffowo@lemmy.world 2 points 11 months ago

Just to give some extra inspiration,

The multitouch gestire would be kinda unusable, but for scrolling I suggest to steal the same gestire from the japanese Toshiba laptops. They have a circular trackpad and for scrolling use the Edge of the trackpad with clockwise and counter-clockwise movement.

I know that I made It sound confusing, but if you see a video of that in action Will be Easy af to understand!

[-] LazaroFilm@lemmy.world 2 points 11 months ago* (last edited 11 months ago)

Actually that makes perfect sense and I live the idea! All it has to do is check where your initial touch was. If I’m ce center, then trackpads off on the edges of the circle then scroll. I may even be able to use LVGL to make that even better in the future. Thanks for the tip. And for right click I am planning on a hold, and tap+hold for drag.

[-] LazaroFilm@lemmy.world 2 points 11 months ago

And it’s implemented and pushed to GitHub. Scrolling is a bit jerky right now but it works!

[-] LanternEverywhere@kbin.social 3 points 11 months ago

Touchpad = trackpad

I've never heard the term touchpad. They're synonyms, right?

[-] glimse@lemmy.world 3 points 11 months ago
[-] bane_killgrind@kbin.social 3 points 11 months ago

It's called touchpad in Windows settings.

[-] LanternEverywhere@kbin.social 2 points 11 months ago

Huh! TIL! I use macs way more often, but I also use windows and I've changed the settings of the pad many times, i can't believe i didn't notice/dont remember that the names are different.

[-] LazaroFilm@lemmy.world 3 points 11 months ago

Yes both terms are interchangeable. I chose touchpad because it’s a touchscreen.

[-] timception@lemmy.world 2 points 11 months ago

This is such an awesome idea.

[-] yoz@aussie.zone 2 points 11 months ago

Wow unreal.

[-] muzzle@lemmy.world 2 points 11 months ago

This looks super interesting. There are a bunch of embedded development communities on the threadiverse, consider cross-posting this over (I think Lemmy has a cross posting feature that avoids duplicates)

[-] LazaroFilm@lemmy.world 2 points 11 months ago* (last edited 11 months ago)

Unfortunately, they’re all a bit stale as of now but I’ll x post to do my part but it feels a lot more like throwing a bottle in the ocean than posting to a community.

[-] shaysub@lemmy.world 2 points 11 months ago

This is super cool! Is the firmware flexible enough to support a similar ESP32 based chip? Something like this. That'll then allow you to make the touchpad wireless over BLE and just stick it on any keyboard as long as you have a way to power it.

[-] LazaroFilm@lemmy.world 1 points 11 months ago

You could pull the trackpad logic out of this but it would need some rewrite. For the next version , I’m actually looking into implementing the drivers into QMK keyboard firmware as it has a whole trackpad management as well that does what I wrote and more and also is much more flexible.

[-] shaysub@lemmy.world 2 points 11 months ago

Oh neat! QMK seems to be the most appropriate for trackpads. I was thinking of something that could be wireless which afaik QMK doesn't support. And ZMK's support for pointer devices is not great just yet.

[-] LazaroFilm@lemmy.world 1 points 11 months ago

I hear you. The two issues are this model has no wireless as it’s rp2040. Also a touchscreen is pretty power hungry for a wireless device like a keyboard that is supposed to be charged infrequently.

[-] shaysub@lemmy.world 2 points 10 months ago

Yeah, both valid points. I was asking about the firmware supporting an esp32 specifically for the wireless capabilities. And on terms of battery life, I went overboard and installed 3000mAh batteries in my keyboard that I can use to power the display 😂

[-] Cris_Color@lemmy.world 1 points 11 months ago

God damn, that's cool as hell. I look forward to seeing it integrated with the keyboard in the future!

this post was submitted on 01 Aug 2023
161 points (99.4% liked)

ErgoMechKeyboards

5616 readers
26 users here now

Ergonomic, split and other weird keyboards

Rules

Keep it ergo

Posts must be of/about keyboards that have a clear delineation between the left and right halves of the keyboard, column stagger, or both. This includes one-handed (one half doesn't exist, what clearer delineation is that!?)

i.e. no regular non-split¹ row-stagger and no non-split¹ ortholinear²

¹ split meaning a separation of the halves, whether fixed in place or entirely separate, both are fine.
² ortholinear meaning keys layed out in a grid

No Spam

No excessive posting/"shilling" for commercial purposes. Vendors are permitted to promote their products/services but keep it to a minimum and use the [vendor] flair. Posts that appear to be marketing without being transparent about it will be removed.

No Buy/Sell/Trade

This subreddit is not a marketplace, please post on r/mechmarket or other relevant marketplace.

Some useful links

founded 1 year ago
MODERATORS