Help converting Pingmaster

User avatar
kaboom36

12 Sep 2018, 04:35

So after lurking around for a while I figure its about time I ask help from people who actually know what they are doing and not my dad, I am one of the people who have pulled the trigger on Mendelsons new listing of IBM pingmasters and naturally I want to use this on something other than the 4704 that I definitely absolutely have lying around :D

because I have never really worked with micro controllers or hazus converter before I followed this guide but I cant seem to get it working, as far as i can tell I followed it to the letter with the only difference being I used a teensy 2.0++ yet the most I have been able to get is a few beeps from the keyboard when I plugged it in for the first time with nothing since :cry: so simply put: help me obi wan ken-obi, your my only hope!

I tested the Teensy using the blink file
Image
Last edited by kaboom36 on 20 Sep 2018, 01:54, edited 2 times in total.

User avatar
swampangel

12 Sep 2018, 14:32

The teensy 2.0 and 2.0++ use different microcontrollers.

2.0 = atmega32u4

2.0++ = at90usb1286

This means that a .hex file downloaded from the tmk interactive editor won't work with the 2.0++, since the website only has options for the atmega32u2 and 32u4.

Instead, you'll need to go to the bottom of the editor and download the keymap C source, and compile a .hex file on your computer with the correct processor in your config file. This thread may help: https://geekhack.org/index.php?topic=80597.0 (edit: didn't realize there were no replies, sorry)

This workshop thread has a howto for compiling TMK, you'll just need to work out of the ibm4704 folder instead of the gh60 one: workshop-f7/how-to-build-your-very-own- ... t7177.html

