geekhack
geekhack Projects => Making Stuff Together! => Topic started by: foodz on Mon, 02 March 2015, 11:09:54
-
foodz's dream keyboard project
Hiya there everyone; I've been a lurker for a long time and I've finally decided I'd love to become a active member of the community.
My day to day job I am a web developer; however, I've been hacking together hardware in my spare time for years and I've finally decided to document my latest.
The hardware goals of this project may seem like a strech but my goal is to try to meet them; go big or go home.
Project Status:Planning
Project Github: Project Github Page (https://github.com/legitosaurus/dreamkeyboard)
Hardware Goals:
- USB Connection
- Bluetooth Connection
- Display (Planning a 16x2 LCD)
- USB Hub
- Internal flash drive style storage
- ...
Software Goals:
- Web Interface (Layer management, hotkeys, macros, etc)
- Password Management
- Smartphone Integration
- Keyboard Statistics
- ...
Components:
Main Controller: Teensy++ 2.0 USB Development Board (https://www.pjrc.com/store/teensypp.html)
I/O & Functionality Expansion: Arduino Pro Mini (https://www.sparkfun.com/products/11113)
This may be my dream keyboard; but if you'd like to suggest any other crazy ideas.. I'd love to hear them, discuss them, potentially try to add them in.
More to come soon.
-
reserved for later <3
-
Welcome to geekhack. Those hardware goals seem quite achievable to me, though note that for a wireless keyboard you’re going to need to add batteries (and if they’re rechargeable, some infrastructure for charging them). Also, interfacing with existing bluetooth stuff might be a pain. The hardest part is probably figuring out what you want the screen to do.
-
though note that for a wireless keyboard you’re going to need to add batteries (and if they’re rechargeable, some infrastructure for charging them)
Right now I'm working with 2,000 mAh battery circuit and using a MCP73831/2 (http://www.digikey.com/product-detail/en/MCP73831T-2ACI%2FOT/MCP73831T-2ACI%2FOTCT-ND/1979802) for battery management.
The hardest part is probably figuring out what you want the screen to do.
The screen.. I haven't really thought about what I wanted on it other than having the ability to "lock" and "unlock" a hotkey set on the keyboard for repeated tasks (like entering passwords, names, etc).
Maybe battery life read from the MAX17043/4 (https://dlnmh9ip6v2uc.cloudfront.net/datasheets/Prototyping/MAX17043-MAX17044.pdf) fuel gauge.
-
That's ambitious. With all that built-in, I wonder why bother with an AVR? Just go straight to an ARM dev board or a RaspberryPi
-
That's ambitious. With all that built-in, I wonder why bother with an AVR? Just go straight to an ARM dev board or a RaspberryPi
I'd rather keep in the realm of a USB accessory; having another system running in parallel to another system would be unnecessarily complicated from an overhead perspective.
-
What do you mean by “overhead”?
I’d also recommend using an ARM chip, e.g. a Teensy 3.1.
-
An ARM device would go largely to waste. The ARM toolchain is powerful and would be a good choice; but is complex to work with sometimes. AVR based development is cheaper and are easier to work with and something I tinker with much more regularly.
-
An ARM device would go largely to waste. The ARM toolchain is powerful and would be a good choice; but is complex to work with sometimes. AVR based development is cheaper and are easier to work with and something I tinker with much more regularly.
Then you must already know what I'm about to say. My Easy AVR firmware implements a full-featured keyboard (NKRO, layers, macros) plus software PWM for LED backlighting. That is enough to max out the ATmega32U4. If you really want a bluetooth stack and an embedded web server, consider upgrading.
-
Then you must already know what I'm about to say. My Easy AVR firmware implements a full-featured keyboard (NKRO, layers, macros) plus software PWM for LED backlighting. That is enough to max out the ATmega32U4. If you really want a bluetooth stack and an embedded web server, consider upgrading.
My thinking was if the two systems were separate; neither should be maxed out. If a AT90USB1286 (Teensy++ 2.0) implements the keyboard and an ATmega32x as an I2C slave implements the BT/Webserver stack. The slave acting as a subsystem that can be used to extend the functionality.
Granted there may be some latency issues with an I2C BT slave.
-
Hopefully only a few milliseconds
-
Latency shouldnt matter if the slave is just running a web server, right?
-
Update 3/9/2015
I was able to scrap together a dev platform for checking the functionality/dev certain features. It's a hash job but it'll allow me to test certain aspects of the project pretty quickly.
Currently only have a 6x2 matrix (6 numerical inputs & 3 directions) but this is enough to get some important parts done.
More to come once I can to sit down and dedicate some time to working on the code!
Warning: terrible solder jobs ahead!
(http://i.imgur.com/Dz9WQ1V.jpg) (http://imgur.com/Dz9WQ1V)(http://i.imgur.com/KhIObgA.jpg) (http://imgur.com/KhIObgA)
(http://i.imgur.com/63fn0x5.jpg) (http://imgur.com/63fn0x5)(http://i.imgur.com/Amh0nBY.jpg) (http://imgur.com/Amh0nBY)(http://i.imgur.com/1Ofetsu.jpg) (http://imgur.com/1Ofetsu)
(http://i.imgur.com/zwbqv0J.jpg) (http://imgur.com/zwbqv0J)
(http://i.imgur.com/ZUztGZf.jpg) (http://imgur.com/ZUztGZf)
-
I look forward to seeing the progress. I love the mockup. At least you'll have time to practice soldering a little more. :thumb:
-
This project is relevant to my interests. I look forward to reading the progress on this and then unapologetically stealing parts of it for my own projects. :p
-
This project is relevant to my interests. I look forward to reading the progress on this and then unapologetically stealing parts of it for my own projects. :p
If you have any ideas or anything I'll gladly try to incorporate them so that you can steal use them. ;]
-
This project is relevant to my interests. I look forward to reading the progress on this and then unapologetically stealing parts of it for my own projects. :p
If you have any ideas or anything I'll gladly try to incorporate them so that you can steal use them. ;]
The only thing that comes to mind is: "what, no mouse?" Have you considered adding a nub mouse or a trackpad?
-
This project is relevant to my interests. I look forward to reading the progress on this and then unapologetically stealing parts of it for my own projects. :p
If you have any ideas or anything I'll gladly try to incorporate them so that you can steal use them. ;]
The only thing that comes to mind is: "what, no mouse?" Have you considered adding a nub mouse or a trackpad?
Actually; No, I haven't. Although, I remember someone mentioning a nub mouse; after a quick google search, I'm unable to find any to buy. Know of any or a specific brand I can call up see if they have any I can order?
EDIT: I just didn't search hard enough - found some info; on geekhack.org no less! (https://geekhack.org/index.php?topic=10868.0)
EDIT2: And more I'll probably start with this (https://www.sparkfun.com/products/9320)
-
This project is relevant to my interests. I look forward to reading the progress on this and then unapologetically stealing parts of it for my own projects. :p
If you have any ideas or anything I'll gladly try to incorporate them so that you can steal use them. ;]
The only thing that comes to mind is: "what, no mouse?" Have you considered adding a nub mouse or a trackpad?
Actually; No, I haven't. Although, I remember someone mentioning a nub mouse; after a quick google search, I'm unable to find any to buy. Know of any or a specific brand I can call up see if they have any I can order?
EDIT: I just didn't search hard enough - found some info; on geekhack.org no less! (https://geekhack.org/index.php?topic=10868.0)
EDIT2: And more I'll probably start with this (https://www.sparkfun.com/products/9320)
Sparkfun breakout boards are always a nice starting point. Have you seen the TEX Trackpoint? There was one on Massdrop a while back (https://www.massdrop.com/buy/tex-trackpoint-module/talk). I'm not sure where to get them at the moment, but you might find one if you keep your ear to the ground.