Author Topic: Ideas for Bachelor of Computer Science thesis regarding mechanical keyboard?  (Read 12696 times)

0 Members and 1 Guest are viewing this topic.

Offline c3zz

  • Thread Starter
  • Posts: 2
I'm collecting ideas about Computer Science Bachelor’s degree thesis. In my university the thesis could be anything from theoretical analysis to up-and-running application. Since I like mechanical keyboards I thought doing something regarding that topic, but I would like your help to find out what exactly could be generated into Bachelor’s thesis.

Regarding the topic, I came up with three possible "ideas":

Designing and creating mini pcb for easy access of programming related symbols (different parentheses, punctuation marks, insert, etc).
By that I mean, designing the pcb (using this quide) and programming the microcontroller. Regarding that I would like to know if it’s possible to program the microcontroller to output keycodes that usually require ‘shift’ or ‘alt’ (for example ‘$’, ‘[’) without pressing the modifier key? (sry if it’s too dumb question) Also, I would like to design appropriate case and plate for the pcb (if I have enough time for that).

Maybe something about keyboards and security? This topic seems interesting, but since security usually involves knowing the firmware really well it might be too complicated for me. But then again, maybe you guys have any ideas about keyboards and security that might be suitable for computer science student.

Some kind of API for keyboards? I have no idea what it could be for, but maybe there is a need for some kind of API for keyboards (for easy LED controlling?).


Any help or ideas would be appreciated!  ;D
« Last Edit: Sun, 28 October 2018, 08:17:41 by c3zz »

Offline Findecanor

  • Posts: 5035
  • Location: Koriko
The problem is that an academic thesis has to answer an academic question. Just coming up with an idea for something that could be useful is not enough. You would have to motivate why it is interesting.

Yes, it is possible to send a combination of modifier(s) and other keys, but not simultaneously with keys that are not part of the combination. When you want to send your combo or macro you would have to first block new key presses from being registered and then either wait for the any other pressed keys to be released or forcibly handle the keys as if they were — in a way that does not automatically resend their press-events right after your combo. It has been done in every keyboard that is capable of macros.

Security over USB is physical security. A dongle in the middle can listen and/or send reports. Basic types have been done many times.
Maybe you could come up with some smarter type of key logger. Perhaps one that would use heuristics or machine learning to figure out which key sequences are likely to be passwords and which are not, so as to save memory and network bandwidth.

Perhaps you could reverse-engineer one or more proprietary APIs used by commercial keyboard(s) for controlling backlighting. Identify stupid and vulnerable parts in the protocol. Document the reverse-engineering process and the results. Write a stand-alone application that implements the protocol. Could perhaps be useful for Linux or BSD users wanting to control backlighting where the vendor has supplied only a Windows control panel.

Offline no, the other guy

  • Posts: 175
  • Location: Germany
  • actually, this guy
The problem is that an academic thesis has to answer an academic question.

At least in Germany, this is not quite correct. Mine was about a PHP website I wrote, not solving any academic problem.
<armin> i have the impression the only reason the mx red switch was invented was drunk people

Unicomp PC122 (review) * IBM Model F XT * Dell AT101W

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
The problem is that an academic thesis has to answer an academic question. Just coming up with an idea for something that could be useful is not enough. You would have to motivate why it is interesting.
...
Perhaps you could reverse-engineer one or more proprietary APIs used by commercial keyboard(s) for controlling backlighting. Identify stupid and vulnerable parts in the protocol. Document the reverse-engineering process and the results. Write a stand-alone application that implements the protocol. Could perhaps be useful for Linux or BSD users wanting to control backlighting where the vendor has supplied only a Windows control panel.
For mine I reverse engineered the remote control on my hi-fi/USB soundcard so it worked in Linux and still came up against 'why?' as the biggest objection.  I was warned that my idea was borderline and continued anyway so got a crap grade because it was 'useless'* despite it working perfectly.  Definitely get your plan checked and if they don't like it don't risk your future on it.


*Sadly it was useless as the hi-fi died and despite the remote control part being exactly the same and the sound part still using the standard driver the replacement never went above minimum volume so it wasn't usable in Linux, but I managed to keep that out of my presentation.
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline c3zz

  • Thread Starter
  • Posts: 2
In my university they definitely like when you solve an academic problem, but they also like if you make an application or something other that could be useful for other people. Thank you all for your advice, I'll definitely discuss it with my supervisor.

Offline mariopepper

  • Posts: 7
It's quite a difficult topic as for me but there are a lot of useful info about that so check some of them and use the most common

Offline ideus

  • * Exalted Elder
  • Posts: 8123
  • Location: In the middle of nowhere.
  • Björkö.
A thesis may have different scopes depending on the Institution. Check the requirements at yours. A paper is a different thing. It has to have a contribution of a novel idea or application. Where I work this is the same criteria for a thesis. It should have a novel contribution. It is expected to be an innovation and not a discovery; however, both types of contributions are acceptable. Good speed.

Offline rowdy

  • HHKB Hapster
  • * Erudite Elder
  • Posts: 21175
  • Location: melbourne.vic.au
  • Missed another sale.
A keyboard that uses AI to detect typing mistakes and auto-corrects them for you, or offers to alter the keyboard layout to reduce the likelihood of further typing errors.

For example if someone keeps typing "teh" instead of "the", offer to swap the E and H keys.  Typo instantly resolved.

That might require an on-the-fly programmable keymap, plus ideally soft legends on each key e.g. a small OLED screen on each keycap (this has been done before) so the keyboard can update its own legends.
"Because keyboards are accessories to PC makers, they focus on minimizing the manufacturing costs. But that’s incorrect. It’s in HHKB’s slogan, but when America’s cowboys were in the middle of a trip and their horse died, they would leave the horse there. But even if they were in the middle of a desert, they would take their saddle with them. The horse was a consumable good, but the saddle was an interface that their bodies had gotten used to. In the same vein, PCs are consumable goods, while keyboards are important interfaces." - Eiiti Wada

NEC APC-H4100E | Ducky DK9008 Shine MX blue LED red | Ducky DK9008 Shine MX blue LED green | Link 900243-08 | CM QFR MX black | KeyCool 87 white MX reds | HHKB 2 Pro | Model M 02-Mar-1993 | Model M 29-Nov-1995 | CM Trigger (broken) | CM QFS MX green | Ducky DK9087 Shine 3 TKL Yellow Edition MX black | Lexmark SSK 21-Apr-1994 | IBM SSK 13-Oct-1987 | CODE TKL MX clear | Model M 122 01-Jun-1988

Ị̸͚̯̲́ͤ̃͑̇̑ͯ̊̂͟ͅs̞͚̩͉̝̪̲͗͊ͪ̽̚̚ ̭̦͖͕̑́͌ͬͩ͟t̷̻͔̙̑͟h̹̠̼͋ͤ͋i̤̜̣̦̱̫͈͔̞ͭ͑ͥ̌̔s̬͔͎̍̈ͥͫ̐̾ͣ̔̇͘ͅ ̩̘̼͆̐̕e̞̰͓̲̺̎͐̏ͬ̓̅̾͠͝ͅv̶̰͕̱̞̥̍ͣ̄̕e͕͙͖̬̜͓͎̤̊ͭ͐͝ṇ̰͎̱̤̟̭ͫ͌̌͢͠ͅ ̳̥̦ͮ̐ͤ̎̊ͣ͡͡n̤̜̙̺̪̒͜e̶̻̦̿ͮ̂̀c̝̘̝͖̠̖͐ͨͪ̈̐͌ͩ̀e̷̥͇̋ͦs̢̡̤ͤͤͯ͜s͈̠̉̑͘a̱͕̗͖̳̥̺ͬͦͧ͆̌̑͡r̶̟̖̈͘ỷ̮̦̩͙͔ͫ̾ͬ̔ͬͮ̌?̵̘͇͔͙ͥͪ͞ͅ

Offline Fyfijyf

  • Posts: 14
I really can't say I have a great idea, but I just got through my first year of computer science, along with the AP test, and props to you for sticking it out. I love coding, but in an academic environment it got really tough really fast. I just wanna say good luck and I hope you got a great idea!!!!
ʕ•ᴥ•ʔ