Why can't I convert this bitmap? [membrane / rubber button]

Hi, I am trying to make a custom pad from a bitmap. It is supposed to be one half of a rubber button contact. I have successfully converted a filled circle like that for the solder mask clearance, but I do not get any result for the pad itself. I get either a square or nothing (just the text).

Here are my pads:


They are supposed to be 600x600dpi, so 4mm squarse. The traces are .2mm, which is in line with the design rules of my manufacturer, just as the clearances of about 0.18mm.

I seem to recall a bug with the bitmap converter, something to do with transparent backgrounds maybe.
In this case, I think it might be easier and better to draw the footprint directly in the footprint editor, or maybe a script.

Currently, drawing arbitrary pad shapes is tricky by any method, this will hopefully change in future versions.

Hm, the shape was tricky enough with a full features vector graphics programm … I guess I’ll go over a few other possibilities first. Perhaps I should try bmp

Here is a quick version

Looks pretty good!, so you drew this in some layer and then edited the text file to Cu?

Also, you were right, the issue was transparency. After saving it with a solid background in Gimp, it works, but the approximation isn’t awesome. So I might go for your approach, eventually.

Yes, the arcs must be moved to copper layer, that can be done by editing the arc properties in the GUI. The horizontal lines can be done in a similar way, or perhaps better as SMD pads.

There is a scary warning from KiCad, I believe it can be ignored for current (4.0.x) versions of KiCad, later versions (e.g. nightly) will move anything that is not a pad onto a drawing layer and mess up the footprint. I can think of a workaround for that, but it will need a script.

1 Like

So why is that? What’s the intended KiCAD way to do a normal task like designing a rubber button contact?

Not enough developers, mostly.
KiCAD is being used by more and more people with ever higher ambitions…
Can’t have all the bells and whistles with that.
But the devs are doing a hell of a job, that’s for sure.

That’s why - to get things done - workarounds are being thought of - tested - and sometimes work.
This is one of them.

2 Likes

So a lack of developers is the reason that in upcoming versions the only current possibility for stuff like rubber button contacts, PCB antennas and such will be deliberately destroyed?

I am not complaining that it is hard to do right now. I am wondering about

Already now, KiCAD actively restricts polygons in the Cu layer, even though it supports it after text file hacks. Lack of developers does not explain that.

I am very willing to go the extra mile to make a good footprint, but I don’t see a way right now.

Possible. But is crippling the software really a better way than putting a warning into the DRC report “I could not check this area, have a second look yourself”?
Again, I am not trying to do super special RF witchcraft, I want to build a stupid remote control switch as it is lying around in each and every living room, usually multiple times.

I don’t think so, at least not if you load it into PCBnew - for layouting. Would be news to me too.
But if you load such a manually modified footprint in the FP editor - that one is going to screw you over for sure - already does for edge.cuts for example.

1 Like

Well, it kind of works now, and I can’t really imagine something more import that you would abandon something basic like that for. But what do I know …

I think the next release of KiCad will have support for arbitrary pad shapes.

In software there is the 80/20 rule, writing the first 80% of features takes 80% of the time, the next 20% takes another 80% of the time. I guess remote controls are <1% of the use cases for KiCad, of course everyone thinks their desired feature is the most important thing.

The KiCad Life Cycle

  1. A New Toy! And it’s free, Yay \(.__.)/

  2. Peak of Inflated Expectations. This is going to be wonderful and solve all my problems like magic!

  3. Trough of Disillusionment. Wait, it can’t do that? That sucks!

  4. Slope of Enlightenment. Ok I figured out how to do that. I just need to learn stuff, it’s not so bad.

  5. Plateau of Productivity. This software is awesome, I designed 10 boards just last week!

2 Likes

Well, first of all, I was talking about talking away existing features. With that new information, it sounds like the hacky solution will be replaced with a decent one. That would be fine.

The other thing is: Most people do not decide on a PCB software per project. You build up your library, and chaning over becomes hard. Most people will not design a remote control, but when they look for a PCB software they want to start with or change over to (e.g., because their old one became a subscription model, looking at everyone knows who), they will certainly think twice if they cannot even design a remote control with KiCAD.

Also, as you might have noticed, I asked multiple times for 4. :slight_smile:

KiCad is essentially a volunteer effort, so that’s like telling a charity “I don’t like your free cakes, so I will go somewhere else!” Sounds like you’re still at 3…

Anyway, you can design a remote control, and many other things in KiCad, but it might take some effort from the user instead of being part of the free buffet.

4 Likes

Well, as far as I know, CERN is involved now, isn’t it? Anyway, commonly, people who put effort into something want it to be used. I am merely and politely suggesting a major issue in that. Not really “I don’t like your free cakes, so I will go somewhere else!” but “Nice that you make free cake, but it has occasional steel screws baked into it, I cannot really give it to my friends like that.” I would really like our institute to change over from a certain bird of prey, but I will be tarred and feathered if someone runs into such basics limits after the change.

I have already spend half a day playing around in LibreCAD and Inkscape to set up a good bitmap. I have also just been sitting in front of a Kate window for 20 minutes trying to find out why the footprint file isn’t shown in the library. Probably some missing bracket somewhere. I even figured out how to make something like your footprint that you showed me without explaining how it is done or attaching the files. For all I got from here by now, I did all that just to have the footprint that will eventually come out of that process butchered by an upcoming release.
All in all, I find it pretty ridiculous to be accused of a lack of will to put effort in, ESPECIALLY since I asked in almost every post what would be the way to go.

… well, or perhaps I didn’t? I thought you made the round shapes in Cu and then placed two SMD pads in there. I tried that, but I cannot connect the pads, probably because the copper isn’t recognized as part of the pad and design rules would be violated

Could you share your footprint or add a screenshot?
We can not see what your problem is without this information.
(Maybe there is an easy way.)

Also: There is a tool called svg2mod which is designed to convert inkscape drawings to pcb modules. This tool allows you do put stuff on any kicad layer. (Even on layers you can not use in the footprint editor.)

1 Like

You need pads, that overlay the 'graphic on copper (= the stuff you didn’t do with pads, but which are the membrane button structure) so that the layout tool can connect them.

Also, here are some threads (essentially all I could find after 1 min of searching) in regards to this:

2 Likes

Actually, I think I had old traces under the footprint that prevented the connection. It works now. Got a little late yesterday evening. My new footprint looks pretty much like the one in the second posting. Sure, I can attach it, perhaps somebody has some use for it4mm_Rubber_Button.kicad_mod (2.4 KB)

Yes, I did that, but as I said above, there was another problem. In the first version, I had connected the stripe pads in the PCB, and those tracks where still there. BTW: They are one hell to delete, it would be great if KiCAD wouldn’t select layers that are not shown …

Those basically tell me that my shapes can’t have a net, don’t they?

Sounds awesome, but it didn’t work for me at all … here is my SVG:

It is saved as an Inkscape SVG, all shapes are converted to paths and the layers are named, but the result is useless …