IBM Model F Bigfoot with arduino micro, win7 64bit

User avatar
Laser
emacs -nw

12 Dec 2014, 22:58

Preliminary results - it works! :)

Big thanks to Soarer (firmware), Cindy (the keyboard), AlinH (shipping), Quantalume and ScottC (for arduino-specific information)! Such people make this forum great.

Beside Soarer's controller firmware, one needs the Arduino software (for the Windows USB driver, mostly) and the winavr windows installer (for avrdude) to be ... well, installed.

The arduino micro comes with the bootloader pre-installed; to flash, one needs to know the right COM port to use, and also must hit the avrdude command right after resetting the board AND windows sees the device. To see the COM port, keep the device's driver window open - the COM line in the list will also display its port number.

This is how the process will look, when it works:
step_01.jpg
step_01.jpg (255.93 KiB) Viewed 12203 times
Next step, load a config. file - Soarer made one just for the Bigfoot, so will use that - first run 'scinfo' just to see if communication is setup alright:
step_02.jpg
step_02.jpg (159.34 KiB) Viewed 12203 times
Next, use the table so generously provided by Quantalume to hookup the board to the Model F's PCB:
step_05.jpg
step_05.jpg (150.74 KiB) Viewed 12203 times
Big moment, start hid_listen, connect the cable, hit some keys - all seems to be ok - yesss!
step_03.jpg
step_03.jpg (44.51 KiB) Viewed 12203 times
... and finally, the (limited, available in the config) keys seem to register in AquaKey:
step_04.jpg
step_04.jpg (93.09 KiB) Viewed 12203 times
So - so far, success from 1st try :)

--------------
For more details (this time in Linux), see Tigpha's thread.
Last edited by Laser on 26 Dec 2015, 12:01, edited 4 times in total.

User avatar
scottc

12 Dec 2014, 23:04

That's great! We need pictures!

Thank you so much for the mention. :D I actually had never done the process on Windows before this week, when I was helping out ماء and figuring it out as I went. I'll definitely add some Windows-specific tricks in to the guide.

User avatar
Halvar

12 Dec 2014, 23:08

Congrats!

What's that sound?

http://www.soundboard.com/sb/bigfoot_sounds_sound

I hear my Bigfoot crying in a drawer one room away for liberation .... :shock:

User avatar
Laser
emacs -nw

12 Dec 2014, 23:12

:)

Will add pictures, but so far i only have a potato camera - i really must borrow a good photo camera and get some shots at that point. Most probably after i fix the arduino in the Bigfoot case and i fix the usb adapter end in a special case hole.

@Halvar
The sound is great, sweet music to my ears - but now it has to wait a little, until i assembly the whole thing. :)

User avatar
alinh

15 Dec 2014, 08:38

Very cool. I got my arduino micro a few days ago so I can start working on my Bigfoot also. Thanks for the guide :)

User avatar
Laser
emacs -nw

15 Dec 2014, 09:56

:) Any questions, just shoot a PM (or here) - right now i'm thinking a nice solution for hooking the arduino to the keyboard case (space is somewhat cramped). It would have been better to have the arduino without those pins soldered in.
Also i'll use a floppy cable for the connections PCB <-> arduino, as one end of the cable can be hooked directly to the PCB socket.

andrewjoy

15 Dec 2014, 10:43

scottc wrote: I actually had never done the process on Windows before
nether have i, i tried it on windows and gave up, and thats exactly why i keep a lenovo x61s with a fresh copy of arch on it sitting around, for times when you just need that linux box to do somthing.

Does anyone who has used a bigfoot know how they feel vs an XT

User avatar
scottc

15 Dec 2014, 10:48

andrewjoy wrote:
scottc wrote: I actually had never done the process on Windows before
nether have i, i tried it on windows and gave up, and thats exactly why i keep a lenovo x61s with a fresh copy of arch on it sitting around, for times when you just need that linux box to do somthing.

Does anyone who has used a bigfoot know how they feel vs an XT
Well I know how to do it now, so feel free to shoot me a message if you need a hand.

User avatar
alinh

02 Jan 2015, 22:19

I'm trying to build an external controller for this, so I'm using the DB15 connector.

I've mapped each pin of the internal ribbon cable with each pin on the DB15 connector, but can't seem to figure out the "correct" numbering from :

Image

