Author Topic: Re-Create the DataHand - Thumb cluster under development. Project 75% done.  (Read 415135 times)

0 Members and 1 Guest are viewing this topic.

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #400 on: Thu, 29 January 2015, 05:14:52 »
I don’t think any of the 3d-printable metal materials have suitable strength to be used as substitutes for bent sheet metal clips.

Offline suka

  • Posts: 52
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #401 on: Sat, 31 January 2015, 03:27:37 »
I don’t think any of the 3d-printable metal materials have suitable strength to be used as substitutes for bent sheet metal clips.
You know 3D-printed metal parts go into aerospace applications like turbines or medical implants? They surely are tough enough!

If it wasn't so expensive I would have already experimented more with the metal options...
« Last Edit: Sat, 31 January 2015, 03:29:11 by suka »

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #402 on: Sat, 31 January 2015, 04:33:35 »
You know 3D-printed metal parts go into aerospace applications like turbines or medical implants? They surely are tough enough!
People use shapeways.com to print metal aerospace parts and medical implants? (Specifically, parts of the same shape as bent pieces of thin sheet metal?)

Offline Turbinia

  • Posts: 64
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #403 on: Sat, 31 January 2015, 18:14:42 »
OldDataHands,

http://www.kjmagnetics.com/calculator.asp

It is really easy to determine what the force difference between 2 magnets and 1 magnet + target would be. At contact there is no difference, however a magnet+magnet system has less fall off of force at greater distance. This is a good thing, there will be a better return of the keys, so they won't be 'sticky'.
| Dolch | KBT ONE | QFR w/PBT | Poker II |

Offline suka

  • Posts: 52
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #404 on: Sun, 01 February 2015, 03:14:49 »
You know 3D-printed metal parts go into aerospace applications like turbines or medical implants? They surely are tough enough!
People use shapeways.com to print metal aerospace parts and medical implants? (Specifically, parts of the same shape as bent pieces of thin sheet metal?)
They use the same machines, yes ;-)

Offline wolfv

  • Posts: 269
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #405 on: Sun, 01 February 2015, 09:59:56 »
The metal clips are the hardest part to fabricate because they are so small.
Maybe make clips from staples?  They come in many shapes and sizes, "Hog ring staples" for example.
https://images.google.com/ > steel staples

Or instead of a clip, maybe use a miniature screw?

Sometime the smallest problems are the hardest to solve.

« Last Edit: Sun, 01 February 2015, 10:33:04 by wolfv »

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #406 on: Sun, 01 February 2015, 12:52:45 »
They use the same machines, yes ;-)
Do you have a link to an example of a part like a clip normally made out of thin bent sheet metal being replaced by a 3d-printed metal part?

Offline wolfv

  • Posts: 269
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #407 on: Thu, 05 February 2015, 20:49:45 »
I have some questions about dodohand-master2014.1.16\documentation\switch_matrix.svg,
What rows map to what keys?  For example:
   Row0 = north
   Row1 = east
   Row2 = south
   Row3 = west
   Row4 = well
Are the row-switch mappings different for left and right hands?
What pin number do they go to?
What is the symbol to the right of the diodes?


Have a look at the same document in the thumb_work branch.
I already partially addressed the north/east/south question but haven't
pulled it back into the main yet. Note that it reflects the left hand.
There is only one PCB layout, reversible, so the switch-to-finger
position mapping is mirrored on one hand vs. the other. (west on
one hand is east on the other).

Switch: Left        : Right
Matrix : Teensy : PCA9655E
---------------------------------------
ROW0 : F0       :  IO1_0
ROW1 : F1       :  IO1_1
ROW2 : F4       :  IO1_2
ROW3 : F5       :  IO1_3
ROW4 : F6       :  IO1_4
COL0  :  B0       :  IO0_5
COL1  :  B1       :  IO0_4
COL2  :  B2       :  IO0_3
COL3  :  B3       :  IO0_2
COL4  :  D2       :  IO0_1
COL5  :  D3       :  IO0_0

The symbol to the right of the LEDs is my version of the normally
closed mechanical/optical switch between the LED and the
phototransistor (i.e. the symbol (diode included) is my attempt to
represent the dodohand switch, LED, phototransistor and all).

Excited to be able to try out your firmware!
OldDataHands,

Thanks for the row/col to pin mappings.

I have a 10-key version of DodoHand running on a breadboard, using normally open tactile switches.
Would normally closed tactile switches better simulate the DodoHand for firmware testing purposes?
With the cathode end of diode pointed towards the column - is that right?

Is "Down Primary" lite down for hold?
Is "Down Secondary" hard down for lock?

(update - I found the thumb_work branch on GitHub, this is the row wiring):
                Finger      Thumb
   Row0 = North       Thumb Nail         Down Secondary
   Row1 = East         Thumb Knuckle  Thumb Pad
   Row2 = Center      Down Primary    Thumb Up
   Row3 = South       Easy Point Switch
   Row4 = West

Thank you.

« Last Edit: Fri, 06 February 2015, 11:08:34 by wolfv »

Offline invultri

  • Posts: 40
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #408 on: Fri, 06 February 2015, 01:13:14 »
*snip*
Or instead of a clip, maybe use a miniature screw?
I know when building my reprap we used set screws to drill there own thread into plastic holes to keep pullies / rods in place, those might be an option as well if enough metal is there to pull in the magnet.

I am currently tuning my reprap again to do some printing for the dodohand. I do not think I can print all of the parts but the big pieces for the main housing, palm rests and I hope the trackball housing should be doable. Another thing I want to do is get pricing details on the finger / thumb unit parts from regional 3d printing shops, can I use the branch for the thumb unit to get a good estimate on the costs ?

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #409 on: Fri, 06 February 2015, 21:45:33 »
I know when building my reprap we used set screws to drill there own thread into plastic holes to keep pullies / rods in place, those might be an option as well if enough metal is there to pull in the magnet.

I think this is great idea, and one that has the potential to be usable.

I am currently tuning my reprap again to do some printing for the dodohand. I do not think I can print all of the parts but the big pieces for the main housing, palm rests and I hope the trackball housing should be doable. Another thing I want to do is get pricing details on the finger / thumb unit parts from regional 3d printing shops, can I use the branch for the thumb unit to get a good estimate on the costs ?

Yes, the thumb_work branch should be good for estimates. Please note that at this time
the thumb switch designs are not in a servicable state, but they will serve to provide a
good estimate.

