New SMD Model F controllers available

pandrew

30 Sep 2020, 12:34

Two new model F controller designs are now available:
1) SMD Model F controller, supporting later "standard" model Fs, including: F AT, F 122, F Unsaver, and the "Blue Switch" 3178 Model Fs:
smd_model_f_controller_top.jpg
smd_model_f_controller_top.jpg (527.1 KiB) Viewed 16285 times
smd_model_f_standard_bottom.png
smd_model_f_standard_bottom.png (233.17 KiB) Viewed 8716 times
Github URL: https://github.com/purdeaandrei/SMDModelFController

2) 4704 Kishsaver class model F controller, supporting original IBM F62, F77, F107, F50 keyboards.
(Note: this one does not support the reproduction F62 and F77 keyboards from modelfkeyboards.com, because those use 2.54mm pitch ribbon cables.)
ibm_4704_smd_model_f_controller_top_.jpg
ibm_4704_smd_model_f_controller_top_.jpg (402.55 KiB) Viewed 16284 times
kishsaver_class_bottom.png
kishsaver_class_bottom.png (201.87 KiB) Viewed 8716 times
Github URL: https://github.com/purdeaandrei/SMD4704 ... Controller

3) A slightly modified version of the "standard" model F controller from 1) above, with extra columns added. This may be useful for custom projects.
custom_top.png
custom_top.png (142.44 KiB) Viewed 8716 times
custom_bottom.png
custom_bottom.png (247.44 KiB) Viewed 8716 times
Github URL: https://github.com/purdeaandrei/SMDMode ... ra_columns

The differences between these are:
  • Board physical shape
  • Position of mounting holes
  • An F AT lock lights connector is available on the "standard" Model F controller.
  • A 3-pin buzzer connector is available on the kishsaver class controller.
  • The standard solenoid expansion header is available on both keyboards, but on the kishsaver class one it's hidden under the 3-pin buzzer connector, so you must either install 2x3-pin 90 degree pin headers for solenoid support or 1x3-pin 90 degree pin headers for the buzzer.
  • The third and the first one are almost the same, except the third one has extra columns, possibly useful for custom keyboard projects.
