A thin line beside a passage says how far its claim is proven: measured, illustrative, inferred. Colored numbers carry the same mark. A passage with no line is stated. How claims are marked.
The symptom
You stack a night, stretch it, and the biggest stars in the field have a magenta or green middle inside a halo that looks normal, while the fainter stars look fine. It shows up most on fields with a few very bright stars and on longer subs (a sub is one single exposure).
Why: each color stops at a different number
A Seestar's sensor sits under a grid of color filters: in every 2×2 block of pixels, one red, two green and one blue, a layout called a Bayer pattern. Each pixel records its light as a number, a code, from 0 to 65,535 in the 16-bit raw files a Seestar saves for each sub, which are FITS files, the standard astronomy image format. A pixel that can't record any more light is full, also called clipped or saturated, and the lowest code at which it stops is its ceiling.
In my Experiment on bright-star colors (dated 9 October 2026, marked Exploratory), I looked at raw frames from 8 Seestars of four models: 3 S30s, 1 S30 Pro (mine), 3 S50s and 1 S50 Pro. The other seven came from community contributors who shared their frames. Its short answer, quoted exactly:
“Red and blue run all the way to 65,535, the largest number the file can hold. Green stops lower: between 49,808 and 54,288 on every unit with normal color handling we measured.” (measured)
The conditions that go with that range:
- Six of the eight units have what the Experiment calls normal color handling. The other two behave differently: one S50 applies no color scaling at all, so every color stops in a narrow band ending at 65,520, just under the top; one S30, on one firmware version, stopped red in a band too and had the highest green ceiling, 56,400 (measured).
- The ceiling isn't fixed for life. On one S30, green's ceiling was about 850 to 1,050 codes higher after a firmware update (measured).
- The frames came from 17 sets on 16 nights, mostly with the IR-cut filter, in 10-, 20- and 30-second subs. Every one of those nights was also used to work out the method, so nothing has been checked on fresh data yet, which is why the Experiment is Exploratory (measured).
Why green? Before writing the file, the camera scales its colors so that ordinary light comes out roughly balanced: on the units I measured, red and blue get 1.3 to 2.4 times as many codes per electron (the charge light frees in a pixel) as green (measured). That pushes red and blue to 65,535, the file's top number, first. Green, scaled least, runs into a limit inside the camera while it is still under 65,535. My data fits the colors all stopping at one shared limit before the scaling, but I haven't pinned down which part of the camera sets it (inferred).
What a full core turns into after color balance and a stretch
Once a star's core is full in every color, its pixels are frozen near 65,535 red, a green somewhere in its full band (about 53,500 on an S50) and 65,535 blue, however bright the star really is. The steps below are arithmetic on those ceilings, not a test of any program (illustrative).
| Step | Red | Green | Blue | The core looks |
|---|---|---|---|---|
| As the file holds it | 65,535 | 53,500 | 65,535 | faintly lilac |
| Divided by one white level (65,535) | 1.00 | 0.82 | 1.00 | purple, once stretched and boosted |
| Software lifts green 1.4× | 1.00 | 1.14 | 1.00 | green |
| All three clipped at green's ceiling | 1.00 | 1.00 | 1.00 | white |
The first row is a little purple because a full core holds about 1.2 times as much red and blue as green. A stretch and any color or saturation boost make that tint much stronger (illustrative). If your software's white balance lifts green by more than that ratio (the Experiment puts it at about 1.15 to 1.3 times on units with normal color handling), the full core flips to green instead (inferred). I haven't tested what any particular program does.
It isn't only about looks. Software that decides a pixel is full by looking for 65,535 lets a star that is full in green alone through as good data. Over the Experiment's nights that was 251 of 1,576 full star images on the S50 Pro and 94 of 465 on my S30 Pro, and my own tools made the same mistake (measured).
What to do
In my own words, the usual cures, by where you are in processing:
- Before stretching, while the data is still linear (pixel values still proportional to the light): desaturate or neutralize the cores of saturated stars, so a full core is gray before the stretch can amplify its tint. If your software lets you set the saturation or white level, using your green ceiling for all three colors makes full cores come out white (inferred).
- After stretching: pull the purple or green out of the star cores with a color-removal or hue-selective desaturation tool, limited to the cores and their fringes so the rest of the field keeps its color.
- At the telescope: use shorter subs for bright targets, so fewer cores fill in the first place. How long: per sub and per target weighs that against the rest of the night.
- Don't trust the color of a full core. Whatever tint it shows came from the camera's ceilings and your software's balance. For star colors you want to rely on, use stars whose peaks stay below the ceiling.
- If you measure brightness (variable stars, transits): keep the star peaks you measure under about 40,000, which is 0.80 of the lowest green ceiling I measured; on three of the four models the response was straight up to there. On the one S50 Pro I measured, until its shortfall (below) is understood, check your result with fainter comparison stars too, peaking under about 20,000, 0.4 of its ceiling (measured). Leave out any star with a full pixel rather than trying to repair it, since it has lost light and color balance. If you can't measure your own ceiling, about 49,000 was below every ceiling on the 8 units (measured).
To find your own green ceiling, open a raw frame with some bright stars in a program that shows the red, green and blue pixels separately, and look at green's histogram near the top: full green pixels bunch up in a band about 1,000 to 5,000 codes wide, and the bottom of that band is your ceiling (measured). Check again after a firmware update. The Experiment's "What to do about it" goes through this in more detail.
Below the ceiling, the response stays straight
A common worry is that a sensor's response bends over before it fills, so the brightest unsaturated stars read too faint. How calibration works reports that on the S30, S30 Pro and S50, every color stays within about 5 % of a straight line up to 90 % of its clip level, then clips (measured). The Experiment's star-by-star check is a little less tidy: up to 0.9 of the ceiling, green stayed within 5 % on those three models, while red and blue, with fewer stars to go on, scattered more, mostly a little low; the last stretch from 0.9 to the ceiling can't tell a real bend from stars already over it (measured). The one S50 Pro in the Experiment is the exception: from 0.4 of the ceiling up, its green and red read 5 to 8 % low and its blue 10 to 23 % low, and I don't know why. That is one unit on one night, so I treat it as an open question, not a property of the model (measured).
Where these numbers come from
- Why a Seestar's bright stars turn green or purple (Experiment, 9 October 2026, Exploratory): every measured number on this page except the straight-line one.
- How calibration works: the straight line up to 90 % of the clip level.
The lines beside passages mark how far each claim is proven; see how claims are marked. More Notes and guides are on the Learn page.