Stalled Iris 16 - RGB Vandal Button

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Personally, polarity invariance. I can't think of a reason why a PC in the 21st century should have a reset switch, but I can imagine not having to do the 50% lottery every time when SFF is often about tucking away cables. Using the pins for various purposes easily seems moot as it will require quite the knowledge outside from the "RST_SW, PWR_SW, HDD_LED, drive external LED" and at that point I'd figure one can use an Arduino and have even more possibilities.

Thanks for the feedback! I do agree that user experience is very important in this case and the stock option should be the easiest one to use, but I'll see what I can do to enable users to hack the switch to use all GPIOs as I described above.

At the very least, one can always repurpose HDD0 and HDD1, and I will make that an option in the firmware, certainly. For SW0 and SW1, I'd have to find room that allowed replacing the resistor from the switch to SW1 with one to GND. A DIP switch would be ideal here, but I don't think there's enough room for one.

The advantage about using the switch for other stuff instead of an Arduino is space efficiency. If it's just an additional LED or a relay or whatever, using the switch (that you need to have in the system anyway) saves space, even compared to a Digispark ATTiny85 module. And that's what we're all about, isn't it? :)
 
  • Like
Reactions: Phuncz

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Feedback time!

Been reworking the whole body of the button for manufacturing, here you can see why:



You can see a textured thread on the left, and a modelled thread on the right. Both represent the same thing, but the textured one is misleading, the wall thickness seems much higher than it actually is. Didn't think about this, so I had to redo most of the body. Won't change anything about the appearance, though.

More interestingly, I was thinking about methods to keep the button in a fixed orientation. As it is round, it could turn during installation, causing the first LED to not actually be at the top or even worse, the LEDs to be at an angle, which would just look bad. So, I came up with two solutions:


So the question now is of course, which of these is better?

Let's call the left one solution #1 and the right one #2.

#1 would require the button to have to flattened sides, which can easily be done. I've seen this technique being used on panel-mount XLR ports, and find it to be quite elegant. If the case just has a circular hole, the button can still be used without a problem.

#2 would require the button to have a slot where a small ISO 8734 dowel pin can be inserted. If that pin isn't used, the button can again be used in normal circular holes. While it requires an additional - very small and thus easy to lose - part, the advantage of this design is that a cutout can support multiple orientations at arbitrary angles (90° for example, if a case supports two or three orientations like the S4 Mini), and that it can be added to a case that already has a circular cutout.

The question I have is, which one of these would be easier to cut by hand if you made a new hole (for a scratch build for example)? I'm not really sure, so I made a strawpoll.

Answer here!

Thanks for reading!
 
  • Like
Reactions: Phuncz

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Option 2 would be easier to retrofit existing cases that already have a cutout for the same size button, just file a small notch into it.

Can you read my mind? :eek:

the advantage of this design is (...) that it can be added to a case that already has a circular cutout.

Didn't consider that filing would work as well, though. Good point!
 

jtd871

SFF Guru
Jun 22, 2015
1,166
851
An advantage to Option 1, assuming the flat sides are continued along the length of the button casing, is that it can be manually turned or held by a wrench to the desired orientation and then friction held with the nut. I'm going with #1.
 

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
An advantage to Option 1, assuming the flat sides are continued along the length of the button casing, is that it can be manually turned or held by a wrench to the desired orientation and then friction held with the nut. I'm going with #1.

That's a very good point, actually. Though from my experience, this is not required at all when installing these buttons. I mean, in theory, I could allow both of these approaches in the casing, that wouldn't be too hard. So you get the advantage you mention for free, even when using a different cutout.
 

Phuncz

Lord of the Boards
SFFn Staff
May 9, 2015
5,943
4,952
Is there something like an an "up" triangle marked on the casing that's visible on the back (end) ? So if people install it in a case that has neither option A and the user doesn't want to file the case. A few reasons for that last one I could think of is that not everyone wants to mod the case or just doesn't have the tools.
 

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Not yet, but that's not a bad idea. I will add an option in software to "turn" the LEDs so you can install the button at an angle and still use the stock preset animations, but for it to instantly work this marking would be helpful.

The main problem I'm trying to deal with here is that the button could also be turned less than 30°. That means that the top LED isn't exactly above the bottom one, and that would look bad in my opinion. Maybe I'm trying to fix a non-existing problem here, I'm not quite sure. What @jtd871 mentioned is also relevant here, because if you think about it, just holding the button with a wrench in an aligned position while tightening the nut is enough to solve this.
 