I'll post back later if I find anything helpful but I don't have any personal experience with the 2.0++ :(

User avatar
Muirium
µ

12 Sep 2018, 17:00

Or save yourself a lot of bother and just bung in the right Teensy. The ++ has its place for hand wired keyboards, but it’s overkill for this job.

User avatar
Hypersphere

12 Sep 2018, 21:45

You can also buy a converter from Hasu:

https://geekhack.org/index.php?topic=54706.0

This is listed under the IBM 4704 converter, but it will work with the various Japanese and Chinese Alps-switch models affectionately known as "Pingmasters".

User avatar
kaboom36

13 Sep 2018, 01:51

well, after several hours of trying to wrap my tired brain around what im supposed to do I did something that resembles progress, I compiled the code following the parts of the guide that seemed relevant that swampangel posted and got something from hid_listen other than silence; a wall of the code S:48 in my face
and for getting the proper teensy for this, this is one that I already have and I don't really want to wait around for another to show up until I actually need it

edit: I was so tired I forgot to ask my question lol
any idea whats causing S:48 to be output instead of any actual key presses? the beeper isn't working either

User avatar
kaboom36

13 Sep 2018, 22:46

this is what I got after letting hid_listen run for about a minute, it does this regardless, keyboard plugged in or not actually, it speeds up if I start it without the keyboard and then plug it in

hid_listen
Waiting for device:...
Listening:
USB configured.
IBM 4704 converter
Keyboard ID: FF
Enable break: S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48 S:48

these are the files I used to compile, including the changes I made: https://www.dropbox.com/sh/ks4my574rou8 ... ct7Sa?dl=0

User avatar
swampangel

13 Sep 2018, 23:43

If I was in your shoes, the first thing I would do is, instead of building/flashing the *converter* firmware, try with the *onekey* firmware https://github.com/tmk/tmk_keyboard/tre ... ard/onekey

You will still need to adjust the Makefile for your board.

If you're able to flash that firmware and send the 'a' key by shorting pins as described, then you're on the right track -- your compiler tools and board are working right.

Next, I would try flashing the converter firmware without making any changes to the keymap/other customizations.

First, take a totally fresh copy of the tmk firmware without *any* of your changes at all (not sure if you're using git or if you downloaded a zip from github, but either way extract/clone to a fresh directory).

Edit the file Makefile.unimap.alps.rev1 in the ibm4704 folder and change the MCU to at90usb1286. Build the firmware using this makefile and flash it.

If this works, the hard part is done and you have a working board, and you can work on customizing the keymap at your leisure.

User avatar
kaboom36

14 Sep 2018, 00:08

Looks like the hard part is going to take a bit longer, flashing it and shorting the pins didn't work, all I got was absolute silence

so, I guess, just let me know what you need to look at and ill upload it because I really have no idea what is going wrong

User avatar
swampangel

14 Sep 2018, 01:12

You might need to desolder your pullup resistors in order to get the onekey fw to work as expected -- I'm not sure.

If you can list out the steps you took, in detail -- including any command-line commands copy-pasted exactly -- then I might spot something you've overlooked. But since I don't have a teensy++ to play along with, it will be guesswork.

(This is the reason the tutorial suggests using a breadboard to get things under way.)

User avatar
kaboom36

14 Sep 2018, 02:21

oh sorry, I forgot to mention that I had another teensy that I put pins on, I originally bought these for another project

first I changed the MCU and the bootloader size as such:
MCU = at90usb1287
OPT_DEFS += -DBOOTLOADER_SIZE=1024

then I CD to ~/Desktop/tmk_keyboard-master/keyboard/onekey and ran make

after that I uploaded the file onekey_lufa.hex to the teensy via the GUI application and shorted pins GND and PB0

User avatar
OldIsNew

14 Sep 2018, 02:44

If you haven't seen it already, another option is an external Teensy 2.0 (rather than 2.0++) based converter with a DB-9 connector using the board's original cable and the TMK keyboard editor. It's pretty simple to do this way. There's more info including links and wiring info towards the end of this page:

workshop-f7/converting-an-ibm-pingmaste ... 9-180.html

This could be done internally as well by tracing out the connector pins.

Edit:
Ah, I missed the part of the post where you referenced bitswap's posting. I take it the point now is to make it work with the Teensy 2.0++.

User avatar
kaboom36

14 Sep 2018, 03:27

yup, if I ever decide to hand wire a keyboard or use a PCB that requires one of these then ill probably get a 2.0 but for now I would like to make what I have work

User avatar
swampangel

14 Sep 2018, 04:03

kaboom36 wrote: first I changed the MCU and the bootloader size as such:
MCU = at90usb1287
OPT_DEFS += -DBOOTLOADER_SIZE=1024
Pretty sure it should be at90usb1286.

After you flash the firmware, if you unplug and replug the teensy, do you get an alert about "setting up usb device"? Does it do anything different if you plug in to a different usb port?

User avatar
kaboom36

14 Sep 2018, 21:22

yup, that fixed it I now get a nice stream of aaaaaaaaaaaaaaaaaaaaaa in kate

although I haven't gotten any notifications about setting up a USB device, its probably because im using kubuntu, ill try the converter in windows

User avatar
swampangel

14 Sep 2018, 21:29

My bad, I just assumed Windows. Anyway congrats, hopefully you can make the same change to ibm4704/Makefile.unimap.alps.rev1 and see success there too

User avatar
kaboom36

14 Sep 2018, 23:13

well, there is a slight problem with that; apparently the makefile for the converter has the MCU set properly
I also booted into windows and it did recognize the controller as a HID device...

I don't have a bad keyboard do I?

User avatar
swampangel

14 Sep 2018, 23:37

Just to make sure, you're running this command:

Code: Select all

make -f Makefile.unimap.alps.rev1
And then flashing ibm4704_usb_rev1_alps_unimap.hex to your teensy? (edit: I was wrong, it doesn't go in a "binary" subfolder)

When I plug mine in in Windows 10, I see an alert "Setting up IBM 4704 ..." and then it appears in device manager as "HID Keyboard Device". I also hear a little click from the beeper (not a full beep, just a 'powering up' sort of noise).

It does sound like you're getting closer. Double and triple check your wiring, and make sure you haven't accidentally shorted anything with your solder points.
Last edited by swampangel on 15 Sep 2018, 03:02, edited 1 time in total.

User avatar
kaboom36

15 Sep 2018, 00:07

running that command gives me the error: ../../tmk_core/rules.mk:547: *** no ldscript for keymap section. Stop.
and if I run it with KEYMAP=kaboom1 I get: make: *** No rule to make target 'obj_ibm4704_usb_rev1_alps_unimap/unimap_kaboom1.o', needed by 'ibm4704_usb_rev1_alps_unimap.elf'. Stop.

User avatar
swampangel

15 Sep 2018, 03:02

I can duplicate the error.

I was able to continue past it by setting KEYMAP_SECTION_ENABLE = no in Makefile.unimap.alps.rev1, but I don't actually know what that does to the final binary.

Try that and see if it gets you any further at all.

User avatar
kaboom36

15 Sep 2018, 05:50

alright, changing that setting allowed it to compile but im getting the same thing as before when I plug the teensy in all I get from hid_listen is Enable break: S:48

I also forgot to mention that I have been getting the little click from the speaker when I plug it in

User avatar
swampangel

15 Sep 2018, 17:53

I'm out of ideas for the moment. :(

User avatar
Muirium
µ

15 Sep 2018, 18:05

In this case, I’m honestly loathe to tell you I told you so. Because I know where you’re coming from. Unused parts irritate me too. And it feels so wrong to be so near yet so far with the firmware. That’s the trouble with sunk costs though: they’re sunk. There might be something nontrivial between getting the software working on that hardware. Who knows? Has anyone done it?

Teensy 2, meanwhile.

User avatar
Hypersphere

15 Sep 2018, 19:03

@kaboom36: Could you please tell us the model number of the Pingmaster that you have? (For example, 6112884 Japanese 102-key). Thanks.

I am typing this on one of my two Pingmasters, which happens to be the 6112884 Japanese version. I also have a Chinese version, 6113442, but that box is still sealed.

I am using the Hasu converter, but I have not programmed it yet**. I only just now unboxed the keyboard and found the converter because your plight got me curious.

In any event, I recommend getting the Hasu converter or, as Mu has suggested, getting a Teensy 2.0.

**EDIT: Just now finished programming the Hasu converter using Hasu's online TMK editor. His basic configuration was already quite usable. I just added a few HHKB-esque changes.

The Alps switches in this NIB keyboard are incredibly smooth. I now better appreciate Chyros' comments about having a keyboard in pristine condition in order to fully appreciate Alps switches.

As for the programming, everything went smoothly. I used a Windows 10 machine and the FLIP program to flash the firmware on the Hasu converter.

I owe you a debt of gratitude for causing me to get my Japanese layout Pingmaster fully operational! This thing is much more usable than I had thought it would be. Moreover, as many others have noted, the keyboard is beautiful. I like the look of the elongated aspect ratio, although after using a 60% keyboard most of the time, I find it a stretch to use the mouse.

Does anyone know where keycaps for these boards could be sourced? In addition, are they all the same profile? (I realize I could check this myself, but I don't want to risk damaging the switches or caps by pulling caps -- at least not yet). Finally, is there a good way to put legends on the legendable caps that doesn't look too clunky?

User avatar
swampangel

16 Sep 2018, 02:08

kaboom36 can you post a photo of your converter plugged into the keyboard? I notice the wire colours are opposite mine (I have yellow to clock and red to 5v) -- it's probably just that you have the connector the other way around, but might as well make sure.

Also, the FAQ https://github.com/tmk/tmk_keyboard/wik ... oesnt-work says the bootloader size for the teensy++ should be 2k, you might try adding this to the Makefile.unimap.alps.rev1:

Code: Select all

OPT_DEFS += -DBOOTLOADER_SIZE=2048
You mentioned setting this earlier when running the onekey firmware, so you might already have done this for the 4704 firmware.

User avatar
swampangel

16 Sep 2018, 02:14

Hypersphere wrote: The Alps switches in this NIB keyboard are incredibly smooth. I now better appreciate Chyros' comments about having a keyboard in pristine condition in order to fully appreciate Alps switches.
I agree about the switches and the board, it's a nice experience, although my ham hands haven't gotten used to the short backspace/enter. Glad you had an easier time getting yours going. :)

User avatar
Hypersphere

16 Sep 2018, 14:58

@swampangel: The short Enter doesn't bother me, but its location is 1x farther to the right than it is on a US ANSI board, so I have remapped the ISO # to Enter and also kept the Enter key as it is for good measure. I should be able to hit one of those keys!

I agree with you about the short Backspace. This is easy to solve if you like the HHKB layout -- I remapped the short Backspace as Backquote/Tilde and remapped Backslash as Backspace. (Thank you, Hasu!).

User avatar
kaboom36

16 Sep 2018, 15:55

@Hypersphere we have the same model number, 6112883

@swampangel strangely the makefile lists the bootloader size as 1024:
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Teensy++ halfKay 1024
# Atmel DFU loader 4096
# LUFA bootloader 4096
# USBaspLoader 2048
BOOTLOADER_SIZE ?= 1024
OPT_DEFS += -DBOOTLOADER_SIZE=$(BOOTLOADER_SIZE)

Here is a picture of my converter:
https://i.imgur.com/cA6SFvu.jpg

User avatar
swampangel

16 Sep 2018, 16:24

Yep, connector wiring looks right (you don't have pullups on your breadboard that I can see, but I assume you did at one point).

I would try setting the bootloader size to 2k based on this comment https://github.com/tmk/tmk_keyboard/iss ... -146097836

User avatar
kaboom36

16 Sep 2018, 19:34

I just found the source of my problems; it was my wiring! I noticed that the keyboard would click every time I jiggled the wires so I used occam's razor and eliminated connection points until I soldered the wires directly to the PCB and now everything is working as it should

EDIT: Now I just have to figure out how to flash my custom keymap
Last edited by kaboom36 on 16 Sep 2018, 19:47, edited 2 times in total.

User avatar
Muirium
µ

16 Sep 2018, 19:36

Well done! So, how does it feel out on the road, so to speak?

Post Reply

Return to “Keyboards”