Stalled Iris 16 - RGB Vandal Button

HeroXLazer

King of Cable Management
Sep 11, 2016
707
476
Update! First Hardware tests and a surprise!

TL;DR: Got an Arduino Micro to test how stuff would work.

This is what my testing setup currently looks like:



I'll go through the parts and explain what they do and what they simulate.

  1. Arduino Micro: This is basically a breakout of the ATMega32u4, which will be the MC inside the button. Connecting that to my PC, I can implement firmware features easily and check their feasibility before committing to a Prototype PCB.
  2. The six long orange wires: Those connect the pins PF[014567] of the MC to the "actual" GPIO pins of the button, which I'll be dubbing P[1-6]. The "internal" PF pins offer a separate ADC-channel (analog input) each and PF[4-7] expose the JTAG serial interface on P[3-6] for anyone who wants to use it.
  3. The multi-coloured wires below those connect the PD[2-3] and PB[0-3] pins of the MC to the P[3-6] "actual" pins. The former two will provide 2-wire serial interface on P[1-2], the latter SPI serial on P[3-6] and all of them can also act as digital interrupt inputs.
  4. The button and the short wires around it simulate the pushbutton itself and the switch that can be used to free up P1 when required. The configuration seen in the picture is the standard one, where P0 and P1 both connect to one side of the button. When moving the button on the breadboard one column to the right, it is connected to P0 and GND.
  5. The bridge row of orange wires and resistors represents the actual I/O pins P[0-6]. In the picture, two LEDs are connected to the latter four pins.
  6. Arduino Uno: This one is set up and programmed to flash a new bootloader onto the Arduino Micro. This was an important part for testing and will be useful in the future as well when I replace the original bootloader with my modified version.
So, what did I test with this thing so far?

Most importantly, I tested whether I could flash a new bootloader with the series resistors and the parallel internal I/O pins. As you can see or may already know, there is one series resistor of 330Ω on both P5 and P3 to comply with Intels Front I/O Design Guide, to allow driving the LEDs of existing front panels with the button if so desired. Those pins are also used for the SPI interface, through which the bootloader is flashed onto the MC. Additionally, they are also connected to another I/O pin each for enhanced functionality. In some cases you need isolation circuitry to make sure that the SPI signals can reach the MC unimpeded.

Luckily, all GPIOs are left in their standard state during programming, which means that none of them interfere with the SPI signals. And additionally, the resistors didn't influence the reliability of flashing at all. Even when putting 1K resistors in there, the bootloader flashed perfectly with no issues.

This means that the bootloader of a fully assembled button can be flashed, which in turn means that I won't have to do the assembly myself but can let a contractor take care of that if production volume justifies it. Very useful! Additionally, it gives me a little bit more freedom when laying out the components onto the board.

The only other thing I did so far was to implement a rudimentary version of the non-RGB part of the firmware, which will probably go through many iterations before I'm satisfied with it.

And finally, I had a little chat with the people from Arduino about a possible collaboration! There's nothing set in stone yet, so I don't want to go into any details yet, but I hope we can work something out and I'm very excited for it!
Wait so, are you going to have the Pro Micro on the PCB or have a ATMEGA32U4 directly?
 

GreatestUnKnown

SFF Lingo Aficionado
Dec 30, 2016
108
154
I believe that he is using the breakout for the ATmega32U4 for his prototyping and PCB trace layout design but the finished product will use the ATmega32U4 as the MC enclosed in the button structure/housing.
 

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Thanks a lot! Well the firmware was supposed to be open-source and the button re-programmable anyway, but if people want to play with the bootloader, they can do that as well now. Not sure many will make use of that feature, though :D
 
  • Like
Reactions: ricochet

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
Update! Please vote for the product name!

I've narrowed it down to three final candidates. One Latin word followed by the number 16 to denominate the hole diameter. The meaning of the word is written in parenthesis. The initial list was almost 70 words long.

Vote here!

If you have any additional thoughts, please let me know!
 
  • Like
Reactions: ricochet

rokabeka

network packet manipulator
Jul 9, 2016
248
268
Thanks for voting, everyone!

Seems like Iris 16 is a clear winner already :) Really, the only bad thing about that name is that I can't release a "Pro" variant of it ever, or Intel will come knocking on my door :D But I think it's very memorable and just sounds great in general.

Iris16Pro is not that bad. but you still can go with the good old SE, Ti, or X suffix :)
I love this project!
 

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
What other feature(s) would make it a "pro"?! You can already flash the firmware, for Pete's sake!

I had the idea of making this one the "Pro" version and releasing a lower-tier one at some point for people who don't need as many features. For example, the ring could just have a single flat colour (that you could still choose), not multiple ring pixels. But that would also enable other features to be included, so in the end it would be a different product altogether and need a new name in the first place.

Also, if I release a larger version that contains a mechanical keyboard switch, that would be a variant that deserves a "Pro" suffix. But I guess that could also be the Iris 22 Mech or something like that.

Iris16Pro is not that bad. but you still can go with the good old SE, Ti, or X suffix :)
I love this project!

Yeah, there are a lot of options :D I'm probably overthinking this, at this point having a solid and memorable name for the first product is absolutely enough.

Thanks a lot!
 

Phuncz

Lord of the Boards
SFFn Staff
May 9, 2015
5,921
4,947
Instead of Pro, maybe it could be called EE for Enthusiast Edition or CE for Community Edition. We already have 70% of all the products in the world called "Pro", even toothbrushes and toothpaste.
 

iFreilicht

FlexATX Authority
Original poster
Feb 28, 2015
3,243
2,361
freilite.com
A second or even third RGB ring?

Oh god if you had three rings you could have legitimately put a clock on there with dedicated second, minute and hour hands. That could only happen in a larger package, though. This one is already completely filled with everything it could be.

EDIT: A larger version could also incorporate an IR transmitter for the PC. A very large version could have a USB hub internally that you can put ultra-small receivers into like the logitech anwhere one. That way you get perfect reception for wireless peripherals without requiring you to have the receiver plugged into one of the front ports. That button would have to be something like 40mm in diameter at least, though.