Mini art and the M-star style

User avatar
dotdash

05 Dec 2022, 22:44

I picked up one of the early Unicomp Mini-M's shortly after they were released.
It's a great keyboard, but unfortunately the controller has been problematic.
The keyboard sometimes is unresponsive when the computer boots, and needs to be unplugged and re-plugged. It's also prone to the Q and other keys becoming unresponsive. My firmware shows as revision 0752. I believe these problems were remedied to some degree after later firmware revisions, but I've been reluctant to send the keyboard back so have been living with the issues. I came across the Level One Techs controller replacement project a while back, and have been checking back to monitor progress from time to time. Having a reliable controller with the ability to remap would take care of my two biggest issues with this keyboard. When I saw the controllers had made it to the store, I decided to get one. Being a cheap bastard, I got one in kit form. I can manage soldering up a Teensy for a Soarer's, so I figured I could handle putting together a kit.
Which may have been optimistic.
Here's what you get. The board, and taped to some cardboard, the bluepill, a usb connector, and two friction rubbon connectors.
The board is well labeled and eveything lays out nicely.
layout.jpg
layout.jpg (1.33 MiB) Viewed 3989 times
The biggest problem for my old eyes and shakey hands was not blobbing two pins together with an overabundance of solder.
I got the thing assembled and plugged into into a machine to make sure it came up. The led lit up and the PC announced it had found a Model J keyboard. Then I opened up the keyboard and extracted the old controller. The instructions mention later models have posidrive screws securing the case, but mine has the old school Model M hex screws that require a thin socket driver. The easiest way to remove the friction washers that hold the stock controller in place is by cutting them. My plan is to secure the new controller with a dab of hot glue on each post.
Here is the old, cursed controller, with the new controller.
old&new.jpg
old&new.jpg (3.15 MiB) Viewed 3989 times
When I got everything connected for the test, I found the new controller was also cursed, most likely due to my shoddy work.
I fired up switch hitter, and all was looking good until I tried the F9-F12 block. They keys didn't register, then the board started spewing random phantom keypresses. This didn't stop until I unplugged the board and plugged it back in. Another test shows every other key seems to be working, but hitting the last block of function keys causes it to freak out.
soldered.jpg
soldered.jpg (1.24 MiB) Viewed 3989 times
I'm trying to figure out what could cause this behavior. My untrained eye doesn't see anything glaringly obvious.
My next step is to try and figure out the matrix, but this requires setting up QMK and getting the code from the m-star repo merged in. The ultimate goal is to get vial going so the keyboard can be easily programmed without the need to reflash it every time I want to make a change. I'm currently trying to get my head around git, QMK, Via, and Vial. It makes me wish this could have been done with Soarer's, which is dead nuts simple and can be easily reprogrammed. Unfortunately, that path of the m-star got derailed, as evidenced by the shitshow thread that erupted when it was suggested someone could discover his identity and try and get permission to open source his work.

User avatar
Muirium
µ

06 Dec 2022, 10:06

You could try running Soarer’s Controller on this. I reckon it may well be compatible. Maybe use the Teensy++ version of the hex file.

My SSK configuration file is here, for an example of the format.


Scratch that. The Bluepill is some arm board. You’re fucked then for nice simple Soarer support. What were they thinking? Running a USB powered matrix is perfectly within the ATmega’s capabilities, and all the firmwares are already there. :roll:

I wonder if a Teensy++ could be wrangled onto that PCB…

User avatar
dotdash

06 Dec 2022, 23:33

For the ticker-tape kings, and the juveniles
Ok, digging into the m-star QMK fork, the info.json has the matrix:
"matrix_pins": {
"rows": [ "B6", "B5", "B4", "A15", "B3", "A0", "A2", "A1", "C15", "C14", "C13", "A13" ],
"cols": [ "B12", "B13", "B14", "B15", "A8", "A9", "A10", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A4", "A3" ]
},
The connectors are labeled Columns and Rows on the pcb, so I did a connectivity test between the connector pins and the pins on the bluepill. Everything checks out ok. There's no pin labeled A13, but I got connectivity to the pin wired to the board off the end connector. The directions suggested using a paper clip. I used a connector from an old motherboard reset switch.
So, still nothing obvious. I'm hesitant to button it up again without finding a smoking (solder) gun. The friction connectors are good for a limited amount of insertions.

User avatar
dotdash

06 Dec 2022, 23:55

Muirium wrote:
06 Dec 2022, 10:06
You’re fucked then for nice simple Soarer support. What were they thinking?
The project was designed to be an open source replacement controller. Besides the mini-m, they're doing kits for classic Model-M keyboards. The frustrating thing is that the files aren't in the main QMK repo, so you have to try and merge them in yourself. Via seems easier to enable from QMK, but it's closed source and runs off their webserver. Some people are fine having their keyboard configuration tied to someone else's web page, but I'm a grouchy old timer. Vial seems nice- open source and runs from a local app, or a random web page, if you prefer that. But vial is yet another fork. I tried just jamming everything together, and unsurprisingly when I tried to compile the firmware it blew up with errors saying it was expecting a semicolon while processing some obscure linked file.

User avatar
dotdash

05 Jan 2023, 00:06

Counting the stars and the telephone poles
Small update. I still haven't managed to get the crusty m_star code to compile on a current version of QMK, but my picking of SunshineRag_DT's brain (thank you) has yielded a critical piece of information: The shipping firmware on the M-Star contains 'easter eggs', so hitting f11 prints a copy of Wendell's qmk directory and f12 dumps a transcript of the opening of Dungeon (predecessor of Zork). This explains why the keyboard tester I was using appeared to freak out when I hit the last F keys...
So now I've got it assembled again, and have a Mini-M without the bugs of the early Unicomp controller, but without usable F11/12.
This should provide some motivation to dig back into the QMK layout.

User avatar
dotdash

12 Apr 2023, 22:55

Coming back on the CB radio...
Update. Between work, life, and other projects, my motivation has been low. I had the mini on a secondary computer, so my solution to having a keyboard without functioning f11-12 was to pull out my Soarer-converted terminal M and stick the mini on the shelf. I checked and saw that Wendell had updated the m-star repo recently to fix the compile issues. I grabbed the new files, and was able to compile and flash a fully working firmware to the mini. Maybe after taxes are done, I'll dig back into Vial.

pandrew

14 Apr 2023, 15:42

I did my own "MiniRazz" replacement controller for the Mini M, see here: https://github.com/purdeaandrei/MiniRazz

I've done VIAL firmware for it here: https://github.com/purdeaandrei/vial-qm ... z/releases
And pure QMK PR is pending here: https://github.com/qmk/qmk_firmware/pull/20106
There's also ZMK firmware for it: https://github.com/purdeaandrei/minirazz-zmk-config

If you're gonna try to bring VIAL support to the m-star, then you can re-use my vial.json, and qmk info.json, including the layout macro which is encoded data-driven into info.json. So basically I think all you'll need to do is to correctly define the GPIOs, architecture, and set up storage for VIAL. (not sure if the boards have external eeprom, or if you'll need to set up eeprom emulation with the internal flash chip)

If you want to upstream pure QMK, then I'd say wait a little for my above mentioned PR to be merged, and then add support to the folder

Code: Select all

keyboards/unicomp/mini_m/m_star
, that way you can reuse the outer info.json file that's in

Code: Select all

keyboards/unicomp/mini_m/info.json
, and the default keymap, making the embedded numpad work correctly.

I may do some of this in the future, if you or someone else doesn't, but I'll need help with testing since I don't have an m-star.

Note also that Unicomp is probably gonna re-release the Mini M with an RP2040-based controller. And QMK and VIAL firmware will probably become available for that too. So both MiniRazz, and M-star for Mini M are probably only gonna be useful for already-bought keyboards, or for a while newly bought ones from keyboardco: https://www.keyboardco.com/keyboard/usa ... tegray.asp (I believe these still use the old Cypress-based controller, as long as they still have stock of it)

Post Reply

Return to “Workshop”