91³Ô¹ÏÍø

Watch CBS News

Water levels hover about 7 inches below Cheboygan dam, as powerhouse turbines placed back in service

Water levels hovered around 7 inches below the top of the dam Saturday at the Cheboygan Lock and Dam Complex in Northern Michigan, after having spiked less than 6 inches from the top of the dam earlier in the week. 

The water was at 7.08 inches below the top of the dam at 1:30 p.m. Saturday. It had fallen slightly to 7.32 inches below the top of the dam , the State of Michigan Emergency Management and Homeland Security said. The Friday afternoon reading was 7.08 inches. 

The water levels on the Cheboygan River near the dam in Cheboygan County have been closely , when the water was at 21.5 inches below the dam. Emergency warnings to local residents ramped up when the water reached 12 inches below the dam, and further when the water reached 6 inches below the dam. 

As those alerts got issued, downtown Cheboygan business owners started bracing for the worst while hoping for the best.   

ready-set-go-dam-flooding-guideline.png
Ready Set Go guidelines provided to Cheboygan-area residents about the water levels at Cheboygan Lock and Dam Complex in Northern Michigan. NEXT Weather/CBS Detroit

If the water reaches 1 inch below the dam's top, an evacuation order will go out for the area. 

Getting the powerhouse back in service

While sandbagging and portable water pumps were placed several days ago, the latest step that appeared to have made a difference was getting the turbines of a  to help redirect the water and relieve pressure on the dam. 

The . State officials said when the equipment is working at full capacity, the hydroelectric turbines can move nearly one-third more water through the dam than previously, pumping an additional 2,000 cubic feet per second.

The powerhouse is privately owned and has been closed since 2023. The Michigan Department of Natural Resources owns and operates the lock and spillway.

"We've had a lot of people working on this," said Richard Hill of the DNR's Incident Management Team. "The effort was technical and exacting, involving rewiring circuits, testing machinery that has been idle for years and connecting the power station to the grid."    

Flooding across Cheboygan County 

Many local roads in Cheboygan County remain closed because of high water, the Cheboygan County Sheriff's Office said. Some residents who live near the Little Black River Watershed were ordered into a temporary evacuation mode.   

And in new developments on Saturday morning, evacuations took place near Black Lake where a critical local road had washed away. 

Michigan Gov. Gretchen Whitmer opened the State Emergency Operations Center on April 10 to coordinate efforts on flood response. 

Federal agencies among those assisting

The response to the flooding threat has involved the resources of numerous state and local agencies, but also some federal ones.

The U.S. Border Patrol, Detroit Sector, have been on site in Cheboygan. The U.S. Coast Guard  also among those working with Cheboygan emergency officials.


The above video originally aired on April 16, 2026.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });