This post I want to devote to constructions on the base of Aruino Pro Micro module (ATmega32U4).
It's seems that the main problem with microcontrollers for beginners is to decide where to apply them
For a long time I wanted to make something simpe and useful with controller.
And then the colleague of mine threw an interesting idea - he was too lazy to key-in the login and password in his computer every day. So he took DigiSpark (ATTiny85) board and created a device which sends his login+password to a computer when button clicked.
Here is his contraption:
The perfect idea - I thought. Why not to borrow it and apply some crazy creativity to it.
Rebuild the Arduino project and reload it into board every time when password changed - This isn't the way you're looking for. We would do it in much more tangled way! The contraption shall show how it works. But only three standard on-board LEDs - it is way too little for our purpose. Let raise LED number to 4099! So a small OLED 128X32 display module was added to the project. I couldn't think up where I may apply it for some time. And it fit perfectly to this project. A couple of buttons - and we are ready to go!
There were not enough resources of ATTiny85 for the project - adding of display pulled for graphic library + fonts. So all this didn't fit into DigiSpark. Quick search found a suitable platform: Arduino Pro Micro.
The main idea of the project is that ATmega32U4 by default pretends to be HID device - USB keypad and USB COM port. Drivers for these devices are already pre-installed in the most of operating system - and nothing else needs to be set. The PasswordKeeper, brought to your attention, is a chindogu which imitates clicking of buttons on the keypad. These cliks may be interpreted as login and password by computer. Even ubiquitous Ctrl-Alt-Del can be send by click of 1 button instead of 3!
The form factor of the selected modules was very convenient and compact. It is possible with the minimum efforts to assemble the small and rather useful device.
The wiring just could not be simpler.
Several DuPont connectors, quick and dirty soldering and prototype for sketch debugging is ready.
The sketch seems to be working. But it is unconvenient to use contraption in this state.
So a little work in Sketchup provides us with small casing.
Just tossing it into the 3D printer
And as usual, haste is necessary when catching fleas. The first version of the casing is too small and the board doesn't fit! Akela missed - some gaps should be bigger. So drawing is corrected and reprinted. Second try was better - the board fits perfectly.
So we put the board inside and with characteristic crunch it is locked in place.
Try on buttons - they fits too.
Soldering all together.
By the way, I have been looking for a long time for a good prototyping wire. As a result, I now use 30AWG wire which you may see on a previous photo. Colored wires are good for tidying up usual mess by assigning colors to signal functions. The wire is thin. Insulation withstands the temperature of the soldering iron well. Typical PVC insulation melts immediately during the soldering. This one become softened, but holds its shape and withstand occasional touch a soldering iron tip without melting to the core.
So putting it all together we get a small token that connects to a computer and allows you to manage and use quite a large number of logins and passwords.
The number of logins is limited by the amount of EEPROM memory (1024 bytes) and the length of passwords. The display allows you to select the desired login. It also allows you to edit data in the token. Data may be edited with only two buttons. I squeesed some kind of Editor into the token.
But, honestly, you should be a masochist to use it. Therefore, to simplify passwords management I had to write a special program for the PC (by the way - do not foget to put token into edit mode when you use this program).
The token contains a sensitive data so some efforts should be put into security.
The main password to unlock the token was added. The main password is a user-defined sequence of single and double clicks of a buttons.
Theoretically, it is possible to encrypt the data in EEPROM with some cryptographic algorithm - some space still left in code. But these efforts would not be seen from outside - so I did not bother.
The token in its normal state is not visible to computer. To put it in the edit mode you should physically do it. Likewise, to send a password you should physically press a button. So it would be impossible for malicious to steal your passwords from the token.
He would steal them from a USB port when you send login from token
The result of the project is a contraption, where I store passwords for my bank accounts and forums.
Especially for my colleague I assigned all remaining inputs to the quick access buttons. Just connect
buttons from all other board inputs to ground - and you got them. By clicking on one of these buttons you jumps on the corresponding login (if it exists). So you only have to press the submit button to send it. Or hold a shortcut button a bit longer.
Anyone may to recreate this remarkable device. It will allow you to lose all your passwords in an entirely new way! Everyone can lose the shred of paper with passwords. But make special device for this purpouse and lose it ot its password - this should be impressive!
Before going public PwKeeper has undergo meticulous examination:
Head Inspector had just been awakened. But he still was puzzled - why the clearly unfinished device is offered to public. My words concerning that he should verify the quality of product (and it is hard to do with lid closed) was ignored.
Newerless (after bribing with sausage) he issued certificate of conformity:
All data for this project can be loaded from here.