$15k is a petty sum for the electrical development alone. You would not be able to find a company willing to do the board development for you for so little. So I think even if he did zero work on the firmware he was still under-compensated
These projects have never been about making money for me, as I had hoped might someday happen. At least twice Craig has asked me if I wanted to be paid for profits made on iCP or roll it back into production so we can make more and I always told him to use it to build more to expand the customer base and hopefully make the product into something popular (my hope anyway). I suppose looking back I'm a fool for not taking the money and instead walking away with nothing but it is what it is.
Another thing to note is that money that is sent to me gets used to buy all the prototype parts, PCBs, cables, soldering and test equipment, shipping fees and anything else related to development. At the end of the day, if there is anything left, I go buy myself a Slurpee or something.
I have a big box completely filled with receipts for the tens of thousands of dollars I have spent over the years with these projects. Money in was always close to money out and I focused on not being out of pocket while also doing all the work of designing this stuff.
The code was fairly complete other than a few little things, mainly with the nubs. I had the original iCP2 board (the one Craig shows in all his videos) working with full iCP1 capability (minus nubs) and could play games with it. I had a really cool control system for the RGB LEDs on the backlight version of the iCP2 board. It was all interrupt driven with PWM control of the lights so the user would set a few variables in their code and the background ISRs would handle fading the lights in and out and doing whatever special modes were enabled. The keyboard scanning matrix was working which was the main difference between the old iCP and the iCP2. I had all the HID tables mapped to keys in a rudimentary setup that included holding down FN, SHIFT, etc. It was based on the layout chosen by users of this forum in a poll going way back.
The bootloader was working and flashing the board was a much easier process of plugging in a USB cable and holding down the same button combos as iCP but without the complicated Bluetooth link that so many people had trouble with.
Oh, I also had some test HID profiles added to the BT modules to support reports that looked like the PS3, Wii and XBOX. That took a fair bit of back and forth with the BT module manufacturer and I don't know if they would have worked properly. I just wanted them in so developers could play around and see if we could mimic those controllers on apps that had native support for those controllers.
I was able to add the IR receiver and transmitter circuitry to the design before production as well. The parts weren't getting populated but the pads were there as requested. I also added a two pin header at the edge of the board for DAC output in order to mimic a game controller that used the headphone jack of any smart phone to transmit gaming controls. I don't remember what that controller was called but I thought people could have fun with that one too. It was an unofficial feature not documented or discussed until now, I think.
It was coming together nicely on my end and it was a little sad when it all started falling apart and apparent I was working hard for nothing. Once that happened, I couldn't imagine spending more time on this when it was never going to be made so everything just stopped at that point.