Hahutzy

Airflow Optimizer
Sep 9, 2015
252
187
Not yet, but that's not a bad idea. I will add an option in software to "turn" the LEDs so you can install the button at an angle and still use the stock preset animations, but for it to instantly work this marking would be helpful.

The main problem I'm trying to deal with here is that the button could also be turned less than 30°. That means that the top LED isn't exactly above the bottom one, and that would look bad in my opinion. Maybe I'm trying to fix a non-existing problem here, I'm not quite sure. What @jtd871 mentioned is also relevant here, because if you think about it, just holding the button with a wrench in an aligned position while tightening the nut is enough to solve this.

Seems to me the solution is just to write in the manual "tighten while making sure the arrow is pointed directly up/down/left/right"
It's only possible to fix so many potential human errors ;)
 
  • Like
Reactions: Phuncz

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Seems to me the solution is just to write in the manual "tighten while making sure the arrow is pointed directly up/down/left/right"
It's only possible to fix so many potential human errors ;)

I think you're on to something there :D Ok, what about this: One arrow that marks the "first" or "top" LED and 11 smaller markings that allow the user to align the button differently if the orientation of the connector requires it. Then put a short explanation in the manual that also numbers the small markings so you know which offset to enter into the configuration tool.

That sounds like a feasible solution.
 
  • Like
Reactions: Phuncz

PNP

Airflow Optimizer
Oct 10, 2015
285
257
Is there something like an an "up" triangle marked on the casing that's visible on the back (end) ? So if people install it in a case that has neither option A and the user doesn't want to file the case. A few reasons for that last one I could think of is that not everyone wants to mod the case or just doesn't have the tools.

I second this. Using a Dremel to fix OCD (or CDO as it should be in alphabetical order) seems rather extreme.

If it really bothers me that much, I'll just use a lock washer or some 222 Loctite.
 
  • Like
Reactions: iFreilicht

Phuncz

Lord of the Boards
SFFn Staff
May 9, 2015
5,943
4,952
Another thing about filing that people should be aware of: if you want to file out the notch in the case, there is the potential harm of metallic dust falling onto your hardware causing short circuits when powered on. So best would be to cover up the hardware well (newspaper and masking tape) or just remove all hardware. Be sure all the material from the filing is removed properly.

I like the idea of the "offset" that can be input in the software ! BTW, if you need beta-testers for the software and/or hardware, I'd be willing to help out. I'm pretty sure I wouldn't be the only one :D
 

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Yeah you're both right, thanks for keeping me on track!

BTW, if you need beta-testers for the software and/or hardware, I'd be willing to help out. I'm pretty sure I wouldn't be the only one :D

Huh, good point. I should probably just get ten first prototypes made instead of one, the additional total costs will be close to negligible. I don't want to confirm beta-testing at this point, but if I do it I'll probably limit it to Europe.
 
  • Like
Reactions: Phuncz

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
If pairs of the already broken-out GPIO pins could be used for I2C, these could be used to daisy-chain buttons without any extra hardware (and allow for easier synchronisation of multi-button effects than through a shared USB hub). That's a pretty rare use-case though.

Boy do I have news for you.

One more GPIO pin!

So, I was thinking a little. There was one GPIO left on my MCU, and it bugged me that I didn't utilise it. Today I found a way to do exactly that. Behold, the new GPIO layout:



It's not final, but I confirmed that this fits onto the PCBs and into the casing. So, we gained one more pin and I found a DIP switch that allows to decouple P1 from the button.

So, what does this mean?

Well, when flipping the DIP switch (for which the casing needs to be opened), the button is connected to GND on one side, so it can still be used normally when connected to the PWR_SW_P pin of the mainboard. Now P1 and P2 are a completely independent pair of IO pins, which are connected to the internal I2C signal processor. (Incidentally, you can also use P3 and P4 for EUSART, but that would still require replacing the 330R resistor with a 0R jumper.)

But that's not all.


That video was the reason why I thought about the button controlling LEDs in the first place. Unfortunately this particular setup would require more GPIOs than I have available.

The video I posted shows a fading effect for the HDD LED. With now 5 pins, you can either flip the DIP switch, use P1 and P2 for reading the HDD signal out and P3 and P4 for driving an external LED, or you could leave everything as it is, and just set P2 and P4 to read the HDD signal and P3 to drive an external LED on some external ground.

Can't you provide a header for "reset " output that can be connected to the motherboard, which is activated by one the GPIOs configured as open collector output ?

Well and of course you can also drive an external switch input if you want to. :)

Pretty good increase in features for a single additional component if you ask me.
 

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
First pictures of the model!

Alright, here is what I've got so far:


Now, you can see multiple things here, some are a bit more hidden. You can see the general shape, which is is very reminiscent of a normal vandal switch, apart from a few changes. I'll walk you through those features and my reasoning behind them. If you missed any prior discussion in the thread, you can catch up here.

Why not something other than a vandal switch?
While some are getting tired of seeing vandal switches used so commonly or dislike that they can't be flush with the front of a case, they have a very nice and minimal front and many still like that aesthetic. Additionally, that makes installation a breeze. Modding a case to take this switch is as simple as drilling a 16mm hole.

Why the two flat spots?
These have both an aesthetic and a functional reason. The functional reason is that they make it easier to hold the button in the same orientation while installing it. The aesthetic reason is that it ties the micro HDMI connector in much nicer than if the whole body was round. They also work much better with the set screws in my opinion.

What do the two slots do?
They each serve a different purpose. The one at the front grants access to a DIP switch that allows the user to free up one GPIO pin as explained in the previous post. This allows extending the functionality of the switch without opening the switch. The one at the back is an unfortunate necessity. When disassembling the switch, one has to insert a small slot screwdriver or other stiff flat object there before pulling out the internal assembly.

What are the set screws for?
Holding the whole thing together. To disassemble the button, only those two screws have to be removed. Then the whole internal assembly can be pulled out the bottom of the button. This allows access to the two resistors which are in series with two of the GPIO pins. These resistors can then be swapped out to accommodate different external LEDs or to use the EUSART bus on P4 and P5. (To use the I2C bus on P1 and P2 one only has to flick the DIP switch, no modding required) You can see that one screw is showing on the bottom. I'll see whether I can fix that, but right now the screw is too close to the bottom for that to work.

Why use a micro HDMI connector?
This connector (also called HDMI Type-D) is the only one for external use that has enough pins and is small enough to fit the button. It is also small enough to potentially fit a smaller 12mm version of this button. It carries a USB2.0 signal and five GPIO signals, which requires at least nine pins. There are a few pins left over, which could be used in a future version with a better Microcontroller for even more GPIOs.
Using a connector like this over directly connected wiring has multiple advantages for modding. It makes it easier, cheaper and safer. If the stock cable isn't the right length, right colour or you need different terminating connectors on the other end, you can just get a micro HDMI cable for 5 bucks and modify that to your hearts content. There's no risk of damaging the button by soldering and you don't even have to open it.

What are the 12 slots on the top for?
Those direct the light from the twelve independent RGB LEDs to the top. They are very visible in these pictures, but the actual cover ring will be frosted and I will do some testing beforehand to make sure that the slots don't show when the button is turned off and the separate LEDs lights don't bleed into each other inside the ring when turned on.

What is the purpose of those weird shapes at the bottom?
They serve alignment purposes. Some animations on the switch might be dependent on orientation, so the switch needs to know where "up" is. Usually it will consider the triangle to be "up", but if that is not desired (for example if that orientation would block the connector), one can set in the software which of the lines is the top one. Unfortunately, there's no space for an accelerometer inside the switch with the current manufacturing techniques I'm using, so this is has to be done manually.

Final thoughts
Of course, all of this is in flux and subject to change, but apart from a few small internal things that need to be changed I'm quite happy with the current status of the button. The next step would of course be a prototype, but I doubt that I'll make it to that stage this year. I'm also dreaming of replacing part of the internal structure with a flex-rigid assembly, which would free up a lot of space that is used by board-to-board interconnects at the moment, but prototyping that can be extremely expensive compared to a regular multi-PCB assembly.

Thanks for reading, let me know what you think!
 

XeaLouS

Cable-Tie Ninja
Dec 29, 2015
180
123
I'm not sure if this is patentable etc, but if it is, make sure you start filing for rights early, espeically if this becomes a thing that you'd put on kickstarter. I've seen a lot of really neat products that are duplicated in china before the kickstarter even finishes.

This seems like a novel product that could easily be the go to vandal switch in the future if priced only a couple of dollars more than existing vandals.
 
  • Like
Reactions: Phuncz

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Thanks! We'll see, maybe it'll happen that way :)

I'm sure part of it could be patented, but that is an awful hassle and costs money that I don't have/would drive the price of the button up by a huge margin. Additionally, this won't save my product from being copied in China, they don't give a damn about that stuff there. What I want to avoid is some company in Europe or the US copy this, patent it and then sue me.

