SSR Calc

Pitch Finder

waiting for the sensor…
—

Lay the phone FLAT on the roof plane you’re reading — any direction. Hold still.

Measured metal width

Nominal G-rib covers 36" (3′). Measure center-rib to center-rib across your first panels — it sets the real coverage, the same number Settings shows, on every phone on the crew. Lists already saved keep theirs.

Machine calibration

Off = the number you punch is the number you get. Most machines run dead on.

Punch a long piece and a short one, measure what comes out, put both here. The error grows with length, so one flat number is not enough.

Long piece

Short piece

Settings

Crew

Using the app as
Crew code 

Same code = same crew. Sharing stays inside it.

Panel

Panel profile 

Each profile keeps its own numbers.

Reset this profile’s numbers

Machine

Raspberry Pi

On this phone

Text size 

Only the text grows — the page still fits the screen.

Cut list lengths
Entry boxes show
Keep the screen on while the app is open
Alerts on this phone

Walkie on this phone
Open in Walkie mode

Start on the talk button instead of the last card you used.

Machine Console Mode 

The tablet at the roll former — exports land here, Walkie stays live.

Show Pitchfinder in Calculator
Add to Home Screen 

Opens full screen from the home screen and works with no signal.

Updates

Where your data goes

Measurements, cut lists and settings are kept on this phone.

This edition has no internet connection. Nothing on it is sent anywhere: no account, no crew sync, no speech or AI service.

With an account, your email and first name sit in the crew database’s sign-in (Supabase). Your password is kept only by that sign-in service, scrambled; the app never stores it. Nothing else is shared because of the account.

With a crew code, cut lists, crew settings and walkie clips also go to the crew’s sync server (Supabase), so every phone on the crew gets them.

Job photos are saved on this phone. The phone’s original, with its camera data, never leaves the phone unless you share it yourself.

With “Share my job photos with my crew” on (Settings → Sharing), a smaller copy goes to the crew’s sync server (Supabase), in a closed store. Only phones given the crew’s photo key can open it; the crew code alone can’t. The copy is redrawn on the phone first, so the picture carries no location (GPS), no phone serial and no camera owner. With it go: the job’s name, the label and cut-list link if you set them, the name on this phone, when it was taken, a random tag for this phone, and the lens, focal length and picture size.

No photo goes to Quill or any AI service unless you add it to Quill yourself. The app never looks for faces or names in photos.

A deleted photo waits in Recently Deleted for 30 days, then is erased from the phone and, by a daily clean-up, from the server. “Delete all my photos” erases this phone’s photos from both at once. Photos stay until someone deletes them; nothing is kept for the developer.

The developer gets data from a crew only when both “Help improve the app” switches are on. Today that is only voice fixes: when the mic guessed a length and you put in a different one, the words heard, the guess and your number. Off, they stay on this phone (Settings → Sharing → Voice fixes).

Saved recordings: every mic recording is kept on this phone until its words come back, so a recording made while speech is down or with no signal is never lost. Saved recordings stay on this phone only, never go to the crew, and erase themselves after 30 days.

No saved recordings on this phone.

Hold-to-talk: the recording goes to a speech service to be turned into words, while you talk (so the words show as you speak) and once more when you let go — xAI, or a backup (Groq or OpenAI) when the developer has switched one on. xAI, Groq and OpenAI each say they don’t train on it and keep it up to 30 days for abuse checks. Each clip is counted (how many and how long, never the words) so the developer sees what speech costs.

Quill: what you type or say, the boxes on the screen and any photo you add go to Claude Haiku 5.5 (Anthropic), or Claude Haiku 4.5 if 5.5 is down. A photo goes to Claude Haiku. (Only the developer’s Test app differs: there Grok, from xAI, can be picked and answers when Haiku is down, and the developer’s own Voice mode sends live sound to xAI.) Read-aloud text goes to xAI. A random tag the app makes for this phone (not your phone number) counts Quill’s answers for a safety stop at 1,000 a day. How long each answer is (never its words) is added up so the developer sees what Quill costs.

Ideas, problems and opinions sent through Quill are kept for the developer, with your name, the screen, the app version and any photo. Nothing goes until you tap Send (or say “send it”), and a problem or idea you send carries your Quill conversation with it. One you don’t send stays on this phone.

A call-back number is seen only by the developer.

Live walkie calls connect through Google and Cloudflare to reach the other phone.

Walkie recording: before a phone’s walkie mic first turns on, its owner sees the recording notice and taps “I agree” (Walkie → Settings → Recording notice, or Settings → Sharing, shows it again and withdraws it). The OK is kept on this phone only. A clip goes to everyone on your crew code, or the one person you pick; with no crew code set, any phone without one can hear it. Crew phones erase clips from the server: a clip to the whole crew after a day, a clip to one person once it plays or after 30 days. Each phone keeps its last 20 clips, up to 30 days. LIVE calls are not saved. The app never makes a voiceprint and never tries to tell who is talking.

