Setting Up Remote Monitoring For Teton Pass

I spent three winters driving into Jackson through that pass before I realized I was doing it completely wrong. Checking the camera manually, pulling over to look at conditions, making decisions blind. The Wyoming Department of Transportation runs a few static cameras up there, but they're not always in the best spots and the refresh rates are garbage. If you want actual real-time visibility of what's happening on the road, you need to set up your own stream. The whole idea of Teton Pass Camera Realtime Snow Traffic And Conditions Streaming To Your Screen is that you stop guessing and start seeing. I used to make decisions based on a photo that was twenty minutes old. By the time I loaded it, conditions had changed enough to matter. Now I have a dashboard that pulls from multiple sources and updates every few seconds.

Teton Pass Camera Realtime Snow Traffic And Conditions Streaming To Your Screen

The setup breaks down into three parts. You need a camera source, a way to grab that feed, and a display on your end. The WYDOT cameras are your starting point. They broadcast at roughly 640x480 resolution with a new frame every thirty seconds or so depending on the station. The main ones are near the summit just past the switchbacks and one further down near the valley floor. Neither gives you the full picture of what's actually happening on the road surface. I ended up supplementing those with a dashcam mount pointed downhill from my truck and a Raspberry Pi Zero 2W running MJPG-streamer. That gave me a personal angle that actually updates at a usable frame rate. The Pi sits on the dash, records to a loop buffer, and pushes a stream to a local IP address. My living room monitor pulls that along with the WYDOT feeds. The software stack is straightforward. I use ffmpeg on the Pi to capture the video feed and transcode it to MJPEG for the stream. On the display side, I run a simple Node.js script that pulls three or four URLs and arranges them in a grid. Browser tabs work too if you don't want to install anything. The real trick is automating the whole thing so it starts whenever the Pi boots and reconnects if the connection drops.

Here is where people mess this up. The WYDOT cameras have an HTTP referrer check. If you try to embed their stream directly in a webpage, it blocks the request. I worked around this by writing a small proxy script that fetches the camera image on the server side and serves it to the browser. It adds a half-second delay but that is nothing compared to the alternative of watching a blank screen. The proxy also handles the periodic refresh cycle instead of the browser hammering the camera every few seconds. One edge case I hit hard was snow blinding the camera lens. I mounted mine facing slightly uphill instead of straight down the grade. At first I thought that was the wrong angle, but the glare from fresh powder on the downhill slope washes out the image completely around midday in winter. Facing slightly uphill keeps the lens in shadow most of the day and still captures the traffic queue building below. It is a small detail that matters more than you would expect.

Get the Full Details

Teton Pass: No trailers, expect fog and snow
Teton Pass: No trailers, expect fog and snow

What You Actually Need To Run This

The hardware list is short. A Raspberry Pi Zero 2W with a Canon VC-Q5 or similar board-level camera module works fine. I originally tried a USB webcam and the latency was unacceptable. The Pi handles the transcoding and streaming without breaking a sweat. Power comes from a plugged-in cigarette lighter adapter or a small power bank if you need portability. On the software side you need ffmpeg installed, which is just a package command away on Raspberry Pi OS. MJPG-streamer or the newer MotionEyeOS can handle the streaming layer. For the display dashboard, I went with a bare HTML page using canvas elements that pull from the various sources. No frameworks, no dependencies, just a browser and a refresh timer. The WYDOT camera URLs are public. You can find them by navigating to the WYDOT traffic camera page and right-clicking the image to copy the link address. These links do not change often but they have broken during system upgrades in the past. I keep a text file on the Pi with the current working URLs and check it once a month. When a feed dies, I update the script and move on.

Network connectivity in the Teton Valley is inconsistent. I learned that the hard way when my first setup relied entirely on cellular from the truck. At the pass, you get maybe one bar of LTE and the stream drops constantly. I switched to a local storage approach instead. The Pi records everything locally and I pull the feed over WiFi when I am at home. This also means I have a complete record of conditions over time, which turned out to be useful for figuring out which stretches ice over first after a storm.

Why This Matters More Than It Sounds

Teton Pass is steep. Some grades hit eleven percent. In winter conditions, a single stalled vehicle can close the road for hours. The pass is also a known problem area for motorcycle fatalities because of the long downgrade. Having live visibility into what is actually happening rather than guessing from a roadside sign saves time and prevents bad decisions. I once waited forty-five minutes at the base thinking conditions were too dangerous to proceed. I could have made the trip safely if I had seen that the plows had cleared the switchbacks and only light dusting remained near the top. The static WYDOT camera showed ice from the night before but had not refreshed since a morning warm-up melted the surface. My own mounted camera caught the change in real time. That was the moment I decided to build this properly. There are limitations worth acknowledging. The WYDOT cameras are maintained by the state and their uptime is decent but not perfect. Their feeds sometimes go dark during power outages or equipment failures with no announcement. A personal camera fills some of that gap but only covers your specific location on the pass. You are still blind to conditions several miles away. The solution is redundancy. Multiple angles, multiple sources, and accepting that you will never see everything.

Teton Pass: Slick with snow, chain law level 1
Teton Pass: Slick with snow, chain law level 1

If you are not technical enough to build a custom dashboard, you can still achieve similar results by bookmarking the WYDOT camera page and setting up a cron job that screenshots it every five minutes. Review the thumbnails in sequence and you get a timeline of how conditions evolved over the day. It is less elegant than a live stream but it works and requires zero custom coding. The whole process from bare Pi to running dashboard takes about two hours if you are comfortable with command line tools. I spent my first weekend troubleshooting a permissions issue that turned out to be a missing sudo on a single command. Do not skip reading the ffmpeg documentation even if it seems obvious. The output format flags matter more than most people realize for compatibility with older browsers. There is no single download link for a ready-made solution because this depends on your specific hardware and network setup. Everything I described runs on standard open source tools. The configuration files I use are simple text that can be shared if anyone asks. What works on a Pi Zero might need adjustment for a full Raspberry Pi 4 or a different single board computer. The principles stay the same regardless of the platform.

Winter driving in the Tetons is serious. The pass closes without warning when wind drifts or whiteouts hit. A real-time view of conditions gets you closer to making informed choices instead of relying on hope and a gas gauge. I wish I had set this up years earlier.