Offline wolfv

  • Posts: 269
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #410 on: Tue, 10 February 2015, 13:09:53 »
OldDataHands,

Version 0 of the DodoHand firmware is working on a breadboard:


Possible caveats:
Runs on breadboard with normally closed tactile switches.
Cathode end of diode points towards the column.
Testing was based on my understanding of the DataHandProIIUserGuide.

I can change the code to work with DodoHand hardware, but I am unsure of how to handle the optic switches.
Would firmware tested on normally open tactile switches with cathode end of diodes pointing towards the row work on the DodoHand hardware?
I can change the code and test it with tactile switches, just tell me what you need.

Caveat:
Runs on MCP23018 I/O Expander.

I plan to write firmware for the PCA9655E-D and test it on a breadboard with a PCA9655E-D I/O expander.

Source Code
The DodoHand firmware is part of a larger project; the keybrd library on https://github.com/wolfv6/keybrd

The DodoHand firmware source code is on: https://github.com/wolfv6/keybrd/tree/master/keybrd_sketches/keybrd_DodoHand/keybrd_DH_2565_0
The 10-key version is more thoroughly tested: https://github.com/wolfv6/keybrd/blob/master/keybrd_sketches/keybrd_DodoHand/keybrd_DH_2233_bb/keybrd_DH_2233_bb.ino

Additional work needed to finish the DodoHand firmware is listed on https://github.com/wolfv6/keybrd/blob/master/doc/keybrd_wishlist.md

Offline ericcraven

  • Posts: 3
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #411 on: Mon, 16 February 2015, 04:20:31 »
What a cool project!

