M60 Mechanical Keyboard by MakerDiary

Do you work for microchip? I’m just curious what your source is since I can’t find any documentation to or rating. I don’t doubt that it’s a protection diode but I’m not convinced that it is rated for a high voltage like an esd strike

Maybe it was something else? I suppose it is anecdotal evidence, but I walked across the room, touched the keyboard, felt a shock, it stopped working, I replaced the MCU and it worked again. Seemed pretty cut and dry to me.

1 Like

I don’t, but I work with people who work with people who reverse-engineer those things. The ESD-protection diodes are a common pattern, they are present in pretty much any GPIO driving circuit in all modern microcontrollers. Take any datasheet for any MCU out there, and you will find them.

It’s a shame we can’t repeat the experiment with an additional protection diode on the PCB, to confirm that it actually protects from this. It would be interesting to examine the chip, if you still have it — I wonder if it would start working again if you reflashed the firmware on it.

1 Like

Sure, they’re pretty much standard now, but they’re not as good as an external tvs might be. I used to work at a chip company, we had some protection on all the pins, but we still recommended external facing protectors when you had something that was exposed to the outside world; pretty much everyone does. Here’s an example from a random ADI datasheet I had open:


I work in industrial IoT now, you bet we put them everywhere, the cheap cost is worth it over even a few out of tens or hundreds of thousands failing in the field and needing to be replaced.

Of course I tried to reprogram it before I took the nuclear option of replacing, it was completely unresponsive to anything and drew quite a bit more current than I would have expected.

The only point I’m trying to make here is that it can happen and for the 10c it costs it’s generally better to be safe than sorry.

2 Likes

You are completely right that no matter how many protections you have, they can be overwhelmed if a particularly unlucky event happens. Unsoldered chips are especially sensitive and need careful handling, because there is no inductance and capacitance of the PCB traces and metal case soak it up and smoothen the spikes. But once the chip is on the PCB, with all this copper around it, with filtering capacitors close to it, the risk is much lower. And a grounded metal case effectively reduces it further to negligible values.

Now you have to ask yourself if the protection given by the additional diodes is worth it. To do that, you have to consider what additional events are possible where the diode would protect a circuit that would otherwise be damaged, and how common they are. For example, I very much doubt that an additional diode on one of the USB signal lines would have protected your keyboard in the case you described, where you touched the metal case and not the USB port.

1 Like

I would agree with that, there was something fucky going on with on that board, I learned a good lesson about buying pcbs from amateurs when the guy it came from sent me swear words when I asked to either return it or get a replacement not even six months after I got it.

imo the answer here is usually yes, with the caveat that it’s done properly when the cost of tvs diodes are literally cents. That’s just like my opinion though. I come from a world of mostly handheld devices where the likelihood of someone touching the USB port is much higher though.

A little video to have fun while learning about ESD by Electroboom et Linus Tech Tips:

I recommend watching ElectroBoom Youtube channel BTW :smiley:
And don’t do what it does, he knows the risks and most of us don’t :smiley:

1 Like

Some light necro-posting here, but I actually built one of these. So here’s a long-winded review of where I’m at.

Build Details

  1. M60 PCB & switch plate with integrated antennas.
  2. Liter 354080 3.7V 1500MAH battery (it was necessary to extend the wires on this one).
  3. Gazzew Boba U4 RGB switches.
  4. C3Equalz screw in stabilizers.
  5. Drop Skylight white caps.
  6. Stupidfish switch plate foam.
  7. KBDFans 5-degree aluminum case.

Assembly
The assembly was kind of a pain if I’m honest.

First, if you want to use bluetooth, you’re going to need a battery. Maker Diary has one they recommend, but it’s no longer available. Thankfully there’s a lot to choose from on AliExpress, but you find out rather quickly that the battery you need depends a lot on your case.

In the case of mine, I ended up needing to find a battery that was less than 4mm thick, had a 3 wire setup, a JST 1.25mm connector, and would fit inside the shallow cavity in the case I selected.

So once I got that sorted it became very apparent that the tray foam wasn’t going to fit at all. So I used some self-adhesive felt that seems to be doing a well enough job.

Assembling the stabilizers, switches, and keycaps was all pretty normal. Except for the delicate ballet of getting all the wires to go somewhere that won’t cause damage to them while you assemble the case. This includes the two antenna wires that run from the MCU to the switch plate up top.

Installing stabilizers, switches, and caps was completely ordinary. The outcome of the switches, stabilizers and cap selections is a nice sounding board that’s pretty quiet overall.

Firmware
Now comes the making it actually work part and here’s where I’m currently sat. The basic firmware works. The controls are a little odd and offer nothing in the way of feedback. So it’s not clear whether I’m disabling the bluetooth and enabling USB because when I try nothing seems to work. So there’s been a lot of manual power cycle and USB disconnects (thank goodness for magnetic USB cables).

I’m actually familiar with how the Python flashing on this works thankfully, but it’s REALLY slow. It takes forever for the little MCU to process new updates so you sit there wondering if it worked, but eventually you hear the little sound from windows indicating a change in USB status.

I will say this, the use of Python here is brilliant in terms of being able to rapidly change your key mappings. Because the Python script is re-evaluated on a change. So edit the file that you can access easily from Windows, save, and boom, you’re new mapping is ready.

The downside, in my experience at least, is that this system is more complex that say QMK and capable of just crashing unexpectedly.

Up Next

  1. Get the RBG working.
  2. Figure out why the latest firmware won’t take.
  3. Modify any mappings.
  4. Memorize the layers.
4 Likes