56,966 blogs · [ { "id": "01a0d200-e2e8-736e-8d27-25a60340a64a", "title": "Reinforcement Learning Part 16: Generalized Advantage Estimation", "url": "https://shawnhymel.com/3748/reinforcement-learning-part-16-generalized-advantage-estimation/", "published_at": "2026-09-22T10:00:00+00:00" }, { "id": "01a087df-710d-7111-bb52-6770ec8a42ab", "title": "Reinforcement Learning Part 15: The Surrogate Objective Function", "url": "https://shawnhymel.com/3738/reinforcement-learning-part-15-the-surrogate-objective-function/", "published_at": "2026-08-27T06:00:00+00:00" }, { "id": "01a087df-710e-71a9-b176-7bf1ae69c322", "title": "Reinforcement Learning Part 14: Baselines, the Advantage Function, and Actor-Critic", "url": "https://shawnhymel.com/3705/reinforcement-learning-part-14-baselines-the-advantage-function-and-actor-critic/", "published_at": "2026-08-19T23:23:58+00:00" }, { "id": "01a087df-710e-71a9-b176-7bf1af4645c5", "title": "Reinforcement Learning Part 13: Policy Gradient Causality Trick and REINFORCE", "url": "https://shawnhymel.com/3648/reinforcement-learning-part-13-policy-gradient-causality-trick-and-reinforce/", "published_at": "2026-08-11T17:18:10+00:00" }, { "id": "01a087df-710e-71a9-b176-7bf1afe545b0", "title": "Reinforcement Learning Part 12: The Policy Gradient", "url": "https://shawnhymel.com/3632/reinforcement-learning-part-12-the-policy-gradient/", "published_at": "2026-07-24T10:00:00+00:00" }, { "id": "01a087df-710e-71a9-b176-7bf1b049b03c", "title": "Reinforcement Learning Part 11: Deep Q-Networks (DQN)", "url": "https://shawnhymel.com/3588/reinforcement-learning-part-11-deep-q-networks-dqn/", "published_at": "2026-07-14T10:00:00+00:00" }, { "id": "01a087df-710e-71a9-b176-7bf1b08f7ed9", "title": "Reinforcement Learning Part 10: Q-Learning", "url": "https://shawnhymel.com/3580/reinforcement-learning-part-10-q-learning/", "published_at": "2026-07-08T14:36:33+00:00" }, { "id": "01a087df-710e-71a9-b176-7bf1b229628e", "title": "Reinforcement Learning Part 9: TD(λ) and Eligibility Traces", "url": "https://shawnhymel.com/3513/reinforcement-learning-part-9-td%ce%bb-and-eligibility-traces/", "published_at": "2026-07-02T15:27:12+00:00" }, { "id": "01a087df-710e-71a9-b176-7bf1b1635ae3", "title": "Reinforcement Learning Part 8: Temporal-Difference (TD) Learning", "url": "https://shawnhymel.com/3481/reinforcement-learning-part-8-temporal-difference-td-learning/", "published_at": "2026-06-23T10:00:00+00:00" }, { "id": "01a0cce3-8b4e-73df-ab93-bd856cc8f347", "title": "Reinforcement Learning Part 7: Monte Carlo Methods", "url": "https://shawnhymel.com/3430/reinforcement-learning-part-7-monte-carlo-methods/", "published_at": "2026-06-16T15:26:15+00:00" }, { "id": "01a0cce3-8b4e-73df-ab93-bd856dadb24b", "title": "Reinforcement Learning Part 6: Dynamic Programming", "url": "https://shawnhymel.com/3394/reinforcement-learning-part-6-dynamic-programming/", "published_at": "2026-06-09T14:42:00+00:00" }, { "id": "01a0cce3-8b4e-73df-ab93-bd856bdd6481", "title": "Reinforcement Learning Part 5: The Bellman Optimality Equations", "url": "https://shawnhymel.com/3381/reinforcement-learning-part-5-the-bellman-optimality-equations/", "published_at": "2026-06-04T23:11:58+00:00" }, { "id": "01a0cce3-8b4e-73df-ab93-bd856bd0d66f", "title": "Reinforcement Learning Part 4: Expected Return, Value Functions, and Bellman Equations", "url": "https://shawnhymel.com/3350/reinforcement-learning-part-4-expected-return-value-functions-and-bellman-equations/", "published_at": "2026-05-26T22:40:05+00:00" }, { "id": "01a0cce3-8b4e-73df-ab93-bd856b3c1bf4", "title": "Reinforcement Learning Part 3: Policies, Markov Decision Processes (MDPs), and Trajectories", "url": "https://shawnhymel.com/3328/reinforcement-learning-part-3-policies-markov-decision-processes-mdps-and-trajectories/", "published_at": "2026-05-19T17:20:03+00:00" }, { "id": "01a087df-710e-71a9-b176-7bf1b31ac1d5", "title": "Reinforcement Learning Part 2: Rewards, Returns, and the Discount Factor", "url": "https://shawnhymel.com/3322/reinforcement-learning-part-2-rewards-returns-and-the-discount-factor/", "published_at": "2026-05-12T14:57:10+00:00" }, { "id": "01a087df-710e-71a9-b176-7bf1b23b2925", "title": "What is Reinforcement Learning?", "url": "https://shawnhymel.com/3316/what-is-reinforcement-learning/", "published_at": "2026-05-05T10:00:00+00:00" }, { "id": "01a0cce3-8b4e-73df-ab93-bd856e4dbc44", "title": "When to Use ROS 2 (and When to Skip It): A Guide for Makers and Engineers", "url": "https://shawnhymel.com/3302/when-to-use-ros-2-and-when-to-skip-it-a-guide-for-makers-and-engineers/", "published_at": "2026-04-28T10:00:00+00:00" }, { "id": "01a0cce3-8b4e-73df-ab93-bd856f038610", "title": "How to Get an Embedded Job When AI Is Taking Junior Programming Work", "url": "https://shawnhymel.com/3296/how-to-get-an-embedded-job-when-ai-is-taking-junior-programming-work/", "published_at": "2026-04-21T10:00:00+00:00" }, { "id": "01a0cce3-8b4e-73df-ab93-bd856f60ee79", "title": "What Alpha School Gets Right (and Wrong) About AI in Education", "url": "https://shawnhymel.com/3289/what-alpha-school-gets-right-and-wrong-about-ai-in-education/", "published_at": "2026-04-14T14:38:10+00:00" }, { "id": "01a0cce3-8b4e-73df-ab93-bd856ffdddfa", "title": "Tips for Using AI to Write Embedded Firmware", "url": "https://shawnhymel.com/3285/tips-for-using-ai-to-write-embedded-firmware/", "published_at": "2026-04-07T10:00:00+00:00" }, { "id": "01a0cce3-eabd-71b3-b3f9-2d1740d976e9", "title": "AI in Engineering Education: Lessons from ECEDHA 2026", "url": "https://shawnhymel.com/3246/ai-in-engineering-education-lessons-from-ecedha-2026/", "published_at": "2026-03-31T10:00:00+00:00" }, { "id": "01a0cce3-eabd-71b3-b3f9-2d1740e32960", "title": "AI in the Classroom (And What You Can Do About It)", "url": "https://shawnhymel.com/3224/ai-in-the-classroom-and-what-you-can-do-about-it/", "published_at": "2026-03-24T10:00:00+00:00" }, { "id": "01a0cce3-eabd-71b3-b3f9-2d1741838ac9", "title": "An Idea I’m Exploring: Reinforcement Learning for a Balance Robot", "url": "https://shawnhymel.com/3219/an-idea-im-exploring-reinforcement-learning-for-a-balance-robot/", "published_at": "2026-03-17T10:00:00+00:00" }, { "id": "01a0cce3-eabd-71b3-b3f9-2d174232da6d", "title": "What is Physical AI?", "url": "https://shawnhymel.com/3207/what-is-physical-ai/", "published_at": "2026-03-10T10:00:00+00:00" }, { "id": "01a0cce3-eabd-71b3-b3f9-2d1742ea0555", "title": "Before I Speak to ECE Department Heads About Edge AI, I Want Your Input", "url": "https://shawnhymel.com/3203/before-i-speak-to-ece-department-heads-about-edge-ai-i-want-your-input/", "published_at": "2026-03-03T17:06:44+00:00" }, { "id": "01a0cce3-eabd-71b3-b3f9-2d17437ffcd0", "title": "Is Embedded Rust Ready for Primetime?", "url": "https://shawnhymel.com/3197/is-embedded-rust-ready-for-primetime/", "published_at": "2026-02-24T10:00:00+00:00" }, { "id": "01a0cce3-eabd-71b3-b3f9-2d1743f7a79a", "title": "The Hidden Costs of Using Zephyr (and How to Mitigate Them)", "url": "https://shawnhymel.com/3193/the-hidden-costs-of-using-zephyr-and-how-to-mitigate-them/", "published_at": "2026-02-17T10:00:00+00:00" }, { "id": "01a0cce3-eabd-71b3-b3f9-2d174436648f", "title": "The Difference Between a Hobbyist and a Hirable Embedded Systems Engineer", "url": "https://shawnhymel.com/3186/the-difference-between-a-hobbyist-and-a-hirable-embedded-systems-engineer/", "published_at": "2026-02-10T10:00:00+00:00" }, { "id": "01a0cce3-eabd-71b3-b3f9-2d1744991bad", "title": "Inside Sh!tty Hacks: An Anti-Hackathon at CU Boulder", "url": "https://shawnhymel.com/3151/inside-shtty-hacks-an-anti-hackathon-at-cu-boulder/", "published_at": "2026-02-02T18:58:28+00:00" }, { "id": "01a0cce3-eabd-71b3-b3f9-2d1744efd722", "title": "How I’d Teach Embedded AI Without Overwhelming Students", "url": "https://shawnhymel.com/3147/how-id-teach-embedded-ai-without-overwhelming-students/", "published_at": "2026-01-27T10:00:00+00:00" }, { "id": "01a0cce4-355d-7033-a17f-ea66f25161d1", "title": "How Long It Actually Takes to Become Productive with a New Microcontroller", "url": "https://shawnhymel.com/3141/how-long-it-actually-takes-to-become-productive-with-a-new-microcontroller/", "published_at": "2026-01-20T10:00:00+00:00" }, { "id": "01a0cce4-355d-7033-a17f-ea66f2b3130a", "title": "Building in the Gaps: Lessons from an Apple Firmware Engineer", "url": "https://shawnhymel.com/3133/building-in-the-gaps-lessons-from-an-apple-firmware-engineer/", "published_at": "2026-01-13T10:00:00+00:00" }, { "id": "01a0cce4-355d-7033-a17f-ea66f3218cac", "title": "State of Edge AI on Microcontrollers in 2026", "url": "https://shawnhymel.com/3125/state-of-edge-ai-on-microcontrollers-in-2026/", "published_at": "2026-01-06T10:00:00+00:00" }, { "id": "01a0cce4-355d-7033-a17f-ea66f3ec1782", "title": "An Ode to FatFs", "url": "https://shawnhymel.com/3113/an-ode-to-fatfs/", "published_at": "2025-12-30T10:00:00+00:00" }, { "id": "01a0cce4-355d-7033-a17f-ea66f4ce79cf", "title": "Zephyr vs FreeRTOS: How to Choose the Right RTOS for Your Embedded Project", "url": "https://shawnhymel.com/3106/zephyr-vs-freertos-how-to-choose-the-right-rtos-for-your-embedded-project/", "published_at": "2025-12-23T10:00:00+00:00" }, { "id": "01a0cce4-355d-7033-a17f-ea66f5c165b9", "title": "10 Things I Wish I Knew Before Learning Embedded Systems", "url": "https://shawnhymel.com/3100/10-things-i-wish-i-knew-before-learning-embedded-systems/", "published_at": "2025-12-16T16:32:12+00:00" }, { "id": "01a0cce4-355d-7033-a17f-ea66f60bedae", "title": "How Interruptions Destroy Focus: What Neuroscience Says About Deep Work, Productivity, and Learning", "url": "https://shawnhymel.com/3095/how-interruptions-destroy-focus-what-neuroscience-says-about-deep-work-productivity-and-learning/", "published_at": "2025-12-09T10:00:00+00:00" }, { "id": "01a0cce4-355d-7033-a17f-ea66f6753a19", "title": "How to Use the Mosquitto MQTT Broker (With SSL/TLS)", "url": "https://shawnhymel.com/3085/how-to-use-the-mosquitto-mqtt-broker-with-ssl-tls/", "published_at": "2025-12-02T11:00:00+00:00" }, { "id": "01a0cce4-355d-7033-a17f-ea66f730a6ee", "title": "How to Use the Command Line (CLI) With the Arduino UNO Q", "url": "https://shawnhymel.com/3074/how-to-use-the-command-line-cli-with-the-arduino-uno-q/", "published_at": "2025-11-25T17:22:34+00:00" }, { "id": "01a0cce4-355d-7033-a17f-ea66f7890d30", "title": "What is MQTT? An Introduction to the Lightweight IoT Messaging Protocol", "url": "https://shawnhymel.com/3046/what-is-mqtt-an-introduction-to-the-lightweight-iot-messaging-protocol/", "published_at": "2025-11-18T10:00:00+00:00" }, { "id": "01a0cce4-75a9-7238-9563-b926643f862c", "title": "Embedded Rust Workshop: Reflections from Hackaday Supercon", "url": "https://shawnhymel.com/3042/embedded-rust-workshop-reflections-from-hackaday-supercon/", "published_at": "2025-11-11T23:17:55+00:00" }, { "id": "01a0cce4-75a9-7238-9563-b926650a69b6", "title": "What Is Transport Layer Security (TLS)?", "url": "https://shawnhymel.com/3000/what-is-transport-layer-security-tls/", "published_at": "2025-11-04T16:51:59+00:00" }, { "id": "01a0cce4-75a9-7238-9563-b92665bd41d8", "title": "Deep Learning on Microcontrollers: The State of Embedded ML in 2025", "url": "https://shawnhymel.com/2994/deep-learning-on-microcontrollers-the-state-of-embedded-ml-in-2025/", "published_at": "2025-10-28T14:58:45+00:00" }, { "id": "01a0cce4-75a9-7238-9563-b92665fca107", "title": "ESP32 – How to Perform an HTTP GET Request with ESP-IDF", "url": "https://shawnhymel.com/2983/esp32-how-to-perform-an-http-get-request-with-esp-idf/", "published_at": "2025-10-21T10:00:00+00:00" }, { "id": "01a0cce4-75a9-7238-9563-b92666da0a65", "title": "How to Get a Job in Edge AI: Essential Skills for 2025", "url": "https://shawnhymel.com/2976/how-to-get-a-job-in-edge-ai-essential-skills-for-2025/", "published_at": "2025-10-14T10:00:00+00:00" }, { "id": "01a0cce4-75a9-7238-9563-b92666f9a592", "title": "ESP32 – Creating a WiFi Driver with ESP-IDF", "url": "https://shawnhymel.com/2967/esp32-creating-a-wifi-driver-with-esp-idf/", "published_at": "2025-10-07T10:00:00+00:00" }, { "id": "01a0cce4-75a9-7238-9563-b926676f53ba", "title": "What is Meshtastic?", "url": "https://shawnhymel.com/2962/what-is-meshtastic/", "published_at": "2025-09-30T10:00:00+00:00" }, { "id": "01a0cce4-75a9-7238-9563-b926675a60e5", "title": "ESP32 – How to Use I2C with ESP-IDF", "url": "https://shawnhymel.com/2954/esp32-how-to-use-i2c-with-esp-idf/", "published_at": "2025-09-23T10:00:00+00:00" }, { "id": "01a0cce4-75a9-7238-9563-b92667bdd558", "title": "Why Use the Robot Operating System (ROS)?", "url": "https://shawnhymel.com/2942/why-use-the-robot-operating-system-ros/", "published_at": "2025-09-16T10:00:00+00:00" }, { "id": "01a0cce4-a3f6-738b-b020-ed7607f4a3df", "title": "ESP32 – How to Use Kconfig with ESP-IDF", "url": "https://shawnhymel.com/2935/esp32-how-to-use-kconfig-with-esp-idf/", "published_at": "2025-09-09T14:00:15+00:00" }, { "id": "01a0cce4-a3f7-71ca-ad65-df01d5f4b682", "title": "When to Use an RTOS: An Important Decision for Embedded Projects", "url": "https://shawnhymel.com/2928/when-to-use-an-rtos-an-important-decision-for-embedded-projects/", "published_at": "2025-09-02T10:00:00+00:00" }, { "id": "01a0cce4-75a9-7238-9563-b926688cbc2a", "title": "ESP32 – How to Use CMake with ESP-IDF", "url": "https://shawnhymel.com/2920/esp32-how-to-use-cmake-with-esp-idf/", "published_at": "2025-08-26T10:00:00+00:00" }, { "id": "01a0cce4-a3f7-71ca-ad65-df01d65d2052", "title": "Build Your IoT Portfolio in 90 Days: A Hands-On Plan for Students and Engineers", "url": "https://shawnhymel.com/2916/build-your-iot-portfolio-in-90-days-a-hands-on-plan-for-students-and-engineers/", "published_at": "2025-08-19T13:46:19+00:00" }, { "id": "01a0cce4-a3f7-71ca-ad65-df01d720dad5", "title": "ESP32 – Getting Started with ESP-IDF", "url": "https://shawnhymel.com/2872/esp32-getting-started-with-esp-idf/", "published_at": "2025-08-12T10:00:00+00:00" }, { "id": "01a0cce4-a3f7-71ca-ad65-df01d769c832", "title": "ByteGrader: An Open Source, Modular Autograder for Embedded Systems (and Beyond)", "url": "https://shawnhymel.com/2866/bytegrader-an-open-source-modular-autograder-for-embedded-systems-and-beyond/", "published_at": "2025-08-05T10:00:00+00:00" }, { "id": "01a0cce4-a3f7-71ca-ad65-df01d7b4ae4a", "title": "Highlights and Hot Takes from Open Sauce 2025", "url": "https://shawnhymel.com/2847/highlights-and-hot-takes-from-open-sauce-2025/", "published_at": "2025-07-22T10:00:00+00:00" }, { "id": "01a0cce4-a3f7-71ca-ad65-df01d8356a8f", "title": "Monitoring Stack and Heap Usage in Zephyr: How to Detect Memory Leaks", "url": "https://shawnhymel.com/2830/monitoring-stack-and-heap-usage-in-zephyr-how-to-detect-memory-leaks/", "published_at": "2025-07-15T10:00:00+00:00" }, { "id": "01a0cce4-a3f7-71ca-ad65-df01d8ee91df", "title": "Staying Current with Embedded Systems Tools, Languages, and Frameworks Without Getting Overwhelmed", "url": "https://shawnhymel.com/2823/staying-current-with-embedded-systems-tools-languages-and-frameworks-without-getting-overwhelmed/", "published_at": "2025-07-08T11:00:00+00:00" }, { "id": "01a0cce4-a3f7-71ca-ad65-df01d8ef71e9", "title": "How to Run an ESP32 Zephyr Application on Espressif’s QEMU", "url": "https://shawnhymel.com/2807/how-to-run-an-esp32-zephyr-application-on-espressifs-qemu/", "published_at": "2025-07-01T10:00:00+00:00" }, { "id": "01a0cce4-a3f7-71ca-ad65-df01d9a4c84f", "title": "How to Present Your Upskilling Journey to Land a Senior Embedded Role", "url": "https://shawnhymel.com/2802/how-to-present-your-upskilling-journey-to-land-a-senior-embedded-role/", "published_at": "2025-06-24T10:00:00+00:00" }, { "id": "01a0cce4-d255-7327-8de8-e19a72e3582b", "title": "A Brief History of Zephyr RTOS", "url": "https://shawnhymel.com/2791/a-brief-history-of-zephyr-rtos/", "published_at": "2025-06-17T10:00:00+00:00" }, { "id": "01a0cce4-d255-7327-8de8-e19a7344c4af", "title": "How to Learn Embedded Systems While Working Full-Time: Lessons from an Amazon Robotics Engineer", "url": "https://shawnhymel.com/2783/how-to-learn-embedded-systems-while-working-full-time-lessons-from-an-amazon-robotics-engineer/", "published_at": "2025-06-10T10:00:00+00:00" }, { "id": "01a0cce4-d255-7327-8de8-e19a73df6f88", "title": "The Wrong Way to Use AI (and How to Actually Write Better Code with LLMs)", "url": "https://shawnhymel.com/2759/the-wrong-way-to-use-ai-and-how-to-actually-write-better-code-with-llms/", "published_at": "2025-06-03T10:30:00+00:00" }, { "id": "01a0cce4-d255-7327-8de8-e19a7427bfb1", "title": "Why Use Zephyr? A Practical Guide for Embedded Engineers Choosing the Right RTOS", "url": "https://shawnhymel.com/2741/why-use-zephyr-a-practical-guide-for-embedded-engineers-choosing-the-right-rtos/", "published_at": "2025-05-27T13:00:00+00:00" }, { "id": "01a0cce4-d255-7327-8de8-e19a7483a6f4", "title": "How to Balance a Full-Time Tech Job and Learning Advanced IoT Skills", "url": "https://shawnhymel.com/2680/how-to-balance-a-full-time-tech-job-and-learning-advanced-iot-skills/", "published_at": "2025-05-20T13:00:00+00:00" }, { "id": "01a0cce4-d255-7327-8de8-e19a74faaeee", "title": "Getting Started with NVIDIA Jetson Orin Nano", "url": "https://shawnhymel.com/2255/getting-started-with-nvidia-jetson-orin-nano/", "published_at": "2024-06-04T00:58:13+00:00" }, { "id": "01a0cce4-d255-7327-8de8-e19a7612b547", "title": "How to Build OpenOCD and Picotool for the Raspberry Pi Pico on Windows", "url": "https://shawnhymel.com/2168/how-to-build-openocd-and-picotool-for-the-raspberry-pi-pico-on-windows/", "published_at": "2021-04-18T16:46:39+00:00" }, { "id": "01a0cce4-d255-7327-8de8-e19a7538abc5", "title": "How to Set Up Raspberry Pi Pico C/C++ Toolchain on Windows with VS Code", "url": "https://shawnhymel.com/2096/how-to-set-up-raspberry-pi-pico-c-c-toolchain-on-windows-with-vs-code/", "published_at": "2021-04-09T14:59:48+00:00" }, { "id": "01a0cce4-ef40-71ef-b77d-0a462f9a4a54", "title": "Custom Wake Word Part 1: Capturing Data", "url": "https://shawnhymel.com/2047/custom-wake-word-part-1-capturing-data/", "published_at": "2020-07-01T18:18:02+00:00" }, { "id": "01a0cce4-ef40-71ef-b77d-0a4630814a1f", "title": "How to Install TensorFlow on Windows", "url": "https://shawnhymel.com/2034/how-to-install-tensorflow-on-windows/", "published_at": "2020-06-17T16:03:33+00:00" }, { "id": "01a0cce4-d255-7327-8de8-e19a76c42c0e", "title": "How to Install TensorFlow with GPU Support on Windows", "url": "https://shawnhymel.com/1961/how-to-install-tensorflow-with-gpu-support-on-windows/", "published_at": "2020-06-17T01:50:50+00:00" }, { "id": "01a0cce4-ef40-71ef-b77d-0a4630b44c4b", "title": "How to Use C++ with STM32CubeIDE", "url": "https://shawnhymel.com/1941/how-to-use-c-with-stm32cubeide/", "published_at": "2020-06-07T23:16:44+00:00" }, { "id": "01a0cce4-ef40-71ef-b77d-0a4631839ada", "title": "How to Create a Web Server (with WebSockets) Using an ESP32 in Arduino", "url": "https://shawnhymel.com/1882/how-to-create-a-web-server-with-websockets-using-an-esp32-in-arduino/", "published_at": "2019-09-09T17:49:12+00:00" }, { "id": "01a0cce4-ef40-71ef-b77d-0a463202a301", "title": "How to Use printf on STM32", "url": "https://shawnhymel.com/1873/how-to-use-printf-on-stm32/", "published_at": "2019-08-15T00:12:48+00:00" }, { "id": "01a0cce4-d255-7327-8de8-e19a77460060", "title": "How to Use Semihosting with STM32", "url": "https://shawnhymel.com/1840/how-to-use-semihosting-with-stm32/", "published_at": "2019-06-30T20:24:52+00:00" }, { "id": "01a0cce4-ef40-71ef-b77d-0a46325288b7", "title": "Getting Started with STM32 Nucleo USB (Virtual Com Port)", "url": "https://shawnhymel.com/1795/getting-started-with-stm32-nucleo-usb-virtual-com-port/", "published_at": "2019-06-16T00:40:58+00:00" }, { "id": "01a0cce4-ef40-71ef-b77d-0a463326460d", "title": "KiCad Tutorial – Beginner Worksheet", "url": "https://shawnhymel.com/1773/kicad-tutorial-beginner-worksheet/", "published_at": "2019-05-01T16:23:06+00:00" }, { "id": "01a0cce4-ef40-71ef-b77d-0a46334d8f17", "title": "Worksheets for Your Maker Workshops (Arduino, Soldering, Raspberry Pi)", "url": "https://shawnhymel.com/1755/worksheets-for-your-maker-workshops-arduino-soldering-raspberry-pi/", "published_at": "2019-03-16T19:19:35+00:00" }, { "id": "01a0cce5-0bde-72f3-9798-472c4d98c63e", "title": "Arduino Zero (SAMD21) FDPLL with CMSIS", "url": "https://shawnhymel.com/1727/arduino-zero-samd21-fdpll-with-cmsis/", "published_at": "2018-12-27T17:47:15+00:00" }, { "id": "01a0cce4-ef40-71ef-b77d-0a46337ffb9e", "title": "Arduino Zero (SAMD21) Raw PWM Using CMSIS", "url": "https://shawnhymel.com/1710/arduino-zero-samd21-raw-pwm-using-cmsis/", "published_at": "2018-12-22T23:26:09+00:00" }, { "id": "01a0cce4-ef40-71ef-b77d-0a4631583e82", "title": "Arduino WebSocket Server Using an ESP32", "url": "https://shawnhymel.com/1675/arduino-websocket-server-using-an-esp32/", "published_at": "2018-11-01T16:26:04+00:00" }, { "id": "01a0cce5-0bde-72f3-9798-472c4e83df26", "title": "Getting Started with Phaser Part 3: Sprites and Movement", "url": "https://shawnhymel.com/1220/getting-started-with-phaser-part-3-sprites-and-movement/", "published_at": "2016-07-05T04:02:59+00:00" }, { "id": "01a0cce5-0bde-72f3-9798-472c4e3733dd", "title": "Getting Started with Phaser Part 2: Drawing Text", "url": "https://shawnhymel.com/1190/getting-started-with-phaser-part-2-drawing-text/", "published_at": "2016-06-26T17:48:43+00:00" }, { "id": "01a0cce5-0bde-72f3-9798-472c4f278962", "title": "Getting Started with Phaser Part 1: Web Server", "url": "https://shawnhymel.com/1148/getting-started-with-phaser-part-1-web-server/", "published_at": "2016-04-14T14:42:46+00:00" }, { "id": "01a0cce5-0bde-72f3-9798-472c50d0e339", "title": "Virtual Gamepad Plugin for Phaser", "url": "https://shawnhymel.com/1135/virtual-gamepad-plugin-for-phaser/", "published_at": "2016-04-05T19:25:35+00:00" }, { "id": "01a0cce5-4d78-71cd-aec5-35549a42337d", "title": "Getting Started with EasyEDA Part 3: PCB Layout", "url": "https://shawnhymel.com/911/getting-started-with-easyeda-part-3-pcb-layout/", "published_at": "2016-03-27T15:35:47+00:00" }, { "id": "01a0cce5-4d78-71cd-aec5-35549aa25d65", "title": "Getting Started with EasyEDA Part 2: Schematic Capture", "url": "https://shawnhymel.com/879/getting-started-with-easyeda-part-2-schematic-capture/", "published_at": "2016-03-26T14:46:42+00:00" }, { "id": "01a0cce5-4d78-71cd-aec5-35549b7aa356", "title": "Getting Started with EasyEDA Part 1: Part Creation", "url": "https://shawnhymel.com/817/getting-started-with-easyeda-part-1-part-creation/", "published_at": "2016-03-25T14:17:13+00:00" }, { "id": "01a0cce5-0bde-72f3-9798-472c4e2b0554", "title": "Cross Compiling on Linux for the Edison", "url": "https://shawnhymel.com/809/cross-compiling-on-linux-for-the-edison/", "published_at": "2016-02-11T17:28:11+00:00" }, { "id": "01a0cce5-4d78-71cd-aec5-355499930aff", "title": "Run a Script on Edison Boot", "url": "https://shawnhymel.com/792/run-a-script-on-edison-boot/", "published_at": "2016-02-10T18:40:47+00:00" }, { "id": "01a0cce5-3986-7222-8075-6bd2ca622e03", "title": "Writing Your Own UPM Module: Getting Started", "url": "https://shawnhymel.com/756/writing-your-own-upm-module-getting-started/", "published_at": "2015-12-31T23:03:44+00:00" }, { "id": "01a0cce5-0bde-72f3-9798-472c4ff3422f", "title": "Creating a Custom Linux Kernel for the Edison (release 2.1)", "url": "https://shawnhymel.com/724/creating-a-custom-linux-kernel-for-the-edison-yocto-2-1/", "published_at": "2015-12-20T19:39:47+00:00" }, { "id": "01a0cce5-3986-7222-8075-6bd2ca1b593d", "title": "Bluetooth Low Energy Peripherals with JavaScript", "url": "https://shawnhymel.com/703/bluetooth-low-energy-peripherals-with-javascript/", "published_at": "2015-11-22T18:40:22+00:00" }, { "id": "01a0cce5-3986-7222-8075-6bd2c9e75f61", "title": "Quick Tip: HTTP GET with the ESP8266 Thing", "url": "https://shawnhymel.com/695/quick-tip-http-get-with-the-esp8266-thing/", "published_at": "2015-09-16T20:13:52+00:00" }, { "id": "01a0cce5-3986-7222-8075-6bd2c95e238f", "title": "Learning the Teensy LC: Input Capture", "url": "https://shawnhymel.com/681/learning-the-teensy-lc-input-capture/", "published_at": "2015-05-22T04:40:23+00:00" }, { "id": "01a0cce5-3986-7222-8075-6bd2c90de053", "title": "Learning the Teensy LC: Interrupt Service Routines", "url": "https://shawnhymel.com/661/learning-the-teensy-lc-interrupt-service-routines/", "published_at": "2015-05-17T16:41:56+00:00" }, { "id": "01a0cce5-3986-7222-8075-6bd2c838c793", "title": "Using Python and BLE to Receive Data from the RFduino", "url": "https://shawnhymel.com/665/using-python-and-ble-to-receive-data-from-the-rfduino/", "published_at": "2015-05-15T01:13:03+00:00" }, { "id": "01a0cce5-3986-7222-8075-6bd2c7e8b832", "title": "Learning the Teensy LC: Manual PWM", "url": "https://shawnhymel.com/649/learning-the-teensy-lc-manual-pwm/", "published_at": "2015-05-07T22:24:48+00:00" }, { "id": "01a0cce5-3986-7222-8075-6bd2c77c79f5", "title": "10 Things Speech", "url": "https://shawnhymel.com/632/10-things-speech/", "published_at": "2015-02-26T15:11:32+00:00" }, { "id": "01a0cce5-3986-7222-8075-6bd2c6c4e699", "title": "Quick Tip: Reading Fuse Bits in an Arduino", "url": "https://shawnhymel.com/622/quick-tip-reading-fuse-bits-in-an-arduino/", "published_at": "2015-01-22T00:09:20+00:00" } ] posts Claim your blog
Back to shawnhymel.com
Blog · corpus.blog/blogs/shawnhymel.com/posts

shawnhymel.com

shawnhymel.com

2026

2025

2024

2021

2020

2019

2018

2016

2015