{
    "version": "https://jsonfeed.org/version/1",
    "title": "Your Bench Instruments on the Mac",
    "description": "",
    "home_page_url": "https://scopelab.app",
    "feed_url": "https://scopelab.app/feed.json",
    "user_comment": "",
    "icon": "https://scopelab.app/media/website/scopelab.png",
    "author": {
        "name": "Richard Klingler"
    },
    "items": [
        {
            "id": "https://scopelab.app/blog/demonstration-video/",
            "url": "https://scopelab.app/blog/demonstration-video/",
            "title": "Demonstration video",
            "summary": "A short demonstration video showing my old Yokogawa DL1540C 4-channel scope, a cheap NI GPIB-USB-HS clone and my MacBook Air&hellip;",
            "content_html": "<p>A short demonstration video showing my old Yokogawa DL1540C 4-channel scope, a cheap NI GPIB-USB-HS clone and my MacBook Air running ScopeLab with native USB GPIB support. No NI drivers, just plain Swift code (o;</p>\n<div class=\"post__iframe\"><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/jS2ZnaMYbbs?si=o6Gh6I3ElV3FkedC\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen=\"allowfullscreen\"></iframe></div>",
            "image": "https://scopelab.app/media/posts/7/scopelab.png",
            "author": {
                "name": "Richard Klingler"
            },
            "tags": [
            ],
            "date_published": "2026-10-03T10:20:11+02:00",
            "date_modified": "2026-10-03T10:22:11+02:00"
        },
        {
            "id": "https://scopelab.app/blog/testflight/",
            "url": "https://scopelab.app/blog/testflight/",
            "title": "TestFlight",
            "summary": "Apple has released ScopeLab for first beta testing :-) Join the TestFlight Beta program:",
            "content_html": "<p>Apple has released ScopeLab for first beta testing :-)</p>\n<p>Join the TestFlight Beta program:</p>\n<figure class=\"post__image post__image--center\"><a href=\"https://testflight.apple.com/join/fQkpEU3y\" class=\"post__image\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\"  src=\"https://scopelab.app/media/posts/6/testflight-2023-05-19.png-lg-2.webp\" alt=\"\" width=\"256\" height=\"256\" sizes=\"(max-width: 48em) 100vw, 100vw\" srcset=\"https://scopelab.app/media/posts/6/responsive/testflight-2023-05-19.png-lg-2-xs.webp 300w ,https://scopelab.app/media/posts/6/responsive/testflight-2023-05-19.png-lg-2-sm.webp 480w ,https://scopelab.app/media/posts/6/responsive/testflight-2023-05-19.png-lg-2-md.webp 768w\"></figure></a></p>",
            "image": "https://scopelab.app/media/posts/6/testflight-2023-05-19.png-lg.webp",
            "author": {
                "name": "Richard Klingler"
            },
            "tags": [
            ],
            "date_published": "2026-09-26T06:20:55+02:00",
            "date_modified": "2026-09-26T06:20:55+02:00"
        },
        {
            "id": "https://scopelab.app/blog/gpib-on-macos/",
            "url": "https://scopelab.app/blog/gpib-on-macos/",
            "title": "GPIB on macOS",
            "summary": "For years, getting a GPIB instrument talking to a Mac has meant a VM, a Linux box on the side,&hellip;",
            "content_html": "<p>For years, getting a GPIB instrument talking to a Mac has meant a VM, a Linux box on the side, or a driver that may or may not load on the current macOS.</p>\n<p>Not anymore — at least on my bench.</p>\n<p>This morning a Yokogawa DL1540C, a veteran of a scope, sent its waveforms over GPIB through a USB GPIB adapter (NI GPIB-USB-HS compatible) straight into ScopeLab, my own macOS app. It needs no kernel extension and no vendor driver, and it runs inside the App Sandbox.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://scopelab.app/media/posts/2/Bildschirmfoto-2026-09-25-um-10.50.32.png\" alt=\"\" width=\"3976\" height=\"2590\" sizes=\"(max-width: 48em) 100vw, 100vw\" srcset=\"https://scopelab.app/media/posts/2/responsive/Bildschirmfoto-2026-09-25-um-10.50.32-xs.png 300w ,https://scopelab.app/media/posts/2/responsive/Bildschirmfoto-2026-09-25-um-10.50.32-sm.png 480w ,https://scopelab.app/media/posts/2/responsive/Bildschirmfoto-2026-09-25-um-10.50.32-md.png 768w\"></figure>\n<p>📐 1 kHz sine on CH1: 1.399 V RMS, 1.0002 kHz. The scope's own measurement: 1.398 V, 1000 Hz.</p>\n<p>How it works: the adapter's USB protocol was worked out from captures of the Linux driver and reimplemented in user space on IOUSBLib. It lives in InstrumentKit, my Swift package for bench instruments, so any app can use it.</p>\n<p>Things the adapter taught me the hard way:</p>\n<p>🔸 A query nothing answers blocks the bus for up to 19 seconds, so there is no probing and no guessing, ever.<br>🔸 A single reply over 1024 bytes wedges the adapter until you unplug it, so a 10,000-point trace comes over in 21 slices.<br>🔸 Reading a reply in pieces can silently drop a byte at every join. Every slice is length-checked, because a trace that's one sample short looks exactly like a correct one.</p>\n<p>The DL1540C now sits in the same app as my Siglent SDS2504X Plus (LAN, plus 16 logic channels) and SSA3032X Plus spectrum analyser, with the same plot, markers, measurements, FFT and export for all of them.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://scopelab.app/media/posts/2/Bildschirmfoto-2026-09-25-um-11.42.31.png\" alt=\"\" width=\"3976\" height=\"2590\" sizes=\"(max-width: 48em) 100vw, 100vw\" srcset=\"https://scopelab.app/media/posts/2/responsive/Bildschirmfoto-2026-09-25-um-11.42.31-xs.png 300w ,https://scopelab.app/media/posts/2/responsive/Bildschirmfoto-2026-09-25-um-11.42.31-sm.png 480w ,https://scopelab.app/media/posts/2/responsive/Bildschirmfoto-2026-09-25-um-11.42.31-md.png 768w\"></figure>\n<p>Old instruments are good instruments. They just need someone to talk to them. 📟</p>",
            "image": "https://scopelab.app/media/posts/2/usb-gpib.jpg",
            "author": {
                "name": "Richard Klingler"
            },
            "tags": [
                   "GPIB"
            ],
            "date_published": "2026-09-25T11:13:37+02:00",
            "date_modified": "2026-09-25T11:42:57+02:00"
        }
    ]
}
