Page 1 of 2
Help converting Pingmaster
Posted: 12 Sep 2018, 04:35
by kaboom36
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
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

so simply put: help me obi wan ken-obi, your my only hope!
I tested the Teensy using the blink file

Posted: 12 Sep 2018, 14:32
by swampangel
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++

Posted: 12 Sep 2018, 17:00
by Muirium
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.
Posted: 12 Sep 2018, 21:45
by Hypersphere
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".
Posted: 13 Sep 2018, 01:51
by kaboom36
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
Posted: 13 Sep 2018, 22:46
by kaboom36
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
Posted: 13 Sep 2018, 23:43
by swampangel
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.
Posted: 14 Sep 2018, 00:08
by kaboom36
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
Posted: 14 Sep 2018, 01:12
by swampangel
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.)
Posted: 14 Sep 2018, 02:21
by kaboom36
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
Posted: 14 Sep 2018, 02:44
by OldIsNew
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++.
Posted: 14 Sep 2018, 03:27
by kaboom36
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
Posted: 14 Sep 2018, 04:03
by swampangel
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?
Posted: 14 Sep 2018, 21:22
by kaboom36
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
Posted: 14 Sep 2018, 21:29
by swampangel
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
Posted: 14 Sep 2018, 23:13
by kaboom36
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?
Posted: 14 Sep 2018, 23:37
by swampangel
Just to make sure, you're running this command:
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.
Posted: 15 Sep 2018, 00:07
by kaboom36
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.
Posted: 15 Sep 2018, 03:02
by swampangel
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.
Posted: 15 Sep 2018, 05:50
by kaboom36
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
Posted: 15 Sep 2018, 17:53
by swampangel
I'm out of ideas for the moment.

Posted: 15 Sep 2018, 18:05
by Muirium
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.
Posted: 15 Sep 2018, 19:03
by Hypersphere
@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?
Posted: 16 Sep 2018, 02:08
by swampangel
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.
Posted: 16 Sep 2018, 02:14
by swampangel
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.

Posted: 16 Sep 2018, 14:58
by Hypersphere
@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!).
Posted: 16 Sep 2018, 15:55
by kaboom36
@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
Posted: 16 Sep 2018, 16:24
by swampangel
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
Posted: 16 Sep 2018, 19:34
by kaboom36
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
Posted: 16 Sep 2018, 19:36
by Muirium
Well done! So, how does it feel out on the road, so to speak?