Keypad rejuvenation / PCB cleaning?

  • I just took my monome apart and gave it a nice dusting/cleaning but I can't help but think that it can get cleaner.

    Has anyone gone at their pads with the whole warm/soapy water treatment? And/or some contact cleaner on the PCB?

    I'm basically trying to get sensitivity as perfect as possible.

    Also been talking with Brian about changing the firmware to work with the 2012 pads (on a 2011 monome). When I use the 2012 pads I get tons more misfires/ghost things so it seems like the debouncing needs adjustment for the more sensitive pads.

  • isopropyl alcohol i what i use.

    i have a new batch of test pads showing up today-- jason (at the production house) said they're much more conductive which is encouraging.

  • firmware tweak eh? I think I have 2012 pads in my 2011 grid...

  • Don't know if it will do any good, and it's not easy. I have to recompile code and use a hardware programmer (can't do it over USB).

    Not done it yet so we'll see.

  • the original unit i had was a first edition grayscale, which i remember being much more responsive than my current unit. my 2011 64 just isn't as responsive as i would like. i haven't had any issues with ghosting however.

    i'd be willing to test your firmware tweaks if you compiled them for me rodrigo :)

    i think i've upgraded firmware on all my monome devices at some point or another. i got new pads from brian in march 2012, so i presume they are the same "2012" pads as your replacements. i have a tilt upgrade, so maybe i would have to incorporate your tweaks and actually compile the firmware myself...

    keep me posted. if you manage to improve your button response i'd certainly be up for making this change.

  • Will do. I don't know how it varies across years but there's a firmware you can update via USB (the keypad board) and then there's the USB side one that you can't bootload (at least on the 2011+ versions).

    I think I compiled it. Waiting to hear back from Brian about an error I got doing it before trying to upload it.

  • do you have a tilt board in your 64? i'd probably have to compile the firmware to include that myself otherwise...

  • Very interesting! When I built my 40h kit, I gave the keypads (and PCB contacts) a good wipe down with iso propyl alcohol and non-linting cloth.

    I've always felt the button action could be better. I'm surprised how assertive I have to be with button pushes, and have watched the videos to try and gauge what it's like on other devices. I would expect the buttons to need a similar pressure as a typical push-button sampler or drum machine, and based on my experience of the Zoom sampletrak, I'd say the monome needs more grunt to register a button push reliably.
    The pressure required is not consistent. Some buttons are a lighter action than others, so what works for most buttons, doesn't work for all.
    Occasionally a button sticks down momentarily.

    There are a number of factors which I'm aware of:
    **The keypads had a dusting of talcum powder, which I had cleaned off: this has been highlighted elsewhere, so I just need to buy some (non-scented) talc.
    **The plan for the faceplate gives dimensions for the button holes and positions, but no tolerances - I asked for +0.1mm -0mm, but it was a guess.
    **The four silicone button mouldings have a little flash and may not be dimensionally right on the edges which meet. I can see the four quadrants are all slightly pushed away from the centre wrt the button holes. So when I do the talc, I may take a steel edge and scalpel to those edges, so they don't interfere. It's tricky stuff to trim though.

    Overall, it looks right, apart from the quadrants being pushed to the corners, and clearly works. It's just a bit of a flaky action: I'd be wary of giving it to someone else to use.

    @tehn - the firmware is circa 2008-9 - should I be looking at something with a different debounce?

  • Yeah it does seem to require a firm push, and as you mentioned, inconsistent.

    Gonna buy some alcohol today and clean the PCB, as well as warm/soapy water the pads. Thankfully I have some talcum powder from my Tabla playing days, so I'll dust them with that when I'm done.

    I don't have a tilt thing in mine, and don't know what it requires to get it up and running (wether that lives on the USB-able firmware bit or not).


    required a new logic board firmware delivered via the bootloader.

    i do have a avr programmer too though.

    interesting that you need to flash the firmware via a boot loader. i wonder is it something to do with writing data to different memory locations on the avr chip.

  • tilt required a modified logic firmware delivered via bootloader, yes.

  • Ooh handy link. Brian sent me some instructions, but this goes into more detail.

  • Can someone with both 2012 and 2011 keypads and a volt-ohmmeter measure the resistance of the pads?

    I'm getting about 500ohms from corner to corner on 2011 pads and on the 2012 nothing registers corner to corner unless I press REALLY hard, then I get upwards of 3Mohms. However, if I measure from one point to a point right next to it, the 2012 pads register about 15ohms (while the 2011 ones seem to stay at the 500ohm range).

    I tried several pads and this was approximately what happened. Curious to see if anyone has the same time of conductivity.

    From this quick measurement it seems like the 2012 have waaaay less resistance, but over tiny spaces. From the furthest points in the pad it's quite a bit more resistant.

  • lateish here so i'm not going to open up my monome, but my older pads read similar to your readings. i'm sure my newer ones would read similarly to yours.

    not sure what you're getting at though?

  • Well just trying to see which to go with when trying to 'tune' the debouncing. Brian said to go with whichever pads had a lower resistance.

    Under certain circumstances its 2012 and in another 2011....

  • Interesting to see where the discussion of pads is going. If the newer ones are more sensitive, I wonder where that leaves 2008 pads? Should I be upgrading?

    @Rodrigo - could you elaborate a little on what you mean by 'corner to corner' and point right next to other point: I can't visualise where your putting your probes.

    @interested parties - it might be productive to quantify what a 'perfect' feel/touch/action is for these devices. I believe piano actions can be specified by the weight required to activate them (although speed would also be important). In the case of the monome, we are talking about switches, so we should be able to say that placing a 100 gramme weight on a button will reliably cause it to trigger for example. A comparable example might be setting up the tip of an electric fencing weapon, with the tip switch calibrated with a 500g weight. If it triggers, it's too sensitive.

  • For the 'corner to corner' thing I mean the two furthest points on the square pad. So bottom left point, to top right point. (though any opposite points are the furthest possible).

    For the 'close' points I mean on the left wall of the square to the left wall of the square (so both problems on the same 'side' of the square).

    Getting all piano action on it would be interesting. Not sure how that would work with the nature of electronic switch/debouncing.

  • @Rodrigo - thanks for the response. Just for the sake of clarity, are you measuring the resistance on the conductive rubber ring under the silicone button, or off the PCB, and is this just the resistance at different positions on one button (rather than, say, corner to corner across the whole array).

    The action: the main constraints are the free mechanical springiness of the silicon buttons in their 'web' which should be fairly consistent, and any factors due to fit and stiction in the faceplate (sudden thought: a thinner faceplate should have less effect). Fit issues may not be simply due to being to tight, but also due to button deformation or alignment when pressed (the button might tilt and rub the inside of its aperture in the faceplate). Tehn mentions elsewhere that getting the clearance right is quite important, too tight or too loose has an effect.

    I'm less clear about the electronic triggering. My understanding of debounce is simply to stop a noisy contact from causing repeat triggering - this is handled by introducing a delay and hysteresis. With the conductive rubber (or whatever it is) I imagine there may need to be some sort of threshold current to characterise a positive button push. If this was the case, then the resistance/conductivity of the button element could be quite important.

    Some input from tehn might clear this up. I would also be interested to learn how thick the faceplates are on the different models of monome; mine was pretty much per the drawing, although I've substituted 6mm for 1/4" plate.

  • I'm measuring the conductive rubber, and only on a single rubber pad/ring (not across many of them).

    So each individual button's rubber ring is what I measured, from corner to corner, and close etc...

    On a walnut one the friction/rub against the faceplate doesn't feel significant. I'm sure it's having an impact, but given how small the buttons are (smaller than my fingers) they more or less go straight down-ish.

  • Thanks for the detail @Rodrigo
    My workbench is currently covered in nearly-finished Reprap, so I need to make the space both mentally and physically to disassemble the monome.

    I am curious now, to find out what the necessary force is to make button presses: it should be fairly straightforward to lash something up to do this.

    I have a suspicion the 40h kit has larger buttons than the devices with more buttons. Not sure if this is the case with other 64s

    Since you started the thread, I think any updates I make will generate an email alert for you, if you set things up that way.

  • Yeah I'm subscribed to the thread to follow stuff.

    The 40h buttons are quite a bit bigger than the walnut buttons, and the sparkfun buttons are even bigger than those.

    The 64/128/256/512 all use the same 16pad 'cores', so that a 64 is 4 of these pads and it scales up from there. Likely the same thing as the 40h, though yours are bigger.

  • I did a very rudimentary test on one button last night, and would say the force to 'click' one of my buttons is around 130g. My method was to put a pivot slightly higher than the monome, next to it, balance a strip of wood on it, with a small piece of cable between the wood and the button, then put objects on, to see which would depress the button. Then weigh the winning object. Obviously, you could slide the object along for a more finely calibrated force, but I just put it over the button.

  • @Rodrigo - thanks for the detail on different button types; our puts things into perspective for me.

  • I'm wondering if I have any little weights around. I kind of feel like I do.

  • what exactly is the weight thing going to show you though?

    speculation: the square design of the PCB pads means that whatever the resistance of the pills, a centered downward press is required to reliably trigger a button press.

    an off centered press on any button (sometimes!) causes electrical contact between the inner and outer ring to not be made, because the pill is only in contact with the outer ring:

  • Well it can objectively show wether the 'feel' of the 2012/2011 are different.

    That's interesting on the square pads. I hadn't thought of that. In casio style keyboards I think it's this zigzag type pattern, though that doesn't have an LED in the middle to contend with.

  • the bibo arduinome boards also had that "zig zag" pattern for the buttons.

  • Interesting. Obviously the monome pads are square-ish, but I wonder if/why that kind of zigzag thing wasn't the way the monome PCBs were built.

  • you'd have to ask the big man that :)

  • i'm having the same problem measuring the 2012 pads with a voltmeter. it's insane-- because if they were actually 3megaohm etc, they wouldn't work at all when installed.

    i abandoned the zigzag pattern in 2009 when we figured out a substantially more conductive material, and as a result reduced the size of the pill to accommodate the much larger white LED. something happened since which hasn't been resolved.

    however, i just got word that the new pills are reading 10 ohms on the meter, which is fantastic news. i'm hoping this can reliably be reproduced in production-- there's a new procedure for rolling out and trimming the material.

    something else with regards to keypad feel-- most non-lit designs have a centered pill, with a round membrane. these have a very different mechanical action.

  • I don't know anything about conductive material, but the most remarkable thing to me is how well it conducts in close proximity, then loses that very quickly the further away you get.

    That's awesome about the new pills/pads.

    I got a new makefile from brian so I'm going to try recompiling the code.

    If it works well I'll precompile a bunch of versions of the code, though it looks like you need to update the serial number to be your own serial number as per this page:

    I'll post up my compiled versions once I do it, but don't know how useful it will be due to the serial number thing.

  • @tehn
    I take it that the conductive black rings in the 40h kit (circa 2008) are less conductive than subsequent models. Is it possible to upgrade? Alternatively, I suspect that there would be a threshold current or voltage which gives the trigger, and would like to know if there is a component on the PCB which can be tweaked in order to adjust to taste.

  • cool, keep us posted.

  • you actually don't need to update a serial number-- you do need to update which grid you're compiling for, with an I2C address. the 64 only has one grid so it's always 100. i'll compile a few timings for you just in case.

  • all for ADDR 100.

    debounce value at end of filename. rename to grid-op.hex and run make flash

  • As in, doing what it says at the bottom of this page:

    "make boot" in terminal after navigating to the location of the grid-op.hex file?

  • and coming back to the perfect action...
    It occurred to me to check the actual button travel. Looks like it travels 1mm to make contact. It seems to me that's enough to allow a tilted button. I'm wondering if there's some way of dropping the conductive black ring by, say, 0.5mm. When I've more time and inclination, I may check all the buttons: there may be some rogues.

    @tehn: I'd be interested to learn if the black rings (particularly in the old 40h kit key sets) can be taken out and replaced securely (my hunch is that they are a push fit into the silicone) if so, one could experiment with a 0.5mm packing ring.

  • Hmm. Can probably diy something, but I would imagine with something as fickle/delicate as these keypads that it'd be too easy to mess with the 'feel'.

    I finally cleaned my pcb with alcohol, and am going to try the 2012 pads on there (to do the fine-tuning with). Not exactly sure how to flash the firmware though (ie "make flash" or "make boot" etc..., and in terminal or what).

  • Finally got the firmware updated. You need to have the file "Makefile" in the same folder as the grid.op.hex file, then you type "make flash" in terminal.

    Took me a bit to get the usbtiny programmer going but in the end it did.

    Now for some reason nothing is working at all. The monome still shows up in serialosc but no button presses or LEDs are working. The leds don't even flash when you plug the USB cable in. I emailed Brian to see what's up, but it's a big bummer as I had finally figured out the firmware flashing!

  • @Rodrigo
    Yikes! That's a whole new spin on the idea of updating firmware.
    Hope you get it to a good place soon.

  • Yeah it sucks especially since I have a rehearsal on friday. I guess it's my bad for doing something big like this before a rehearsal but I thought the worst that could happen was less than ideal sensitivity.

  • working on this.

  • @tehn

    I'd appreciate your thoughts on reducing the travel on the 40h kit buttons - the first thought being to take the conductive rings out of the silicone, put a little spacer/shim ring in and pushing the conductive ring back. Is that a really silly idea? Is the conductive ring bonded in, or simply a push fit, and would removing it be reversible?

  • @chrisbob12 you should start a separate thread for the 40h kit buttons - would make it easier for peeps looking for info on 40h kit tweaking in the future. this thread is really about 2011 devices firmware tweaking...

  • As an update to my saga, it turns out I was flashing the keypad firmware onto the usb board....

    I reflashed the usb board, then reflashed the keypad board, but then nothing was working again...

    BUT when checking it in max I noticed that it was sending messages, just the wrong kind of messages. It seems like my 64 now thinks is the righthand 64 of a 128 (registering a range of 0 8 0 to 0 15 0). So it seems like something got messed up somewhere.

    On a sensitivity related note. The sensitivity of 2012 pads and the 14cycle firmware is not much an improvement. Once I figure out with Brian what's going on with the 128ness of my 64, I'll try flashing a higher value debouncing scheme.

  • @tinitus
    I'll get my coat then...

  • Lol, I think this thread got derailed with 2011 firmware stuff, but I'd like to think that it's all about button stuff in general.

  • Saga sorted. 2012 pads on 2011 monome with 20cycle firmware. Feeling pretty good. Not perfect, but improved.

    Also noticed that having the led/button pcb tightened on as light as possible helps sensitivity. (I had mine on there cranked)

  • oh cool, good work. could you post the hex here? loose tightening definately makes a difference. did you slow down or speed up the button press sampling from the original speed in the end?

  • Here are the files I used. It's twice the value from the 'stock' version (20cycles vs 10cycles)

  • thanks dood. you reckon it's a real improvement?