{"$schema":"https://ejfox.com/schema/page-twin@1.json","kind":"tag","url":"https://ejfox.com/tag/hardware","json_url":"https://ejfox.com/tag/hardware.json","generator":"ejfox.com/json-twin@1","data":{"tag":"hardware","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":"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":1383,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{"h3":5},"toc":[{"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":186,"images":1,"imageDetails":{"total":1,"cloudinary":1,"withDimensions":0},"links":0,"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":342,"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":170,"images":2,"imageDetails":{"total":2,"cloudinary":2,"withDimensions":0},"links":2,"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"}}],"scraps":[{"title":"OpenDrone","url":"https://github.com/OpenDrone-hw","tags":["drones","hardware","opensource","electronics","github"],"hostname":"github.com","created_at":"2026-10-03T16:35:24+00:00"},{"title":"OSD Fonts · retro fonts for the Betaflight analog OSD","url":"https://over9kfpv.github.io/osd-fonts/","tags":["drones","typography","tool","hardware"],"hostname":"over9kfpv.github.io","created_at":"2026-09-28T19:52:59+00:00"},{"title":"Hypno 2 - Audio Visualizer, Video Synthesizer, Looper & Re-Sampler — Sleepy Circuits","url":"https://sleepycircuits.com/hypno-2","tags":["vj","visuals","video","hardware"],"hostname":"sleepycircuits.com","created_at":"2026-09-23T13:27:25+00:00"},{"title":"8h bus ride with no signal, turned my Flipper into a party game console for everyone's phones : r/flipperzero","url":"https://www.reddit.com/r/flipperzero/comments/1vayn8p/8h_bus_ride_with_no_signal_turned_my_flipper_into/","tags":["hardware","electronics","games","project"],"hostname":"reddit.com","created_at":"2026-07-30T18:29:18+00:00"},{"title":"PSYOP Equipment Systems","url":"https://www.psywarrior.com/PSYOPEquipment.html","tags":["military","tactics","reference","hardware"],"hostname":"psywarrior.com","created_at":"2026-07-13T14:15:02+00:00"},{"title":"juricabi/ELRS-Crossfire-WiFi-Joystick-Windows: Turn an ExpressLRS (ELRS) or TBS Crossfire/Tracer WiFi module into a vJoy virtual joystick on Windows for FPV simulators like VelociDrone and Liftoff. No cables, no MAVLink.","url":"https://github.com/juricabi/ELRS-Crossfire-WiFi-Joystick-Windows","tags":["drones","electronics","hardware","github","tool"],"hostname":"github.com","created_at":"2026-07-12T02:03:14+00:00"},{"title":"Eurorack & Live Coding Guest Tutorial with Sarah GHP! — VDMX - MAC VJ SOFTWARE","url":"https://vdmx.vidvox.net/tutorials/guest-tutorial-with-sarah-ghp","tags":["video","analog","hardware"],"hostname":"vdmx.vidvox.net","created_at":"2024-06-29T02:28:35+00:00"},{"title":"Social Media Posts (Twitter)","url":"https://mastodon.social/@ejfox/112536937354046736","tags":["arduino","crypto","hardware"],"hostname":"mastodon.social","created_at":"2024-05-31T17:43:08.825+00:00"}]},"_links":{"self":"https://ejfox.com/tag/hardware.json","html":"https://ejfox.com/tag/hardware","blog_tag":"/blog/tag/hardware.json"}}