OldDataHands, could you possibly elaborate a bit on the IR sensors? Are they in any way special, or would any kind work (DigiKey has high postage costs here, rs-components might work better, but they don't have the exact components you use). Do you just pulse the emitter and check the transistor for a signal multiple times per second?
Would something pre-packaged like a slotted optical switch work too?

http://uk.rs-online.com/web/p/slotted-optical-switches/6675039/ for example?

Another question, do you activate the LEDs all the time, or do you strobe them just whenever you are reading them?

Thanks for any help, this looks so great!
« Last Edit: Mon, 16 February 2015, 08:47:28 by ericcraven »

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #412 on: Tue, 17 February 2015, 22:20:54 »
I can change the code to work with DodoHand hardware, but I am unsure of how to handle the optic switches.
Would firmware tested on normally open tactile switches with cathode end of diodes pointing towards the row work on the DodoHand hardware?

Logically, the DodoHand matrix is just like any other. You energize the rows and read the columns.
More specifically: you put 5v on the row and if the switch is pressed you see logic high on the column.
This means that it is very similar in effect to using normally open switches in a standard matrix.

OldDataHands, could you possibly elaborate a bit on the IR sensors? Are they in any way special, or would any kind work (DigiKey has high postage costs here, rs-components might work better, but they don't have the exact components you use). Do you just pulse the emitter and check the transistor for a signal multiple times per second?
Would something pre-packaged like a slotted optical switch work too?

Another question, do you activate the LEDs all the time, or do you strobe them just whenever you are reading them?

I selected standard IR LEDs, and compatible phototransistors in the same small package.
The phototransistors have a visible-light filtering package, which is not necessarily standard,
and I would recommend.

If you look back a few posts you'll see the switch matrix. You'll note that only one row may be
active at a time in order to have a clear signal on the columns. Each row is turned on, and each
column evaluated just as fast as I can make the PCA9655 work from the Teensy, which is quite
fast, certainly fast enough.  You'll also note that the row powers the LED and the collector of the
phototransistor.

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #413 on: Wed, 18 February 2015, 06:41:40 »
I can change the code to work with DodoHand hardware, but I am unsure of how to handle the optic switches.

Another thought, wolfv: If your code is architected such that the switch state matrix
serves as a clean interface between the hardware-specific "scan the matrix" code
and the logical "analyze switch state" code, then it shouldn't be too difficult to port
my existing matrix scan code into your framework. 

Would something pre-packaged like a slotted optical switch work too?

I understand the pre-packaged "slotted optical switch" to be more-or-less the same
thing electrically, although I haven't looked at the datasheet, however I did not see a
possibility of using that type of device and achieving the dense packaging needed
to cram 5 switches under each fingertip.

Offline wolfv

  • Posts: 269
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #414 on: Fri, 20 February 2015, 16:16:57 »
OldDodoHands:
Using your existing matrix scan code is a good idea; I can learn a lot from what you have already tested.

One more question; what are the Teensy and pca9655e pin assignments on the DodoHand?
The dodohand-thumb_work\src\ shows pca9655e pins assigned to LEDs, and pins assigned to lh_matrix[][].
Please provide all the pin assignments.

Thank you.
« Last Edit: Fri, 20 February 2015, 22:18:40 by wolfv »

Offline wolfv

  • Posts: 269
Teensy-LC
« Reply #415 on: Sun, 22 February 2015, 17:07:04 »
Just noticed this:
Teensy-LC (low cost Teensy) 62K flash, 8K RAM $11.65, Release is scheduled for March 10th,
pin-compatible with Teensy 3.0 and 3.1, not 5V tolerant http://www.pjrc.com/teensy/teensyLC.html
« Last Edit: Mon, 23 February 2015, 06:50:15 by wolfv »

Offline HaaTa

  • Master Kiibohd Hunter
  • Posts: 794
  • Location: San Jose, CA, USA
  • Kiibohds!
    • http://kiibohd.com
Also, if you want to integrate the controller right into the pcb, you could use the design I put into the infinity keyboard:
https://github.com/kiibohd/pcb. We have some updated designs for future keyboards, but this one is plenty good enough for a datahand.

It uses a very similar chip to the Teensy 3.0 except fewer pins. I hand soldered all of the early Infinity Keyboard prototypes without any issues.

Disadvantage being you'd need something like a Bus Pirate to flash the bootloader (which is also opensource, https://github.com/kiibohd/controller/tree/master/Bootloader).
Kiibohd

ALWAYS looking for cool and interesting switches
I take requests for making keyboard converters (i.e. *old keyboard* to USB).

Offline intrio

  • Posts: 57
  • Location: Los Angeles, CA
    • Intrio - helping bridge the gap between the humans and the machines
I'm new to geekhack, and joined here largely to keep up to date with this interesting project.

I'm toying with a similar finger well concept but exploring alternate ideas, like microswitches, pressure resistors, mini joysticks, mini trackballs, light beams.

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
One more question; what are the Teensy and pca9655e pin assignments on the DodoHand?
The dodohand-thumb_work\src\ shows pca9655e pins assigned to LEDs, and pins assigned to lh_matrix[][].
Please provide all the pin assignments.

Best way I can think is to show that part of the schematic:

94132-0

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
One more question; what are the Teensy and pca9655e pin assignments on the DodoHand?
The dodohand-thumb_work\src\ shows pca9655e pins assigned to LEDs, and pins assigned to lh_matrix[][].
Please provide all the pin assignments.

I realized that you also asked about the teensy part:

94267-0

Offline wolfv

  • Posts: 269
Thanks for the schematics OldDataHands :thumb:.

On the PCA9655E schematic, what does "populated" mean?
Quote
Teensy _or_ this are populated. never both."

Offline regack

  • Posts: 660
  • Location: Thessia
Thanks for the schematics OldDataHands :thumb:.

On the PCA9655E schematic, what does "populated" mean?
Quote
Teensy _or_ this are populated. never both."


I believe that the two hands are the same PCB but reversible (like the ErgoDox), so you either put a Teensy on, or a PCA9644E, but never both on the same PCB.


Offline wolfv

  • Posts: 269
Thanks for the quick response regack.

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
I believe that the two hands are the same PCB but reversible (like the ErgoDox), so you either put a Teensy on, or a PCA9644E, but never both on the same PCB.

Exactly correct.

It is common to use one PCB to implement varying circuits/products/behaviors
through the selective presence or absence of various components. The various
useful combinations are often called "population variants", where it is the exact
population of components that is referred to. In one variant you might populate
(i.e. include in the build) component X. In another you might de-populate (i.e.
remove from the build) component Y. 

Offline wolfv

  • Posts: 269
Hi all.  I have been making some good progress on the DodoHand firmware.
Still have some questions though.

Some one with access to a DataHand please run the following test.
   With CapsLck off, verify that:
      NAS+shift+5 prints "%"
      NAS+shift+% prints "%"
   Repeat the test with CapsLck on, what does it print?
      NAS+shift+5 prints:
      NAS+shift+% prints:

What do these pin assignments mean?:
   EPINT
   EPRST (also on PCA9655E)
   EPSPARE
   AREF
   TRST


What do the LED numbers map to, on Teensy2 and pca9655e? e.g. NumLck, CapLck, Mouse, NAS, Normal, 10-key:
   LED_0
   LED_1
   LED_2
   LED_D6_3

A 10-key DodoHand is running and tested on a breadboard with Teensy 2.0 and PCA9655E I/O expander.
The 52-key DodoHand firmware without the above pins compiles, but I don't have the hardware to test it.
I am writing documentation to make debugging easier.
It will be pushed to GitHub in a few days.
« Last Edit: Thu, 07 May 2015, 18:29:49 by wolfv »

Offline wolfv

  • Posts: 269
OldDataHands,

The DodoHand firmware is ready for testing on DodoHand hardware.
I would test it myself, but I don't have the hardware.
Please test it on your DodoHand hardware.  The hex file is in the keybrd repository.

DodoHand firmware is part of the keybrd project at https://github.com/wolfv6/keybrd
If the hex file doesn't work, you can initiate a debug conversation by submitting a pull request.
You can download the source code and debug, or you can describe the buggy behavior and I debug it.
Either way, the pull request might be the best place to ask and answer debugging questions.

The keybrd library is good and tested.  You shouldn't have to debug the library's code.
It's the DodoHand sketch that might need debugging.
DodoHand sketches and hex file are in https://github.com/wolfv6/keybrd/tree/master/keybrd_sketches/keybrd_DodoHand
keybrd_DH_2233_bb.ino is tested on a 10-key breadboard.
keybrd_DH_2565_0.ino is the firmware that needs to be tested on a 52-key DodoHand.
If you want to do the debugging, doc/keybrd_library_user_guide.md will help you get started with keybrd library usage.

The layers may not be working exactly as expected (I was going by the DataHand User's Guide).
If a layer behavior needs changing, I can fix it in the keybrd_Layers library.
Please provide an example of the unwanted behavior and what it should be doing.
The basic layers and keys should work.  NumLck and LEDs are not implemented yet.
doc/keybrd_wishlist.md lists DataHand features that have not been implemented yet.

Another possibility would be for me to acquire DodoHand hardware and test it myself.
Do you have spare DodoHand PCBs you can send me?

You have already done so much for DodoHand hardware; I hope you don't mind doing the firmware testing.
« Last Edit: Mon, 18 May 2015, 18:21:37 by wolfv »

Offline wejn

  • Posts: 14
Some one with access to a DataHand please run the following test.
   With CapsLck off, verify that:
      NAS+shift+5 prints "%"
      NAS+shift+% prints "%"
   Repeat the test with CapsLck on, what does it print?
      NAS+shift+5 prints:
      NAS+shift+% prints:
All of them print "%".

Offline wolfv

  • Posts: 269
Thanks wejn.  I will fix that on the DodoHand firmware later.

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
What do these pin assignments mean?:
   EPINT
   EPRST (also on PCA9655E)
   EPSPARE
   AREF
   TRST

EP = EasyPoint - it was a pointing device that was available on a
breakout from Sparkfun and hit End of Life about the time I placed
the order for my first PCB. So, EPINT was for the interrupt pin coming
back from the EP, EPRST is the reset line. EPSPARE was a spare
pin on that connector.

AREF is the analog reference on the Teensy. Not presently used.
TRST is the reset line for the Teensy.

What do the LED numbers map to, on Teensy2 and pca9655e? e.g. NumLck, CapLck, Mouse, NAS, Normal, 10-key:
   LED_0
   LED_1
   LED_2
   LED_D6_3

There is no fixed mapping of the LEDs at this time. I might suggest that on the right hand
they go in the order NAS=LED2, Normal=LED3, Mouse/Function=LED1, 10-Key=LED0
but that isn't critical.

On the left hand, there is no clear connection in order to go on. The LEDs are Scroll Lock, Num Lock, Mouse On, and ShiftLock.
In the end, I imagine a small daughterboard of sorts on the case that holds the LEDs (there are connectors in the layout to support this already)
meaning that we can put whichever LED in whichever spot makes sense mechanically.

A 10-key DodoHand is running and tested on a breadboard with Teensy 2.0 and PCA9655E I/O expander.
The 52-key DodoHand firmware without the above pins compiles, but I don't have the hardware to test it.
I am writing documentation to make debugging easier.
It will be pushed to GitHub in a few days.

This is awesome wolfv!  I will try to test this out before the end of the month.



Offline datahanduser

  • Posts: 1
As a longstanding datahand user, I've been watching this project with interest, but only now gotten around to making an account so I can post. How could i get some DodoHand hardward?

Offline wolfv

  • Posts: 269
Welcome to the forum datahanduser.

DodoHand hardware is documented on https://github.com/dodohand/dodohand
The hardware is not finished yet, so you might want to wait before ordering parts.
The thread's heading says "Project 75% done".

Offline sinusoid

  • Posts: 160
  • fd > ESC
Hi guys,

Time to unlurk myself I guess  ;D
I've been eyeing this thread for over a year now, but hesitated to participate due to task overflow and time constraints. Came in once in a few months to check status. I love the concept of Datahand, and wanted to get my hands on one for over a decade. Never did due to the exorbitant price range.

So, finally, since I've got lots of experience in making small mechanical parts on FDM printers, I thought I'll give this project a go, and attempt printing both clusters. Got the github repo, looked through the parts, opened the Blender preview, and haven't really seen anything particularly scary.

However, when I try to compile the show_plf and show_prf files I get 302 warnings.
show_parts throw none, and individual parts seem to compile OK. Gonna generate it from individual parts, but wanted you guys to know. Log below. Not really experienced with OpenSCAD, prefer Blender, so sorry if it has an obvious fix or is environment specific - verifying that is outside of the scope of my abilities :)

I think it would be a good idea to have compiled data in the repo that would be verified for printing via Shapeways.
Not having that... someone is going to get a huge chunk of plastic that will make a memorable adornment for the mantelpiece sooner or later...  :-X

Code: [Select]
Module cache size: 6 modules
Compiling design (CSG Tree generation)...
ECHO: "x,y,z, d,w,h:", 0.9, 14.1333, 6.528, 11.5, 2.19267, 2.7045
ECHO: "x,y,z, d,w,h:", 0.9, 14.1333, 6.528, 11.5, 2.19267, 2.7045
ECHO: "x,y,z, d,w,h:", 0.9, 14.1333, 6.528, 11.5, 2.19267, 2.7045
ECHO: "x,y,z, d,w,h:", 0.9, 14.1333, 6.528, 11.5, 2.19267, 2.7045
ECHO: "index finger opto lead position array"
WARNING: Ignoring unknown variable 'h1ia'.
WARNING: Ignoring unknown variable 'h1r'.
WARNING: Ignoring unknown variable 'h1ia'.
WARNING: Ignoring unknown variable 'h1r'.
ECHO: "[", undef, undef
WARNING: Ignoring unknown variable 'h2ia'.
WARNING: Ignoring unknown variable 'h2r'.
WARNING: Ignoring unknown variable 'h2ia'.
WARNING: Ignoring unknown variable 'h2r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h3ia'.
WARNING: Ignoring unknown variable 'h3r'.
WARNING: Ignoring unknown variable 'h3ia'.
WARNING: Ignoring unknown variable 'h3r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h4ia'.
WARNING: Ignoring unknown variable 'h4r'.
WARNING: Ignoring unknown variable 'h4ia'.
WARNING: Ignoring unknown variable 'h4r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h5ia'.
WARNING: Ignoring unknown variable 'h5r'.
WARNING: Ignoring unknown variable 'h5ia'.
WARNING: Ignoring unknown variable 'h5r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h6ia'.
WARNING: Ignoring unknown variable 'h6r'.
WARNING: Ignoring unknown variable 'h6ia'.
WARNING: Ignoring unknown variable 'h6r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h7ia'.
WARNING: Ignoring unknown variable 'h7r'.
WARNING: Ignoring unknown variable 'h7ia'.
WARNING: Ignoring unknown variable 'h7r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h8ia'.
WARNING: Ignoring unknown variable 'h8r'.
WARNING: Ignoring unknown variable 'h8ia'.
WARNING: Ignoring unknown variable 'h8r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h9ia'.
WARNING: Ignoring unknown variable 'h9r'.
WARNING: Ignoring unknown variable 'h9ia'.
WARNING: Ignoring unknown variable 'h9r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hAia'.
WARNING: Ignoring unknown variable 'hAr'.
WARNING: Ignoring unknown variable 'hAia'.
WARNING: Ignoring unknown variable 'hAr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hBia'.
WARNING: Ignoring unknown variable 'hBr'.
WARNING: Ignoring unknown variable 'hBia'.
WARNING: Ignoring unknown variable 'hBr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hCia'.
WARNING: Ignoring unknown variable 'hCr'.
WARNING: Ignoring unknown variable 'hCia'.
WARNING: Ignoring unknown variable 'hCr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hDia'.
WARNING: Ignoring unknown variable 'hDr'.
WARNING: Ignoring unknown variable 'hDia'.
WARNING: Ignoring unknown variable 'hDr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hEia'.
WARNING: Ignoring unknown variable 'hEr'.
WARNING: Ignoring unknown variable 'hEia'.
WARNING: Ignoring unknown variable 'hEr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hFia'.
WARNING: Ignoring unknown variable 'hFr'.
WARNING: Ignoring unknown variable 'hFia'.
WARNING: Ignoring unknown variable 'hFr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hGia'.
WARNING: Ignoring unknown variable 'hGr'.
WARNING: Ignoring unknown variable 'hGia'.
WARNING: Ignoring unknown variable 'hGr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hHia'.
WARNING: Ignoring unknown variable 'hHr'.
WARNING: Ignoring unknown variable 'hHia'.
WARNING: Ignoring unknown variable 'hHr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hIia'.
WARNING: Ignoring unknown variable 'hIr'.
WARNING: Ignoring unknown variable 'hIia'.
WARNING: Ignoring unknown variable 'hIr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hJia'.
WARNING: Ignoring unknown variable 'hJr'.
WARNING: Ignoring unknown variable 'hJia'.
WARNING: Ignoring unknown variable 'hJr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hKia'.
WARNING: Ignoring unknown variable 'hKr'.
WARNING: Ignoring unknown variable 'hKia'.
WARNING: Ignoring unknown variable 'hKr'.
ECHO: "", undef, undef, "]"
ECHO: "middle finger opto lead position array"
WARNING: Ignoring unknown variable 'h1ia'.
WARNING: Ignoring unknown variable 'h1r'.
WARNING: Ignoring unknown variable 'h1ia'.
WARNING: Ignoring unknown variable 'h1r'.
ECHO: "[", undef, undef
WARNING: Ignoring unknown variable 'h2ia'.
WARNING: Ignoring unknown variable 'h2r'.
WARNING: Ignoring unknown variable 'h2ia'.
WARNING: Ignoring unknown variable 'h2r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h3ia'.
WARNING: Ignoring unknown variable 'h3r'.
WARNING: Ignoring unknown variable 'h3ia'.
WARNING: Ignoring unknown variable 'h3r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h4ia'.
WARNING: Ignoring unknown variable 'h4r'.
WARNING: Ignoring unknown variable 'h4ia'.
WARNING: Ignoring unknown variable 'h4r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h5ia'.
WARNING: Ignoring unknown variable 'h5r'.
WARNING: Ignoring unknown variable 'h5ia'.
WARNING: Ignoring unknown variable 'h5r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h6ia'.
WARNING: Ignoring unknown variable 'h6r'.
WARNING: Ignoring unknown variable 'h6ia'.
WARNING: Ignoring unknown variable 'h6r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h7ia'.
WARNING: Ignoring unknown variable 'h7r'.
WARNING: Ignoring unknown variable 'h7ia'.
WARNING: Ignoring unknown variable 'h7r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h8ia'.
WARNING: Ignoring unknown variable 'h8r'.
WARNING: Ignoring unknown variable 'h8ia'.
WARNING: Ignoring unknown variable 'h8r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h9ia'.
WARNING: Ignoring unknown variable 'h9r'.
WARNING: Ignoring unknown variable 'h9ia'.
WARNING: Ignoring unknown variable 'h9r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hAia'.
WARNING: Ignoring unknown variable 'hAr'.
WARNING: Ignoring unknown variable 'hAia'.
WARNING: Ignoring unknown variable 'hAr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hBia'.
WARNING: Ignoring unknown variable 'hBr'.
WARNING: Ignoring unknown variable 'hBia'.
WARNING: Ignoring unknown variable 'hBr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hCia'.
WARNING: Ignoring unknown variable 'hCr'.
WARNING: Ignoring unknown variable 'hCia'.
WARNING: Ignoring unknown variable 'hCr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hDia'.
WARNING: Ignoring unknown variable 'hDr'.
WARNING: Ignoring unknown variable 'hDia'.
WARNING: Ignoring unknown variable 'hDr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hEia'.
WARNING: Ignoring unknown variable 'hEr'.
WARNING: Ignoring unknown variable 'hEia'.
WARNING: Ignoring unknown variable 'hEr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hFia'.
WARNING: Ignoring unknown variable 'hFr'.
WARNING: Ignoring unknown variable 'hFia'.
WARNING: Ignoring unknown variable 'hFr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hGia'.
WARNING: Ignoring unknown variable 'hGr'.
WARNING: Ignoring unknown variable 'hGia'.
WARNING: Ignoring unknown variable 'hGr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hHia'.
WARNING: Ignoring unknown variable 'hHr'.
WARNING: Ignoring unknown variable 'hHia'.
WARNING: Ignoring unknown variable 'hHr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hIia'.
WARNING: Ignoring unknown variable 'hIr'.
WARNING: Ignoring unknown variable 'hIia'.
WARNING: Ignoring unknown variable 'hIr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hJia'.
WARNING: Ignoring unknown variable 'hJr'.
WARNING: Ignoring unknown variable 'hJia'.
WARNING: Ignoring unknown variable 'hJr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hKia'.
WARNING: Ignoring unknown variable 'hKr'.
WARNING: Ignoring unknown variable 'hKia'.
WARNING: Ignoring unknown variable 'hKr'.
ECHO: "", undef, undef, "]"
ECHO: "ring finger opto lead position array"
WARNING: Ignoring unknown variable 'h1ia'.
WARNING: Ignoring unknown variable 'h1r'.
WARNING: Ignoring unknown variable 'h1ia'.
WARNING: Ignoring unknown variable 'h1r'.
ECHO: "[", undef, undef
WARNING: Ignoring unknown variable 'h2ia'.
WARNING: Ignoring unknown variable 'h2r'.
WARNING: Ignoring unknown variable 'h2ia'.
WARNING: Ignoring unknown variable 'h2r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h3ia'.
WARNING: Ignoring unknown variable 'h3r'.
WARNING: Ignoring unknown variable 'h3ia'.
WARNING: Ignoring unknown variable 'h3r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h4ia'.
WARNING: Ignoring unknown variable 'h4r'.
WARNING: Ignoring unknown variable 'h4ia'.
WARNING: Ignoring unknown variable 'h4r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h5ia'.
WARNING: Ignoring unknown variable 'h5r'.
WARNING: Ignoring unknown variable 'h5ia'.
WARNING: Ignoring unknown variable 'h5r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h6ia'.
WARNING: Ignoring unknown variable 'h6r'.
WARNING: Ignoring unknown variable 'h6ia'.
WARNING: Ignoring unknown variable 'h6r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h7ia'.
WARNING: Ignoring unknown variable 'h7r'.
WARNING: Ignoring unknown variable 'h7ia'.
WARNING: Ignoring unknown variable 'h7r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h8ia'.
WARNING: Ignoring unknown variable 'h8r'.
WARNING: Ignoring unknown variable 'h8ia'.
WARNING: Ignoring unknown variable 'h8r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h9ia'.
WARNING: Ignoring unknown variable 'h9r'.
WARNING: Ignoring unknown variable 'h9ia'.
WARNING: Ignoring unknown variable 'h9r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hAia'.
WARNING: Ignoring unknown variable 'hAr'.
WARNING: Ignoring unknown variable 'hAia'.
WARNING: Ignoring unknown variable 'hAr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hBia'.
WARNING: Ignoring unknown variable 'hBr'.
WARNING: Ignoring unknown variable 'hBia'.
WARNING: Ignoring unknown variable 'hBr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hCia'.
WARNING: Ignoring unknown variable 'hCr'.
WARNING: Ignoring unknown variable 'hCia'.
WARNING: Ignoring unknown variable 'hCr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hDia'.
WARNING: Ignoring unknown variable 'hDr'.
WARNING: Ignoring unknown variable 'hDia'.
WARNING: Ignoring unknown variable 'hDr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hEia'.
WARNING: Ignoring unknown variable 'hEr'.
WARNING: Ignoring unknown variable 'hEia'.
WARNING: Ignoring unknown variable 'hEr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hFia'.
WARNING: Ignoring unknown variable 'hFr'.
WARNING: Ignoring unknown variable 'hFia'.
WARNING: Ignoring unknown variable 'hFr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hGia'.
WARNING: Ignoring unknown variable 'hGr'.
WARNING: Ignoring unknown variable 'hGia'.
WARNING: Ignoring unknown variable 'hGr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hHia'.
WARNING: Ignoring unknown variable 'hHr'.
WARNING: Ignoring unknown variable 'hHia'.
WARNING: Ignoring unknown variable 'hHr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hIia'.
WARNING: Ignoring unknown variable 'hIr'.
WARNING: Ignoring unknown variable 'hIia'.
WARNING: Ignoring unknown variable 'hIr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hJia'.
WARNING: Ignoring unknown variable 'hJr'.
WARNING: Ignoring unknown variable 'hJia'.
WARNING: Ignoring unknown variable 'hJr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hKia'.
WARNING: Ignoring unknown variable 'hKr'.
WARNING: Ignoring unknown variable 'hKia'.
WARNING: Ignoring unknown variable 'hKr'.
ECHO: "", undef, undef, "]"
ECHO: "pinkie finger opto lead position array"
WARNING: Ignoring unknown variable 'h1ia'.
WARNING: Ignoring unknown variable 'h1r'.
WARNING: Ignoring unknown variable 'h1ia'.
WARNING: Ignoring unknown variable 'h1r'.
ECHO: "[", undef, undef
WARNING: Ignoring unknown variable 'h2ia'.
WARNING: Ignoring unknown variable 'h2r'.
WARNING: Ignoring unknown variable 'h2ia'.
WARNING: Ignoring unknown variable 'h2r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h3ia'.
WARNING: Ignoring unknown variable 'h3r'.
WARNING: Ignoring unknown variable 'h3ia'.
WARNING: Ignoring unknown variable 'h3r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h4ia'.
WARNING: Ignoring unknown variable 'h4r'.
WARNING: Ignoring unknown variable 'h4ia'.
WARNING: Ignoring unknown variable 'h4r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h5ia'.
WARNING: Ignoring unknown variable 'h5r'.
WARNING: Ignoring unknown variable 'h5ia'.
WARNING: Ignoring unknown variable 'h5r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h6ia'.
WARNING: Ignoring unknown variable 'h6r'.
WARNING: Ignoring unknown variable 'h6ia'.
WARNING: Ignoring unknown variable 'h6r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h7ia'.
WARNING: Ignoring unknown variable 'h7r'.
WARNING: Ignoring unknown variable 'h7ia'.
WARNING: Ignoring unknown variable 'h7r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h8ia'.
WARNING: Ignoring unknown variable 'h8r'.
WARNING: Ignoring unknown variable 'h8ia'.
WARNING: Ignoring unknown variable 'h8r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'h9ia'.
WARNING: Ignoring unknown variable 'h9r'.
WARNING: Ignoring unknown variable 'h9ia'.
WARNING: Ignoring unknown variable 'h9r'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hAia'.
WARNING: Ignoring unknown variable 'hAr'.
WARNING: Ignoring unknown variable 'hAia'.
WARNING: Ignoring unknown variable 'hAr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hBia'.
WARNING: Ignoring unknown variable 'hBr'.
WARNING: Ignoring unknown variable 'hBia'.
WARNING: Ignoring unknown variable 'hBr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hCia'.
WARNING: Ignoring unknown variable 'hCr'.
WARNING: Ignoring unknown variable 'hCia'.
WARNING: Ignoring unknown variable 'hCr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hDia'.
WARNING: Ignoring unknown variable 'hDr'.
WARNING: Ignoring unknown variable 'hDia'.
WARNING: Ignoring unknown variable 'hDr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hEia'.
WARNING: Ignoring unknown variable 'hEr'.
WARNING: Ignoring unknown variable 'hEia'.
WARNING: Ignoring unknown variable 'hEr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hFia'.
WARNING: Ignoring unknown variable 'hFr'.
WARNING: Ignoring unknown variable 'hFia'.
WARNING: Ignoring unknown variable 'hFr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hGia'.
WARNING: Ignoring unknown variable 'hGr'.
WARNING: Ignoring unknown variable 'hGia'.
WARNING: Ignoring unknown variable 'hGr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hHia'.
WARNING: Ignoring unknown variable 'hHr'.
WARNING: Ignoring unknown variable 'hHia'.
WARNING: Ignoring unknown variable 'hHr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hIia'.
WARNING: Ignoring unknown variable 'hIr'.
WARNING: Ignoring unknown variable 'hIia'.
WARNING: Ignoring unknown variable 'hIr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hJia'.
WARNING: Ignoring unknown variable 'hJr'.
WARNING: Ignoring unknown variable 'hJia'.
WARNING: Ignoring unknown variable 'hJr'.
ECHO: "", undef, undef
WARNING: Ignoring unknown variable 'hKia'.
WARNING: Ignoring unknown variable 'hKr'.
WARNING: Ignoring unknown variable 'hKia'.
WARNING: Ignoring unknown variable 'hKr'.
ECHO: "", undef, undef, "]"
ECHO: "oaw: ", 23.9
ECHO: "clip_len (mm, in): ", 11.5157, 0.453373
ECHO: "clip_w: ", 1.31667, 0.0518373
ECHO: "clip2_len: ", 15.7916, 0.621718
ECHO: "clip2_B: ", 1.63782, 0.064481
ECHO: "flange radius: ", 20.6757
ECHO: "lh_i_sty: ", 18.7966
ECHO: "lh_i_sby: ", -18.7966
ECHO: "lh_m_sty: ", 24.5116
ECHO: "lh_m_sby: ", -13.0816
ECHO: "lh_r_sty: ", 16.6122
ECHO: "lh_r_sby: ", -20.981
ECHO: "lh_p_sty: ", -0.507392
ECHO: "lh_p_sby: ", -38.1006
ECHO: "ks_screw_id: ", 1.6383
Compiling design (CSG Products generation)...
Geometries in cache: 93
Geometry cache size in bytes: 2539896
CGAL Polyhedrons in cache: 0
CGAL cache size in bytes: 0
Compiling design (CSG Products normalization)...
Normalized CSG tree has 1923 elements
Compile and preview finished.
Total rendering time: 0 hours, 0 minutes, 0 seconds

Offline sinusoid

  • Posts: 160
  • fd > ESC
Sorry for doublepost.
Test-printed the guard to see how it fits the hand. 1h45mins:
102877-0

I generated the switch elements. 2 hours of cleaning up topology. They seem excessively greebled, gonna try reducing this now and eventually cut them up for easy printing. Singled-out the mechanism for a lone switch for rebuild.

Got a few questions though:

1. what is this element? Is it necessary? It doesn't touch anything, is is supposed to go into the hole in 2. (cut-through image)? What are the (2) holes for?
102881-1
102879-2

3. the red element is loose geometry that got generated when making the carrier. obscures a hole in the carrier. Is it supposed to be there, or should I remove it?
102885-3

4. finally, what are these bars?
102883-4
« Last Edit: Sat, 06 June 2015, 13:14:52 by sinusoid »

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
Hah! Excellent! That guard looks great!

So, How does the guard seem to line up with your hand? 
I arranged it for mine, and it was quite close to the original...

Greebled is a new term for me, but I can see what you mean.

Re. #1) That is meant to be a small bump to ensure that the
moving lever, when moving off-axis, makes contact only in
one, very small spot so that friction will be minimized. Is it
critical? I have no data. Does it work? I have no data. Just
seemed like it might help.

Re. #2) Those holes are the holes through which the IR beam
shines, and they are critical to the switch operation. An IR
LED goes on one side, and the IR phototransistor on the other.

Re #3) Perhaps an error with the model and newer OpenSCAD?
It generates as part of the solid for me. It is part of the mechanism
for the center switch. What OpenSCAD version are you using?

Re #4) Those plastic springs are used to retain and hold down
a small rectangular block which captures the metal clip for the
center switch.

Regarding all of the warnings on compile: I'd been off working
on the thumb model and hadn't tried to clean those up. It is
just the cruft left over from getting final position data out for
locating pins in the PCB.




Offline gbjk

  • Posts: 10
I notice that Model 01 is up to $580k now on kickstarter:
https://www.kickstarter.com/projects/keyboardio/the-model-01-an-heirloom-grade-keyboard-for-seriou

I can't help thinking that the dodohand could equal that at the very least.
Really wish I had the time to do something with this idea, commercially.

Offline feeQs

  • Posts: 2
Funny you said that. I just came here because I wanted to recreate the DH with a help from my friends and kickstarter campaign but nevermind now, I'm glad it's done in 75%+  :D
BTW, I can provide any help with microchips if needed.
To the OP: you got my money, dude. And yeah, you should start a project at KS as soon as you have prototype ready

Offline Nico_h

  • Posts: 8
Well a kickstarter would be nice but this project is reverse engineering an existing product. IANAL but there might be some design mark/trademark or even patents involved in the design of the original which might not all be expired. I would look into that before starting to consider a kickstarter campaign.

A bunch of fans on a secluded forum would likely fly under the radar, whereas a kickstarter campaign might attract more (unwanted) attention. 

OTOH the author might have come up with patentable improvements to the original design.

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #437 on: Mon, 03 August 2015, 22:56:11 »
Datahand patents are from <1995, so are now expired.

Sure there’s a trademark, so don’t use the same name.

It’s conceivable a project could get flak for making something that tries to look precisely identical, but you probably wouldn’t want that anyway; many aspects of the original appearance were based on the specific manufacturing process details which aren’t relevant to a new design.

Offline Bystroushaak

  • Posts: 1
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #438 on: Tue, 25 August 2015, 10:21:02 »
I am one of those who registered just to say, that I would love to back this project at kickstarter / indiego.

Offline wolfv

  • Posts: 269
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #439 on: Thu, 27 August 2015, 09:23:00 »
OldDataHands,
I am back; after taking 10 weeks off to take care of other matters.
I have all the parts to start soldering.
   
The purple DodoHand PCBs are pictured on the right - thank you OldDataHands.

Please post close-up pictures of your PCBs showing the placement of the smaller electronic components.
I think that is the easiest way for me to figure out where all the parts go.

Here is a list of DodoHand PCB pictures you have already posted on this thread:
page-3 Finger cluster https://geekhack.org/index.php?topic=41422.150
 #150 Teensy, I/O expander, plugs, LEDs.  Can not make out what the smaller parts are.
 #156 PCB plugged in with LEDs on.
 #191 0603 bridges.
 #197 Switches, PCB plugged in.
page-7 Thumb cluster https://geekhack.org/index.php?topic=41422.300
 #343 #344 Can not see any of the electronic parts.

Offline wolfv

  • Posts: 269
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #440 on: Fri, 28 August 2015, 11:24:14 »
Update:

The BOM.ods, Schematic Export tab, lists the parts by PCB label.
That explains where most of the parts go.  So I won't be needing close-up pictures of your PCBs.
I still have three questions though:
1) What are the ten "8 position SMT header" used for?  (the BOM says quantity 5 and the pictures show them absent from your PCBs).
2) On thumb PCB, what are the meanings of the three labels R101, R102, R103?
3) On thumb PCB, which solder bridges get bridged?
« Last Edit: Fri, 28 August 2015, 11:34:36 by wolfv »

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #441 on: Sun, 30 August 2015, 00:23:42 »
1) What are the ten "8 position SMT header" used for?  (the BOM says quantity 5 and the pictures show them absent from your PCBs).

There are provisions in the circuit and on the PCB for several 8-pin headers which
are intended to be used for:
  1) The thumb cluster (THM_TOP / THM_BOT connectors)
  2) Gaining access to the several extra pins of the micro (AUX connectors)
  3) Connecting to the now-unavailable EasyPoint module (EP_TOP/EP_BOT connectors)
  4) Alternate/external/off-PCB mounting of the indicator LEDs (ALTLED connectors). 

You will want to mount the thumb cluster connectors, and probably none of the others.

2) On thumb PCB, what are the meanings of the three labels R101, R102, R103?
R101, R102, and R103 are the labels for the 3 resistors in the thumb switch matrix.
R101 and R102 are 2.49kOhm, while R103 is 470 Ohm

3) On thumb PCB, which solder bridges get bridged?
Just like on the finger PCB, the bridges that are on the side opposite your hand will
need to be bridged. Also, please refer back to the mail I sent you on June 2 for the
re-work needed on the thumb PCB to correct an error I made in a footprint.

Offline wolfv

  • Posts: 269
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #442 on: Tue, 01 September 2015, 18:09:40 »
OldDataHands,
I soldered all the jumpers (0603 0-Ohm) to the back of the left-hand fingers PCB (for teensy).
This is my first experience soldering anything as small as 0603 and I don't have much confidence in the solder joints.
Would it be best to test to the jumper-solder continuity before soldering on more components, or is it easier to test after all the components are soldered on?
How does one figure out where to attach the multi-meter to test solder continuity?

Thank you.

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #443 on: Tue, 01 September 2015, 22:09:37 »
I see, in the photo you posted of your workbench, a hot-air rework station.
If you are unsure about the integrity of any of those little joints, I would fire
that guy up and reflow the suspect joints.

When I did mine, I did manually check each of them with a meter after I
was satisfied with the soldering. The one side of the bridge is a nearby
through-hole, so that side is obvious. For the other side, you'll probably
just have to follow the trace to the next spot, either with the help of having
KICAD/pcbnew and looking at the layout, or just taking the time to follow each one.


Offline sinusoid

  • Posts: 160
  • fd > ESC
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #444 on: Fri, 04 September 2015, 13:57:59 »
Hey, sorry for the slow rep. Suddenly - work happened.

Hah! Excellent! That guard looks great!

So, How does the guard seem to line up with your hand? 
I arranged it for mine, and it was quite close to the original...

Hard to say without keys to press, really. It seems usable, but I have a feeling that finger angles may matter, and I noticed I have a tendency to space fingers unevenly.
I haven't used a datahand before, but I guess the force of the switches should be enough to keep each finger centered in each socket in such case. I'm really aching to see their feel and mechanics, but this will have to wait a little more.
110305-0

I think it would be nice to have them spaced individually. I've got a few ideas, but this will have to wait till I finish a pile of projects at work.



Greebled is a new term for me, but I can see what you mean.
[...]
Regarding all of the warnings on compile: I'd been off working
on the thumb model and hadn't tried to clean those up. It is
just the cruft left over from getting final position data out for
locating pins in the PCB.

Eh, kinda sad, but I haven't touched these since :/ I'll try to sit to them over the (next?)weekend, print out a few assemblies and try to optimize. Hard to get to it, but I know that once I get these made it'll all clear up.

How's the work on the thumb cluster going?

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #445 on: Thu, 17 September 2015, 23:09:39 »
How's the work on the thumb cluster going?

Well, I actually worked on it a bit for the first time in quite a while. Felt good.
I got a couple long-overdue tweaks made to the regular thumb switch model.
Am now in a position to find out if the switch to the other magnet will improve
the behavior, or if something more drastic is needed. I'll have to go back and
review my notes to see if there are other changes needed before having a
test print made.

Offline trauring

  • Posts: 94
    • off on a tangent
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #446 on: Mon, 21 September 2015, 13:47:30 »
I noticed a DataHand for sale on eBay. It's not functional, and it's only the left-hand, but I thought someone trying to re-create it might want it for parts, especially since it's only $10 right now:

http://www.ebay.com/itm/Datahand-Professional-II-Ergonomic-Keyboard-Left-hand-only-as-is-/331660722775?

