Date: 201502
Local time of day: 1201-1800
Location: SQL.Airport, CA
Flight conditions: VMC
Weather elements / visibility: 10
Light: Daylight
Aircraft: Small Aircraft
Operator: Air Carrier
Operating under: Part 91
Flight plan: None
Mission: Passenger
Flight phase: Descent
Airspace: Class D SQL
ATC / advisory: TRACON NCT; Tower SQL
Reporter organization: Air Carrier
Reporter function: Captain; Pilot Flying; Single Pilot
Reporter qualification: Flight Crew Commercial; Flight Crew Instrument; Flight Crew Multiengine
Human factors: Communication Breakdown; Confusion; Situational Awareness; Time Pressure
Anomaly: ATC Issue All Types; Airspace Violation All Types; Deviation / Discrepancy - Procedural Clearance
Detector: Person Air Traffic Control
When detected: In-flight
Result: Air Traffic Control Provided Assistance; Flight Crew Requested ATC Assistance / Clarification
Contributing factors: Human Factors; Procedure
Primary problem: Procedure

Narrative: I was in contact with NorCal TRACON; squawking the discrete transponder code assigned to me by the Ground controller prior to departure; and receiving VFR flight following and traffic advisories from NorCal TRACON.I was returning from the California coast to SQL. In the vicinity of the city of Half Moon Bay; CA; I turned northeast-bound to follow Highway 92 (the low spot in the terrain) over the hill into the San Francisco Bay Area. I was flying at 2800 feet MSL to cross over the hilly terrain; this is Class E airspace. At that time I was talking to NorCal TRACON on 135.1 MHz and after passing over the highest ridge transmitted to NorCal TRACON '[Aircraft ID] VFR descent; landing San Carlos with [SQL ATIS].'NorCal TRACON replied 'VFR descent approved' as I began my descent; and as I was passing through 2500 feet MSL; NorCal advised me of traffic at 10 o'clock. I replied that I was looking for that traffic; and after a short while asked for a traffic update since I still hadn't identified the traffic. NorCal TRACON responded advising traffic at 10 o'clock and [X] mile (I don't remember the exact distance). I did see an aircraft in the distance just north of the SQL runway but did not know if that was the aircraft NorCal TRACON had indicated; that aircraft was so far in the distance it was not a factor. I don't remember whether I pointed out this distant traffic to NorCal TRACON; but I did not receive any further traffic notifications from NorCal TRACON. At this stage I was continuing my descent so as to remain under the SFO Class Bravo airspace using normal maneuvers and a stabilized descent (I know that I must be under 1500 feet MSL prior to crossing Highway 101 and the SFO VOR 120 radial) and maneuvering for the expected SQL pattern entry from that area; which would be to cross midfield overhead of SQL at 1200 feet MSL and turn into a right downwind for runway 30. I was also looking vigilantly to see if there was another aircraft closer to me which was actually the traffic that NorCal TRACON had indicated. Eventually NorCal TRACON said exactly 'Radar services terminated; contact San Carlos Tower' with no instruction regarding my transponder code. I acknowledged NorCal TRACON's instruction and continued to squawk my previously assigned transponder code. As this airplane is not equipped with GPS nor a moving map; I use the VOR & DME equipment on board in conjunction with visual landmarks and my paper SFO Terminal Area Chart for positional awareness.I switched my radio to the SQL Tower frequency. The SQL Tower controller spoke to two different aircraft and then called out my aircraft callsign before I could get a word in. I responded with my callsign and that I was landing San Carlos with Information [alpha designator of the current SQL ATIS]. At this stage I was still southwest of the Highway 101 and the SFO 120 radial. The SQL Tower controller instructed me to cross midfield overhead of SQL at 1200 feet MSL and turn into a right downwind for runway 30; and I read back those instructions. The SQL Tower controller then said to another aircraft 'Now I'm in contact with that aircraft' and I think he meant me. Then the SQL Tower controller said to me 'Possible pilot deviation; we'll give you the number to call the tower after you land' and I acknowledged that transmission. This was my first indication that something was wrong; but it did corroborate with my impression that I had experienced a really late handoff from NorCal TRACON to SQL Tower; which I assumed was because NorCal wanted to make sure that I had identified the indicated traffic at 10 o'clock before handing me off.I made a normal landing at SQL on runway 30. I taxied to parking and secured my aircraft.I then called the SQL Tower and the manager on duty answered. He said that I needed to comply with FAR 91 rules prior to entering the SQL Class D surface area and that he believed I had committed a Class D airspace entry violation. He said that theSQL Tower controller had been trying to contact me while I was descending and I had not responded. I explained the chain of events as described above and that I thought that I had satisfied the SQL Class D entry requirements by being in two-way communication with NorCal TRACON; that I thought that I was getting handed off from NorCal to SQL Tower; and that NorCal TRACON was advising me of traffic that I could not positively identify. The manager asked the SQL Tower controller whether he had received me as a handoff from NorCal TRACON; SQL Tower did not receive such a handoff.The SQL Tower manager on duty said that for IFR flight plans TRACON is responsible for handing the flight over to the landing tower; but for VFR flight plans or flight following TRACON will coordinate handoffs through transition airports and it is the pilot's responsibility to establish contact with the airport of landing prior to entering the airspace of the landing airport. After receiving this counsel from the SQL Tower manager on duty I said that this was a key point of my misunderstanding; that I thought that during this flight I was receiving a handoff from NorCal TRACON to SQL Tower that would satisfy the Class Delta airspace entry requirements.The SQL Tower manager on duty said that in this instance I should have remained above his Class Delta airspace at 2100 feet MSL; and of course below the Class Bravo airspace that begins at 4000 feet MSL; and requested a frequency change from NorCal TRACON so that I could establish two-way radio communications with SQL Tower prior to my descent into SQL Class D airspace.I appreciate the counseling provided by the tower manager and regret my misunderstanding that NorCal TRACON was in fact not handing me off to SQL Tower. The counseling provided me with better understanding of how the two ATC facilities coordinate between one another. I believed that I was complying with ATC instructions and advisories being provided to me by NorCal TRACON; without realizing that the SQL Tower controller was not aware of my communications with NorCal TRACON and their traffic advisories. Because I was squawking a discrete transponder code; I further thought that SQL Tower was aware of my aircraft on its radar display. From this experience I've learned a valuable lesson to ensure that this misunderstanding does not recur.




Synopsis: Pilot reports of being under flight following then told to contact the Tower. Tower controllers advise pilot of Class D Violation. Pilot thought since he was under flight following the Tower would have known his position.