Former NFL quarterback Colin Kaepernick, whose kneeling protest during the national anthem became a major controversy, displayed strong passing skills at a Saturday workout and vowed he’s “ready to play” after nearly three years out of the league.

The 32-year-old former San Francisco 49ers star ditched the NFL’s planned private workout for a throwing session at an Atlanta-area high school, showing top-level accuracy and arm strength while making his case for a comeback before scouts from eight NFL clubs.

“I appreciate you all coming out. It means a lot to me,” Kaepernick said. “My biggest thing with everything today is making sure we had transparency with what went on. We weren’t getting that elsewhere so we came out here.”

The NFL planned a closed session for Kaepernick at the Atlanta Falcons training facility with scouts from 25 NFL teams attending and plans to send a video of the drills to all 32 NFL clubs.

But Kaepernick switched plans about 30 minutes before the scheduled start, saying he had concerns over a liability waiver the league wanted him to sign as well as not having a public workout.

Kaepernick’s representatives plan to send a video of the workout to every NFL club.

Eric Reid, a former 49ers teammate who has supported him through his forced absence, tweeted: “There’s no way we would allow the NFL to control the narrative of Colin’s workout,” and added, “We already knew Colin’s arm talent was elite. Some doubted and now you have proof.”

Kaepernick took no questions but thanked scouts from several teams who attended his session.

“I came out here to show you in front of everybody we have nothing to hide,” Kaepernick said. “I’ve been ready. I’m staying ready. I continue to be ready.”

Kaepernick was an NFL star in 2016 when he began kneeling for pre-game playings of the US national anthem as a way of protesting racial inequality and social injustice. He opted out of his 49ers contract for free agency in 2017, but found no takers.

Later in 2017, US President Donald Trump began attacking NFL players who kneeled for the anthem, saying they should be fired and calling any such player a “son of a b****.”

Trump painted the protest as an insult to the flag and the nation rather than about the issues Kaepernick had championed.

‘I’m ready to go’

Nearly three seasons have come and gone with no one giving Kaepernick a look.

“I’ve been ready for three years. I have been denied for three years. We all know why,” Kaepernick said.

“We’re waiting for 32 owners, 32 teams, (NFL Commissioner) Roger Goodell, all of them to stop running, stop running from the truth and stop running from the people. We are ready to play, ready to go anywhere.

“The ball is in their court because I’m ready to go.”

Kaepernick reached a settlement with the NFL over claims that owners were improperly keeping him out of the league when many teams over the past three seasons have needed a top passer due to injury or poor performance.

The NFL saw its workout as a way to provide every club an update on his skills without risking a backlash should a lone club give him a tryout.

“We are disappointed that Colin did not appear for his workout,” an NFL statement said.

“Today’s session was designed to give Colin what he has consistently said he wants – an opportunity to show his football readiness and desire to return to the NFL.”

Kaepernick attorney Ben Meiselas and agent Jeff Nalley said in a statement they wanted a “transparent and open process” but “from the outset the NFL league office has not provided one.”

The NFL said it sent Kaepernick a standard waiver to sign while his agent said the contract included employment issues and terms his attorney felt should not be included.

The NFL said it “made considerable effort to work cooperatively with Colin’s representatives,” including agreement to certain receivers for his session and going over the planned drills for its private workout.

“Colin’s decision has no effect on his status in the league,” the NFL said. “He remains an unrestricted free agent eligible to sign with any club.”