"Complicated" rigging issue. Rig circle and cam with circle always looking north

Hi guys

I’m trying to rig this very simple scene. Very simple scene and I’m sure there is a very simple solution, however it’s escaping me what the solution is!

In a nutshell, the circle should be rigged to follow the cam in a sense, but also always face north. So the circle can only rotate on x and y, never z.
I added some images better explaining things. In these images I manually rotated the circle on x and y best I can, so it’s always horizontal in view. Now how do I rig it so it happens when I move the cam target or roll the cam?

Only 2 conditions must be true, no matter where the cam looks
1) The circle must always be horizontal and in the middle in view
2) The circle must always face north




would a “look at” constraint help?

put a helper at North, then add the “look at” constraint to look at the helper. Lock the Z rotation.

Link the circle to the camera. Select the circle. In the command panel go to the Hierarchy Panel. Switch to “Link Info”. In the “Inherit” Rollout you can deactivate axes you don’t want to be affected by the parent motion.

neither of those work since the circle does not stay level in cam view when moving the cam target

The solution in the end is actually very simple:
1) Link the circle to the cam
2) Via script deduct the cam’s local Z rotation from the circle’s local Z rotation

Thanks to everybody from various sources, your input is appreciated even though you may not have had the correct solution. It sometimes helps to see things from other people’s perspective