These can be ordered mostly assembled directly from jlcpcb.com. You must also order 5V pro micros (note MUST be 5V, not 3.3V!), and 90 degree pin headers, and solder them yourself. I am not planning on selling any (I may have one or two extra after my order arrives, but don't count on that). If anyone plans to build larger amounts, to resell, please post on this thread.

These have not been tested yet, but they have a high probability of working. My previous beamspring controller design worked out-of-the-box, see here:
viewtopic.php?f=50&t=24512

These are designed based on the TH Xwhatsit design, and are currently only supported by my QMK xwhatsit firmware, which is currently in closed beta. PM me for an invite, I will give a link to anyone, I just want be in contact with all users of the firmware at this stage. Also don't worry, this is not a Soarer type situation. Anyone getting the link will get the firmware under open-source terms, so if I get hit by a bus before releasing it openly, anyone who downloaded it can release it. I'm keeping it closed, only so I can directly ask people to test changes, when I make important changes. I expect to publicly release the firmware soon (within the month probably)
The QMK firmware variant that supports these keyboards is "/universal" (used to be "/through_hole", but renamed).

Stock monitor pages:
EDIT: stock monitor pages currently not working!
Spoiler:
To order these, please follow these steps:
  1. Go to http://jlcpcb.com , sign in to your account (create one if you don't have one)
  2. Click Order Now
  3. Upload the .zip file from the "order" subfolder of the relevant github repository. (see links above)
  4. Select PCB Qty you wish to build
  5. Set "Remove Order Number" to "Specify a location"
  6. Scroll down, turn on the "SMT Assembly" option
  7. Select "Assemble bottom side"
  8. Select "Tooling holes" = "Added by Customer"
  9. Click "Confirm"
  10. Click "Add BOM File", upload the "*_bom_jlc.csv" file from the "order" subfolder.
  11. Click "Add CPL File", upload the "*_cpl_jlc.csv" file from the "order" subfolder.
  12. Click "Next"
  13. Make sure that all parts say "Confirmed" with a little check box in the final column. If it shows a greyed-out "confirm", then some parts may be out of stock. (If parts are out of stock then your options are Wait until it's back in stock / Find equivalent replacement with correct footprint, if it is in the JLCPCB parts library / Redesign the board with a different component / Order the missing part from another supplier and solder it yourself )
  14. Click "Next"
  15. Double-check component rotations. In the past JLCPCB has changed how they handle bottom layer rotations multiple times, so it's quite possible for these to go wrong over time.
    Note: for chips, pin 1, which is marked with a dot by JLCPCB, should coincide with the longer line on the silkscreen.
  16. It's OK for R6/R7/R8 to be missing. They're supposed to. They're there for future mods.
  17. Double-check again, that Unselected Parts has 0 items.
  18. Save to Cart, Check Out.
BOM for additional components: (examples)
  • Pro Micro 5V/16MHz
    • Sparkfun Pro Micro: link
      * More on the pricier side, but Sparkfun designed the Pro Micro, so they are probably the highest quality source.
      * They also have many distributors: link
    • Aliexpress:
      * There are many sellers on aliexpress.com, the best deals are often for bulk quantities, but not always
      * Examples:
      * link (EDIT they recently raised their prices, cheaper is probably available, use search function instead)
    • Ebay:
      * Also many sellers, examples: link 1, link 2, link 3 - link3 is a less-then usual 'square' version where the microcontroller is in a TQFP package, still, works fine.
    • Alternatives, that are not exactly pro micro:
      * Sparkfun qwiic pro USB-C (not tested): link
    • DO NOT BUY:
      * Don't buy 3V/8MHz Pro Micros, they are not supported.
      * Don't buy "DM DIY MORE" Pro Micros -- these are wider then most other pro micros, and won't physically fit link
      * Don't buy Proton-C, because non-AVR cores are not supported by my firmware. link
      * Maybe do not buy Pro Micro drop-in replacements, that use DFU bootloader. These can be supported, but only if you compile your firmware locally. Otherwise many bootloader entry methods will not work. You also have the option of replacing the bootloader on one of these with ISP programming. Example: Elite-C
  • 90-degree/right-angle single-row pin header with plastic part on the long side: LCSC, TME
    • These are only for kishsaver-class controllers if deciding to support 3-pin buzzer, and no solenoid.
  • 90-degree/right-angle dual-row pin header with plastic part on the long side: LCSC, TME, Digi-Key, Mouser
Assembly instructions:
  • Make sure you have an 5V pro micro. (Either by checking that the crystal is a 16 MHz, and NOT a 8MHz one, or by measuring >4.5V on VCC even if J1 jumper is not shorted. (if the pro micro comes with J1 shorted, then it's a 5V pro micro. If it comes with with J1 open, then it could be either an 5V or 3.3V pro micro))
  • You MUST short the J1 jumper on the 5V pro micro
  • For the kishsaver-class controller, you must decide to either support a 3-pin buzzer, or solenoid controller. Based on your decision you must solder in either a 2x3 pin 90 degree pin header or an 1x3 pin 90 degree pin header
    twooptions.jpg
    twooptions.jpg (236.8 KiB) Viewed 16284 times
  • For the 'optional lock lights' header on the kishsaver-class controller, don't solder in any pin headers, there's not enough space for that in some keyboards. This is for soldering wires to it directly.
  • For the standard controller all soldered-in pin headers must be 90-degree ones. For the lock lights header you should start with 2x4pin header, and remove one of the pins from the plastic using needle nose pliers.
  • Please follow instructions on the pcb itself related to which row of pins to use for the ribbon cable, and how to orient the board.
  • Pro micros and pin headers are designed to be on the "top" side of the PCB (opposite of where the SMD components are)
  • For 3178 "blue switch" keyboards you can't use the mounting holes for grounding the backplate, so you must solder a wire with a crimp terminal to the controller. There is a hole marked "chassis ground" for that (but you can use any ground). You can ignore that for other keyboards since the controller is grounded via the mounting holes, and as such the ground connection is achieved by touching the exposed metal around those holes..
Partial cost analysis:
EDIT: probably outdated
Spoiler:
At the time of writing of this post:
  • Building 30 pcs:
    Total cost = 90 USD JLCPCB PCB and assembly + ?? USD jlcpcb shipping + ?? USD pro micro cost + ?? USD header pins cost
    I estimate you can probably build 30pcs at around 8 USD/piece, but will depend heavily on factors such as pro micro cost, import duties, etc...
  • Building 5 pcs:
    Total cost = 41 USD JLCPCB PCB and assembly + ?? USD jlcpcb shipping + ?? USD pro micro cost + ?? USD header pins cost
    I estimate you can probably build 5pcs at around 23 USD/piece, but will depend heavily on factors such as pro micro cost, import duties, etc...
  • More than 30 pcs can be built with jlcpcb only if the order is panelized.
  • You can ask JLCPCB to assemble only 2pcs, and send bare pcbs for the rest.
  • You can also decide to just build only the bare PCBs, and assemble these yourself at home, even the SMD parts. These are much easier to solder than original xwhatsit controllers because they have no QFN parts (those that have the pins underneath), and there are no USB connectors to solder. The parts on this design can be easily drag-soldered as long as you have good flux and a good soldering station. You don't need an oven or stencil or hot air gun.
Sister Projects:
Last edited by pandrew on 08 Aug 2022, 06:05, edited 27 times in total.

User avatar
Redmaus
Gotta start somewhere

30 Sep 2020, 17:55

Amazing, I will be updating redmarket with these in the coming weeks! Thanks so much andrei!

User avatar
darkcruix

08 Oct 2020, 21:19

I've ordered 5 PCBs - once I have them assembled I will update the thread. Thanks Andrei!

User avatar
darkcruix

10 Oct 2020, 14:45

I am checking for the correct ribbon cable at the moment. A standard 1.27mm caused some troubles last time I wired up a standard xwhatsit. I am searching for one that is like the original with single wires and the right distance between them for this controller.
Huge thanks

pcaro

15 Oct 2020, 10:40

I\ve ordered 5 PCBs too. Thanks Andrei!

User avatar
darkcruix

16 Oct 2020, 16:46

Fresh arrival ... I will (hopefully) try it tomorrow and give feedback
IMG_4066.jpeg
IMG_4066.jpeg (2.02 MiB) Viewed 17491 times

pandrew

16 Oct 2020, 23:44

Mine arrived today too!
@darkcruix I see you ordered the "standard" variant.
@pcaro Which one did you order? "standard" or 4704?

pandrew

17 Oct 2020, 03:30

I have not soldered these to a keyboard yet, but I did some limited testing today.
I soldered on a Pro Micro (to both an option 1) and an option 2) board), and I verified, that all the columns work, all the rows work, and that the correct threshold voltages are generated. Everything looked fine.
I'm not in a hurry to convert my keyboards, so I guess probably darkcruix will be the first to connect these to an actual keyboard.

PS I also added a link to option 3) on the first post, which is a variant of option 1) with 8 extra columns on a separate header. This may be useful for some custom projects.

