in a project that I am developing, I have a plastic cube with metal contacts, like this:

enter image description here

The cube is 2cm x 2cm x 2cm. The metal contacts are nails with ~2.5mm diameter.

The center metal contacts (5 in a + shape) are designed to be a code (5 bits), and each plastic cube will have a different code. The 6th pin is a reference pin, so that the user can place the cube in all rotations. The cube has magnets on the corners so it stays in place on the pcb board.

I want to be able to detect the metal contacts with a PCB, but I don't know the best way to do it. Currently I am thinking on a design like this (sorry for the low quality):

enter image description here In the image it shows 6 pads but there will be 9 in a 3x3 arrangement The center 5 are the code-pins, and the outer 4 are so that the reference pin is detected, and through software the pins are rotated accordingly.

I would then detect the metal contacts because they would short the pad. I have seen this design in portable consoles, but using silicone membranes to make the contact. Would this design work at all? If not, what is a good solution? Also, can anyone tell me how this type of "connector" is called? I can't find anything online. Thanks!

  • 1
    \$\begingroup\$ I'm trying to understand why you have six pairs of contacts. Do the metal rods move? Or is it some kind of identification of the black cube and different cubes have different rods? \$\endgroup\$ – jonathanjo Feb 6 at 19:00

Well... IMHO this will not work. For tree reasons - first, you connector seems to be 3d-printed. It is very hard to achieve absolutely flush and secure mount of those metal contacts in such a primitive setup. Second - even if you somehow mount the contacts flush, you still have to make sure the whole plastic frame is flush with PCB. It does not sound like you have some kind of spring-loaded mechanism for that. Third - the surface of those metal contacts looks very uneven on the photo.

Combine all three and you'll see that chances of getting reliable connection every time are very slim.

The best you could do is mount a pair of pogo pins per contact on PCB and make sure your "cube" is pressed down hard and also restricted from sideways movement (e.g. by making 3d printed square "socket" with holes for pogo pins that you would mount on PCB).

Also, check out thousands of readily available spring loaded connectors. You may just find something suitable and definitely better quality than you can make yourself. They are often used in mobile devices as battery/antenna/charging coil connectors. enter image description here

| improve this answer | |
  • \$\begingroup\$ The cube will have magnets to hold it in place, and a "square" socket too. The cube base is not sanded but it will not change much. I will take a look at pogo pins, thanks! \$\endgroup\$ – Ricardo Falcão Feb 6 at 19:13
  • \$\begingroup\$ you should mention the magnets. I fully agree with Maple, there's no way you can push this very non-flat block flushly against your PCB surface: see my answer. \$\endgroup\$ – Marcus Müller Feb 6 at 19:16

Your solution might work, but it assumes a very "planar" pressing of the contacts to the PCB, and a very plane contact surface – both seem unlikely given the low-accuracy contact holder.

Generally, when making an electrical contact, you want some active pressing force; in your case of board-to-metal contacts, you want at least one side to contain some form of springs with a small, relatively well-defined contact point.

It's impossible for me to infer absolute dimensions from your photo, but I'd guess your contacts are some 3mm in diameter. Then, using two small spring-loaded contacts right next to each other might work well.

Maybe try some contact-less detection method. If these contacts are made of ferromagnetic material (steel/iron), a simple AC-excited PCB coil beneath and a bit of microcontroller magic might work. Hall sensors are another option.

Generally, since you're the one developing that project: mechanical contacts are rather hard to do right on the first try.

Try to design your contacting block with spring-loaded contacts and add extra pins, connected to some ground pin, for presence detection. That way, you don't have to have two contacts per contact. The by far easiest (and by far more reliable) method would be to buy contact blocks from any of the established connector manufacturers – contacting electronics is an old problem, and honestly, it's hard to do reliably without a bit of metallurgy.

| improve this answer | |
  • \$\begingroup\$ The cube will have magnets to hold it in place, and a "square" socket too. I will take a look at spring loaded contacts thanks! – The contacts are about 2.5mm. \$\endgroup\$ – Ricardo Falcão Feb 6 at 19:15
  • \$\begingroup\$ I really think you should drop your block and go for something cheaper – connector blocks really aren't high-tech and better than what you're trying to build. \$\endgroup\$ – Marcus Müller Feb 6 at 19:17
  • \$\begingroup\$ I am not sure if I think that a connector block is what It is, but in this case there will be various cubes, each with a different pattern. It is designed like a game and not as a strong connection, although it must be reliable. \$\endgroup\$ – Ricardo Falcão Feb 6 at 19:19
  • \$\begingroup\$ yeah, exactly, and you won't get that reliable connection with what you're doing. magnets can only force your connector down as a whole – they can't push the individual metal pieces down, so that you'd have maybe 3 making contact, and maybe 3 hanging in the air. I don't think what you're doing is off to a promising start! Anyway, your game piece info would have greatly increased our ability to write good answers – so please edit your question to explain what you're doing overall (how many different connector patterns you need etc, absolute sizes..); I have several ideas how to solve this. \$\endgroup\$ – Marcus Müller Feb 6 at 19:22
  • \$\begingroup\$ I have edited the question, thank you for assistance \$\endgroup\$ – Ricardo Falcão Feb 6 at 19:29

I like the idea of using identificatable game pieces that are held down by a magnet.

As said before, trying to make multiple contacts make reliable contact is pretty hard, as it requires extreme flatness and a very consistent amount of pressure across the surface; I don't think that's realizable with nail heads and your 3D-printing method at all.

Spring-loaded contacts or pogo pins really are the way to go here. But: don't try to detect a single contact as shortener. That's really hard, because good contact requires a surface with uniform pressure, so contacts are typically somewhat small to allow for that.

Instead, go and connect your pins – you want 5 bits of ID data, and four pins would suffice to do that:

|1     2|
|       |
|3  4   |

would be a reasonable pattern. You can then do something like:

  • always connect pin 4 directly to pin 3. This is your rotation indicator, and it's super easy to check.
  • bit 1: is 1 connected to 2 using a diode 1 -->|--2?
  • bit 2: is 1 connected to 2 using a diode 1 --|<--2?
  • bit 3: is 1 connected to 3 using a diode 1 -->|--3?
  • bit 4: is 1 connected to 3 using a diode 1 --|<--3?
  • bit 5: is 2 connected to 3 using a diode 2 -->|--3?
  • bit 6: is 2 connected to 3 using a diode 2 --|<--3?

An even easier way (in my humble opinion) would only have two pins:

|1  |
| 2 |
|   |

and you'd have a 1-Wire device connected there. Notice how you can't accidentally connect it backwards! Just connect e.g. ground to middle and the data/power line to all four corners on your PCB.

Note the elegance of only having two, potentially slightly produding contacting pins: they'll always make contact (like a table with three legs can never wobble, but one with 4 can).

For example, there's plenty of 1-wire memory chips that you can program to your heart's delight. That makes the whole thing extensible! Also, typical devices come with a 48 bit unique ID – so no need even to program these, it's built-in :)

You can get even cheaper when you allow for three (rotationally save!) pins like this:

|1  |
| 23|
|   |

and get a serial 3-pin memory IC like this.

(Connect ground to center (2), connect power supply to all four corners(1) and connect data to the four "cross" positions(3))

| improve this answer | |
  • \$\begingroup\$ That is a really good approach and quite bit efficient, but I can't put that complexity inside a plastic cube, I don't have the tools to do it, and the small form factor is a pain. As my initial idea was to make a bunch of different cubes (~100) the pogo-pins price + manufacturing pain is unfortunate. I will think of some design changes but thank you very much for your attention, I learned a lot! \$\endgroup\$ – Ricardo Falcão Feb 6 at 19:53
  • \$\begingroup\$ You can go "cheap" on the contacts if you only have two or three, as said: a table with three legs can't wobble, so it's easier to make safe contact. The things really aren't so hard to work with – get a set of ultra-cheap PCBs manufacturerd that connect to your three contactors (be it pogo pins, or just small solderable metal spheres!) and make sure your magnet is strong enough. I hope you really see how the mechanics of your original contacting approach can't work out. \$\endgroup\$ – Marcus Müller Feb 6 at 20:04
  • \$\begingroup\$ but seriously, your cheapest option would be getting what Maple recommends (27ct), and directly attaching a 3-pin serial eeprom (18ct) to 3 pins of that, and short the other three, so that rotation detection becomes super easy. Less than 50ct per block. 3D-print your block, so that the whole thing is nicely gluable to the bottom. \$\endgroup\$ – Marcus Müller Feb 6 at 20:23
  • \$\begingroup\$ That is a lot of options! Thanks! \$\endgroup\$ – Ricardo Falcão Feb 6 at 20:42
  • \$\begingroup\$ Also, what is a solderable metal sphere? I have never heard of it \$\endgroup\$ – Ricardo Falcão Feb 6 at 20:47

Use hall effect sensors and then you don't need to expose the pcb to the outside environment. You have magnets already and embed them in the cube.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.