Wednesday, July 29, 2015

2015-07-28 (Tu) Wrist Mounted Chording Keyboard

Four copies of yesterday's model were printed. Two colors of filament were used because the first cartridge ran out. Metric hardware was purchased for the first unit which tested well so long  hardware was purchased to go through each of the holes to act as a common axle.

Four printed parts

Pieces held together with common axle

Another view of common axle

Measurements for the pieces were based on a standard keyboard. Key sizes and spacing were measured on a standard bluetooth keyboard so it would feel natural. The angle given to the lever arms, shown below hanging off a table edge, was arbitrary and will likely change. Button function worked well so long as the backs of the assemblies were held stationary, like the table edge. The common axle was difficult to attach sine numerous locknuts had to be installed, the model will need to be updated.

Pieces were operational

Key size and spacing compared to a standard keyboard

To do:
  • Revise model and reprint
  • Add electronics
  • Figure a way to mount
  • Figure a way to move hinge pieces
  • Make model and OpenSCAD code public
  • Write keyboard code

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-07-24 (F)

Tuesday, July 28, 2015

2015-07-27 (M) Wrist Mounted Chording Keyboard

Modeling was done for the pieces. Pieces had to fit together to make a hinge and maintain clearances while collapsing and allow a neat fit while the pieces were opened for typing or closed for storage. While modeling live animation was used to ensure the pieces would fit together and operate as expected. Animation like this can be seen in the third image. Previous images were shown with pieces rotated to show how they would be printed rather than how they would fit together.

Each pair of yellow and blue pieces are the mechanical parts necessary for one finger key. One keyboard will have one key for each finger and three keys for the thumb. Planning has not been done for the thumb keys. Key sizes for this project were measured from a standard keyboard, 15mm squares, and will be arranged in a row with spacing the same as a standard keyboard. Final versions will may have customizable features which will allow keys to be moved to accommodate the resting location of each finger.

Flyby view of pieces
Spin view of pieces

Animation showing piece interactions

All modeling was done in OpenSCAD. OpenSCAD provided a parametric method which allowed for easy changes to be made for future builds. Bolt sizes were first input as 6mm diameter, then 3mm. American stores don't stock as many metric bolts as imperial measurement sizes and 4-40 bolts fit in a 3mm hole well but #6 bolts will likely be used in the next print since that hardware is easy and inexpensive.

To do:
  • Print parts
  • Add electronics
  • Figure a way to mount
  • Figure a way to move hinge pieces
  • Make model and OpenSCAD code public


The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-07-22 (W)

Monday, July 27, 2015

2015-07-26 (Su) Wrist Mounted Chording Keyboard

Wrist or hand mounted keyboard aren't popular yet but as wearable technology moves forward and becomes more ubiquitous I think people will be happy to have a keyboard they can use without needing both thumbs. While bluetooth keyboards can be stored easily they still require a table or at least a park bench and a lap. Head mounted displays like Google Glass rely on other input like voice and everyone can hear your messages. Some day someone will replace the keyboard with something revolutionary but until then we will keep relying on our hands to input a letter at a time.

Chording keyboards were discussed before with my hardware ASETNIOP keyboard. The short version is that there are more styles of keyboards than a standard QWERTY keyboard and some can even be used with a single hand. These keyboards are often called chording keyboards because the trick is pressing a combination of buttons at once like a chord on a guitar.

Enough background.
----------

Brainstorming for different configurations of a keyboard lead to an inspiration which relied on folding levers which would press an inexpensive button. A complicated system was drawn out, see below, which used a different sized lever for each finger and folded into a socket painstakingly channeled for that key. Instead the design was changed to use four identical levers and receivers. A modular design was easier to produce, reproduce and repair. Each piece could be aligned before affixing in place so keyboards could be made which had all buttons arranged in a line, like a desk keyboard, or splayed so they sat exactly where the fingers rested in a natural position.

Scribbles of brainstorming

This design was meant to be a highly portable and functional device but also lend a cyberpunk feel with its covert and custom feel. At the same time this could also benefit people with diseases like Carpal Tunnel Syndrome or maybe even arthritis since hands would rest in a comfortable position instead of on a keyboard. Chording keyboards require training because they do not act like a standard keyboard so there will not be overnight acceptance and only a percentage of people will want to learn a new typing style.

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-07-21 (Tu)

Sunday, July 26, 2015

2015-07-25 (Sa) RFID Authenticator COMPLETED

This project was a little different than my usual projects. Instead of having a practical or usable at the end this is simply groundwork for future projects. It could be used in place of the RFID Car Access without any software changes. With a little modification it could be used to drive a servo to unlock a deadbolt. Deadbolt access would actually be pretty convenient since RFID deadbolts are crazy expensive.

Enough background.
----------

Programming was finished. Schematics were sketched. The video does a pretty good job of explaining how the system works in under two minutes.

Video demonstration.

Schematic for RFID Authenticator

Anecdotally, when I finished this project I had a huge worry that something was wrong because the green valid light came on unexpectedly. This is not a good thing for a system which is only supposed to turn that light on in very specific situations. It turns out that while shooting the video my left hand got too close to the antenna after scanning the Master tag so it learned my implant by accident. After the video was saved I looked at the stored tags and sure enough, there was the ID for my implant.

RFID Authenticator Arduino Code

To do:
  • Define necessities of code
    • Act like commercial version
      • Do not duplicate tags in memory storage
      • Pin goes high only when recognized tags are in place
    • Different pin goes high when unrecognized tag is scanned (tampered)

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-07-24 (F)

Saturday, July 25, 2015

2015-07-24 (F) Weekly Summary

This week has been all about RFID projects. Last week ended with an RFID implant in my left hand so it logically follows. Things got off to a slow start when I tried to integrate an RC522 board into a project but that failed spectacularly for a couple reasons. First, this reader is for a different frequency which actually turns out to be good news because my NFC tag uses that frequency so maybe I can read my NFC tag for some projects. Secondly I couldn't even talk to the darn thing. I've had miserable luck with communication in the past and this didn't really surprise me. Someday I will get it right.

RC522 module on the left. FAILED

After crashing and burning with the first reader I turned to something foolproof. Commercial RFID readers are commonplace and inexpensive so one for cars was easy to pick up for a few dollars. Less than $10USD actually. The basic premise of the system is that it comes preloaded with a master tag, which is held in a steel case to prevent accidental readings, which allows the user to train new tags. The system came with two tags, already taught, so I scanned the master and it learned my implant. That was that. An evening of tinkering and attaching 12 volts lead to a workable system which I could use to turn on a 12V light.

Commercial RFID reader

Making this system work in my car was not especially easy. Most cars allow the user to simply hook this device in parallel to the unlock switch. That would be too easy. My car, a '99 Toyota Avalon, has a security system which will honk the horn and flash the lights if someone hits the unlock button while the car is locked and the ignition key removed. Security prevents someone from reaching through the window and pressing the unlock button. My solution was to use the RFID reader to activate one of the remote key fobs which I took apart and attached wires to the correct button. Honestly, not my most elegant solution.

Hacked key fob

The resulting tangle of wires on my dash was a fully functional rat's nest of wires. An evening with a drill press at the local hack space and a plastic enclosure made short work of those wires. The resulting appearance is a lot tidier and doesn't slide all over when I turn the car. This project, a far cry from the RC522 debacle, completed successfully.

Functional rat's nest

Tidy boxes on my dash

After being defeated by one communication problem I quickly jumped at the opportunity to try again. This time a module I had purchased years ago was on trial. Communication with this module was standard RS232 therefore less daunting. Communication through a TTL <-> USB module didn't take long but making it talk to and Arduino wasn't easy. In my research of Arduino communication I had seen a software library which could emulate serial communication on any Arduino pins which allowed the use of interrupts. After installing the library and hooking it up I was pleased to see that it worked well. This opened up possibilities for future projects if the same technique can be used on Arduinos which can emulate mice and keyboards.

RFID reader hooked to an emulated serial port on Arduino

The most practical, and easy to understand, project to attempt was to program the Arduino to act like the commercial unit which had just been installed in my car. Simply, to have a master tag which teaches the system how to recognize new acceptable tags. In addition I also wanted to have an output which went high if someone tried to scan an unauthorized tag. In other words if someone tried to hack my system I wanted to know. One difficulty was making the system remember a tag after power had been shut off. Arduinos contain some non-volatile memory, EEPROM in this case, which can be accessed. Learning to use the commands look a little time but it should be a great bit of knowledge in the future.

Three different tags to demonstrate. One master, one valid and one invalid tag

Since I wanted anyone to be able to download the code to their Arduino, without programming skill, and run this program it was important that there be a system for setting the Master tag. Currently this is done by starting with a blank slate, adding the program, scanning the Master tag then resetting the Arduino. From that point on that tag will be recognized as the Master and can be used to teach new tags. Up to 8 valid tags can be programmed. The last problem to overcome is getting the system to stop recording duplicate tags. Currently, when the Master tag is scanned the system goes into learning mode and will just keep memorizing anything which gets scanned until the system is reset. This is filling up the memory fast with lots of unnecessary data. Once this problem is fixed the project will be completed.

Serial data from the Arduino showing problematic duplicate tags

The rest of the weekly summaries have been arranged by date.





This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

Friday, July 24, 2015

2015-07-23 (Th) RFID Authenticator

More updates to the code! Short update so as to not bore anyone. Revisions were made so that when the Master tag is scanned a tag can be written to the non-volatile memory. Unfortunately the Master tag has a habit of writing itself to those memory locations a bunch of times and the other tags duplicate themselves as well.

Screen cap of memory registers. Tag #1 is the Master tag


RFID Authenticator Arduino Code

To do:
  • Define necessities of code
    • Act like commercial version
      • Allow new tags to be recognized after scanning master key
      • Do not duplicate tags in memory storage
      • Pin goes high only when recognized tags are in place
    • Different pin goes high when unrecognized tag is scanned (tampered)
    • VERY first tag scanned becomes master tag
  • Make linkable list of parts

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2


This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-07-23 (Th)

Thursday, July 23, 2015

2015-07-22 (W) RFID Authenticator

Programming was continued. Items from the To do list were completed in a logical order. Arduinos have a limited amount of non-volatile EEPROM memory which can be accessed through programs. EEPROMWriteAnything was studied and implemented so that a tag can be scanned and permanently remembered by the system. Permanent memory is vital since hard-coding tags is tedious and keeping tags locked in memory is important because continuous power cannot be guaranteed.

Code was written so the tag scanned before the first reset becomes the master tag. That means that people who program this on their own can download the program to an Arduino and immediately scan any tag they choose then press the reset button. From that point on that tag will be considered the master tag even if a new program is loaded to the Arduino. The only way to clear the master tag is to clear the EEPROM memory which can be done with Example code provided with the download of the Arduino IDE.

Tags labeled with the last character of their serial numbers


RFID Authenticator Arduino Code

To do:
  • Define necessities of code
    • Act like commercial version
      • Acknowledge master tag
      • Allow new tags to be recognized after scanning master key
      • Store new tags in EEPROM memory. Non-volatile
      • Pin goes high only when recognized tags are in place
    • Different pin goes high when unrecognized tag is scanned (tampered)
    • VERY first tag scanned becomes master tag
  • Make linkable list of parts

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-07-21 (Tu)