{"$schema":"https://ejfox.com/schema/page-twin@1.json","kind":"blog_tag","url":"https://ejfox.com/blog/tag/hardware","json_url":"https://ejfox.com/blog/tag/hardware.json","generator":"ejfox.com/json-twin@1","data":{"tag":"hardware","count":7,"posts":[{"slug":"2025/using-radios","title":"How To Use Radios","date":"2025-11-08T20:19:34.000Z","type":"post","dek":"In which we learn to use radios to the best of our ability","modified":"2025-11-08T20:22:13.000Z","tags":["communication","radio","tech","howto","hardware"],"toc":[{"text":"How To Use Radios","slug":"how-to-use-radios","level":"h2","children":[{"text":"Good vs Bad Comms: Lessons from Video Games","slug":"good-vs-bad-comms-lessons-from-video-games","level":"h3","children":[]},{"text":"Radio Discipline in the Wild","slug":"radio-discipline-in-the-wild","level":"h3","children":[]},{"text":"The Sub-Skills: Why You Need to Practice Being Calm","slug":"the-sub-skills-why-you-need-to-practice-being-calm","level":"h3","children":[]},{"text":"From Simulation to Reality: Why Gaming Skills Transfer","slug":"from-simulation-to-reality-why-gaming-skills-transfer","level":"h3","children":[]},{"text":"How to Actually Practice This","slug":"how-to-actually-practice-this","level":"h3","children":[]}]}],"metadata":{"dek":"In which we learn to use radios to the best of our ability","date":"2025-11-08T20:19:34.000Z","modified":"2025-11-08T20:22:13.000Z","tags":["communication","radio","tech","howto","hardware"],"gear":["moletta-lionsteel-folding-black-knife"],"words":1377,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{"h2":1},"toc":[{"text":"How To Use Radios","slug":"how-to-use-radios","level":"h2","children":[{"text":"Good vs Bad Comms: Lessons from Video Games","slug":"good-vs-bad-comms-lessons-from-video-games","level":"h3","children":[]},{"text":"Radio Discipline in the Wild","slug":"radio-discipline-in-the-wild","level":"h3","children":[]},{"text":"The Sub-Skills: Why You Need to Practice Being Calm","slug":"the-sub-skills-why-you-need-to-practice-being-calm","level":"h3","children":[]},{"text":"From Simulation to Reality: Why Gaming Skills Transfer","slug":"from-simulation-to-reality-why-gaming-skills-transfer","level":"h3","children":[]},{"text":"How to Actually Practice This","slug":"how-to-actually-practice-this","level":"h3","children":[]}]}],"type":"post","slug":"2025/using-radios"}},{"slug":"projects/amen-slicer","title":"Amen Slicer","date":"2026-07-28T05:00:00.000Z","type":"post","draft":false,"tags":["hardware"],"toc":[],"metadata":{"title":"Amen Slicer","date":"2026-07-28T05:00:00.000Z","category":"Hardware","featured":false,"draft":false,"url":"https://github.com/ejfox/amen-slicer","tech":["C++","Makefile","Python"],"tags":["hardware"],"words":184,"images":1,"imageDetails":{"total":1,"cloudinary":1,"withDimensions":0},"links":1,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/amen-slicer"}},{"slug":"projects/flipper-zero-tools","title":"Flipper Zero Tools","date":"2025-01-15T05:00:00.000Z","type":"post","tags":["flipper","hardware","device","science","generative","art"],"toc":[{"text":"Space Calculators","slug":"space-calculators","level":"h2","children":[]},{"text":"Generative Art","slug":"generative-art","level":"h2","children":[]}],"metadata":{"title":"Flipper Zero Tools","date":"2025-01-15T05:00:00.000Z","category":"Hardware","featured":true,"url":"https://github.com/ejfox/flipper-space-calculators","tech":["Flipper Zero","C","Embedded","Floyd–Steinberg Dithering"],"state":"deployed","ai-involvement":"ai-assisted","tags":["flipper","hardware","device","science","generative","art"],"words":338,"images":7,"imageDetails":{"total":7,"cloudinary":7,"withDimensions":0},"links":2,"codeBlocks":0,"headers":{"h2":2},"toc":[{"text":"Space Calculators","slug":"space-calculators","level":"h2","children":[]},{"text":"Generative Art","slug":"generative-art","level":"h2","children":[]}],"type":"post","slug":"projects/flipper-zero-tools"}},{"slug":"projects/pixel-canvas","title":"Pixel Canvas","date":"2026-05-27T04:00:00.000Z","type":"post","draft":false,"tags":["hardware","device","dataviz","quantified-self"],"toc":[{"text":"How it works","slug":"how-it-works","level":"h2","children":[]}],"metadata":{"title":"Pixel Canvas","date":"2026-05-27T04:00:00.000Z","category":"Hardware","featured":true,"draft":false,"tech":["ESP32-S3","Arduino","LovyanGFX","Bash","REST API"],"state":"doing","ai-involvement":"ai-assisted","tags":["hardware","device","dataviz","quantified-self"],"words":530,"images":13,"imageDetails":{"total":13,"cloudinary":13,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{"h2":1},"toc":[{"text":"How it works","slug":"how-it-works","level":"h2","children":[]}],"type":"post","slug":"projects/pixel-canvas"}},{"slug":"projects/vulpes-devices","title":"Vulpes Devices","date":"2026-03-15T04:00:00.000Z","type":"post","tags":["vulpes","flipper","hardware","device","design"],"toc":[],"metadata":{"title":"Vulpes Devices","date":"2026-03-15T04:00:00.000Z","category":"Hardware","featured":false,"tech":["Flipper Zero","OnionOS","Theming","JavaScript"],"state":"deployed","ai-involvement":"ai-assisted","tags":["vulpes","flipper","hardware","device","design"],"words":172,"images":2,"imageDetails":{"total":2,"cloudinary":2,"withDimensions":0},"links":4,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/vulpes-devices"}},{"slug":"projects/vulpes-system","title":"Vulpes","date":"2026-01-18T05:00:00.000Z","type":"post","tags":["vulpes","design","aesthetic","tools","hardware"],"toc":[{"text":"The editor","slug":"the-editor","level":"h2","children":[]},{"text":"The devices","slug":"the-devices","level":"h2","children":[]},{"text":"The screen when I walk away","slug":"the-screen-when-i-walk-away","level":"h2","children":[]},{"text":"The rest of the kit","slug":"the-rest-of-the-kit","level":"h2","children":[]}],"metadata":{"title":"Vulpes","date":"2026-01-18T05:00:00.000Z","category":"Art","featured":true,"url":"https://github.com/ejfox/vulpes.nvim","tech":["Lua","Swift","Metal","Rust","Zig","Tauri","Flipper Zero"],"state":"doing","ai-involvement":"ai-assisted","tags":["vulpes","design","aesthetic","tools","hardware"],"words":489,"images":7,"imageDetails":{"total":7,"cloudinary":7,"withDimensions":0},"links":5,"codeBlocks":0,"headers":{"h2":4},"toc":[{"text":"The editor","slug":"the-editor","level":"h2","children":[]},{"text":"The devices","slug":"the-devices","level":"h2","children":[]},{"text":"The screen when I walk away","slug":"the-screen-when-i-walk-away","level":"h2","children":[]},{"text":"The rest of the kit","slug":"the-rest-of-the-kit","level":"h2","children":[]}],"type":"post","slug":"projects/vulpes-system"}},{"slug":"projects/websdr-vcv","title":"WebSDR VCV","date":"2025-08-01T00:00:00.000Z","type":"post","tags":["audio","radio","hardware"],"toc":[],"metadata":{"title":"WebSDR VCV","date":"2025-08-01T00:00:00.000Z","category":"Hardware","featured":false,"url":"https://github.com/ejfox/websdr-vcv","tech":["C++","VCV Rack","Cardinal"],"state":"deployed","ai-involvement":"ai-assisted","tags":["audio","radio","hardware"],"words":118,"images":2,"imageDetails":{"total":2,"cloudinary":2,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/websdr-vcv"}}]},"_links":{"self":"https://ejfox.com/blog/tag/hardware.json","html":"https://ejfox.com/blog/tag/hardware","tag_page":"/tag/hardware.json"}}