taken from quantalume's post here

This is my internal ribbon cable. Is the white key the 19 | 4 slot in the above picture?

Image

User avatar
Laser
emacs -nw

02 Jan 2015, 22:37

In my understanding, the "IBM numbering" shows pin numbers on the PCB (in the mirror to the cable end in your picture, when you hook it to the PCB, i mean, not as it is displayed in your image), while the "Ribbon numbering" deals with "the usual IBM ribbon numbering". So the white key on the cable socket goes to the (missing) "pin" number 2 on PCB.

(Disclaimer: that's from memory, i'm still away from any custom keyboard.)

In short, use the blue numbers (IBM numbering), with missing pin on PCB / white key on cable end as number 2 for orientation.
Reference (Soarer's thread - original manual)
Reference (Soarer's thread - original manual)
keyboard_logic_card.png (18.1 KiB) Viewed 11992 times

quantalume

03 Jan 2015, 07:17

The "IBM numbering" is how it appears in the figure Laser attached in the previous post. "Ribbon numbering" is how a standard insulation-displacement ribbon cable is numbered, not IBM's wire bundle. For my Bigfoot controller, I cut one end off of a 20-pin flat ribbon cable, soldered the appropriate wires to the Teensy, and plugged the other end into the board.

User avatar
alinh

04 Jan 2015, 14:51

Finished working on the bigfoot and controller and it works and feels great :)

The plate had a bit of rust so I decided to sand it down and cover it with anti corrosive paint :

Image

As stated earlier, I decided to keep the keyboard close to the original so I went with an external controller :

Image

More images of different stages of the cleaning up/painting/controller in this album :

http://imgur.com/a/WV5tl

Now I need to fiddle with the layout

Thanks everyone for the help :)

User avatar
Scottex

31 Oct 2015, 10:03

I just did the the wiring with the arduino on win8.1 64 and most of the keys work great.
I am having trouble with all of the keys in the bottom row and n(the two arrows on the left,error reset,spacebar,n,enterrecadv,0 and ,). They register double :S.
I was thinking it might be a too damaged foam problem but i don't want to deal with the tricky space bar if it's not necesary.

What do you guys think?

tigpha

31 Oct 2015, 13:21

Scottex wrote: I am having trouble with all of the keys in the bottom row and n(the two arrows on the left,error reset,spacebar,n,enterrecadv,0 and ,). They register double :S.
Hi Scottex,

The description you gave resembles what I observe with one of my two Bigfoots.

The first one I got works almost without fault. It was in excellent condition when I bought it. All the keys register correctly, except that every few thousand keystrokes, a spurious back-quote is inserted. The other one however, suffers from excessive key bouncing, with some keys frequently registering as double hits. It is not in a usable state, yet.

The Arduino circuit is exactly the same one, plugged into either board in exactly the same way. It would seem that the two Bigfoots are from two different production runs, possibly from different factories, and that slight electrical or mechanical variance may be the reason why Soarer's Controller works almost flawlessly on one, and not so well on the other.

I have tried replacing the foam twice, on the Second Bigfoot, but this had no perceptible change to the key-bounce problem. I don't think that the foam has much effect, at least as long as the barrels are not rattling loose.

I believe that Soarer may have offered a Bigfoot configuration file that pushes the scan rate as high as it would go on the Model F used for tuning the parameters. It could be that Soarer happened to have a excellent specimen, and that the scan rate is too high for boards in worse condition, of from a different production run.

I tried to modify the configuration file, but it changed the key mapping unexpectedly. It also seems to prevent the use of ALT-GR composition of UTF-8 characters too. The source code to Soarer's Controller is not published, which means I'm not keen to spend time and effort in understanding how to goad it into working properly, for my purpose.

I plan to try other open-source controller software on the Arduino, to try fixing the key-bounce problem on Bigfoot The Second, and to add more sophisticated key maps to both Bigfoots. I will try using e.g. Hasu's TMK controller, or Xwhatsit's controller.

I shall post details when I have something to report here on DT, depending on when I find time to tinker.

User avatar
Scottex

31 Oct 2015, 18:36

tigpha wrote:
Scottex wrote: I am having trouble with all of the keys in the bottom row and n(the two arrows on the left,error reset,spacebar,n,enterrecadv,0 and ,). They register double :S.
Hi Scottex,

The description you gave resembles what I observe with one of my two Bigfoots.

The first one I got works almost without fault. It was in excellent condition when I bought it. All the keys register correctly, except that every few thousand keystrokes, a spurious back-quote is inserted. The other one however, suffers from excessive key bouncing, with some keys frequently registering as double hits. It is not in a usable state, yet.

The Arduino circuit is exactly the same one, plugged into either board in exactly the same way. It would seem that the two Bigfoots are from two different production runs, possibly from different factories, and that slight electrical or mechanical variance may be the reason why Soarer's Controller works almost flawlessly on one, and not so well on the other.

I have tried replacing the foam twice, on the Second Bigfoot, but this had no perceptible change to the key-bounce problem. I don't think that the foam has much effect, at least as long as the barrels are not rattling loose.

I believe that Soarer may have offered a Bigfoot configuration file that pushes the scan rate as high as it would go on the Model F used for tuning the parameters. It could be that Soarer happened to have a excellent specimen, and that the scan rate is too high for boards in worse condition, of from a different production run.

I tried to modify the configuration file, but it changed the key mapping unexpectedly. It also seems to prevent the use of ALT-GR composition of UTF-8 characters too. The source code to Soarer's Controller is not published, which means I'm not keen to spend time and effort in understanding how to goad it into working properly, for my purpose.

I plan to try other open-source controller software on the Arduino, to try fixing the key-bounce problem on Bigfoot The Second, and to add more sophisticated key maps to both Bigfoots. I will try using e.g. Hasu's TMK controller, or Xwhatsit's controller.

I shall post details when I have something to report here on DT, depending on when I find time to tinker.
Well, best of luck with those experiments.
I don't think the barrels are ratlly, but the foam is cheap and some restoration work is always good.
I'll try asking Soarer for a solution in GH.
If I find out anything I'll post it ;)

User avatar
Muirium
µ

31 Oct 2015, 18:38

If you hear from Soarer at all, post it. That would be news in itself!

User avatar
Scottex

31 Oct 2015, 18:52

