Level1 + Model M = Improving The Greatest Keyboard of All Time (2021 Unicomp "Mini M" Edition)

I want to start by saying thank you for this converter. I have been having issues with the PS2 → USB converters, Especially with a docking station. And a Unicomp i got also has an similar issue with docking station and suspend/resume. (this is not the mini so it is not supported for the upgrade unfortunately)

I did run into a few issues.

  1. the only information i found (including the gitHub pages) for how to connect the 16p header in the 20pin PCB was the image from Bryson_Osborne. (i think i see references to a website that is now dead.)

  2. the LEDs are illuminating the wrong order.
    my keyboard has the order: Num | Caps | Scroll
    the MStar Lights the LEDs in the order: Caps | Scroll | Num
    This is on a 1989 1391401, that came with a 386 SX PS2.

2 Likes

Hey, super glad my picture was helpful!
I would imagine that, for point 2, you can likely fix that in the firmware. Mine don’t light up at all, but if the wrong one is coming on, that should be (relatively) easy to solve with software.

As an example, this is from the file located at m-star/QMK/m_star_classic/m_star_classic.c
bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if(res) {
writePin(led_pins[0], !led_state.num_lock);
writePin(led_pins[1], !led_state.caps_lock);
writePin(led_pins[2], !led_state.scroll_lock);
}
return res;
}

You should be able to change the value inside the brackets next to led_pins to match what you need.

1 Like

You can always flash this to one of the other presets or create your own. Instead of changing the kepmap yourself though, the github page has presets that may be helpful to you.

The default flashed on the controller is the “wendell” profile.

1 Like

I sent you a message whenever you get the chance to reply :stuck_out_tongue:

I think I’m crazy. I don’t see it xD

I sent you a different message thread with a screenshot… lol

Well, got it to work eventually, apparently the latest version of QMK renamed the lock keys (scroll lock, cap lock and num lock), and also removed the terminal (so no TERM_ON, TERM_OFF) (and some other things)

The version of the Wendell profile on the m-star site worked fine without any key-lock LED remapping (even though i first swapped it programed it and then undid it again).

I also got my old model M 122key working (mostly) i will need to do a bolt mod on it for all of the keys to work though. (i was saving it planning on doing some sort of conversion with it ages ago and never did)

2 Likes

hopefully helpful! :stuck_out_tongue:

LED fix is here!! On Gitlab

Is there a parts list so I could order a pcb and build it myself or should I just wait for it to come back in stock?

wait its out of stock? should be in stock @Level1_Amber

1 Like

We do have the parts…Weird. I’ll count what we have and get it updated tomorrow

Probably something to do with having all the pieces but needing individual SKUs. One option is out even though we have more

1 Like

Updated! Every option is in stock :slight_smile:

1 Like

My local recycler has a Model M 1391401 Keyboard (October 1992) that I could probably get for $50. As someone who knows nothing about these keyboards, is this something worth picking up?

1 Like

It’s not the deal of the century but it’s not a bad price. Does it rattle when you shake it? Keys crisp or squishy as they bottom out?

If rattle and squishy you may have work to do to restore it

1 Like

Thanks! Ordered one.

1 Like

Awesome! I’ll get it packaged up for you Monday :smiley:

How’d assembling it go? :slight_smile:

Assembling it went fine. Solder joints aren’t too pretty

1 Like

Having followed the How-To Guide from @Level1_Amber as well as the QMK Tutorial, I attempted to flash Wendell’s layout onto my new M-Star controller in my new Mini M and ran into significant trouble, though I suspect that it is something quite simple that I am missing - like the wrong files a missing command argument, something like that.

The screenshot below shows the errors I get when I attempt the QMK Flash command (attempting the “minim” keymap first). Also, it wasn’t exactly clear from Eric Raymond’s gitlab where to find the correct source files because some of his documentation references /QMK/m_star-mini but there is no such directory in the repo, but there is an m_star_classic, which seems incorrect or confusing.

@Wendell (or anyone) would you be so kind as to point me in the right direction here? Thank you!

You saw this post too, right? You’ll get some errors when flashing.

This is a copy of the output you should get:

Ψ Compiling keymap with gmake --jobs=1 m_star_classic:wendell:flash

QMK Firmware 0.20.8
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k4J in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k5I in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key K64 in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k76 in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key K6B in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k7C in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k7D in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k0I in macro LAYOUT_at122 has no matrix position!
⚠ m_star_classic: UNUSED_PINS in config.h is deprecated and will be removed at a later date
⚠ m_star_classic: PRODUCT_ID in config.h is deprecated in favor of `usb.pid` in info.json and will be removed at a later date
⚠ m_star_classic: VENDOR_ID in config.h is deprecated in favor of `usb.vid` in info.json and will be removed at a later date
⚠ m_star_classic: PRODUCT in config.h is deprecated in favor of `keyboard_name` in info.json and will be removed at a later date
⚠ m_star_classic: MANUFACTURER in config.h is deprecated in favor of `manufacturer` in info.json and will be removed at a later date
⚠ m_star_classic: DEVICE_VER in config.h is deprecated in favor of `usb.device_version` in info.json and will be removed at a later date
Making m_star_classic with keymap default and target flash

☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k4J in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k5I in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key K64 in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k76 in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key K6B in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k7C in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k7D in macro LAYOUT_at122 has no matrix position!
☒ Invalid LAYOUT macro in keyboards/m_star_classic/m_star_classic.h: Key k0I in macro LAYOUT_at122 has no matrix position!
⚠ m_star_classic: UNUSED_PINS in config.h is deprecated and will be removed at a later date
⚠ m_star_classic: PRODUCT_ID in config.h is deprecated in favor of `usb.pid` in info.json and will be removed at a later date
⚠ m_star_classic: VENDOR_ID in config.h is deprecated in favor of `usb.vid` in info.json and will be removed at a later date
⚠ m_star_classic: PRODUCT in config.h is deprecated in favor of `keyboard_name` in info.json and will be removed at a later date
⚠ m_star_classic: MANUFACTURER in config.h is deprecated in favor of `manufacturer` in info.json and will be removed at a later date
⚠ m_star_classic: DEVICE_VER in config.h is deprecated in favor of `usb.device_version` in info.json and will be removed at a later date
arm-none-eabi-gcc (15:10.3-2021.07-4) 10.3.1 20210621 (release)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
   text	   data	    bss	    dec	    hex	filename
      0	  31614	      0	  31614	   7b7e	m_star_classic_default.bin

Compiling: quantum/command.c                                                                        [OK]
Linking: .build/m_star_classic_default.elf                                                          [OK]
Creating binary load file for flashing: .build/m_star_classic_default.bin                           [OK]
Creating load file for flashing: .build/m_star_classic_default.hex                                  [OK]

Size after:
   text	   data	    bss	    dec	    hex	filename
      0	  31614	      0	  31614	   7b7e	m_star_classic_default.bin

Copying m_star_classic_default.bin to qmk_firmware folder                                           [OK]
Flashing for bootloader: stm32duino
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Opening DFU capable USB device...
ID 1eaf:0003
Run-time device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 1024
Copying data from PC to DFU device
Download	[=========================] 100%        31616 bytes
Download done.
state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode