I don't think you need to rotate the coordinate system to align with the magnetic field vector, because I don't how you will translate the coordinates in this system back into the original system.. First of all as you said you can decompose the velocity vector just as you said, where v <sub>parallel</sub> = $((v•B)/||B||)* (B cap)$ and $v <sub>perp<\sub> = v - v <sub>parallel</sub> $ To solve for the perpendicular velocity of the particle at any time, you must note that its magnitude remains constant with time (since the magnetic force is always perpendicular to this component of velocity) so the only thing that's happening is that the velocity vector is just rotating through a certain angle θ in some time about the B vector, this angle turns out to be the same angle the particle subtends in its circular motion I.e $ωt$. The new rotated perpendicular velocity vector is given by $v <sub>perp</sub> = ||v <sub>perp</sub> ||*(x1*v <sub>perp</sub> + x2*p)$ Where, $x1= cos(θ)/||v<sub>perp</sub>||$ & $x2=sin(θ)/||p||$ are constants & $p=Bxv<sub>perp</sub>$ is a vector (B is the magnetic field vector). (I found this method of rotation here : https://math.stackexchange.com/questions/511370/how-to-rotate-one-vector-about-another - 1st answer). Once you have this, it's easy to get everything else. The velocity vector at time t is $v = v<sub>parallel</sub> + v<sub>perp</sub>$ so the position vector at any time will be $r=r<sub>initial</sub> + (v*t)$, since this motion isn't accelerated. Also to find angular frequency $ω$ (which you need- to find θ) you need the time taken to complete one full loop in it's helical motion T , which you can calculate by just considering the particle's circular motion- in which case $T= (2πr)/v<sub>perp</sub>$. Also the radius of this circular path r is given by $r = (m*||v<sub>perp</sub>||)/(q*||B||)$, which you get from the fact that the magnetic force provides the centripetal force in this motion. *I'm sorry I didn't use vector notation anywhere, but I couldn't find out how to do that..*