pcaro

17 Oct 2020, 19:56

pandrew wrote:
16 Oct 2020, 23:44
Mine arrived today too!
@darkcruix I see you ordered the "standard" variant.
@pcaro Which one did you order? "standard" or 4704?
The standard variand too.

User avatar
darkcruix

17 Oct 2020, 22:52

pandrew wrote:
16 Oct 2020, 23:44
Mine arrived today too!
@darkcruix I see you ordered the "standard" variant.
@pcaro Which one did you order? "standard" or 4704?
Works perfectly guys - THANKS
F122 - standard QMK settings
E38AC68A-CC90-4568-B55F-01F920B53AFD.JPG
E38AC68A-CC90-4568-B55F-01F920B53AFD.JPG (2.12 MiB) Viewed 17381 times

pandrew

18 Oct 2020, 00:18

darkcruix wrote:
17 Oct 2020, 22:52
Works perfectly guys
Good to know!
Nice looking color coding on the wires!

Is there an issue with the second mounting hole position?
I measured out the mounting holes using my F AT original controller PCB, which should be the same as for the F122.

Cheers,
Andrei

User avatar
darkcruix

18 Oct 2020, 11:52

pandrew wrote:
18 Oct 2020, 00:18
...

Good to know!
Nice looking color coding on the wires!

Is there an issue with the second mounting hole position?
I measured out the mounting holes using my F AT original controller PCB, which should be the same as for the F122.

Cheers,
Andrei
Fits like a glove ... I am still in determining an issue with row 6 ... can't find any obvious shorts, but have to find the issue - other keys just work :)
Screen Shot 2020-10-18 at 11.46.39.jpg
Screen Shot 2020-10-18 at 11.46.39.jpg (313.22 KiB) Viewed 17327 times

pandrew

18 Oct 2020, 17:25

