41554 blogs · [ { "id": "01a087e8-7fcf-700d-9a66-9be42e50bd47", "title": "Embed Arbitrary Payloads into JPEGs without Special Tools", "url": "https://swharden.com/blog/2026-05-02-jpeg-payload/", "published_at": "2026-05-02T11:04:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be42e64b35e", "title": "Merge External Repositories into GitHub Contribution Graph", "url": "https://swharden.com/blog/2026-03-05-git-activity-merge/", "published_at": "2026-03-05T01:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be42f01fd3c", "title": "Streaming Digits of Pi", "url": "https://swharden.com/blog/2025-11-16-streaming-pi-digits/", "published_at": "2025-11-16T19:30:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43001c831", "title": "WiFi Temperature Sensor with NodeMCU", "url": "https://swharden.com/blog/2025-06-08-sensor/", "published_at": "2025-06-08T11:38:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43076dacc", "title": "Resampling Segmented Lines for Evenly Spaced Points", "url": "https://swharden.com/blog/2025-04-13-evenly-spaced-resampled-segmented-line/", "published_at": "2025-04-13T16:12:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be430befa8f", "title": "Performant Data Smoothing in C#", "url": "https://swharden.com/blog/2024-12-27-data-smoothing-csharp/", "published_at": "2024-12-27T15:36:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43170cbd7", "title": "Curve Fitting in C# using Particle Swarm Optimization", "url": "https://swharden.com/blog/2024-09-14-swarmfit/", "published_at": "2024-09-14T16:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4319b755d", "title": "Simple Exponential Fit with C#", "url": "https://swharden.com/blog/2024-08-24-exponential-fit-csharp/", "published_at": "2024-08-24T20:09:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be431e73c77", "title": "GitHub License Checker", "url": "https://swharden.com/blog/2024-08-17-github-license-checker/", "published_at": "2024-08-17T19:45:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be431f0fa42", "title": "Local AI Chat with C#", "url": "https://swharden.com/blog/2024-02-19-local-ai-chat-csharp/", "published_at": "2024-02-28T21:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43251413d", "title": "Frequency Measurement with Modern AVR Microcontrollers", "url": "https://swharden.com/blog/2023-08-31-avr-dd-frequency-counter/", "published_at": "2023-08-31T18:40:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be432eb5937", "title": "Play Audio from SPI Flash with a Microcontroller", "url": "https://swharden.com/blog/2023-08-26-spi-flash-audio/", "published_at": "2023-08-26T20:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4336568ed", "title": "Program SPI Flash with a FT232H", "url": "https://swharden.com/blog/2023-08-24-ft232h-spi-flash/", "published_at": "2023-08-24T19:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4336f4d38", "title": "Hack an Atmel ICE to Deliver Power", "url": "https://swharden.com/blog/2023-08-22-avr-ice-power/", "published_at": "2023-08-22T19:45:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4342f9ce9", "title": "Speaking Numbers with a Microcontroller", "url": "https://swharden.com/blog/2023-08-19-speaking-microcontroller/", "published_at": "2023-08-19T23:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4349815a3", "title": "Summarizing Blog Posts with AI", "url": "https://swharden.com/blog/2023-07-30-summarizing-blog-posts-with-ai/", "published_at": "2023-07-31T23:09:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be434eb3fa2", "title": "Using Llama 2 to Answer Questions About Local Documents", "url": "https://swharden.com/blog/2023-07-30-ai-document-qa/", "published_at": "2023-07-30T09:30:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4357353a7", "title": "Run Llama 2 Locally with Python", "url": "https://swharden.com/blog/2023-07-29-ai-chat-locally-with-python/", "published_at": "2023-07-29T18:30:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4362188a6", "title": "Static Site Broken Link Detection", "url": "https://swharden.com/blog/2023-05-13-static-site-link-checking/", "published_at": "2023-05-13T13:39:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be436dada23", "title": "Treemapping with C#", "url": "https://swharden.com/blog/2023-03-07-treemapping/", "published_at": "2023-03-28T00:32:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43721d7ee", "title": ".NET Source Code Analysis", "url": "https://swharden.com/blog/2023-03-05-dotnet-code-analysis/", "published_at": "2023-03-05T15:20:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4376a48aa", "title": "Divide 10 MHz to 1PPS with a Microcontroller", "url": "https://swharden.com/blog/2022-12-17-avr-1pps/", "published_at": "2022-12-17T13:09:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43778ca9b", "title": "Programming Modern AVR Microcontrollers", "url": "https://swharden.com/blog/2022-12-09-avr-programming/", "published_at": "2022-12-09T23:45:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43826c969", "title": "Interfacing HX710 Differential ADC with Arduino", "url": "https://swharden.com/blog/2022-11-14-hx710b-arduino/", "published_at": "2022-11-15T00:30:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4385bf268", "title": "Creating Bitmaps from Scratch in C#", "url": "https://swharden.com/blog/2022-11-04-csharp-create-bitmap/", "published_at": "2022-11-07T18:45:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be438f12797", "title": "Experiments in PSK-31 Synthesis", "url": "https://swharden.com/blog/2022-10-16-psk31-synthesis/", "published_at": "2022-10-16T23:26:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4391311fc", "title": "Resample Time Series Data using Cubic Spline Interpolation", "url": "https://swharden.com/blog/2022-06-23-resample-interpolation/", "published_at": "2022-06-23T21:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43953bc9a", "title": "Show A Progress Bar as your Blazor App Loads", "url": "https://swharden.com/blog/2022-05-29-blazor-loading-progress/", "published_at": "2022-05-29T16:05:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43a0d2e1c", "title": "Use Maui.Graphics to Draw 2D Graphics in Any .NET Application", "url": "https://swharden.com/blog/2022-05-25-maui-graphics/", "published_at": "2022-05-25T22:13:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43a1da933", "title": "Using DataFrames in C#", "url": "https://swharden.com/blog/2022-05-01-dotnet-dataframe/", "published_at": "2022-05-01T23:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43a274055", "title": "FTP Deploy with GitHub Actions", "url": "https://swharden.com/blog/2022-04-24-github-actions-ftp/", "published_at": "2022-04-24T16:45:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43acb5bc6", "title": "GitHub Repository Badge", "url": "https://swharden.com/blog/2022-04-12-github-badge/", "published_at": "2022-04-12T23:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43bb2b8ce", "title": "Mystify your Mind with SkiaSharp", "url": "https://swharden.com/blog/2022-04-06-mystify/", "published_at": "2022-04-04T18:34:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43c1ec552", "title": "Build and Deploy a Hugo Site with GitHub Actions", "url": "https://swharden.com/blog/2022-03-20-github-actions-hugo/", "published_at": "2022-03-20T22:45:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43ca017f8", "title": "Determine GitHub Action Runner IP", "url": "https://swharden.com/blog/2022-03-12-github-actions-ip/", "published_at": "2022-03-12T19:51:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43d0cf09e", "title": "Generic Math in C# with .NET 6", "url": "https://swharden.com/blog/2022-02-03-generic-math-csharp/", "published_at": "2022-02-03T23:55:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43d97733d", "title": "Point Inside Rectangle", "url": "https://swharden.com/blog/2022-02-01-point-in-rectangle/", "published_at": "2022-02-01T00:10:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43e5ba243", "title": "Spline Interpolation with C#", "url": "https://swharden.com/blog/2022-01-22-spline-interpolation/", "published_at": "2022-01-22T16:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43ee36a3e", "title": "NDepend Status Badges", "url": "https://swharden.com/blog/2021-11-17-ndepend-badges/", "published_at": "2021-10-17T13:20:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43f61c939", "title": "Status Badges with Maui.Graphics", "url": "https://swharden.com/blog/2021-11-16-maui-graphics-badges/", "published_at": "2021-10-16T20:40:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be43fd70d57", "title": "MeasureString() with Maui.Graphics", "url": "https://swharden.com/blog/2021-10-16-maui-graphics-measurestring/", "published_at": "2021-10-16T16:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44053e08f", "title": "My Life with a Spiny Leaf Insect", "url": "https://swharden.com/blog/2021-10-13-leaf-insect/", "published_at": "2021-10-12T20:45:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be441503198", "title": "Rename Image Files by Capture Date with C#", "url": "https://swharden.com/blog/2021-10-12-jpeg-rename-by-date/", "published_at": "2021-10-12T20:28:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be441a5bb5f", "title": "Managing Secrets in .NET Console Apps", "url": "https://swharden.com/blog/2021-10-09-console-secrets/", "published_at": "2021-10-09T13:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be441b3b121", "title": "Drawing with Maui.Graphics", "url": "https://swharden.com/blog/2021-09-10-maui-graphics/", "published_at": "2021-09-10T22:30:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be441bfd5a1", "title": "Draw with Maui.Graphics and Skia in a C# Console Application", "url": "https://swharden.com/blog/2021-08-01-maui-skia-console/", "published_at": "2021-08-01T19:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be441d3e1a6", "title": "C# Microphone Level Monitor", "url": "https://swharden.com/blog/2021-07-03-csharp-microphone/", "published_at": "2021-07-03T22:42:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be442258775", "title": "Working with 16-bit Images in CSharp", "url": "https://swharden.com/blog/2021-06-08-csharp-16-bit-image/", "published_at": "2021-06-08T23:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4423cd57d", "title": "Representing Images in Memory", "url": "https://swharden.com/blog/2021-06-03-images-in-memory/", "published_at": "2021-06-03T00:03:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4432a47e7", "title": "Deploy a Website with Python and FTPS", "url": "https://swharden.com/blog/2021-05-16-python-deploy-ftps/", "published_at": "2021-05-16T11:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be443f6001a", "title": "Managing Credentials with Python", "url": "https://swharden.com/blog/2021-05-15-python-credentials/", "published_at": "2021-05-15T21:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4441370ae", "title": "WSPR Code Generator", "url": "https://swharden.com/blog/2021-03-27-wspr-code-generator/", "published_at": "2021-03-27T20:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be444b7df5e", "title": "Reflection and XML Documentation in C#", "url": "https://swharden.com/blog/2021-01-31-xml-doc-name-reflection/", "published_at": "2021-01-31T13:57:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be444ddee09", "title": "Get URL of a Directory with PHP", "url": "https://swharden.com/blog/2021-01-28-php-directory-url/", "published_at": "2021-01-28T18:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4453c3e17", "title": "LJP Theory and Correction", "url": "https://swharden.com/blog/2021-01-13-ljp-theory/", "published_at": "2021-01-13T00:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4457b292b", "title": "Google Charts in Blazor", "url": "https://swharden.com/blog/2021-01-12-blazor-google-charts/", "published_at": "2021-01-12T19:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4459c391f", "title": "Mystify your Browser with Blazor", "url": "https://swharden.com/blog/2021-01-09-blazor-mystify/", "published_at": "2021-01-09T22:16:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4465ea0a2", "title": "Boids in your Browser with Blazor", "url": "https://swharden.com/blog/2021-01-08-blazor-boids/", "published_at": "2021-01-08T22:58:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be446ecdda1", "title": "Draw Animated Graphics in the Browser with Blazor WebAssembly", "url": "https://swharden.com/blog/2021-01-07-blazor-canvas-animated-graphics/", "published_at": "2021-01-07T21:46:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44701500a", "title": "Create a new .NET 5 Blazor Project", "url": "https://swharden.com/blog/2021-01-06-new-blazor-net5-project/", "published_at": "2021-01-06T19:39:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be447feed6c", "title": "Display Build Details in Client-Size Blazor Apps", "url": "https://swharden.com/blog/2020-12-29-blazor-build-info/", "published_at": "2020-12-29T19:54:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be448d161b1", "title": "Seven Years of QRSS Plus", "url": "https://swharden.com/blog/2020-12-14-seven-years-of-qrss-plus/", "published_at": "2020-12-14T21:16:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be449371708", "title": "Exploring the Voltage-Clamp Membrane Test", "url": "https://swharden.com/blog/2020-10-11-model-neuron-ltspice/", "published_at": "2020-10-11T22:24:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4493e47b6", "title": "The New Age of QRSS", "url": "https://swharden.com/blog/2020-10-03-new-age-of-qrss/", "published_at": "2020-10-03T22:08:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be449604a0e", "title": "ECG Simulator Circuit", "url": "https://swharden.com/blog/2020-09-27-ecg-simulator-circuit/", "published_at": "2020-09-27T17:11:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44a4dc16a", "title": "Using MOD Files in LTSpice", "url": "https://swharden.com/blog/2020-09-26-ltspice-mod-files/", "published_at": "2020-09-27T16:21:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44a9935e0", "title": "Exponential Fit with Python", "url": "https://swharden.com/blog/2020-09-24-python-exponential-fit/", "published_at": "2020-09-24T17:45:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44accfdd9", "title": "Signal Filtering in Python", "url": "https://swharden.com/blog/2020-09-23-signal-filtering-in-python/", "published_at": "2020-09-23T21:46:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44afef390", "title": "Test React Apps in Azure Pipelines", "url": "https://swharden.com/blog/2020-09-22-react-tests-in-azure-pipelines/", "published_at": "2020-09-22T13:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44b452878", "title": "How I Deleted my Site from the Wayback Machine", "url": "https://swharden.com/blog/2020-09-19-delete-from-wayback/", "published_at": "2020-09-19T00:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44c028a3d", "title": "Leaving WordPress", "url": "https://swharden.com/blog/2020-09-13-leaving-wordpress/", "published_at": "2020-09-13T18:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44c9f46d7", "title": "USB Frequency Counter", "url": "https://swharden.com/blog/2019-08-03-usb-frequency-counter/", "published_at": "2019-08-03T21:15:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44d948f62", "title": "Upgraded Amplifier", "url": "https://swharden.com/blog/2019-07-31-upgraded-amplifier/", "published_at": "2019-07-31T21:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44dc9c2b9", "title": "SMT QRSS Spots", "url": "https://swharden.com/blog/2019-07-27-smd-qrss-spots/", "published_at": "2019-07-29T21:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44de63283", "title": "SMT QRSS Design", "url": "https://swharden.com/blog/2019-07-26-smt-qrss-design/", "published_at": "2019-07-26T21:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44e5711ef", "title": "New QRSS Keyer", "url": "https://swharden.com/blog/2019-07-21-new-keyer/", "published_at": "2019-07-21T21:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44e666309", "title": "QRSS Stitch and Stack", "url": "https://swharden.com/blog/2019-07-20-qrss-stitch-and-stack/", "published_at": "2019-07-20T21:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be44f498467", "title": "Started Transmitting Letters", "url": "https://swharden.com/blog/2019-07-20-qrss-letters/", "published_at": "2019-07-20T21:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be45026a00b", "title": "OOK and FSK", "url": "https://swharden.com/blog/2019-07-18-ook-and-fsk/", "published_at": "2019-07-18T21:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4503a8674", "title": "Amplifier Improvements", "url": "https://swharden.com/blog/2019-07-14-qrss-amplifier-improvements/", "published_at": "2019-07-14T21:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be450d11e4e", "title": "QRSS Spots", "url": "https://swharden.com/blog/2019-07-13-qrss-spots/", "published_at": "2019-07-13T21:00:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4516d869a", "title": "Bone Marrow Transplant Complete!", "url": "https://swharden.com/blog/2019-04-13-bone-marrow-transplant-complete/", "published_at": "2019-04-13T16:32:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be451ff7534", "title": "Transplant Day", "url": "https://swharden.com/blog/2019-03-27-transplant-day/", "published_at": "2019-03-27T20:37:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4522c28fe", "title": "Last Day of Chemotherapy", "url": "https://swharden.com/blog/2019-03-26-last-day-of-chemotherapy/", "published_at": "2019-03-26T13:55:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be452984d5e", "title": "Proceeding with a Bone Marrow Transplant", "url": "https://swharden.com/blog/2019-03-15-proceeding-with-bmt/", "published_at": "2019-03-15T23:55:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be452cf8a6f", "title": "Sound Card ECG with AD8232", "url": "https://swharden.com/blog/2019-03-15-sound-card-ecg-with-ad8232/", "published_at": "2019-03-15T23:50:34+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4532ee676", "title": "Stem Cell Collection Day", "url": "https://swharden.com/blog/2019-01-02-stem-cell-collection-day/", "published_at": "2019-01-02T23:22:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be4533317fc", "title": "Scott Has a New Look", "url": "https://swharden.com/blog/2018-09-13-scott-has-a-new-look/", "published_at": "2018-09-13T20:55:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be453e06b3f", "title": "First Round of Chemotherapy", "url": "https://swharden.com/blog/2018-08-29-first-round-of-chemotherapy/", "published_at": "2018-08-29T19:50:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be454c9581d", "title": "Port Placed Today", "url": "https://swharden.com/blog/2018-08-24-port-placed-today/", "published_at": "2018-08-24T11:18:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be455b6dacf", "title": "PET CT Reveals Progression", "url": "https://swharden.com/blog/2018-08-16-pet-ct-reveals-progression/", "published_at": "2018-08-16T11:45:00+00:00" }, { "id": "01a087e8-7fcf-700d-9a66-9be455d7103f", "title": "A Change in Symptoms", "url": "https://swharden.com/blog/2018-06-06-things-are-starting-to-change/", "published_at": "2018-06-06T11:45:00+00:00" }, { "id": "01a087e8-7fd0-736e-86c6-41b00074dc64", "title": "Bit-Bang FTDI USB-to-Serial Converters to Drive SPI Devices", "url": "https://swharden.com/blog/2018-06-03-bit-bang-ftdi-usb-to-serial-converters-to-drive-spi-devices/", "published_at": "2018-06-03T18:51:30+00:00" }, { "id": "01a087e8-7fd0-736e-86c6-41b0009989b0", "title": "IoT Festivus Pole", "url": "https://swharden.com/blog/2017-12-19-iot-festivus-pole/", "published_at": "2017-12-19T22:11:17+00:00" }, { "id": "01a087e8-7fd0-736e-86c6-41b0016501de", "title": "Hurricane Hack - DIY LED Candle", "url": "https://swharden.com/blog/2017-09-09-hurricane-hack-diy-led-candle/", "published_at": "2017-09-09T11:27:43+00:00" }, { "id": "01a087e8-7fd0-736e-86c6-41b002426afc", "title": "PS4 Controller Hack - Adding Auto-Run", "url": "https://swharden.com/blog/2017-09-02-ps4-controller-hack-adding-auto-run/", "published_at": "2017-09-02T15:48:22+00:00" }, { "id": "01a087e8-7fd0-736e-86c6-41b0030b8bea", "title": "Microcontroller Action Potential Generator", "url": "https://swharden.com/blog/2017-08-20-microcontroller-action-potential-generator/", "published_at": "2017-08-20T15:12:33+00:00" }, { "id": "01a087e8-7fd0-736e-86c6-41b0037164d5", "title": "Action Potential Generator Circuit", "url": "https://swharden.com/blog/2017-08-12-analog-action-potential-generator-circuit/", "published_at": "2017-08-12T23:04:32+00:00" }, { "id": "01a087e8-7fd0-736e-86c6-41b003a3d220", "title": "TTL Triggered Stimulus Generator", "url": "https://swharden.com/blog/2017-08-02-ttl-triggered-stimulus-generator/", "published_at": "2017-08-02T21:08:00+00:00" }, { "id": "01a087e8-7fd0-736e-86c6-41b0042631c6", "title": "Controlling Speakers with RADAR", "url": "https://swharden.com/blog/2017-06-28-controlling-speakers-with-radar/", "published_at": "2017-06-28T21:56:24+00:00" } ] posts Claim your blog
Back to swharden.com
Blog · corpus.blog/blogs/swharden.com/posts

swharden.com

swharden.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017