Hands-on, vendor-neutral tutorials on digital substations, IEC 61850, and virtual protection & control (vPAC) — engineering the modern grid.
Ni8towl is a practical channel for protection & control engineers, substation automation specialists, and power-system engineers modernising the grid. We go deep on real hardware with real commands — every step shown, nothing edited out:
• IEC 61850 — SCL / SCD, GOOSE, Sampled Values (SV), MMS
• Digital substations & substation automation
• Virtual protection (vPAC) & real-time virtualisation — SEAPATH, Linux/KVM, PTP / IEEE 1588 time sync
• Open-source grid tooling — SEAPATH, RiseClipse, CoMPAS, OpenSCD
• Power system protection, relay testing & commissioning
• OT/IT convergence and cyber security (IEC 62351)
Every command is copy-paste ready, so you can follow along on your own bench. If you're building, testing, or virtualising the substation of the future — subscribe.
Engineering the modern grid.
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-07-05T18:29:01Z` Route: `/channel/UCCdJocmC0f8HM8fY493VrbQ` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:29:22 in 'get_60_videos:continuation:sort_by' from src/invidious/routes/channels.cr:56:36 in 'videos' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-07-05T18:29:01Z` Route: `/channel/UCCdJocmC0f8HM8fY493VrbQ` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:29:22 in 'get_60_videos:continuation:sort_by' from src/invidious/routes/channels.cr:56:36 in 'videos' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-07-05T18:29:01Z` Route: `/channel/UCCdJocmC0f8HM8fY493VrbQ` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:29:22 in 'get_60_videos:continuation:sort_by' from src/invidious/routes/channels.cr:56:36 in 'videos' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-07-05T18:29:01Z` Route: `/channel/UCCdJocmC0f8HM8fY493VrbQ` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:29:22 in 'get_60_videos:continuation:sort_by' from src/invidious/routes/channels.cr:56:36 in 'videos' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>