I did both calibrations (compass, and pitch/roll with averaging) and the error remains.
But in messing with it I noticed that magnitude of the error differs with orientation. So if I rotate the phone180 degrees, positioning the volume switches on top, it is accurate enough for the camera app.
Thanks