So here's an idea: What if I made all of this 100% open source or even release it to puclic domain? You know, the whole thing. STEP files for all the parts, all my kicad files for the PCB assembly, the firmware, the software, everything. That would mean that nobody could possibly patent it as it was already existing before filing the patent, and if someone did, it would be easy to dispute. Additionally, it doesn't cost me a penny.

If it gets successful, someone will copy it anyway, so why try to prevent it? They'll buy one button, reverse engineer it (which isn't hard, it's not a very complex design), and produce it for a 10th of the cost. Heck, even the consumer would profit from this, as they will be able to choose between multiple versions of the design. Want the genuine one, get mine, don't have enough money, get the knockoff.
 
  • Like
Reactions: Commissariat

PNP

Airflow Optimizer
Oct 10, 2015
285
257
If the stock cable isn't the right length, right colour or you need different terminating connectors on the other end, you can just get a micro HDMI cable for 5 bucks and modify that to your hearts content. There's no risk of damaging the button by soldering and you don't even have to open it.

For those uncomfortable with ripping open a cable or have never really mastered heatshrinking wires of different gauges together, you can get these HDMI breakout boards. Some even have terminal blocks if you absolutely hate soldering (or don't want to sacrifice your iron to the dark gods of RoHS). Just need a micro HDMI to full size HDMI cable or adapter.

Want the genuine one, get mine, don't have enough money, get the knockoff.

C-can we get a holographic sticker that says "Genuine" on it?
 

ricochet

SFF AFFLICTED
Oct 20, 2016
547
345
Absolutely amazing progress; very impressed. Your patience and attention to detail is commendable; you are most definitely an engineer (of some sort) at heart! Really excited about the future of this button of yours; really hope it is a success in more ways than one!

By already declaring open source in placing all your ideas, plans, and pics thus far on this dated/archived forum you have covered yourself well from being sued in the way mentioned above... at least in the US that is. Your "open source, public domain" idea is perfect for such a product as it could possibly and would greatly expand the usage/adoption of the button into mainstream applications and at a much quicker pace. In this day and age of internet/e-information it is less and less likely that your creation/development of this switch will be forgotten, missed, and/or overlooked especially if you use a very catchy and non-trademarked name for the switch that would follow it.
 
  • Like
Reactions: iFreilicht

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
For those uncomfortable with ripping open a cable or have never really mastered heatshrinking wires of different gauges together, you can get these HDMI breakout boards. Some even have terminal blocks if you absolutely hate soldering (or don't want to sacrifice your iron to the dark gods of RoHS). Just need a micro HDMI to full size HDMI cable or adapter.

Ah yes, I totally forgot about that. Makes the system even better!

C-can we get a holographic sticker that says "Genuine" on it?

Yeah I've been thinking about something that as well, I'll look into it. What I think would also work is a laser-etched serial number in the side of the button that you can check in an online database or something. Though I also believe that if everyone has access to the design files, the incentive to also fake my brand is lower.

Absolutely amazing progress; very impressed. Your patience and attention to detail is commendable; you are most definitely an engineer (of some sort) at heart! Really excited about the future of this button of yours; really hope it is a success in more ways than one!

It can also be a curse at times. I've spent hours upon modelling ideas that weren't good enough in the end and it can feel like you're not getting anywhere. Yeah I think I've learned that much :D

By already declaring open source in placing all your ideas, plans, and pics thus far on this dated/archived forum you have covered yourself well from being sued in the way mentioned above... at least in the US that is. Your "open source, public domain" idea is perfect for such a product as it could possibly and would greatly expand the usage/adoption of the button into mainstream applications and at a much quicker pace. In this day and age of internet/e-information it is less and less likely that your creation/development of this switch will be forgotten, missed, and/or overlooked especially if you use a very catchy and non-trademarked name for the switch that would follow it.

Yes, it seems like that is correct. I've looked into the concept of "prior art" a little bit, and it seems like that's what you're describing. Also, I've read a bit on the topic of Open Source Hardware from the OSHWA and damn, that is so in line with my principles it's unnerving.

Not trademarking the name of the product is a very good point as well. If I only trademark my companies brand and leave the name of the product untouched, people can release version of the button themselves and use their brand on it, which makes similar products much easier to find and to differentiate. Stuff like that is already very much happening with custom keyboards. You can get a genuine GH60 PCB or a Satan GH60, stuff like that. I think this is a good way to do business and has a positive effect on everybody.