darkcruix wrote:
18 Oct 2020, 11:52
Fits like a glove
That's great!
darkcruix wrote:
18 Oct 2020, 11:52
I am still in determining an issue with row 6 ... can't find any obvious shorts, but have to find the issue - other keys just work
I suggest to try and clean away all flux residue from where you soldered the wires (both the sense PCB and the controller), with isopropyl alcohol. Flux can be a bit conductive and can cause problems especially around the sensitive rows. Can you post a picture of the signal level monitor?

User avatar
darkcruix

18 Oct 2020, 18:56

find attached the screenshot - I cleaned it with iso propyl alcohol without success.
Screen Shot 2020-10-18 at 18.54.14.jpg
Screen Shot 2020-10-18 at 18.54.14.jpg (552.07 KiB) Viewed 17271 times

pandrew

18 Oct 2020, 19:17

So what happens with those low signal value keys when you press them? Does the signal value increase?
I'm available on telegram or discord if you want to do some more efficient debugging.

User avatar
darkcruix

18 Oct 2020, 21:10

Sorry mate - thanks for making you available whenever I have an issue - WOW!
I fixed it by just re-doing the solder job.
This time I just used a Microscope and cleaned up properly (Yeah, not the workbench, it is a real mess, I know).

HUGE THANKS again - it is working flawlessly. Now I just want all 127 keys I use on the sensing PCB to work (looked at your xwhatsit.h and LAYOUT_all which should do the trick), but that is for another day.

Tell me, how could you put all this together without having all those IBM PCBs at hand? Genius !!!
workbench.jpg
workbench.jpg (2.79 MiB) Viewed 17243 times

pandrew

18 Oct 2020, 21:35

Glad to hear it works!

What do you think about that microscope, is it worth getting one? How's the depth of focus? Is there a noticeable delay in the image?

Yes LAYOUT_all will allow you to make use of all the sensing positions. Just make sure to set all positions that don't have a flipper over them to KC_NO / N/A for optimum calibration results.

I found or received a picture of the sense PCB of all the currently supported boards.

Andrei

User avatar
darkcruix

18 Oct 2020, 23:59

pandrew wrote:
18 Oct 2020, 21:35
What do you think about that microscope, is it worth getting one? How's the depth of focus? Is there a noticeable delay in the image?
For the price (around EUR 70) I was surprised about the clear picture without much lag and the optics. It focuses quite well. Just had to remove the protective plastic below the lens, as my soldering iron was melting pieces of it each time :)

pandrew

19 Oct 2020, 05:31

Hey guys,

A couple updates:
1) I renamed the "through_hole" firmware to "universal" (you will need to update the util.exe too if you update the firmware)
2) I have doubled the threshold offset for all Model F keyboards, and I bumped the number of calibration bins from 3 to 5. (darkcruix, please test this new firmware)
3) I also tested the "standard" controller in my Model F AT, works fine!
4) I added support for lock lights, by default configured to work correctly with the model F AT lock lights. In other cases lock lights would require mods to your keyboard so please PM me for details.
5) The debounce algorithm has been changed to per-key for all keyboards.

Andrei

User avatar
darkcruix

19 Oct 2020, 10:12

Just pulled the latest source, flashed the F122 with the layout_all settings and 127 keys. I am typing this right now with the F122 and can tell, it is working perfectly.
I can't test lock lights, but would love to have an option to display which layer I am currently in. But that is for another day ...

Huge thanks - great work, the hardware worked out of the box (rev.1).

re-compiled the utility and it also works without issues:
Screen Shot 2020-10-19 at 10.11.04.jpg
Screen Shot 2020-10-19 at 10.11.04.jpg (534.06 KiB) Viewed 17089 times

Rayndalf

22 Oct 2020, 09:44

I take it these don't support the F XT?

pandrew

22 Oct 2020, 09:53

Rayndalf wrote:
22 Oct 2020, 09:44
I take it these don't support the F XT?
Well, the FXT has an embedded controller on the sense PCB, unlike most of the other model Fs that are connected to their controller via a soldered ribbon cable. I think I have seen people convert F XTs by cutting off the controller part of the PCB, and then soldering wires to some testpoints. Quite a drastic mod if you ask me.

So these controllers are electrically compatible with the F XT. The XT layout is not yet in software, but that's easy to do. Once there's someone to test it, I'll do it. When it comes to which variant fits better physically inside the keyboards case, I have not investigated that.

Rayndalf

22 Oct 2020, 11:11