Muirium wrote: If you hear from Soarer at all, post it. That would be news in itself!
is he missing? :(

User avatar
Muirium
µ

31 Oct 2015, 18:55


User avatar
joc

31 Oct 2015, 19:08

Scottex wrote: I just did the the wiring with the arduino on win8.1 64 and most of the keys work great.
I am having trouble with all of the keys in the bottom row and n(the two arrows on the left,error reset,spacebar,n,enterrecadv,0 and ,). They register double :S.
I was thinking it might be a too damaged foam problem but i don't want to deal with the tricky space bar if it's not necesary.

What do you guys think?
My Bigfoot also had a similar key chatter problem. I resolved the issue by setting the debounce setting to 5. Here's my config file:

Code: Select all

# IBM 'bigfoot' PC/XT layout 5291-2 terminal keyboard
# Works without modification to keyboard (bigfoot has no CPU!).
# Connnnector: http://www.kbdbabel.org/conn/kbd_connector_ibm5291-2.png
# Wiring: D6:0 -> PB6:0, Strobe -> PD1, Data -> PD0
 
layerblock
  FN1 1
  FN2 2
endblock
 
remapblock
  layer 1
  LEFT_BRACE UP
  SEMICOLON LEFT
  QUOTE RIGHT
  SLASH DOWN
  L PAGE_UP
  PERIOD PAGE_DOWN
  K HOME
  COMMA END
  I PRINTSCREEN
  O SCROLL_LOCK
  P PAUSE
  A VOLUME_DOWN
  S VOLUME_UP
  D MUTE
  1 F1
  2 F2
  3 F3
  4 F4
  5 F5
  6 F6
  7 F7
  8 F8
  9 F9
  0 F10
  MINUS F11
  EQUAL F12
endblock
 
remapblock
  layer 2
  1 F13
  2 F14
  3 F15
  4 F16
  5 F17
  6 F18
  7 F19
  8 F20
  9 F21
  0 F22
  MINUS F23
  EQUAL F24
endblock
 
# Macros relating to the left-hand function cluster
# --------------------------
# |  EXTRA_F1 | EXTRA_F2   |
# --------------------------
# |  EXTRA_F3 | EXTRA_F4   |
# --------------------------
# |  EXTRA_F5 | EXTRA_F6   |
# --------------------------
# |  EXTRA_F7 | EXTRA_F8   |
# --------------------------
# |  EXTRA_F9 | EXTRA_F10  |
# --------------------------
macroblock
  # Escape
  macro EXTRA_F1
    PUSH_META CLEAR_META ALL
    PRESS ESC
    POP_ALL_META
  endmacro
 
  # Undo (CTRL-Z)
  macro EXTRA_F5
    PUSH_META CLEAR_META ALL
    SET_META CTRL
    PRESS Z
    POP_ALL_META
  endmacro
 
  # Cut (CTRL-X)
  macro EXTRA_F6
    PUSH_META CLEAR_META ALL
    SET_META CTRL
    PRESS X
    POP_ALL_META
  endmacro
 
  # Copy (CTRL-C)
  macro EXTRA_F7
    PUSH_META CLEAR_META ALL
    SET_META CTRL
    PRESS C
    POP_ALL_META
  endmacro
 
  # Paste (CTRL-V)
  macro EXTRA_F8
    PUSH_META CLEAR_META ALL
    SET_META CTRL
    PRESS V
    POP_ALL_META
  endmacro
 
  # Previous tab (CTRL-RSHIFT-Tab)
  macro EXTRA_F9
    PUSH_META CLEAR_META ALL
    SET_META CTRL RSHIFT
    PRESS TAB
    POP_ALL_META
  endmacro
 
  # Next tab (CTRL-Tab)
  macro EXTRA_F10
    PUSH_META CLEAR_META ALL
    SET_META CTRL
    PRESS TAB
    POP_ALL_META
  endmacro
endblock
 
# Misc macros
macroblock
  # Double Shift Caps Lock
  macro LSHIFT RSHIFT
    press CAPS_LOCK
  endmacro
 
  macro RSHIFT LSHIFT
    press CAPS_LOCK
  endmacro
endblock
 
matrix
   scanrate 1
   debounce 5
   blocking 0
   muxstrobe_port PB6:0
   sense_delay 1
   muxstrobe_gate -PD1
   sense_polarity 1
 
   sense PD0
 
   muxstrobe  0 Z
   muxstrobe  1 S
   muxstrobe  2 W
   muxstrobe  3 3
   muxstrobe  4 X
   muxstrobe  5 D
   muxstrobe  6 E
   muxstrobe  7 4
   muxstrobe  8 C
   muxstrobe  9 F
   muxstrobe 10 R
   muxstrobe 11 5
   muxstrobe 12 V
   muxstrobe 13 G
   muxstrobe 14 T
   muxstrobe 15 6
   muxstrobe 16 B
   muxstrobe 17 H
   muxstrobe 18 Y
   muxstrobe 19 7
   muxstrobe 20 N
   muxstrobe 21 J
   muxstrobe 22 U
   muxstrobe 23 8
   muxstrobe 24 PAD_2
   muxstrobe 25 PAD_5
   muxstrobe 26 PAD_8
   muxstrobe 27 NUM_LOCK
   muxstrobe 28 M
   muxstrobe 29 K
   muxstrobe 30 I
   muxstrobe 31 9
   muxstrobe 32 COMMA
   muxstrobe 33 L
   muxstrobe 34 O
   muxstrobe 35 0
   muxstrobe 36 PERIOD
   muxstrobe 37 SEMICOLON
   muxstrobe 38 P
   muxstrobe 39 MINUS
   muxstrobe 40 SLASH
   muxstrobe 41 QUOTE
   muxstrobe 42 LEFT_BRACE
   muxstrobe 43 EQUAL
   muxstrobe 44 SPACE
   muxstrobe 45 RSHIFT
   muxstrobe 46 BACKSLASH
   muxstrobe 47 RIGHT_BRACE
   muxstrobe 48 RALT
   muxstrobe 49 FN1
   muxstrobe 50 ENTER
   muxstrobe 51 BACKSPACE
   muxstrobe 52 PAD_0
   muxstrobe 53 PAD_1
   muxstrobe 54 PAD_4
   muxstrobe 55 PAD_7
   muxstrobe 56 PAD_PLUS
   muxstrobe 57 UNASSIGNED
   muxstrobe 58 PAD_MINUS
   muxstrobe 59 CAPS_LOCK
   muxstrobe 60 PAD_PERIOD
   muxstrobe 61 PAD_3
   muxstrobe 62 PAD_6
   muxstrobe 63 PAD_9
   muxstrobe 64 FN2
   muxstrobe 65 A
   muxstrobe 66 Q
   muxstrobe 67 2
   muxstrobe 68 LGUI
   muxstrobe 69 UNASSIGNED
   muxstrobe 70 UNASSIGNED
   muxstrobe 71 1
   muxstrobe 72 EXTRA_F7
   muxstrobe 73 EXTRA_F5
   muxstrobe 74 EXTRA_F3
   muxstrobe 75 EXTRA_F1
   muxstrobe 76 EXTRA_F8
   muxstrobe 77 EXTRA_F6
   muxstrobe 78 EXTRA_F4
   muxstrobe 79 EXTRA_F2
   muxstrobe 80 EXTRA_F10
   muxstrobe 81 UNASSIGNED
   muxstrobe 82 UNASSIGNED
   muxstrobe 83 UNASSIGNED
   muxstrobe 84 EXTRA_F9
   muxstrobe 85 UNASSIGNED
   muxstrobe 86 UNASSIGNED
   muxstrobe 87 UNASSIGNED
   muxstrobe 88 LSHIFT
   muxstrobe 89 LCTRL
   muxstrobe 90 TAB
   muxstrobe 91 BACK_QUOTE
   muxstrobe 92 UNASSIGNED
   muxstrobe 93 UNASSIGNED
   muxstrobe 94 UNASSIGNED
   muxstrobe 95 UNASSIGNED
end

User avatar
Scottex

31 Oct 2015, 20:13

Oh no, we will never get dat source code ;_;
Will try that debounce fix and report tomorrow ;)

