Here comes a driver and SDK for the Neoflash Motion Kit by Raphael.

Release notes:

After a long time, here’s an update for the motionkit driver too. It finally brings the driver and SDK out of beta status and merely contains a new motionUnload function that allows to unload the currently running motion driver so you can load a different version as well as addresses a problem when trying to load the driver in a 3.xx+ kernel application.

So what does it do?
If you are a dev: You get easy acces to the neoflash motion kit input data without any SIO coding on your side, provided as raw gravital acceleration vector as well as a rotation vector that represents the tilting of the PSP. Those values are also filtered and smoothed over time in a configurable way to enhance signal quality without any coding on your side. You also don’t have to care whether the user has the motion kit plugged in or not, you just poll the motion data as an additional input method – as long as no motion kit is plugged in, the driver will just return zero values for all vectors. If your application requires a motion kit to be plugged in, you can easily check for that too (the SDK sample application shows a method to do so). Apart from that the driver bypasses the nosound problem that the motionkit suffers from because it’s being connected to the headphone port. It’s even possible to switch the motion kit and headphones at any time without a problem.

If you are a user: You get a custom firmware plugin for adding a simple support for the motion kit to any UMD game or homebrew by enabling the button forwarding mechanism, which interprets motion gestures as configurable button presses. Ever wanted to navigate through XMB by tilting your PSP? Do it!