I am using a brushless motor (http://www.maxxprod.com/mpi/mpi-26.html) from himax, the ha2025 to be specific. What i am trying to figure out is what can i do to know if a motor has hall sensors built in?
The manual makes no mentioning of the Hall sensor and you can be quite sure if the manufacturer had built them in, they would not be shy about mentioning it, so no sensors. They even go as far as to say this:
Himax Brushless motors require brushless sensorless (emphasis mine) speed controls. Failure to use a brushless sensorless electronic speed control (ESC) can result in damage to the motor and/or ESC.
In fact, since these are RC aviation - targeted motors, the Hall sensors would not even be required as you would not care so much if you are getting 18,990 RPMs or 19,000 - the controller increases the frequency with which the windings are commutated and expects that
eventually the prop will catch on. It's very different from a BLDC motor for a DVD burner that has to burn that dot in a very precise spot else the data would get lost. Additionally, just one Hall-effect sensor (they often have 3 per motor) creates 12 ticks per revolution in a 12-pole motor. At 10,000RPM that's 2000 interrupts/ADC polls each second. It's doable but if you don't need it, why make your MCU work so hard? It may be busy with other things like reading the accelerometer etc.
Also, lets say this motor doesn't have hall sensors, can i add them?
For an RC plane, there is really no need. You'll get all precision in RPMs a human can possibly handle (given our pathetic ~200ms reaction speed

) from just adjusting the commutation frequency.
Now, if we are talking about a computer-controlled robotic plane or a quad-copter, then it's a different story. An MCU can actually get a lot of things done during one single rotation at 10,000RPMs and therefore it can (in theory at least) make use of some of the rotation data a rotor-coupled sensor can provide. But I still have a feeling that open-loop (frequency) RPM control will be enough even for a robotic plane/copter.
Since this is an rc airplane engine that is typically controlled by a speed controller is there a way to minic the speed controller with the arduino?
This is exactly what we are doing with the RPM potentiometer in the stroboscope project. It adjusts the delay in switching the steps and hence the time it takes for one complete commutation cycle, which in itself is 1/6th of one full rotation on a BLDC designed like most DVD spindle motors. This line in the Arduino code is also controlling the commutation frequency (Line 22 in the sketch):
const int motorDelay=5; // together with pot controls the RPM
The smaller the delay the quicker the motor will turn. That is, until the frequency reaches a threshold where it starts switching too quick for the rotor to respond and it starts skipping steps and eventually either stops or jerks in a quasi-random fashion

(not a pretty sight)
Maxxprod recommends
Castle Creations controllers. I've browsed through their site and read a few User Manuals. Honestly, I'm not too sure if they do actually use feedback in their controllers. Some of their features suggest that they do (Electronic Timing Advance) and some might suggest otherwise (Auto Calibrating Throttle) but, again, I'm not too sure. Maybe we can get Castle Creations to respond here and clarify.
I'm very sure if feedback is used, it's not Hall-effect sensors, it should be reading the EMF-induced voltage on one of the windings during the step in the cycle in which that winding is not energized. On the other hand, they have 1000s of RPMs to play with, at that speed such precise RPM control may not even be required.
In the end a circuit that can tell me how many revolutions the motor has made would give me benefits in other areas.
With this particular motor you'd have to abandon my simplified BLDC driving scheme

and go for a more traditional 6-input driver that would require 6 transistors, the same amount of Arduino outputs and a slightly different commutation scheme. That way you can let your windings have three states: HIGH, LOW and OFF and the latter will then be used for the EMF feedback measurements.
I'm hoping to find time to play with with sensorless controllers myself and I actually have to admit - I've gotten into this BLDC project out of, well, yes, a desire to make use of my enormous supply of DVD spindle motors

, but also I harbor a hope of turning one of these motors into a flight-worthy one and see it fly on a plane or (if I could get enough power from it) a quad-copter. I've tried playing with upgrading these spindle motors (
here is a post about a failed attempt) and will continue until I get a working motor and a working controller!