(I hope I didn't just mess up the person who already bid $10, if that person is in this group)

Offline wolfv

  • Posts: 269
wolfv
« Reply #447 on: Wed, 07 October 2015, 10:14:23 »
OldDataHands,
I tried adding sticky mouse button to DodoHand firmware, but ran out of SRAM memory.
There is plenty of unused PROGMEM, but the DodoHand firmware can not use PROGMEM.
Could you redesign DodoHand's PCB to use TeensyLC?  TeensyLC has plenty of SRAM memory.
 https://www.pjrc.com/teensy/teensyLC.html
In the mean time, I can continue to develop DodoHand firmware without the sticky mouse button.

The reason the DodoHand firmware can not use PROGMEM is:
   The sketch is an array of polymorphic objects, where each object corrspeonds to a key on the physical keyboard.
   PROGMEM before C++11 does not support polymorphic objects.
   Arduino for Teensy2.0 does not support C++11.
   I could not figure out how to add C++11 to Arduino for Teensy2.0
Details are posted on https://forum.pjrc.com/threads/30474-User-Name

Sorry about the setback.
« Last Edit: Wed, 07 October 2015, 20:03:41 by wolfv »

Offline OldDataHands

  • Thread Starter
  • Posts: 280
  • Location: Michigan
Re: Re-Create the DataHand - Thumb cluster under development. Project 75% done.
« Reply #448 on: Wed, 07 October 2015, 22:33:27 »
Hmm. I'm going to have to do some research into what
that even means wolfv. I haven't kept up with C++, having
switched to a C-language, embedded world 10 years ago. 

How big is your SRAM deficit?

Might there be an opportunity to squeeze some other
places so as to make some space available for what you're
trying to accomplish?

There may also be another way to arrange things so as to
achieve what you're trying to get using this "polymorphic object"
without actually having to use that approach.  Are you willing
to share what you've got at the moment that doesn't fit into the 32U4?

I have no particular attachment to the 32U4 version of the Teensy,
but intend to work on the thumb switches until I get them right before
I go back to change the layout of the finger PCB.

Offline wolfv

  • Posts: 269
wolfv
« Reply #449 on: Wed, 07 October 2015, 23:43:58 »
How big is your SRAM deficit?
I haven't measured the SRAM deficit yet.

Might there be an opportunity to squeeze some other
places so as to make some space available for what you're
trying to accomplish?
I squeezed all the memory I could.

There may also be another way to arrange things so as to
achieve what you're trying to get using this "polymorphic object"
without actually having to use that approach.
The array of polymorphic objects is fundamental to the sketch's architecture.
Changing it would break all the code.
You will see what I mean when you read the sketch.

Are you willing to share what you've got at the moment that doesn't fit into the 32U4?
I will push a working DodoHand firmware to GitHub in a few weeks, but the mouse buttons will not be sticky.