pandrew wrote:
22 Oct 2020, 09:53
Rayndalf wrote:
22 Oct 2020, 09:44
I take it these don't support the F XT?
Well, the FXT has an embedded controller on the sense PCB, unlike most of the other model Fs that are connected to their controller via a soldered ribbon cable. I think I have seen people convert F XTs by cutting off the controller part of the PCB, and then soldering wires to some testpoints. Quite a drastic mod if you ask me.

So these controllers are electrically compatible with the F XT. The XT layout is not yet in software, but that's easy to do. Once there's someone to test it, I'll do it. When it comes to which variant fits better physically inside the keyboards case, I have not investigated that.
I keep forgetting the controller on the key PCB. I agree, I think and external converter is probably a better option. Probably couldn't drive a solenoid though :lol:

Jacobalbertus1

25 Oct 2020, 15:38

I will be building a number of these in the coming weeks because I have 3 model f's I want to upgrade from the stock controllers to this and then have some spare but I'm making what 30 of these and will be dealing them.

User avatar
Redmaus
Gotta start somewhere

25 Oct 2020, 22:54

Jacobalbertus1 wrote:
25 Oct 2020, 15:38
I will be building a number of these in the coming weeks because I have 3 model f's I want to upgrade from the stock controllers to this and then have some spare but I'm making what 30 of these and will be dealing them.
I'm already having 30 made LEL supply > demand

User avatar
darkcruix

04 Nov 2020, 19:55

I want to hook-up lock lights to the extension header.
Is there a guide out there with the LED configuration, resistors etc, Pin-outs?
IMG_1095.jpg
IMG_1095.jpg (404.33 KiB) Viewed 16642 times

pandrew

04 Nov 2020, 20:26

Already talking to you on chat, but for anyone else reading:
1) Please always short J1 on the Pro Micro
2) Here is a snippet from the schematic:
expansion_headers.png
expansion_headers.png (12.41 KiB) Viewed 14897 times
  • The lock light are by default active-high. If you need active-low you will need to recompile your firmware locally.
  • There are already 330 ohm resistors there for led current limiting. (it's the most typical current limiting resistance)
  • On the solenoid expansion header, the numlock and capslock lights IO pins are available without resistors
  • Model F AT original lock lights are supported out of the box

pandrew

04 Nov 2020, 20:51

I realize I never posted a picture of a "standard" controller sitting in my Model F AT :),
here we go:
fat.jpg
fat.jpg (2.02 MiB) Viewed 14882 times
I used the original ribbon cable. Desoldering it was not fun. After I desoldered it I remembered that I have ones of these sets of hollow needles:
https://www.ebay.co.uk/itm/8PCS-Hollow- ... 2749.l2649
I totally forgot about it. I think it would have been a lot easier with these.
The yellow cable you see is the original cable that goes to the Model F AT's original lock light board.
I still have to figure out a good way to mechanically fix the USB cable, to protect the controller from accidental pulls from the outside.

User avatar
darkcruix

04 Nov 2020, 22:33

With the original F AT cable and lock lights it works just perfectly out of the box. On the other hand, I wasn't able to translate it into my own circuit for e.g. Caps Lock LED.
You are right, I have the controller up-side down - I used my F122 as a testing ground for the manual.

Update:
Thanks to pandrew (as always), it was an error on my end. It just worked (with the 3rd LED). It is as simple as connecting a simple LED to the PIN-out GND and either one of the lock lights as shown in the first picture:
image_2020-11-04_21-20-02.png
image_2020-11-04_21-20-02.png (29.51 KiB) Viewed 16540 times
IMG_4171.jpeg
IMG_4171.jpeg (357.26 KiB) Viewed 16540 times
IMG_4173.jpeg
IMG_4173.jpeg (492.23 KiB) Viewed 16540 times

Razerban

12 Nov 2020, 00:06

pandrew wrote:
22 Oct 2020, 09:53
Rayndalf wrote:
22 Oct 2020, 09:44
I take it these don't support the F XT?
Well, the FXT has an embedded controller on the sense PCB, unlike most of the other model Fs that are connected to their controller via a soldered ribbon cable. I think I have seen people convert F XTs by cutting off the controller part of the PCB, and then soldering wires to some testpoints. Quite a drastic mod if you ask me.

So these controllers are electrically compatible with the F XT. The XT layout is not yet in software, but that's easy to do. Once there's someone to test it, I'll do it. When it comes to which variant fits better physically inside the keyboards case, I have not investigated that.
You can find the details here: viewtopic.php?t=19522

Post Reply

Return to “Workshop”