No ads and no analytics.

Licenses

Some icons are from Feather Icons. Copyright (c) 2013-2017 Cole Bemis.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Layout:

Panel width

Measure the real panel width 

Tape across several panels rib to rib. The app divides it out and fills the two boxes above — check them, then Save.

Margins & fold

Ribs & ordering

Check the coverage

Update this job's lists?

Trim

Valley anatomy for the drawing only — the rib, and the reveal from its edge to the chalk line. Never touches a cut number.

Notch, pocket & ends

Machine

Net machine adjustment: +0.375" (notch − machine offset)

Sharing

Share my job photos with my crew

Photo key

Walkie recording notice

Walkie clips are kept up to 30 days; crew phones erase older ones.

Help improve the app with this phone’s data
This crew helps improve the app

Nothing goes to the developer unless both of these switches are on. Today the only thing that goes is voice fixes (below).

Turning a switch off stops new sharing right away. It can’t pull back what other phones already have.

Raspberry Pi

Test & tune

Walkie settings

Recording notice

Get a notification with each message even while LIVE is on.

Checked = a ping with every message even while LIVE is playing them out loud. Unchecked = LIVE quiets the pings — messages just play. Either way, when LIVE is off, pings always come through no matter what — an end-of-day voice message never gets missed (and the ping says LIVE is off, so you know to ACTIVATE). Everything waits in Recents.

Turn this on when this phone is plugged into the crew speaker (ground guy, random crew phone — not only the machine console). LIVE uses a louder holding track so the speaker does not auto-sleep. Leave it off for earbuds / pocket phone alone.

Per phone. The ground guy often connects the Bluetooth speaker to whoever is on the ground — not the machine console. Flip this on that phone so Walkie LIVE keeps the speaker awake. Quiet on other phones so you do not get radio rash.

The crew hears you — not the lift, the compressor or the wind. Leave it on. Turn it off only when you want them to hear a machine.

Per phone, and it works on what this phone sends. It learns what the jobsite sounds like between your words, turns that down, rounds off nail-gun cracks, and goes quiet between sentences like a two-way radio — then makes your voice loud. Your voice stays as loud as it ever was. Off = the old sound, everything loud.

Off (default): a phone call — your mic never closes. On: only for a phone parked next to the crew speaker — while the other guy is talking and you are not, this mic closes so the speaker does not feed him back to himself.

For the phone plugged into the crew speaker. It hears the call and never opens its mic.

Add a run of pieces

A first length and a step. Nothing is assumed about the roof — these are your numbers.

ft
in
–
Step it
in
–
in
–
Each piece
pcs

Add a part

pcs
ft
in
–
That number is

How this piece is cut

Split this line

Start a new line at
 
Or into equal parts

Change this length

A little shorter / a little longer
The number below
ft
in
–

Which way does this layout run?

Direction is the crew's label — it never changes the cuts.

Put SSR Calc on the home screen

Your edited boards

Switch to left to right?

Starting at the rake — add the half inch?

The tape hooked on the rake trim edge, but the first full piece sits ½″ in. Yes shifts the whole layout ½″ so it lands closer to true at the valley — the bottom check there trues it exactly.

Panel

From the starting rake/corner you chose to the bottom edge where the valley starts. Leave empty if there’s no bottom edge.

Angle — pick how you measured it

Valley angle (off vertical)
Angle off bottom edge
Rise per piece (15-5/8)
Pieces
Total linear feet
Layout: Left → Right · notch on the FIRST end out of the machine
Cut table — full pieces, then valley cuts
NLengthRise/pcMachine

Column key Full pieces fill the straight bottom run, then the cut table steps down into the valley. Length steps on the total panel width; Short pt is the other end of the same diagonal cut. Machine = length + net adjustment (notch − machine offset), in machine hundredths. Change machine numbers under the gear ⚙.

Layout: Left → Right · notch on the FIRST end out of the machine
Layout: Left → Right · notch on the FIRST end out of the machine

Apex correction

From the under-rib reference of the last piece before the apex, over to the apex. Pre-filled with the calculated number — edit it to what you actually measure and everything from the apex on updates.

Last piece check (flat bottom)

Measure the diagonal off the previous piece; get the flat run and the rise where the cut starts.

SSR Calc

Color

The color this list is cut from. The job’s colors are offered first.

Cut lists

Jobs

What panel is this job?

Photos

Job:

job photo

Recently deleted

Deleted cut lists and jobs are kept here for 30 days, then removed for good.