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
19. 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
20. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
SparkyJr.
built on an open source microcontroller standard.
24. 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!
26. 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
28. 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
29. SparkyJr. RGB LED Controller
T
he
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.
33. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
challenge.round2.
low barriers to participation
keep costs low (free)
plugins
drivers
simple interface for non tech savvy folk
open source FTW!
40. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
officialLaunch.
the first commercial version was
pre programmed to the users
specified configuration using the
purchase order form
Made to order!
41. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
stayopen.
the first commercial version had an
FTDI pinout for advanced users to reset,
reprogram, hack.
Great Results!
42. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
round2.
the second generation introduced a downloadable
configurator, built in Processing, exported as a
Java application.
43. 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
44. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
round3.
the third generation release was a
collaboration with the web stores, under
license to manufacture and distribute
under their brands
45.
46. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
helpdesk.
end user support became a full time job (almost)
49. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
silenceisbroken.
in november of twenty thirteen, i joined
createInTO and met rick mason
50. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
round4.
the quietly release fourth generation was
showcased incorporated with the third generation
configurator
51. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
reboot.
taking the hardware back to the arduino uno r3
no gimmicks
52.
53.
54.
55.
56.
57. 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
64. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
=
65. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
+
66. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
webenabled.
adding web based capabilities tore down any remaining
barriers to participation
67. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
extended.
adding web based capabilities tore down any remaining
barriers to participation
68. 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
71. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
the final frontier
ps360+ ready
ws2811 chainable ready
same configurator
everything compatible
72. 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
73. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
akickatthecan.
it's not a kicker-beg
it's about involvement
max pledge $0.99
github.com/32teeth
74. SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
openheart.
enrolled into the 'at heart' program
official support
80. for 25 consecutive seasons beatings
SparkyJr. RGB LED Controller 32teeth eugeneyevhen 32teeth.github.io in/32teeth
for having me here todayfor my 15 minutes of fame!for listening to the beta testers
thankyou.