tigpha

31 Oct 2015, 21:38

joc wrote: My Bigfoot also had a similar key chatter problem. I resolved the issue by setting the debounce setting to 5.
Thanks Joc for contributing your config, much appreciated. I'll try that on both Bigfoots and report back (eventually).

User avatar
joc

31 Oct 2015, 23:02

Soarer posted some snippets of his debounce implementation here and here that provide some insights into what the debounce setting actually does.

When debounce is set to 5, the controller looks at the last six scan readings and sends a key-down event if there were five highs followed by one low (0b111110); a key-up event is sent if the last six scan readings were 0b000001. So, as the value of debounce decreases, the probability that the debounce implementation is going to recognize noise as key-state transitions increases.

User avatar
Scottex

01 Nov 2015, 21:57

It worked great, thank you so much :D

User avatar
joc

02 Nov 2015, 01:07

Scottex wrote: It worked great, thank you so much :D
Awesome! I'm glad it worked out for you.

tigpha

02 Nov 2015, 19:07

Hi Joc, I'm delighted to announce success with both of my Bigfoots. Thank you very much indeed :-)

User avatar
joc

02 Nov 2015, 20:30

tigpha wrote: Hi Joc, I'm delighted to announce success with both of my Bigfoots. Thank you very much indeed :-)
Great! Thanks for the update.

I just noticed that debounce defaults to 5 if it's not explicitly set. Also, the minimum and maximum values of debounce are 1 and 7, respectively. The source code for the scas tool is in Soarer_Controller_v1.20_beta4/tools/Soarer_sctools_v1.20_beta4_source.zip.
Last edited by joc on 26 Nov 2015, 05:11, edited 1 time in total.

tigpha

02 Nov 2015, 20:43


tigpha

02 Nov 2015, 20:57

I have just now read Soarer's description of "turbo mode debounce" sliding window sampling to prevent key bounce. Simple, effective, elegant code. I wish I could see the rest too :-(

Garbageman

13 Dec 2015, 17:54

Hello guys, i have a question: can i use an Arduino Nano instead an Arduino Micro? And what could happen if a connect my Bigfoot to PC only with the Nano and configured pinout but whitout the Soarer Driver?

Hugs for all.

User avatar
Halvar

13 Dec 2015, 18:32

Hi Garbeageman,

the Nano uses a "smaller" Atmel chip (ATmega328P), and if you want to use Soarer's controller, we only the binaries of that, so you can only use the SOCs that Soarer provided binaries for.

You can use:
ATmega32u4 (Teensy 2.0, Pro Micro, etc.)
AT90usb646
AT90usb1286 (Teensy++ 2.0)

Post Reply

Return to “Workshop”