82
May 6, 2014 2:12:36 PM

Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

  • Upload
    fitc

  • View
    166

  • Download
    5

Embed Size (px)

DESCRIPTION

Sparky Jr. is a programmable RGB LED mod companion light-up activation controller for arcade pushbuttons. 2 parts software, 1 part hardware, the Sparky Jr. is a unique interface and an extendable platform with a unique combination of Arduino, Processing and RGB LEDs. Eugene Andruszczenko (32teeth) walks us through the ideation, creation and realization of leveraging OpenSource Hardware and Software through to product development. Presented at FITC Toronto 2014 on April 27-29, 2014 More info at www.FITC.ca

Citation preview

Page 1: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

May 6, 2014

2:12:36 PM

Page 2: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

hi!

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

Page 3: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

hi, my name is: eugene yevhen andruszczenko

Page 4: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

i am the: executive director, technology

Page 5: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

Page 6: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

Page 7: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

i am : tinkerer, hacker, technology enthusiast

Page 8: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

i am also a: rapid prototype developer

Page 9: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

i advocate: ethical disruption through showcasing ideas

Page 10: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

i am here today to introduce: today's discussion

Page 11: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

SparkyJr. RGB LED Controller

Page 12: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

SparkyJr. RGB LED Controller

what is the SparkyJr.

Page 13: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

what is the SparkyJr. the backstory

Page 14: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

a few years ago…

Page 15: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

i joined a fightclub

Page 16: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

i got myself a fightstick

Page 17: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

i got myself a fightstick i met some people with ideas

Page 18: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

the birth of an open source product

Page 19: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

SparkyJr. a programmable RGB LED mod companion light up activation controller for arcade pushbuttons on gaming fightsticks

Page 20: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

SparkyJr. built on an open source microcontroller standard.

Page 21: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

interlude

Page 22: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko
Page 23: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

a challenge has entered the ring

Page 24: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

challenge. low barriers to participation keep costs low (under $25) core hardware only shift registers LED driver IC simple interface for non tech savvy folk open source FTW!

Page 25: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

cont(str)ain yourself

Page 26: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

limits. atmega328[p][au][nd] only has 20 I/O 6 of which are PWM common arcade controllers have 8 face buttons 8 RGB LEDs = 24 lines (1 common, 1 per color) that’s 32 lines 12 more than we have [facepalm] this was our "'oh sh1t" moment this was our "awwwwwww sh111111111t" moment

Page 27: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

work with what you have

Page 28: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

approach. 8 I/O for button inputs multiplex the rest

8 I/O for LED common line (anode/cathode) 3 I/O for colors (red, green, blue) row column scanning… …really really fast (no flicker)

port manipulation faster than digitalWrite hello timers aka TCCR (Timer/Counter Control Register)

TCCR0B = TCCR0B & 0b1111000 | 0x01; millis() and delay() TCCR1B = TCCR1B & 0b1111000 | 0x01; TCCR2B = TCCR2B & 0b1111000 | 0x01;

PORTD = B1010010  

Page 29: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller The i

32teeth eugeneyevhen 32teeth.github.io in/32teeth

results. can be measured by what the eye can see.

The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.

Page 30: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

interlude

Page 31: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

+

Page 32: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

interfacing with hardware

Page 33: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

challenge. round 2. low barriers to participation keep costs low (free) plugins drivers simple interface for non tech savvy folk open source FTW!

Page 34: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

+ +

Page 35: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

the birth of the 'configurator'

Page 36: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

an interface created by a software engineer

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

Page 37: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

an interface created by a web developer

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

Page 38: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

an interface created by a web based software engineer

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

Page 39: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

milestones

Page 40: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

official Launch. the first commercial version was pre programmed to the users specified configuration using the purchase order form Made to order!

Page 41: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

stay open. the first commercial version had an FTDI pinout for advanced users to reset, reprogram, hack. Great Results!

Page 42: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

round 2. the second generation introduced a downloadable configurator, built in Processing, exported as a Java application.

Page 43: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

shared. the second generation spawned a collaborative project with two web stores dedicated to fighting game hardware and parts

Page 44: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

round 3. the third generation release was a collaboration with the web stores, under license to manufacture and distribute under their brands

Page 45: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko
Page 46: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

help desk. end user support became a full time job (almost)

Page 47: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

a long hiatus

Page 48: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

a brief hiatus

Page 49: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

silence is broken. in november of twenty thirteen, i joined createInTO and met rick mason

Page 50: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

round 4. the quietly release fourth generation was showcased incorporated with the third generation configurator

Page 51: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

reboot. taking the hardware back to the arduino uno r3 no gimmicks

Page 52: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko
Page 53: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko
Page 54: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko
Page 55: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko
Page 56: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko
Page 57: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

rebuild. both the core SparkyJr. software and configurator where revisited from received feedback, rebuilt, and optimized

Page 58: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

demo time!

Page 59: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

click me

Page 60: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

what's next

Page 61: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

+ + +

Page 62: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

ambitious

Page 63: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

+ +

Page 64: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

=

Page 65: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

+

Page 66: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

web enabled. adding web based capabilities tore down any remaining barriers to participation

Page 67: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

extended. adding web based capabilities tore down any remaining barriers to participation

Page 68: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

api. chrome extensions add capabilities to connect to devices using the usb and serial libraries

Page 69: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

what's next for sparky

Page 70: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko
Page 71: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

the final frontier ps360+ ready ws2811 chainable ready same configurator everything compatible

Page 72: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

github. you know what it is you know how it works github.com/32teeth

Page 73: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

a kick at the can. it's not a kicker-beg it's about involvement max pledge $0.99 github.com/32teeth

Page 74: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

open heart. enrolled into the 'at heart' program official support

Page 75: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

other projects

Page 76: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

arduino in your pocket

Page 77: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

lcd/tft ready touch ready

Page 78: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko
Page 79: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

and finally

Page 80: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

for 25 consecutive seasons beatings

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

for having me here today for my 15 minutes of fame! for listening to the beta testers thank you.

Page 81: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

and most of all

Page 82: Sparky Jr. (Programmable RGB LED HID) with Eugene Andruszczenko

SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth

thank you.