> I'm trying to get a stand-alone toy out of my controller. I was wondering
> if it's possible to make alterations so that the device turns on and just
> lights the LED up? Then even more complex stuff as the trigger altering the
> brightness and the action button changing colors of the LED, square turning
> on the vibrations etc, etc.
It depends on what exactly your controller is.
For the original models ("ZCM1", see the sticker on the controller's
back), we have a pretty good understanding of the internals, having
reverse-engineered lots of its firmware and most of its hardware. Also,
it features an STM32F103 microcontroller as its "brain". There is plenty
of publicly available vendor documentation on how this microcontroller
works, how to program it etc. Also, a free GCC-based toolchain.
So you could implement any firmware you like from scratch if you have
experience with the STM32 line of microcontrollers or if you are willing
to spend some time learning.
Another option would be to patch the original firmware binary instead of
replacing it with your own implementation. Way less code to write (you
would not have to reimplement things like communication with the
Bluetooth chipset or handle battery charging yourself -- if you actually
need it), but it requires some familiarity with ARM assembly, reverse
engineering and some creativity for the actual implementation.
The later models ("ZCM2" and possibly others, I haven't really kept up)
are mostly new hardware and built upon a completely different
microcontroller that does not seem to have publicly available datasheets
or tools; at leat last time I checked. I don't think anybody has done
any serious reverse-engineering on those (if any at all). So you would
have to start with that.
> I feel like it needs to be done on the firmware level but not sure if this
> is even possible? If not, the next best thing would be running a program on
> the PC that gets the input and alters the device over Bluetooth, right?
That is how it would normally work, yes. The host device (i.e. the
PlayStation or your computer) sends commands to the Move controller
(switching on/off the LEDs and the rumble motor) and receives sensor
data from it. Both via Bluetooth. Doing that should be pretty
straightforwards since this is what PS Move API is designed to do. It is
not standalone, though.