That's awesome! Hope it all works out can't wait to get my hands on one when they're up for sale.
Wait so, are you going to have the Pro Micro on the PCB or have a ATMEGA32U4 directly?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.
So, what did I test with this thing so far?
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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!
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.
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 But I think it's very memorable and just sounds great in general.
What other feature(s) would make it a "pro"?! You can already flash the firmware, for Pete's sake!
Iris16Pro is not that bad. but you still can go with the good old SE, Ti, or X suffix
I love this project!
A second or even third RGB ring?What other feature(s) would make it a "pro"?! You can already flash the firmware, for Pete's sake!
A second or even third RGB ring?