Study "Assembly.skp" (viewed using the free version of Sketchup 8). Note that the needle is is not to scale or form.
Carefully remove the solar assembly from your dollar store devil by removing the base from your dollar store devil. Once removed, add a drop of cyanoacrylate glue to each end of the solar panel to hold it in place in the solar tower. Once the glue dries, drill out the holes in the three towers on the solar assembly with a 5/32" drill using the existing towers as a guide, then cut off the existing towers flush with the surface. This step allows the coil of the solar assembly to be flush with the underside of "Base.stl". Be extremely careful with the coil wires as they are very small and easy to break.
Print "Base.stl". There are disks at each corner of the base that are used to minimize warping of the base during printing. These disks should be removed (I used a modeling knife). After removal, attempt to press the solar assembly into the underside of the base, and you'll notice you will need to trim about 1/4" from the two-tower end of the solar assembly before it will fit. After trimming, press fit the solar assembly into the base. Finally, press one neodymium magnet into the underside of the base, north up.
Print "Solar Cover.stl" and position over the solar assembly tower. While not required, it does assist in holding the entire assembly together.
Print "Support.stl", and press one neodymium magnet into the center ring, north up. Then carefully press the two legs of "Support.stl" into "Base.stl". Depending on your printer settings, color, etc., you may need to trim the two legs with a modeling knife in order to fit "Support.stl" into "Base.stl".
Print "Rotor.stl" then carefully press 6 of the neodymium magnets into the underside. Insert all magnets north up. From the topside of rotor, carefully insert the needle such that 4mm extends from the bottom side of rotor, and the needle is perpendicular to the rotor. Be as accurate as possible here, using a drill or arbor press if available. The more accurate the needle is pressed perpendicular to the rotor, the better the motor will work.
Print "Heart.stl". If you want to print the text on the heart in a color different than the heart itself, pause the printing at 12.2mm, then change to your new color. After printing, carefully glue the two halves together using cyanoacrylate glue. Once the glue has dried, press fit the assembled heart onto the needle in rotor, all the way down to the rotor surface. Apply a small dot of cyanoacrylate between the assembled heart and the rotor surface.
Install the assembled rotor into the assembled base, carefully centering the needle point on the magnet in the base assembly. The rotor assembly should center vertically, with the needle point touching the magnet in the base, and the needle eye positioned about 10mm below the magnet in "Support.stl", and centered. The rotor needs to be positioned as close to the base without dragging.
Under a significant light source, carefully give the rotor a spin and if all is as designed, off it will spin. If you hear any dragging noise, make sure the rotor is centered and perpendicular to the needle. Keep in mind, any extraneous magnetic sources (wireless mouse, notebook close detect via magnetics, motors, etc.) will effect the performance of the motor.
Happy Valentines day.