lupyuen.org/rss.xml

1744 lines
136 KiB
XML
Raw Permalink Normal View History

2022-09-15 17:46:16 +08:00
<rss version="2.0">
<channel>
<title>lupyuen</title>
<link>https://lupyuen.github.io</link>
<description>IoT Techie and Educator</description>
2025-01-12 05:58:39 +08:00
<item>
<title>Forgejo Git Forge for Apache NuttX RTOS (Experimental)</title>
<link>https://lupyuen.github.io/articles/forgejo</link>
<description><![CDATA[Life Without GitHub: What's it like? Today we talk about Forgejo Git Forge, and whether Apache NuttX RTOS could possibly switch from GitHub to our own Git Forge.]]></description>
<guid>https://lupyuen.github.io/articles/forgejo</guid>
<pubDate>Sun, 12 Jan 2025 00:00:00 +0000</pubDate>
</item>
2024-12-29 04:17:56 +08:00
<item>
2025-01-05 03:07:51 +08:00
<title>Git Bisecting a Bug (Apache NuttX RTOS)</title>
<link>https://lupyuen.github.io/articles/bisect</link>
<description><![CDATA[Suppose we hit a Runtime Bug in Apache NuttX RTOS. We think that the Breaking Commit (causing the bug) is somewhere inside these hundreds of NuttX Commits. But which one? In this article: We run Git Bisect to discover the Breaking Commit.]]></description>
<guid>https://lupyuen.github.io/articles/bisect</guid>
<pubDate>Sun, 05 Jan 2025 00:00:00 +0000</pubDate>
</item>
<item>
<title>Mastodon Server for Continuous Integration (Apache NuttX RTOS)</title>
2024-12-29 04:17:56 +08:00
<link>https://lupyuen.github.io/articles/mastodon</link>
<description><![CDATA[We're out for a 50 km overnight hike. Our Build Farm for Apache NuttX RTOS runs non-stop all day, all night. Continuously compiling over 1,000 NuttX Targets. Can we be 100% sure that NuttX is OK? Without getting spammed by alert emails all night? In this article: We talk about Mastodon as a fun new way to broadcast NuttX Alerts in real time.]]></description>
<guid>https://lupyuen.github.io/articles/mastodon</guid>
<pubDate>Sun, 29 Dec 2024 00:00:00 +0000</pubDate>
</item>
<item>
<title>Buy a Coffee for Lup Yuen Lee</title>
<link>https://lupyuen.github.io/articles/sponsor</link>
<description><![CDATA[Please sponsor my open-source writing and projects. Thank you so much!]]></description>
<guid>https://lupyuen.github.io/articles/sponsor</guid>
<pubDate>Sat, 28 Dec 2024 00:00:00 +0000</pubDate>
</item>
2024-12-22 06:13:22 +08:00
<item>
<title>Failing a Continuous Integration Test for Apache NuttX RTOS (QEMU RISC-V)</title>
<link>https://lupyuen.github.io/articles/ci7</link>
<description><![CDATA[Every Day: Apache NuttX RTOS on QEMU RISC-V Emulator fails our Continuous Integration Test. The Bug Stops Here! In this article, we study the internals of a NuttX CI Test (Continuous Integration) as we fix the bug.]]></description>
<guid>https://lupyuen.github.io/articles/ci7</guid>
<pubDate>Sun, 22 Dec 2024 00:00:00 +0000</pubDate>
</item>
2024-12-15 05:43:25 +08:00
<item>
<title>Rewinding a Build for Apache NuttX RTOS (Docker)</title>
<link>https://lupyuen.github.io/articles/ci6</link>
<description><![CDATA[When something breaks the Daily Build for Apache NuttX RTOS: Our NuttX Maintainers will scramble to identify the Breaking Commit. Not any more! Now we can go back in time and Rewind The Build.]]></description>
<guid>https://lupyuen.github.io/articles/ci6</guid>
<pubDate>Sun, 15 Dec 2024 00:00:00 +0000</pubDate>
</item>
2024-12-08 06:13:24 +08:00
<item>
<title>macOS Build Farm for Apache NuttX RTOS (Apple Silicon)</title>
<link>https://lupyuen.github.io/articles/ci5</link>
<description><![CDATA[Folks on macOS: Compiling Apache NuttX RTOS used to be so tiresome. Not any more! In this article, we explain how to build anything on macOS, by patching the NuttX CI Script. Which also becomes our macOS Build Farm.]]></description>
<guid>https://lupyuen.github.io/articles/ci5</guid>
<pubDate>Sun, 08 Dec 2024 00:00:00 +0000</pubDate>
</item>
2024-11-10 06:11:37 +08:00
<item>
2024-11-24 05:45:13 +08:00
<title>Continuous Integration Dashboard for Apache NuttX RTOS (Prometheus and Grafana)</title>
<link>https://lupyuen.github.io/articles/ci4</link>
<description><![CDATA[Last article we spoke about the (Twice) Daily Builds for Apache NuttX RTOS. Today we talk about Monitoring the Daily Builds (also the NuttX Build Farm) with our new NuttX Dashboard.]]></description>
<guid>https://lupyuen.github.io/articles/ci4</guid>
<pubDate>Sun, 24 Nov 2024 00:00:00 +0000</pubDate>
</item>
<item>
<title>Optimising the Continuous Integration for Apache NuttX RTOS (GitHub Actions)</title>
2024-11-10 06:11:37 +08:00
<link>https://lupyuen.github.io/articles/ci3</link>
<description><![CDATA[Within Two Weeks: We squashed our GitHub Actions spending from $4,900 (weekly) down to $890. Previously: Our developers waited 2.5 Hours for a Pull Request to be checked. Now we wait at most 1.5 Hours! This article explains everything we did in the (Semi-Chaotic) Two Weeks for Apache NuttX RTOS.]]></description>
<guid>https://lupyuen.github.io/articles/ci3</guid>
<pubDate>Sun, 10 Nov 2024 00:00:00 +0000</pubDate>
</item>
2024-10-27 06:03:17 +08:00
<item>
<title>Your very own Build Farm for Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/ci2</link>
<description><![CDATA[Refurbished Ubuntu PCs have become quite affordable. Let's turn them into a (Low-Cost) Build Farm for Apache NuttX RTOS, thanks to the Docker Image provided by NuttX.]]></description>
<guid>https://lupyuen.github.io/articles/ci2</guid>
<pubDate>Sun, 27 Oct 2024 00:00:00 +0000</pubDate>
</item>
2024-09-29 06:21:56 +08:00
<item>
<title>LLM Bot that reviews Pull Requests for Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/llm</link>
<description><![CDATA[Were experimenting with an LLM Bot (Large Language Model) that will review Pull Requests for Apache NuttX RTOS. This article explains how we created the Bot in One Week... By sheer accident!]]></description>
<guid>https://lupyuen.github.io/articles/llm</guid>
<pubDate>Sun, 29 Sep 2024 00:00:00 +0000</pubDate>
</item>
2024-09-10 22:00:44 +08:00
<item>
<title>Continuous Integration for Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/ci</link>
<description><![CDATA[This article explains how Apache NuttX RTOS is running Continuous Integration with GitHub Actions. Every NuttX Pull Request will trigger 1,594 NuttX Builds!]]></description>
<guid>https://lupyuen.github.io/articles/ci</guid>
<pubDate>Wed, 11 Sep 2024 00:00:00 +0000</pubDate>
</item>
2024-08-19 16:59:05 +08:00
<item>
<title>Early Days of Rust Apps on Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/rust6</link>
<description><![CDATA[My student Rushabh Gala has just completed his project for Google Summer of Code, on creating Safer Rust Apps for Apache NuttX RTOS. In this article we walk through Rushabhs contributions, and understand how were evolving Rust Apps for NuttX.]]></description>
<guid>https://lupyuen.github.io/articles/rust6</guid>
<pubDate>Mon, 19 Aug 2024 00:00:00 +0000</pubDate>
</item>
2024-07-07 06:11:58 +08:00
<item>
<title>RISC-V Emulator for Sophgo SG2000 SoC (Pine64 Oz64 / Milk-V Duo S)</title>
<link>https://lupyuen.github.io/articles/sg2000b</link>
<description><![CDATA[Earlier this year we made a RISC-V Emulator for Ox64 BL808 SBC, thanks to our customised TinyEMU RISC-V Emulator. (Not the small flightless bird) Now that NuttX supports Sophgo SG2000 SoC: Let's create a similar emulator for Pine64 Oz64 SBC and Milk-V Duo S!]]></description>
<guid>https://lupyuen.github.io/articles/sg2000b</guid>
<pubDate>Sun, 07 Jul 2024 00:00:00 +0000</pubDate>
</item>
2024-06-23 06:22:29 +08:00
<item>
<title>Daily Automated Testing for Milk-V Duo S RISC-V SBC (IKEA TRETAKT / Apache NuttX RTOS)</title>
<link>https://lupyuen.github.io/articles/sg2000a</link>
<description><![CDATA[Last week we upstreamed Milk-V Duo S SBC to Apache NuttX RTOS. (Based on Sophgo SG2000 RISC-V SoC) But NuttX Mainline changes every day. Will Milk-V Duo S suffer “Software Bit Rot”? And fail to boot NuttX someday? Lets do Daily Automated Testing for NuttX on a Milk-V Duo S SBC, controlled by an IKEA Smart Power Plug with Home Assistant API.]]></description>
<guid>https://lupyuen.github.io/articles/sg2000a</guid>
<pubDate>Sun, 23 Jun 2024 00:00:00 +0000</pubDate>
</item>
2024-06-26 15:01:37 +08:00
<item>
<title>(Slides) TinyEMU RISC-V Emulator for Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/nuttx#tinyemu-risc-v-emulator-for-apache-nuttx-rtos</link>
<description><![CDATA[What if we could boot and test Apache NuttX RTOS inside a Web Browser? This presentation explains how we created a NuttX Emulator in WebAssembly, based on TinyEMU RISC-V Emulator.]]></description>
<guid>https://lupyuen.github.io/nuttx#tinyemu-risc-v-emulator-for-apache-nuttx-rtos</guid>
<pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Video) TinyEMU RISC-V Emulator for Apache NuttX RTOS</title>
<link>https://youtu.be/JlEo3lfi0CU</link>
<description><![CDATA[What if we could boot and test Apache NuttX RTOS inside a Web Browser? This presentation explains how we created a NuttX Emulator in WebAssembly, based on TinyEMU RISC-V Emulator.]]></description>
<guid>https://youtu.be/JlEo3lfi0CU</guid>
<pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Slides) Adventures of Ox64 BL808 RISC-V SBC with Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/nuttx#adventures-of-ox64-bl808-risc-v-sbc-with-apache-nuttx-rtos</link>
<description><![CDATA[We ported Apache NuttX RTOS to PINE64s Ox64 BL808 64-bit Single-Board Computer. And we created an Emulator for Ox64 SBC that runs in the Web Browser, thanks to TinyEMU RISC-V Emulator. Today we run Daily Automated Testing of NuttX on the Ox64 Emulator. In this presentation we explain how we used the Ox64 Emulator in our experiments with WebAssembly and NuttX: (1) Testing the TCC RISC-V Compiler in WebAssembly (2) Porting the QuickJS JavaScript Engine to NuttX (3) Creating a Drag-n-Drop App Builder for NuttX]]></description>
<guid>https://lupyuen.github.io/nuttx#adventures-of-ox64-bl808-risc-v-sbc-with-apache-nuttx-rtos</guid>
<pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Video) Adventures of Ox64 BL808 RISC-V SBC with Apache NuttX RTOS</title>
<link>https://youtu.be/Eoy-X4ouuLI</link>
<description><![CDATA[We ported Apache NuttX RTOS to PINE64s Ox64 BL808 64-bit Single-Board Computer. And we created an Emulator for Ox64 SBC that runs in the Web Browser, thanks to TinyEMU RISC-V Emulator. Today we run Daily Automated Testing of NuttX on the Ox64 Emulator. In this presentation we explain how we used the Ox64 Emulator in our experiments with WebAssembly and NuttX: (1) Testing the TCC RISC-V Compiler in WebAssembly (2) Porting the QuickJS JavaScript Engine to NuttX (3) Creating a Drag-n-Drop App Builder for NuttX]]></description>
<guid>https://youtu.be/Eoy-X4ouuLI</guid>
<pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Slides) Analysis of Real-Time Logs for Apache NuttX RTOS with PureScript</title>
<link>https://lupyuen.github.io/nuttx#analysis-of-real-time-logs-for-apache-nuttx-rtos-with-purescript</link>
<description><![CDATA[Today we can get Real-Time NuttX Logs from our RISC-V Devices: Ox64 SBC (Web Serial API) and Ox64 Emulator (Term.js). What if we could analyse the RISC-V Logs in Real-Time? And show the results in the Web Browser? Lets do it with PureScript, the Functional Language that compiles to JavaScript. Well also support Online Scripting of PureScript for Log Parsing. Can we enhance the NuttX Developer Experience with Functional Programming Tools like PureScript? Or newer hardware like PINE64 Ox64 SBC and Sophgo SG2000 / Milk-V Duo S? Lets chat about this.]]></description>
<guid>https://lupyuen.github.io/nuttx#analysis-of-real-time-logs-for-apache-nuttx-rtos-with-purescript</guid>
<pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Video) Analysis of Real-Time Logs for Apache NuttX RTOS with PureScript</title>
<link>https://youtu.be/d09SNQye2tc</link>
<description><![CDATA[Today we can get Real-Time NuttX Logs from our RISC-V Devices: Ox64 SBC (Web Serial API) and Ox64 Emulator (Term.js). What if we could analyse the RISC-V Logs in Real-Time? And show the results in the Web Browser? Lets do it with PureScript, the Functional Language that compiles to JavaScript. Well also support Online Scripting of PureScript for Log Parsing. Can we enhance the NuttX Developer Experience with Functional Programming Tools like PureScript? Or newer hardware like PINE64 Ox64 SBC and Sophgo SG2000 / Milk-V Duo S? Lets chat about this.]]></description>
<guid>https://youtu.be/d09SNQye2tc</guid>
<pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate>
</item>
2024-05-19 06:46:52 +08:00
<item>
2025-01-05 03:07:51 +08:00
<title>Apache NuttX RTOS on Sophgo SG2000 RISC-V SoC (Milk-V Duo S / Oz64 SBC)</title>
2024-05-19 06:46:52 +08:00
<link>https://lupyuen.github.io/articles/sg2000</link>
<description><![CDATA[Soon we'll see many new 64-bit RISC-V SBCs based on the Sophgo SG2000 RISC-V SoC. Will they work with Apache NuttX RTOS? Let's find out!]]></description>
<guid>https://lupyuen.github.io/articles/sg2000</guid>
<pubDate>Sun, 19 May 2024 00:00:00 +0000</pubDate>
</item>
2024-05-05 06:58:22 +08:00
<item>
<title>Rust Apps on Ox64 BL808 RISC-V SBC and Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/rust5</link>
<description><![CDATA[Will Rust Apps run on a 64-bit RISC-V SBC? Like Ox64 BL808 SBC? Let's find out with Apache NuttX RTOS!]]></description>
<guid>https://lupyuen.github.io/articles/rust5</guid>
<pubDate>Sun, 05 May 2024 00:00:00 +0000</pubDate>
</item>
2024-04-21 06:35:59 +08:00
<item>
<title>Rust Custom Target for QEMU RISC-V on Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/rust4</link>
<description><![CDATA[Our Rust App compiles for Software Floating-Point, but Apache NuttX RTOS expects Hardware Floating-Point... Let's fix this with a Rust Custom Target for QEMU RISC-V]]></description>
<guid>https://lupyuen.github.io/articles/rust4</guid>
<pubDate>Sun, 21 Apr 2024 00:00:00 +0000</pubDate>
</item>
2024-04-07 06:52:54 +08:00
<item>
<title>Rust Apps on Apache NuttX RTOS and QEMU RISC-V</title>
<link>https://lupyuen.github.io/articles/rust3</link>
<description><![CDATA[Here's how we run Rust Apps on Apache NuttX RTOS and QEMU RISC-V Emulator.]]></description>
<guid>https://lupyuen.github.io/articles/rust3</guid>
<pubDate>Sun, 07 Apr 2024 00:00:00 +0000</pubDate>
</item>
2024-03-03 06:56:39 +08:00
<item>
<title>Too many Embedded Logs? PureScript might help (Ox64 BL808 SBC / Apache NuttX RTOS)</title>
<link>https://lupyuen.github.io/articles/purescript</link>
<description><![CDATA[Troubleshooting Crash Dumps for Apache NuttX RTOS will become a little less painful... Thanks to our new NuttX Log Parser! This is how we created with PureScript, a Real-Time Parser and Explainer for RISC-V Exceptions and Stack Dumps.]]></description>
<guid>https://lupyuen.github.io/articles/purescript</guid>
<pubDate>Sun, 03 Mar 2024 00:00:00 +0000</pubDate>
</item>
2024-02-25 05:58:04 +08:00
<item>
<title>(Homage to MakeCode) Coding Ox64 BL808 SBC the Drag-n-Drop Way</title>
<link>https://lupyuen.github.io/articles/quickjs2</link>
<description><![CDATA[Remember Makecode? BBC micro:bit and its Drag-n-Drop App Builder? Let's give MakeCode a wholesome wholesale makeover... With Blockly, QuickJS JavaScript Engine, Apache NuttX RTOS and Ox64 BL808 64-bit RISC-V SBC]]></description>
<guid>https://lupyuen.github.io/articles/quickjs2</guid>
<pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate>
</item>
2024-02-18 07:03:26 +08:00
<item>
<title>QuickJS JavaScript Engine on a Real-Time Operating System (Apache NuttX RTOS)</title>
<link>https://lupyuen.github.io/articles/quickjs</link>
<description><![CDATA[Can we run QuickJS JavaScript Engine on Apache NuttX RTOS? And Blink the LED on Ox64 BL808 RISC-V SBC... In 4 lines of JavaScript? Lets do it!]]></description>
<guid>https://lupyuen.github.io/articles/quickjs</guid>
<pubDate>Sun, 18 Feb 2024 00:00:00 +0000</pubDate>
</item>
2024-02-11 07:10:24 +08:00
<item>
<title>Zig runs ROM FS Filesystem in the Web Browser (thanks to Apache NuttX RTOS)</title>
<link>https://lupyuen.github.io/articles/romfs</link>
<description><![CDATA[We solve a hefty headache in our port of TCC Compiler to WebAssembly: Missing C Header Files... Thanks to the ROM FS Filesystem and the ROM FS Driver from Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/romfs</guid>
<pubDate>Sun, 11 Feb 2024 00:00:00 +0000</pubDate>
</item>
2024-02-04 07:03:40 +08:00
<item>
<title>TCC RISC-V Compiler runs in the Web Browser (thanks to Zig Compiler)</title>
<link>https://lupyuen.github.io/articles/tcc</link>
<description><![CDATA[Today we're running Apache NuttX RTOS inside a Web Browser. What if we could compile and test NuttX Apps in the Web Browser? Let's explore with TCC 64-bit RISC-V Compiler, compiled to WebAssembly with Zig Compiler.]]></description>
<guid>https://lupyuen.github.io/articles/tcc</guid>
<pubDate>Sun, 04 Feb 2024 00:00:00 +0000</pubDate>
</item>
2024-01-28 07:01:43 +08:00
<item>
<title>Automated Testing with Ox64 BL808 Emulator (Apache NuttX RTOS)</title>
<link>https://lupyuen.github.io/articles/tinyemu3</link>
2024-04-01 11:03:41 +08:00
<description><![CDATA[Every day we're auto-building Apache NuttX RTOS for Ox64 BL808 SBC... Can we test NuttX on Ox64 Emulator automatically after building? Let's find out!]]></description>
2024-01-28 07:01:43 +08:00
<guid>https://lupyuen.github.io/articles/tinyemu3</guid>
<pubDate>Sun, 28 Jan 2024 00:00:00 +0000</pubDate>
</item>
2024-01-21 07:36:55 +08:00
<item>
<title>Emulate Ox64 BL808 in the Web Browser: Experiments with TinyEMU RISC-V Emulator and Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/tinyemu2</link>
<description><![CDATA[Let's create a barebones Ox64 BL808 Emulator that runs in the Web Browser... By tweaking TinyEMU RISC-V Emulator and booting Apache NuttX RTOS without any modification]]></description>
<guid>https://lupyuen.github.io/articles/tinyemu2</guid>
<pubDate>Sun, 21 Jan 2024 00:00:00 +0000</pubDate>
</item>
2024-01-14 07:26:03 +08:00
<item>
<title>Apache NuttX RTOS in a Web Browser? Adventures with TinyEMU and VirtIO</title>
<link>https://lupyuen.github.io/articles/tinyemu</link>
<description><![CDATA[Here's how we boot and run Apache NuttX RTOS in the Web Browser... Thanks to TinyEMU RISC-V Emulator, VirtIO Virtual Devices and OpenAMP Library]]></description>
<guid>https://lupyuen.github.io/articles/tinyemu</guid>
<pubDate>Sun, 14 Jan 2024 00:00:00 +0000</pubDate>
</item>
2024-01-01 08:17:29 +08:00
<item>
<title>Nim on a Real-Time Operating System: Apache NuttX RTOS + Ox64 BL808 SBC</title>
<link>https://lupyuen.github.io/articles/nim</link>
<description><![CDATA[Let's blink an LED on Pine64 Ox64 BL808 64-bit RISC-V Single-Board Computer... With Nim Programming Language and Apache NuttX Real-Time Operating System]]></description>
<guid>https://lupyuen.github.io/articles/nim</guid>
<pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate>
</item>
2023-12-17 16:43:17 +08:00
<item>
<title>$8 RISC-V SBC on a Real-Time Operating System: Ox64 + NuttX</title>
<link>https://www.hackster.io/lupyuen/8-risc-v-sbc-on-a-real-time-operating-system-ox64-nuttx-474358</link>
<description><![CDATA[Bare Metal Experiments with Apache NuttX RTOS (Real-Time Operating System) on the affordable Pine64 Ox64 BL808 64-bit RISC-V SBC]]></description>
<guid>https://www.hackster.io/lupyuen/8-risc-v-sbc-on-a-real-time-operating-system-ox64-nuttx-474358</guid>
<pubDate>Sun, 17 Dec 2023 00:00:00 +0000</pubDate>
</item>
2023-12-10 07:08:02 +08:00
<item>
<title>Fixed the UART Interrupt and Platform-Level Interrupt Controller (Ox64 BL808)</title>
<link>https://lupyuen.github.io/articles/plic3</link>
<description><![CDATA[Weak Ordering in the Ox64 BL808 Memory Management Unit (T-Head C906)... Causes problems with UART Interrupts and the Platform-Level Interrupt Controller]]></description>
<guid>https://lupyuen.github.io/articles/plic3</guid>
<pubDate>Sun, 10 Dec 2023 00:00:00 +0000</pubDate>
</item>
2023-12-03 06:51:05 +08:00
<item>
<title>RISC-V Ox64 BL808 SBC: UART Interrupt and Platform-Level Interrupt Controller (PLIC)</title>
<link>https://lupyuen.github.io/articles/plic2</link>
<description><![CDATA[We dive into the Platform-Level Interrupt Controller (PLIC) for the tiny adorable Pine64 Ox64 BL808 64-bit Single-Board Computer... Using Apache NuttX Real-Time Operating System to explain the inner workings of PLIC]]></description>
<guid>https://lupyuen.github.io/articles/plic2</guid>
<pubDate>Sun, 03 Dec 2023 00:00:00 +0000</pubDate>
</item>
2023-11-26 07:33:52 +08:00
<item>
<title>RISC-V Ox64 BL808 SBC: NuttX Apps and Initial RAM Disk</title>
<link>https://lupyuen.github.io/articles/app</link>
<description><![CDATA[(1) What's inside an Application for Apache NuttX RTOS (2) How it calls the NuttX Kernel (3) How NuttX Apps are bundled into the Initial RAM Disk for Pine64 Ox64 BL808 RISC-V SBC]]></description>
<guid>https://lupyuen.github.io/articles/app</guid>
<pubDate>Sun, 26 Nov 2023 00:00:00 +0000</pubDate>
</item>
2023-11-19 07:29:44 +08:00
<item>
<title>RISC-V Ox64 BL808 SBC: Sv39 Memory Management Unit</title>
<link>https://lupyuen.github.io/articles/mmu</link>
<description><![CDATA[Let's boot Apache NuttX RTOS on Pine64 Ox64 64-bit RISC-V SBC... And figure out how the Sv39 Memory Management Unit works]]></description>
<guid>https://lupyuen.github.io/articles/mmu</guid>
<pubDate>Sun, 19 Nov 2023 00:00:00 +0000</pubDate>
</item>
2023-11-12 07:35:23 +08:00
<item>
<title>RISC-V Ox64 BL808 SBC: Starting Apache NuttX Real-Time Operating System</title>
<link>https://lupyuen.github.io/articles/ox2</link>
<description><![CDATA[Let's boot a tiny bit of Apache NuttX Real-Time Operating System... On Pine64 Ox64 BL808 RISC-V SBC]]></description>
<guid>https://lupyuen.github.io/articles/ox2</guid>
<pubDate>Sun, 12 Nov 2023 00:00:00 +0000</pubDate>
</item>
2023-11-04 11:37:15 +08:00
<item>
<title>Ox64 BL808 RISC-V SBC: Booting Linux and (maybe) Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/ox64</link>
<description><![CDATA[Let's boot Linux on Pine64 Ox64 BL808 RISC-V SBC... As we figure out how Apache NuttX RTOS might run on Ox64]]></description>
<guid>https://lupyuen.github.io/articles/ox64</guid>
<pubDate>Sun, 05 Nov 2023 00:00:00 +0000</pubDate>
</item>
2023-10-28 16:21:19 +08:00
<item>
<title>Star64 JH7110 RISC-V SBC: Experiments with OpenSBI (Supervisor Binary Interface)</title>
<link>https://lupyuen.github.io/articles/sbi</link>
<description><![CDATA[Let's boot Apache NuttX RTOS on the Star64 JH7110 RISC-V SBC (VisionFive5 too)... And experiment with the OpenSBI Supervisor Binary Interface]]></description>
<guid>https://lupyuen.github.io/articles/sbi</guid>
<pubDate>Sun, 29 Oct 2023 00:00:00 +0000</pubDate>
</item>
2023-10-05 18:38:29 +08:00
<item>
<title>Strange Workaround for TFTP Timeout in U-Boot Bootloader (Star64 JH7110 RISC-V SBC)</title>
<link>https://lupyuen.github.io/articles/tftp2</link>
<description><![CDATA[Here's how we fixed TFTP Timeouts in the Star64 JH7110 U-Boot Bootloader... By sending every TFTP Data Packet twice]]></description>
<guid>https://lupyuen.github.io/articles/tftp2</guid>
<pubDate>Fri, 06 Oct 2023 00:00:00 +0000</pubDate>
</item>
2023-09-28 11:44:48 +08:00
<item>
<title>(Slides) Apache NuttX RTOS for PINE64 PinePhone</title>
<link>https://docs.google.com/presentation/d/15qIBW4hoCwGCX5KGwjjV2Zo_G1M4At64UqztYBf8j08/edit?usp=sharing</link>
<description><![CDATA[Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS on our phone? Over the past year, we have ported NuttX to PINE64 PinePhone as an Educational Experiment. Today we can run NuttX Touchscreen Apps on PinePhone, based on Allwinner A64 SoC with Arm64 CPUs. NuttX on PinePhone will soon support Phone Calls and Text Messages on the 4G LTE Network. We hope NuttX will become a valuable tool for teaching the inner workings of modern smartphones.]]></description>
<guid>https://docs.google.com/presentation/d/15qIBW4hoCwGCX5KGwjjV2Zo_G1M4At64UqztYBf8j08/edit?usp=sharing</guid>
<pubDate>Fri, 29 Sep 2023 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Video) Apache NuttX RTOS for PINE64 PinePhone</title>
<link>https://youtu.be/Eiact17m_g8?si=RuBjdPGJdfZ4tGie</link>
<description><![CDATA[Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS on our phone? Over the past year, we have ported NuttX to PINE64 PinePhone as an Educational Experiment. Today we can run NuttX Touchscreen Apps on PinePhone, based on Allwinner A64 SoC with Arm64 CPUs. NuttX on PinePhone will soon support Phone Calls and Text Messages on the 4G LTE Network. We hope NuttX will become a valuable tool for teaching the inner workings of modern smartphones.]]></description>
<guid>https://youtu.be/Eiact17m_g8?si=RuBjdPGJdfZ4tGie</guid>
<pubDate>Fri, 29 Sep 2023 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Slides) PinePhone Touchscreen on NuttX: Handling MIPI DSI, Display Engine and I2C Touch Input</title>
<link>https://docs.google.com/presentation/d/1FXHqfzEKwaI9ufcZ8x8rJwCfso2N9XoZeDtERRhqeNs/edit?usp=sharing</link>
<description><![CDATA[This presentation explains how we built the NuttX Drivers to support Touchscreen Apps on PINE64 PinePhone: (1) MIPI DSI on Allwinner A64 SoC (2) Allwinner Display Engine (3) Goodix I2C Touch Panel (4) Integration with LVGL Graphics Library. To derisk the development, we prototyped the NuttX Drivers in the Zig Programming Language, before rewriting to C.]]></description>
<guid>https://docs.google.com/presentation/d/1FXHqfzEKwaI9ufcZ8x8rJwCfso2N9XoZeDtERRhqeNs/edit?usp=sharing</guid>
<pubDate>Fri, 29 Sep 2023 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Video) PinePhone Touchscreen on NuttX: Handling MIPI DSI, Display Engine and I2C Touch Input</title>
<link>https://youtu.be/xpBzokOyvM0?si=MxnxyZK2t7vcLP3V</link>
<description><![CDATA[This presentation explains how we built the NuttX Drivers to support Touchscreen Apps on PINE64 PinePhone: (1) MIPI DSI on Allwinner A64 SoC (2) Allwinner Display Engine (3) Goodix I2C Touch Panel (4) Integration with LVGL Graphics Library. To derisk the development, we prototyped the NuttX Drivers in the Zig Programming Language, before rewriting to C.]]></description>
<guid>https://youtu.be/xpBzokOyvM0?si=MxnxyZK2t7vcLP3V</guid>
<pubDate>Fri, 29 Sep 2023 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Slides) LVGL in WebAssembly: Building NuttX Touchscreen Apps with Zig and testing them in the Web Browser</title>
<link>https://docs.google.com/presentation/d/1aXM5JeuoXdGCkumZQL0Oe7ROBkVTgXhGZD7JfIzQGUI/edit?usp=sharing</link>
<description><![CDATA[What if we could prototype and test Touchscreen Apps in the Web Browser, before running on a real device? In this presentation we explain how we compiled the LVGL Graphics Library to WebAssembly with Zig Compiler. We created a NuttX App in the Zig Programming Language that runs in the Web Browser, calling the LVGL Library in WebAssembly. We hope that this will someday enable NuttX Apps to be created and tested easily in the Web Browser.]]></description>
<guid>https://docs.google.com/presentation/d/1aXM5JeuoXdGCkumZQL0Oe7ROBkVTgXhGZD7JfIzQGUI/edit?usp=sharing</guid>
<pubDate>Fri, 29 Sep 2023 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Video) LVGL in WebAssembly: Building NuttX Touchscreen Apps with Zig and testing them in the Web Browser</title>
<link>https://youtu.be/8gnD8pW7Bw8?si=cYf_7MYykx8AUTlf</link>
<description><![CDATA[What if we could prototype and test Touchscreen Apps in the Web Browser, before running on a real device? In this presentation we explain how we compiled the LVGL Graphics Library to WebAssembly with Zig Compiler. We created a NuttX App in the Zig Programming Language that runs in the Web Browser, calling the LVGL Library in WebAssembly. We hope that this will someday enable NuttX Apps to be created and tested easily in the Web Browser.]]></description>
<guid>https://youtu.be/8gnD8pW7Bw8?si=cYf_7MYykx8AUTlf</guid>
<pubDate>Fri, 29 Sep 2023 00:00:00 +0000</pubDate>
</item>
2023-09-02 23:58:34 +08:00
<item>
<title>RISC-V Star64 JH7110: Power Up the Display Controller with U-Boot Bootloader</title>
<link>https://lupyuen.github.io/articles/display3</link>
<description><![CDATA[Let's power up the DC8200 Display Controller inside Star64 JH7110 RISC-V Single-Board Computer... By running simple commands in the U-Boot Bootloader]]></description>
<guid>https://lupyuen.github.io/articles/display3</guid>
<pubDate>Sat, 02 Sep 2023 00:00:00 +0000</pubDate>
</item>
2023-08-23 07:32:26 +08:00
<item>
<title>RISC-V Star64 JH7110: Inside the Display Controller</title>
<link>https://lupyuen.github.io/articles/display2</link>
<description><![CDATA[Let's take a walk inside the Display Controller for Pine64's Star64 JH7110 RISC-V SBC... And find out how we'll create the Display Driver for Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/display2</guid>
<pubDate>Wed, 23 Aug 2023 00:00:00 +0000</pubDate>
</item>
2023-09-28 11:44:48 +08:00
<item>
2023-09-28 12:08:21 +08:00
<title>(Slides) What&apos;s inside a Smartphone? Exploring the internals with Apache NuttX Real-Time Operating System</title>
2023-09-28 11:44:48 +08:00
<link>https://docs.google.com/presentation/d/1xB0uzIUlzbd5-Lkh9QGaJe5ZPlbgXTTDvDV5EWn3G0E/edit?usp=sharing</link>
<description><![CDATA[Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS (Real-Time Operating System) on our phone? Over the past year, we have written a series of 24 articles explaining the inner workings of PINE64 PinePhone, and how we implemented the smartphone features with Apache NuttX RTOS. The articles cover the essential (and esoteric) topics on smartphone technology: MIPI DSI LCD Display, I2C Touch Panel, USB Controller, LTE Modem, Accelerometer / Gyroscope, Arm64 Interrupts and many more. We are also experimenting with newer, easier ways to create Smartphone Apps, with LVGL Graphics Library, Zig Programming Language, WebAssembly Simulation and Arm64 Emulation.]]></description>
<guid>https://docs.google.com/presentation/d/1xB0uzIUlzbd5-Lkh9QGaJe5ZPlbgXTTDvDV5EWn3G0E/edit?usp=sharing</guid>
<pubDate>Sat, 19 Aug 2023 00:00:00 +0000</pubDate>
</item>
<item>
2023-09-28 12:08:21 +08:00
<title>(Video) What&apos;s inside a Smartphone? Exploring the internals with Apache NuttX Real-Time Operating System</title>
2023-09-28 11:44:48 +08:00
<link>https://youtu.be/Wnrq9BlNP9o</link>
<description><![CDATA[Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS (Real-Time Operating System) on our phone? Over the past year, we have written a series of 24 articles explaining the inner workings of PINE64 PinePhone, and how we implemented the smartphone features with Apache NuttX RTOS. The articles cover the essential (and esoteric) topics on smartphone technology: MIPI DSI LCD Display, I2C Touch Panel, USB Controller, LTE Modem, Accelerometer / Gyroscope, Arm64 Interrupts and many more. We are also experimenting with newer, easier ways to create Smartphone Apps, with LVGL Graphics Library, Zig Programming Language, WebAssembly Simulation and Arm64 Emulation.]]></description>
<guid>https://youtu.be/Wnrq9BlNP9o</guid>
<pubDate>Sat, 19 Aug 2023 00:00:00 +0000</pubDate>
</item>
2023-08-08 12:32:48 +08:00
<item>
<title>RTOS on a RISC-V SBC: Star64 JH7110 + Apache NuttX</title>
<link>https://www.hackster.io/lupyuen/rtos-on-a-risc-v-sbc-star64-jh7110-apache-nuttx-2a7429</link>
<description><![CDATA[Here's how we boot a Real-Time Operating System (Apache NuttX) on the Star64 JH7110 64-bit RISC-V Single-Board Computer]]></description>
<guid>https://www.hackster.io/lupyuen/rtos-on-a-risc-v-sbc-star64-jh7110-apache-nuttx-2a7429</guid>
<pubDate>Tue, 08 Aug 2023 00:00:00 +0000</pubDate>
</item>
2023-08-07 17:12:10 +08:00
<item>
<title>Star64 JH7110 + NuttX RTOS: Creating the First Release for the RISC-V SBC</title>
<link>https://lupyuen.github.io/articles/release</link>
<description><![CDATA[Pine64's Star64 JH7110 RISC-V SBC is now supported in Apache NuttX RTOS Mainline! Let's review how we created the first release of NuttX for Star64]]></description>
<guid>https://lupyuen.github.io/articles/release</guid>
<pubDate>Mon, 07 Aug 2023 00:00:00 +0000</pubDate>
</item>
2023-08-02 07:03:14 +08:00
<item>
<title>Star64 JH7110 + NuttX RTOS: RISC-V PLIC Interrupts and Serial I/O</title>
<link>https://lupyuen.github.io/articles/plic</link>
<description><![CDATA[Apache NuttX RTOS on Pine64's Star64 JH7110 RISC-V SBC has a problem with Serial I/O Interrupts and the RISC-V Platform-Level Interrupt Controller (PLIC)... Let's fix this!]]></description>
<guid>https://lupyuen.github.io/articles/plic</guid>
<pubDate>Wed, 02 Aug 2023 00:00:00 +0000</pubDate>
</item>
2023-07-19 07:26:21 +08:00
<item>
2023-07-28 07:03:33 +08:00
<title>Star64 JH7110 + NuttX RTOS: RISC-V Semihosting and Initial RAM Disk</title>
<link>https://lupyuen.github.io/articles/semihost</link>
<description><![CDATA[Apache NuttX RTOS crashes on Pine64's Star64 JH7110 RISC-V SBC because there's no Semihosting. But no worries! We modified NuttX to boot with an Initial RAM Disk instead (initrd).]]></description>
<guid>https://lupyuen.github.io/articles/semihost</guid>
<pubDate>Fri, 28 Jul 2023 00:00:00 +0000</pubDate>
</item>
<item>
2023-07-19 07:26:21 +08:00
<title>Star64 JH7110 + NuttX RTOS: RISC-V Privilege Levels and UART Registers</title>
<link>https://lupyuen.github.io/articles/privilege</link>
<description><![CDATA[We're porting Apache NuttX RTOS to Pine64's Star64 JH7110 RISC-V SBC... And we see interesting issues with RISC-V Privilege Levels and 16550 UART Registers]]></description>
<guid>https://lupyuen.github.io/articles/privilege</guid>
<pubDate>Wed, 19 Jul 2023 00:00:00 +0000</pubDate>
</item>
2023-07-13 11:12:03 +08:00
<item>
<title>Star64 JH7110 RISC-V SBC: Boot from Network with U-Boot and TFTP</title>
<link>https://lupyuen.github.io/articles/tftp</link>
<description><![CDATA[Let's boot Apache NuttX RTOS (or Linux) over the Network with U-Boot Bootloader and TFTP... On Pine64's Star64 JH7110 RISC-V Single-Board Computer]]></description>
<guid>https://lupyuen.github.io/articles/tftp</guid>
<pubDate>Thu, 13 Jul 2023 00:00:00 +0000</pubDate>
</item>
2023-07-09 07:12:27 +08:00
<item>
<title>Apache NuttX RTOS on RISC-V: Star64 JH7110 SBC</title>
<link>https://lupyuen.github.io/articles/nuttx2</link>
<description><![CDATA[(Partially) Booting Apache NuttX Real-Time Operating System on Pine64's Star64 64-bit RISC-V Single-Board Computer, based on StarFive JH7110 SoC]]></description>
<guid>https://lupyuen.github.io/articles/nuttx2</guid>
<pubDate>Sun, 09 Jul 2023 00:00:00 +0000</pubDate>
</item>
2023-06-29 09:26:49 +08:00
<item>
2023-07-04 07:02:55 +08:00
<title>Booting RISC-V Linux on Star64 JH7110 SBC</title>
<link>https://lupyuen.github.io/articles/linux</link>
<description><![CDATA[Watch what happens when we boot Yocto and Armbian Linux on Pine64's Star64 64-bit RISC-V Single-Board Computer, based on StarFive JH7110 SoC]]></description>
<guid>https://lupyuen.github.io/articles/linux</guid>
<pubDate>Tue, 04 Jul 2023 00:00:00 +0000</pubDate>
</item>
<item>
2023-06-29 09:26:49 +08:00
<title>Inspecting the RISC-V Linux Images for Star64 SBC</title>
<link>https://lupyuen.github.io/articles/star64</link>
<description><![CDATA[Let's look inside the Linux Images for Pine64's Star64 64-bit RISC-V Single-Board Computer: Armbian and Yocto]]></description>
<guid>https://lupyuen.github.io/articles/star64</guid>
<pubDate>Fri, 30 Jun 2023 00:00:00 +0000</pubDate>
</item>
2023-06-24 07:46:31 +08:00
<item>
<title>64-bit RISC-V with Apache NuttX Real-Time Operating System</title>
<link>https://lupyuen.github.io/articles/riscv</link>
<description><![CDATA[Let's boot Apache NuttX Real-Time Operating System on a 64-bit RISC-V Device (QEMU Emulator) and explore the Boot Code inside NuttX]]></description>
<guid>https://lupyuen.github.io/articles/riscv</guid>
<pubDate>Sun, 25 Jun 2023 00:00:00 +0000</pubDate>
</item>
2023-06-20 10:40:47 +08:00
<item>
<title>NuttX RTOS for PinePhone: The First Year</title>
<link>https://lupyuen.github.io/articles/pinephone2</link>
<description><![CDATA[2023 has been an awesome year for Apache NuttX RTOS on Pine64 PinePhone! Let's review the features that we've implemented... And what we'll do next]]></description>
<guid>https://lupyuen.github.io/articles/pinephone2</guid>
<pubDate>Wed, 21 Jun 2023 00:00:00 +0000</pubDate>
</item>
2023-06-10 07:53:57 +08:00
<item>
<title>NuttX RTOS for PinePhone: Feature Phone UI in LVGL, Zig and WebAssembly</title>
<link>https://lupyuen.github.io/articles/lvgl4</link>
<description><![CDATA[How we created the LVGL Feature Phone UI for Pine64 PinePhone on Apache NuttX RTOS... By tweaking and testing in a Web Browser!]]></description>
<guid>https://lupyuen.github.io/articles/lvgl4</guid>
<pubDate>Sat, 10 Jun 2023 00:00:00 +0000</pubDate>
</item>
2023-05-30 12:18:55 +08:00
<item>
<title>(Possibly) LVGL in WebAssembly with Zig Compiler</title>
<link>https://lupyuen.github.io/articles/lvgl3</link>
<description><![CDATA[Can we preview an LVGL App in the Web Browser... With WebAssembly and Zig Compiler? Let's find out!]]></description>
<guid>https://lupyuen.github.io/articles/lvgl3</guid>
<pubDate>Wed, 31 May 2023 00:00:00 +0000</pubDate>
</item>
2023-05-21 13:01:34 +08:00
<item>
<title>Recipe for Wholemeal Sourdough with Bread Machine</title>
<link>https://lupyuen.github.io/articles/sourdough</link>
<description><![CDATA[Yep it's a Sourdough Recipe]]></description>
<guid>https://lupyuen.github.io/articles/sourdough</guid>
<pubDate>Mon, 22 May 2023 00:00:00 +0000</pubDate>
</item>
2023-05-17 15:25:43 +08:00
<item>
<title>Inside a Smartphone Accelerometer: PinePhone with NuttX RTOS</title>
<link>https://www.hackster.io/lupyuen/inside-a-smartphone-accelerometer-pinephone-with-nuttx-rtos-b92b58</link>
<description><![CDATA[When we tilt our Smartphone from Portrait to Landscape... How does it know that we're tilting our phone? Watch what happens when we snoop the MPU-6050 Accelerometer Data from PinePhone with Apache NuttX RTOS]]></description>
<guid>https://www.hackster.io/lupyuen/inside-a-smartphone-accelerometer-pinephone-with-nuttx-rtos-b92b58</guid>
<pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate>
</item>
2023-05-03 12:06:14 +08:00
<item>
<title>NuttX RTOS for PinePhone: Phone Calls and Text Messages</title>
<link>https://lupyuen.github.io/articles/lte2</link>
<description><![CDATA[Making Phone Calls and Sending SMS Text Messages with PinePhone's Quectel EG25-G 4G LTE Modem... How we'll do it with Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/lte2</guid>
<pubDate>Thu, 04 May 2023 00:00:00 +0000</pubDate>
</item>
2023-04-11 09:20:52 +08:00
<item>
<title>NuttX RTOS for PinePhone: 4G LTE Modem</title>
<link>https://lupyuen.github.io/articles/lte</link>
<description><![CDATA[All about the Quectel EG25-G 4G LTE Modem inside Pine64 PinePhone... And how we'll control it with Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/lte</guid>
<pubDate>Wed, 12 Apr 2023 00:00:00 +0000</pubDate>
</item>
2023-03-23 12:21:01 +08:00
<item>
<title>NuttX RTOS for PinePhone: Simpler USB with EHCI (Enhanced Host Controller Interface)</title>
<link>https://lupyuen.github.io/articles/usb3</link>
<description><![CDATA[Porting the Enhanced Host Controller Interface (EHCI) USB Driver... From Apache NuttX RTOS to Pine64 PinePhone]]></description>
<guid>https://lupyuen.github.io/articles/usb3</guid>
<pubDate>Fri, 24 Mar 2023 00:00:00 +0000</pubDate>
</item>
2023-03-04 17:43:55 +08:00
<item>
<title>(Clickable) Call Graph for Apache NuttX Real-Time Operating System</title>
<link>https://lupyuen.github.io/articles/unicorn2</link>
<description><![CDATA[Here's how Apache NuttX RTOS boots on Pine64 PinePhone... Visualised as a Call Graph with Unicorn Emulator and Rust]]></description>
<guid>https://lupyuen.github.io/articles/unicorn2</guid>
<pubDate>Sun, 05 Mar 2023 00:00:00 +0000</pubDate>
</item>
2023-02-23 18:36:57 +08:00
<item>
<title>(Possibly) Emulate PinePhone with Unicorn Emulator</title>
<link>https://lupyuen.github.io/articles/unicorn</link>
<description><![CDATA[To make PinePhone testing easier... Can we emulate Arm64 PinePhone with Unicorn Emulator? Let's find out! We'll call the Unicorn Emulator in Rust]]></description>
<guid>https://lupyuen.github.io/articles/unicorn</guid>
<pubDate>Fri, 24 Feb 2023 00:00:00 +0000</pubDate>
</item>
2023-02-18 11:43:07 +08:00
<item>
<title>NuttX RTOS for PinePhone: Exploring USB</title>
<link>https://lupyuen.github.io/articles/usb2</link>
<description><![CDATA[What's inside the USB Controller of Pine64 PinePhone... And how we'll create a USB Driver for Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/usb2</guid>
<pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
</item>
2023-02-02 12:15:32 +08:00
<item>
<title>NuttX RTOS for PinePhone: LVGL Terminal for NSH Shell</title>
<link>https://lupyuen.github.io/articles/terminal</link>
<description><![CDATA[Let's build a Terminal App for PinePhone... With LVGL and Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/terminal</guid>
<pubDate>Fri, 03 Feb 2023 00:00:00 +0000</pubDate>
</item>
2023-01-29 09:26:47 +08:00
<item>
<title>Apache NuttX RTOS trips ChatGPT</title>
<link>https://lupyuen.github.io/articles/chatgpt</link>
<description><![CDATA[ChatGPT (the AI chatbot) will gladly answer questions about Apache NuttX RTOS! But the answers aren't always correct. Let's turn this into a learning opportunity, and understand why ChatGPT's answers are incorrect]]></description>
<guid>https://lupyuen.github.io/articles/chatgpt</guid>
<pubDate>Sun, 29 Jan 2023 00:00:00 +0000</pubDate>
</item>
2023-01-22 10:39:43 +08:00
<item>
<title>NuttX RTOS for PinePhone: Boot to LVGL</title>
<link>https://lupyuen.github.io/articles/lvgl2</link>
<description><![CDATA[How we configure Apache NuttX RTOS to boot an LVGL Touchscreen App on Pine64 PinePhone]]></description>
<guid>https://lupyuen.github.io/articles/lvgl2</guid>
<pubDate>Sun, 22 Jan 2023 00:00:00 +0000</pubDate>
</item>
2023-01-11 21:57:34 +08:00
<item>
<title>NuttX RTOS for PinePhone: Touch Panel</title>
<link>https://lupyuen.github.io/articles/touch2</link>
<description><![CDATA[All about the Capacitive Touch Panel inside Pine64 PinePhone... And how we created the PinePhone Touch Panel Driver for Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/touch2</guid>
<pubDate>Thu, 12 Jan 2023 00:00:00 +0000</pubDate>
</item>
2023-01-01 11:46:35 +08:00
<item>
<title>NuttX RTOS for PinePhone: What is it?</title>
<link>https://lupyuen.github.io/articles/what</link>
<description><![CDATA[Let's talk about Apache NuttX RTOS for Pine64 PinePhone: What is it? Why are we doing this? How will we use it?]]></description>
<guid>https://lupyuen.github.io/articles/what</guid>
<pubDate>Tue, 03 Jan 2023 00:00:00 +0000</pubDate>
</item>
2022-12-31 11:52:03 +08:00
<item>
<title>NuttX RTOS for PinePhone: Framebuffer</title>
<link>https://lupyuen.github.io/articles/fb</link>
<description><![CDATA[How NuttX Apps call the NuttX Framebuffer Interface to render graphics... And what's inside the Framebuffer Driver for Pine64 PinePhone]]></description>
<guid>https://lupyuen.github.io/articles/fb</guid>
<pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate>
</item>
2022-12-28 07:34:28 +08:00
<item>
<title>NuttX RTOS for PinePhone: LCD Panel</title>
<link>https://lupyuen.github.io/articles/lcd</link>
<description><![CDATA[Apache NuttX RTOS now boots with a Test Pattern on Pine64 PinePhone! Let's find out what's inside our new NuttX Driver for PinePhone's LCD Panel.]]></description>
<guid>https://lupyuen.github.io/articles/lcd</guid>
<pubDate>Wed, 28 Dec 2022 00:00:00 +0000</pubDate>
</item>
2022-12-23 07:56:18 +08:00
<item>
<title>NuttX RTOS for PinePhone: Display Engine</title>
<link>https://lupyuen.github.io/articles/de3</link>
<description><![CDATA[Apache NuttX Kernel now supports Allwinner A64 Display Engine on Pine64 PinePhone! Here's how we call it to render graphics on PinePhone's LCD Display]]></description>
<guid>https://lupyuen.github.io/articles/de3</guid>
<pubDate>Fri, 23 Dec 2022 00:00:00 +0000</pubDate>
</item>
2022-12-15 07:37:40 +08:00
<item>
<title>NuttX RTOS for PinePhone: MIPI Display Serial Interface</title>
<link>https://lupyuen.github.io/articles/dsi3</link>
<description><![CDATA[Apache NuttX Kernel has a driver for MIPI Display Serial Interface... Here's how it will be called for rendering PinePhone's LCD Display]]></description>
<guid>https://lupyuen.github.io/articles/dsi3</guid>
<pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate>
</item>
2022-11-28 15:52:16 +08:00
<item>
<title>Preparing a Pull Request for Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/pr</link>
<description><![CDATA[Here are the steps to prepare a Pull Request for Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/pr</guid>
<pubDate>Mon, 28 Nov 2022 00:00:00 +0000</pubDate>
</item>
2022-11-15 18:04:29 +08:00
<item>
<title>NuttX RTOS for PinePhone: Render Graphics in Zig</title>
<link>https://lupyuen.github.io/articles/de2</link>
<description><![CDATA[How we render graphics directly to PinePhone's Display Hardware... With the Zig Programming Language and Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/de2</guid>
<pubDate>Tue, 15 Nov 2022 00:00:00 +0000</pubDate>
</item>
2022-10-30 07:44:56 +08:00
<item>
<title>Rendering PinePhone&apos;s Display (DE and TCON0)</title>
<link>https://lupyuen.github.io/articles/de</link>
<description><![CDATA[How does Pine64 PinePhone render graphics on its LCD Display? Let's find out about the Allwinner A64 SoC's Display Engine (DE) and Timing Controller (TCON0).]]></description>
<guid>https://lupyuen.github.io/articles/de</guid>
<pubDate>Sun, 30 Oct 2022 00:00:00 +0000</pubDate>
</item>
2022-10-18 08:35:19 +08:00
<item>
<title>NuttX RTOS for PinePhone: Display Driver in Zig</title>
<link>https://lupyuen.github.io/articles/dsi2</link>
<description><![CDATA[Let's build a PinePhone Display Driver in Zig... That will run on Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/dsi2</guid>
<pubDate>Tue, 18 Oct 2022 00:00:00 +0000</pubDate>
</item>
2022-10-01 11:31:30 +08:00
<item>
<title>Understanding PinePhone&apos;s Display (MIPI DSI)</title>
<link>https://lupyuen.github.io/articles/dsi</link>
<description><![CDATA[How does Pine64 PinePhone control its LCD Display over MIPI Display Serial Interface? Let's find out!]]></description>
<guid>https://lupyuen.github.io/articles/dsi</guid>
<pubDate>Sun, 02 Oct 2022 00:00:00 +0000</pubDate>
</item>
2022-09-26 11:43:58 +08:00
<item>
<title>NuttX on a RISC-V IoT Gadget: PineDio Stack BL604</title>
<link>https://lupyuen.github.io/nuttx#nuttx-on-a-risc-v-iot-gadget-pinedio-stack-bl604</link>
<description><![CDATA[Pine64s PineDio Stack BL604 is a RISC-V board thats packed with IoT features: Touchscreen, LoRa, WiFi, BLE, GPS and more. In this presentation well talk about the porting of NuttX to PineDio Stack, how we simplified the developer onboarding, and our plans to support LoRaWAN and LVGL Apps in Zig.]]></description>
<guid>https://lupyuen.github.io/nuttx#nuttx-on-a-risc-v-iot-gadget-pinedio-stack-bl604</guid>
<pubDate>Sun, 25 Sep 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Visual Programming with Zig and NuttX Sensors</title>
<link>https://lupyuen.github.io/nuttx#visual-programming-with-zig-and-nuttx-sensors</link>
<description><![CDATA[What if we could drag-and-drop NuttX Sensors to create IoT Apps? In this presentation well explore Blockly, the web-based toolkit for Visual Programming, and how we might customise Blockly to create NuttX Sensor Apps. Well also discuss the Zig Programming Language, and why Blockly will generate NuttX Sensor Apps as Zig programs.]]></description>
<guid>https://lupyuen.github.io/nuttx#visual-programming-with-zig-and-nuttx-sensors</guid>
<pubDate>Sat, 24 Sep 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Simpler, safer LVGL Touchscreen Apps with Zig and NuttX</title>
<link>https://lupyuen.github.io/nuttx#simpler-safer-lvgl-touchscreen-apps-with-zig-and-nuttx</link>
<description><![CDATA[Is there a simpler and safer way to code Touchscreen Apps with the LVGL Graphics Library? In this presentation well talk about migrating a NuttX LVGL App from C to Zig, and the benefits that it brings.]]></description>
<guid>https://lupyuen.github.io/nuttx#simpler-safer-lvgl-touchscreen-apps-with-zig-and-nuttx</guid>
<pubDate>Sat, 24 Sep 2022 00:00:00 +0000</pubDate>
</item>
2022-09-21 11:19:49 +08:00
<item>
<title>NuttX RTOS for PinePhone: Blinking the LEDs</title>
<link>https://lupyuen.github.io/articles/pio</link>
<description><![CDATA[Let's experiment with the GPIO Hardware on Pine64 PinePhone... With a little help from Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/pio</guid>
<pubDate>Thu, 22 Sep 2022 00:00:00 +0000</pubDate>
</item>
2022-09-15 17:46:16 +08:00
<item>
<title>NuttX RTOS for PinePhone: UART Driver</title>
<link>https://lupyuen.github.io/articles/serial</link>
<description><![CDATA[Our PinePhone Operating System will be awfully quiet if we don't implement UART Input and Output... Here's how we implemented the UART Driver for Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/serial</guid>
<pubDate>Fri, 09 Sep 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>NuttX RTOS for PinePhone: Fixing the Interrupts</title>
<link>https://lupyuen.github.io/articles/interrupt</link>
<description><![CDATA[How Pine64 PinePhone handles Arm64 Interrupts with the Generic Interrupt Controller... And how we implemented PinePhone Interrupt Handling in Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/interrupt</guid>
<pubDate>Thu, 01 Sep 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>PinePhone boots Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/uboot</link>
<description><![CDATA[How we ported Apache NuttX RTOS to PinePhone... And what's inside the U-Boot Bootloader]]></description>
<guid>https://lupyuen.github.io/articles/uboot</guid>
<pubDate>Sun, 28 Aug 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Apache NuttX RTOS on Arm Cortex-A53: How it might run on PinePhone</title>
<link>https://lupyuen.github.io/articles/arm</link>
<description><![CDATA[Apache NuttX RTOS now runs on 64-bit Arm Cortex-A53 with Multi-Core Symmetric Multi-Processing... Will it run on PinePhone? Let's find out!]]></description>
<guid>https://lupyuen.github.io/articles/arm</guid>
<pubDate>Thu, 25 Aug 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Visual Programming with Zig and NuttX Sensors</title>
<link>https://lupyuen.github.io/articles/visual</link>
<description><![CDATA[What if we could drag-and-drop NuttX Sensors... To create IoT Sensor Apps in Zig? Let's find out!]]></description>
<guid>https://lupyuen.github.io/articles/visual</guid>
<pubDate>Fri, 19 Aug 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Zig Visual Programming with Blockly</title>
<link>https://lupyuen.github.io/articles/blockly</link>
<description><![CDATA[How we create a Zig program visually with Blockly, the drag-n-drop way... And how we might use it to build Sensor IoT Apps for Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/blockly</guid>
<pubDate>Sun, 07 Aug 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Read NuttX Sensor Data with Zig</title>
<link>https://lupyuen.github.io/articles/sensor</link>
<description><![CDATA[Using Zig to read Sensor Data on Apache NuttX RTOS... With Bosch BME280 Temperature / Humidity / Air Pressure Sensor]]></description>
<guid>https://lupyuen.github.io/articles/sensor</guid>
<pubDate>Fri, 29 Jul 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Build an LVGL Touchscreen App with Zig</title>
<link>https://lupyuen.github.io/articles/lvgl</link>
<description><![CDATA[Can we use Zig to build an LVGL Touchscreen App for Apache NuttX RTOS? Also wrap the LVGL API in Zig to build simpler, safer LVGL Apps? Let's find out!]]></description>
<guid>https://lupyuen.github.io/articles/lvgl</guid>
<pubDate>Tue, 12 Jul 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Build a PinePhone App with Zig and zgt</title>
<link>https://lupyuen.github.io/articles/pinephone</link>
<description><![CDATA[Can we use Zig to code PinePhone Apps? Maybe make them simpler and safer? Let's find out!]]></description>
<guid>https://lupyuen.github.io/articles/pinephone</guid>
<pubDate>Sat, 25 Jun 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Build an IoT App with Zig and LoRaWAN</title>
<link>https://lupyuen.github.io/articles/iot</link>
<description><![CDATA[Let's build a complex IoT App with Zig and LoRaWAN... And run it on RISC-V BL602 with Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/iot</guid>
<pubDate>Wed, 15 Jun 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Zig on RISC-V BL602: Quick Peek with Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/zig</link>
<description><![CDATA[How we run Zig on the BL602 RISC-V SoC... With Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/zig</guid>
<pubDate>Thu, 02 Jun 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>(Mostly) Automated Testing of Apache NuttX RTOS on PineDio Stack BL604 RISC-V Board</title>
<link>https://lupyuen.github.io/articles/auto2</link>
<description><![CDATA[Pine64 is about to launch the PineDio Stack BL604 RISC-V Board with LoRa and Touch Screen... Here's how we automatically flash and test every new release of Apache NuttX RTOS for PineDio Stack]]></description>
<guid>https://lupyuen.github.io/articles/auto2</guid>
<pubDate>Sun, 22 May 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>NuttX GPIO Expander for PineDio Stack BL604</title>
<link>https://lupyuen.github.io/articles/expander</link>
<description><![CDATA[PineDio Stack BL604 RISC-V Board has an interesting problem on Apache NuttX RTOS... Too many GPIOs! Let's fix this with a GPIO Expander]]></description>
<guid>https://lupyuen.github.io/articles/expander</guid>
<pubDate>Tue, 03 May 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>NuttX Touch Panel Driver for PineDio Stack BL604</title>
<link>https://lupyuen.github.io/articles/touch</link>
<description><![CDATA[How we created the Apache NuttX RTOS Driver for Hynitron CST816S I2C Touch Panel... For PineDio Stack BL604 RISC-V Board]]></description>
<guid>https://lupyuen.github.io/articles/touch</guid>
<pubDate>Thu, 21 Apr 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>PineDio Stack BL604 runs Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/pinedio2</link>
<description><![CDATA[Running Apache NuttX RTOS on PineDio Stack BL604 RISC-V board... With ST7789 Display, LVGL Graphics and LoRaWAN]]></description>
<guid>https://lupyuen.github.io/articles/pinedio2</guid>
<pubDate>Tue, 12 Apr 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>ST7789 Display with LVGL Graphics on Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/st7789</link>
<description><![CDATA[RISC-V BL602 SoC with ST7789 SPI Display and LVGL Graphics Library... Let's make it work on Apache NuttX RTOS!]]></description>
<guid>https://lupyuen.github.io/articles/st7789</guid>
<pubDate>Sat, 02 Apr 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Rust talks I2C on Apache NuttX RTOS</title>
<link>https://lupyuen.github.io/articles/rusti2c</link>
<description><![CDATA[Reading the Bosch BME280 I2C Sensor with Rust Embedded HAL... On BL602 RISC-V SoC and Apache NuttX RTOS]]></description>
<guid>https://lupyuen.github.io/articles/rusti2c</guid>
<pubDate>Tue, 22 Mar 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Apache NuttX Driver for BME280 Sensor: Ported from Zephyr OS</title>
<link>https://lupyuen.github.io/articles/bme280</link>
<description><![CDATA[Apache NuttX OS talks I2C with Bosch BME280 Sensor on BL602 RISC-V SoC... Thanks to the BME280 Driver ported from Zephyr OS]]></description>
<guid>https://lupyuen.github.io/articles/bme280</guid>
<pubDate>Thu, 10 Mar 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Connect IKEA Air Quality Sensor to Apache NuttX OS</title>
<link>https://lupyuen.github.io/articles/ikea</link>
<description><![CDATA[How we expose the UART Port on IKEA VINDRIKTNING Air Quality Sensor... And read the PM 2.5 data with PineDio Stack BL604 RISC-V Board]]></description>
<guid>https://lupyuen.github.io/articles/ikea</guid>
<pubDate>Sat, 12 Feb 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>BL602 EFlash Loader: Reverse Engineered with Ghidra</title>
<link>https://lupyuen.github.io/articles/loader</link>
<description><![CDATA[What's inside the EFlash Loader that flashes all firmware to the BL602 RISC-V SoC]]></description>
<guid>https://lupyuen.github.io/articles/loader</guid>
<pubDate>Wed, 02 Feb 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Auto Flash and Test NuttX on RISC-V BL602</title>
<link>https://lupyuen.github.io/articles/auto</link>
<description><![CDATA[How we automagically flash and test the daily build of Apache NuttX OS on BL602 RISC-V SoC]]></description>
<guid>https://lupyuen.github.io/articles/auto</guid>
<pubDate>Wed, 26 Jan 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Rust on Apache NuttX OS</title>
<link>https://lupyuen.github.io/articles/rust2</link>
<description><![CDATA[How we run Rust programs on Apache NuttX OS... And transmit a LoRa Message with Rust]]></description>
<guid>https://lupyuen.github.io/articles/rust2</guid>
<pubDate>Wed, 12 Jan 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>Encode Sensor Data with CBOR on Apache NuttX OS</title>
<link>https://lupyuen.github.io/articles/cbor2</link>
<description><![CDATA[Compressing Sensor Data with CBOR on Apache NuttX OS... By calling TinyCBOR Library]]></description>
<guid>https://lupyuen.github.io/articles/cbor2</guid>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>LoRaWAN on Apache NuttX OS</title>
<link>https://lupyuen.github.io/articles/lorawan3</link>
<description><![CDATA[Porting Semtech's LoRaWAN Stack to Apache NuttX OS... And testing it on PineDio Stack BL604 RISC-V Board]]></description>
<guid>https://lupyuen.github.io/articles/lorawan3</guid>
<pubDate>Mon, 03 Jan 2022 00:00:00 +0000</pubDate>
</item>
<item>
<title>LoRa SX1262 on Apache NuttX OS</title>
<link>https://lupyuen.github.io/articles/sx1262</link>
<description><![CDATA[Porting the LoRa Driver for Semtech SX1262 from Linux to Apache NuttX OS... And testing it on PineDio Stack BL604 RISC-V Board]]></description>
<guid>https://lupyuen.github.io/articles/sx1262</guid>
<pubDate>Wed, 22 Dec 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>SPI on Apache NuttX OS</title>
<link>https://lupyuen.github.io/articles/spi2</link>
<description><![CDATA[How we transmit and receive data over SPI on Apache NuttX OS... By coding a NuttX Device Driver]]></description>
<guid>https://lupyuen.github.io/articles/spi2</guid>
<pubDate>Mon, 13 Dec 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Apache NuttX OS on RISC-V BL602 and BL604</title>
<link>https://lupyuen.github.io/articles/nuttx</link>
<description><![CDATA[How we build, flash and test the Apache NuttX operating system on BL602 and BL604 RISC-V SoCs]]></description>
<guid>https://lupyuen.github.io/articles/nuttx</guid>
<pubDate>Wed, 24 Nov 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>PineDio LoRa Gateway: Testing The Prototype</title>
<link>https://lupyuen.github.io/articles/gateway</link>
<description><![CDATA[How we test the pre-production PineDio LoRa Gateway by Pine64... And connect it to The Things Network]]></description>
<guid>https://lupyuen.github.io/articles/gateway</guid>
<pubDate>Thu, 11 Nov 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Build a Linux Driver for PineDio LoRa SX1262 USB Adapter</title>
<link>https://lupyuen.github.io/articles/usb</link>
<description><![CDATA[How we build a LoRa SX1262 Driver for PineDio USB Adapter... And test it on Pinebook Pro]]></description>
<guid>https://lupyuen.github.io/articles/usb</guid>
<pubDate>Thu, 28 Oct 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Monitor IoT Devices in The Things Network with Prometheus and Grafana</title>
<link>https://lupyuen.github.io/articles/prometheus</link>
<description><![CDATA[How we monitor our IoT Sensor Devices connected to The Things Network... With Prometheus Time Series Database and Grafana Dashboards]]></description>
<guid>https://lupyuen.github.io/articles/prometheus</guid>
<pubDate>Thu, 21 Oct 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>CBOR Payload Formatter for The Things Network</title>
<link>https://lupyuen.github.io/articles/payload</link>
<description><![CDATA[How we decode CBOR Sensor Data inside The Things Network... With a CBOR Payload Formatter]]></description>
<guid>https://lupyuen.github.io/articles/payload</guid>
<pubDate>Mon, 18 Oct 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Internal Temperature Sensor on BL602</title>
<link>https://lupyuen.github.io/articles/tsen</link>
<description><![CDATA[How we read the Internal Temperature Sensor on the BL602 and BL604 RISC-V SoCs... And transmit to The Things Network]]></description>
<guid>https://lupyuen.github.io/articles/tsen</guid>
<pubDate>Thu, 14 Oct 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>IoT Digital Twin with Roblox and The Things Network</title>
<link>https://lupyuen.github.io/articles/roblox</link>
<description><![CDATA[Can we use Roblox to monitor and control an IoT Device... Through LoRaWAN and The Things Network?]]></description>
<guid>https://lupyuen.github.io/articles/roblox</guid>
<pubDate>Fri, 08 Oct 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Encode Sensor Data with CBOR on BL602</title>
<link>https://lupyuen.github.io/articles/cbor</link>
<description><![CDATA[How we compress Sensor Data with CBOR... And transmit over LoRaWAN on the BL602 / BL604 RISC-V SoC]]></description>
<guid>https://lupyuen.github.io/articles/cbor</guid>
<pubDate>Tue, 05 Oct 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Grafana Data Source for The Things Network</title>
<link>https://lupyuen.github.io/articles/grafana</link>
<description><![CDATA[How we visualise Sensor Data from The Things Network... With a Custom MQTT Data Source in Grafana]]></description>
<guid>https://lupyuen.github.io/articles/grafana</guid>
<pubDate>Mon, 27 Sep 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>The Things Network on PineDio Stack BL604 RISC-V Board</title>
<link>https://lupyuen.github.io/articles/ttn</link>
<description><![CDATA[How we join The Things Network and send data to the cloud on the new PineDio Stack BL604 RISC-V Board]]></description>
<guid>https://lupyuen.github.io/articles/ttn</guid>
<pubDate>Tue, 21 Sep 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>LoRaWAN on PineDio Stack BL604 RISC-V Board</title>
<link>https://lupyuen.github.io/articles/lorawan2</link>
<description><![CDATA[How we test LoRaWAN on the new PineDio Stack BL604 RISC-V Board]]></description>
<guid>https://lupyuen.github.io/articles/lorawan2</guid>
<pubDate>Thu, 16 Sep 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Rust on RISC-V BL602: Rhai Scripting</title>
<link>https://lupyuen.github.io/articles/rhai</link>
<description><![CDATA[Can we drag-and-drop Rhai Scripts... And run them on WebAssembly and BL602 RISC-V SoC?]]></description>
<guid>https://lupyuen.github.io/articles/rhai</guid>
<pubDate>Sat, 04 Sep 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>PineDio Stack BL604 RISC-V Board: Testing The Prototype</title>
<link>https://lupyuen.github.io/articles/pinedio</link>
<description><![CDATA[What's it like to create Open Source Software for brand new prototype hardware? Read on to find out!]]></description>
<guid>https://lupyuen.github.io/articles/pinedio</guid>
<pubDate>Sun, 29 Aug 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Rust on RISC-V BL602: Simulated with WebAssembly</title>
<link>https://lupyuen.github.io/articles/rustsim</link>
<description><![CDATA[Can we run Rust Firmware for BL602 RISC-V SoC in a Web Browser... Simulated with WebAssembly?]]></description>
<guid>https://lupyuen.github.io/articles/rustsim</guid>
<pubDate>Mon, 16 Aug 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Rust on RISC-V BL602: Is It Sunny?</title>
<link>https://lupyuen.github.io/articles/adc</link>
<description><![CDATA[How we create Rust Firmware that reads Analog Inputs... With the Analog-to-Digital Converter on RISC-V BL602]]></description>
<guid>https://lupyuen.github.io/articles/adc</guid>
<pubDate>Tue, 03 Aug 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>RISC-V BL706 Audio Video Board</title>
<link>https://lupyuen.github.io/articles/bl706</link>
<description><![CDATA[What's inside the Bouffalo Lab RISC-V BL706 Audio Video Board... And how it differs from BL602]]></description>
<guid>https://lupyuen.github.io/articles/bl706</guid>
<pubDate>Wed, 14 Jul 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Reverse Engineering WiFi on RISC-V BL602</title>
<link>https://lupyuen.github.io/articles/wifi</link>
<description><![CDATA[What happens inside the WiFi Driver on RISC-V BL602... And how we found the incomplete source code for the driver]]></description>
<guid>https://lupyuen.github.io/articles/wifi</guid>
<pubDate>Wed, 07 Jul 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Machine Learning on RISC-V BL602 with TensorFlow Lite</title>
<link>https://lupyuen.github.io/articles/tflite</link>
<description><![CDATA[How we run TensorFlow Lite on RISC-V BL602... To create a Glowing LED]]></description>
<guid>https://lupyuen.github.io/articles/tflite</guid>
<pubDate>Tue, 22 Jun 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>BL602 Bootloader</title>
<link>https://lupyuen.github.io/articles/boot</link>
<description><![CDATA[All about the BL602 RISC-V Bootloader... And how it loads the Application Firmware into XIP Flash Memory]]></description>
<guid>https://lupyuen.github.io/articles/boot</guid>
<pubDate>Wed, 09 Jun 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Simulate RISC-V BL602 with WebAssembly, uLisp and Blockly</title>
<link>https://lupyuen.github.io/articles/wasm</link>
<description><![CDATA[How we simulate the BL602 RISC-V SoC with uLisp in WebAssembly... And preview Blockly uLisp Apps in the Web Browser]]></description>
<guid>https://lupyuen.github.io/articles/wasm</guid>
<pubDate>Thu, 27 May 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>uLisp and Blockly on PineCone BL602 RISC-V Board</title>
<link>https://lupyuen.github.io/articles/lisp</link>
<description><![CDATA[Porting the uLisp Interpreter to PineCone BL602 RISC-V Board... And writing graphical programs with Blockly (Scratch)]]></description>
<guid>https://lupyuen.github.io/articles/lisp</guid>
<pubDate>Fri, 14 May 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>PineCone BL602 Talks LoRaWAN</title>
<link>https://lupyuen.github.io/articles/lorawan</link>
<description><![CDATA[How we connect PineCone BL602 RISC-V Board to LoRaWAN... With the Pine64 RFM90 LoRa Module]]></description>
<guid>https://lupyuen.github.io/articles/lorawan</guid>
<pubDate>Tue, 11 May 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Build a LoRaWAN Network with RAKwireless WisGate Developer Gateway</title>
<link>https://lupyuen.github.io/articles/wisgate</link>
<description><![CDATA[How we set up our own LoRaWAN Network with RAKwireless RAK7248 WisGate Developer D4H Gateway... And test it with RAKwireless WisBlock in Arduino]]></description>
<guid>https://lupyuen.github.io/articles/wisgate</guid>
<pubDate>Fri, 30 Apr 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Run Rust RISC-V Firmware with BL602 IoT SDK</title>
<link>https://lupyuen.github.io/articles/rust</link>
<description><![CDATA[How we build, flash and run Rust firmware on BL602 RISC-V SoC... With the BL602 IoT SDK]]></description>
<guid>https://lupyuen.github.io/articles/rust</guid>
<pubDate>Wed, 21 Apr 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>PineCone BL602 RISC-V Board Receives LoRa Packets</title>
<link>https://lupyuen.github.io/articles/lora2</link>
<description><![CDATA[How PineCone BL602 RISC-V Board with SX1276 receives LoRa packets... Transmitted by RAKwireless WisBlock]]></description>
<guid>https://lupyuen.github.io/articles/lora2</guid>
<pubDate>Sun, 04 Apr 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>RAKwireless WisBlock talks LoRa with PineCone BL602 RISC-V Board</title>
<link>https://lupyuen.github.io/articles/wisblock</link>
<description><![CDATA[How we receive LoRa packets transmitted by PineCone BL602 RISC-V Board ... With RAKwireless WisBlock in Arduino]]></description>
<guid>https://lupyuen.github.io/articles/wisblock</guid>
<pubDate>Thu, 11 Mar 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Connect PineCone BL602 to LoRa Transceiver</title>
<link>https://lupyuen.github.io/articles/lora</link>
<description><![CDATA[How we transmit LoRa packets on PineCone BL602 RISC-V Board ... With Semtech 1276 or Hope RF96]]></description>
<guid>https://lupyuen.github.io/articles/lora</guid>
<pubDate>Sun, 07 Mar 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>The RISC-V BL602 Book</title>
<link>https://lupyuen.github.io/articles/book</link>
<description><![CDATA[Your free open-source resource for learning RISC-V BL602 SoC]]></description>
<guid>https://lupyuen.github.io/articles/book</guid>
<pubDate>Sat, 20 Feb 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>PineCone BL602 Talks UART to Grove E-Ink Display</title>
<link>https://lupyuen.github.io/articles/uart</link>
<description><![CDATA[How we render an image with PineCone BL602 RISC-V Board ... On Grove Triple Colour E-Ink Display with UART Interface]]></description>
<guid>https://lupyuen.github.io/articles/uart</guid>
<pubDate>Fri, 19 Feb 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>PineCone BL602 Blasting Pixels to ST7789 Display with LVGL Library</title>
<link>https://lupyuen.github.io/articles/display</link>
<description><![CDATA[How we render text and graphics on PineCone BL602 RISC-V Board ... With ST7789 SPI Display and LVGL Graphics Library]]></description>
<guid>https://lupyuen.github.io/articles/display</guid>
<pubDate>Tue, 16 Feb 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>PineCone BL602 talks SPI too!</title>
<link>https://lupyuen.github.io/articles/spi</link>
<description><![CDATA[PineCone BL602 RISC-V Board talks to BME280 Sensor over SPI... Let's find out how]]></description>
<guid>https://lupyuen.github.io/articles/spi</guid>
<pubDate>Sun, 07 Feb 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>PineCone BL602 talks to I2C Sensors</title>
<link>https://lupyuen.github.io/articles/i2c</link>
<description><![CDATA[How we call the BL602 RISC-V Hardware Abstraction Layer to access the BME280 I2C Sensor]]></description>
<guid>https://lupyuen.github.io/articles/i2c</guid>
<pubDate>Fri, 29 Jan 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Mynewt GPIO ported to PineCone BL602 RISC-V Board</title>
<link>https://lupyuen.github.io/articles/gpio</link>
<description><![CDATA[How we ported the BL602 RISC-V Hardware Abstraction Layer to Apache Mynewt ... Starting with GPIO]]></description>
<guid>https://lupyuen.github.io/articles/gpio</guid>
<pubDate>Fri, 15 Jan 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Control PineCone BL602 RGB LED with GPIO and PWM</title>
<link>https://lupyuen.github.io/articles/led</link>
<description><![CDATA[Explore the BL602 GPIO and PWM Demo Firmware... And how they call the GPIO and PWM Hardware Abstraction Layer]]></description>
<guid>https://lupyuen.github.io/articles/led</guid>
<pubDate>Wed, 06 Jan 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Flashing Firmware to PineCone BL602</title>
<link>https://lupyuen.github.io/articles/flash</link>
<description><![CDATA[What happens when we flash RISC-V firmware to PineCone BL602 Board... And what's inside the BL602 Boot Image, Partition Table, Device Tree and EFuse Configuration]]></description>
<guid>https://lupyuen.github.io/articles/flash</guid>
<pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate>
</item>
<item>
<title>Porting Mynewt to PineCone BL602</title>
<link>https://lupyuen.github.io/articles/mynewt</link>
<description><![CDATA[How we port Apache Mynewt embedded operating system to the PineCone BL602 RISC-V Board]]></description>
<guid>https://lupyuen.github.io/articles/mynewt</guid>
<pubDate>Mon, 21 Dec 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Better Open Source Advocate</title>
<link>https://lupyuen.github.io/articles/advocate</link>
<description><![CDATA[I made mistakes in 2020... Here's how I'll do better in 2021]]></description>
<guid>https://lupyuen.github.io/articles/advocate</guid>
<pubDate>Tue, 15 Dec 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Debug Rust on PineCone BL602 with VSCode and GDB</title>
<link>https://lupyuen.github.io/articles/debug</link>
<description><![CDATA[How we build and debug Embedded Rust Firmware for PineCone BL602... With VSCode and GDB]]></description>
<guid>https://lupyuen.github.io/articles/debug</guid>
<pubDate>Mon, 14 Dec 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Connect PineCone BL602 to OpenOCD</title>
<link>https://lupyuen.github.io/articles/openocd</link>
<description><![CDATA[How we connect PineCone BL602 Evaluation Board to OpenOCD... For flashing and debugging RISC-V firmware]]></description>
<guid>https://lupyuen.github.io/articles/openocd</guid>
<pubDate>Fri, 11 Dec 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Quick Peek of PineCone BL602 RISC-V Evaluation Board</title>
<link>https://lupyuen.github.io/articles/pinecone</link>
<description><![CDATA[What's inside the PineCone BL602 Evaluation Board... And how we're using it to contribute to the RISC-V Open Source Ecosystem]]></description>
<guid>https://lupyuen.github.io/articles/pinecone</guid>
<pubDate>Sun, 29 Nov 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>(UNFINISHED) Draw your own PineTime Watch Face... From WebAssembly to Embedded Rust</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/handdrawn</link>
<description><![CDATA[How we build a hand-drawn Watch Face for PineTime Smart Watch... Starting from WebAssembly to Embedded Rust]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/handdrawn</guid>
<pubDate>Wed, 18 Nov 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Create Your Own PineTime Watch Face in Rust... And Publish on crates.io</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/watchface</link>
<description><![CDATA[How we build PineTime Watch Faces with Rust and LVGL... And publish them on crates.io]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/watchface</guid>
<pubDate>Sat, 17 Oct 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Bluetooth Time Sync and LVGL on PineTime Mynewt</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/timesync</link>
<description><![CDATA[How PineTime syncs the time over Bluetooth LE with Mynewt and NimBLE... And how we create Watch Faces with LVGL]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/timesync</guid>
<pubDate>Fri, 16 Oct 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Porting PineTime Watch Face from C to Rust On RIOT with LVGL</title>
<link>https://lupyuen.github.io/pinetime-rust-riot/articles/watch_face</link>
<description><![CDATA[Converting Embedded C to Rust is not that hard... Here's how we convert a PineTime Watch Face with LVGL from C to Rust on RIOT]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-riot/articles/watch_face</guid>
<pubDate>Sun, 13 Sep 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Safer, Simpler Embedded Programs with Rust on RIOT (Presentation)</title>
<link>https://summit.riot-os.org/2020/wp-content/uploads/sites/15/2020/09/s4-2-Lup-Yuen-Lee.pdf</link>
<description><![CDATA[Tired of pointer problems on Embedded C? Its time to switch over to a safer, simpler way of coding: Embedded Rust. Well look at Rust hosted on RIOT and how its used to create LVGL watch apps for PineTime Smart Watch.]]></description>
<guid>https://summit.riot-os.org/2020/wp-content/uploads/sites/15/2020/09/s4-2-Lup-Yuen-Lee.pdf</guid>
<pubDate>Fri, 11 Sep 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Safer, Simpler Embedded Programs with Rust on RIOT (Video)</title>
<link>https://www.youtube.com/watch?v=LvfCSnOM1Hs</link>
<description><![CDATA[Tired of pointer problems on Embedded C? Its time to switch over to a safer, simpler way of coding: Embedded Rust. Well look at Rust hosted on RIOT and how its used to create LVGL watch apps for PineTime Smart Watch.]]></description>
<guid>https://www.youtube.com/watch?v=LvfCSnOM1Hs</guid>
<pubDate>Fri, 11 Sep 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Preview PineTime Watch Faces in your Web Browser with WebAssembly</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/simulator</link>
<description><![CDATA[How we build and preview PineTime Watch Faces with only a web browser... No computer needed!]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/simulator</guid>
<pubDate>Wed, 19 Aug 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Build PineTime Firmware in the Cloud with GitHub Actions</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/cloud</link>
<description><![CDATA[Learn to build PineTime Smart Watch Firmware in the Cloud... No computer needed!]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/cloud</guid>
<pubDate>Mon, 27 Jul 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Wayland and LVGL on PinePhone with Ubuntu Touch</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/wayland</link>
<description><![CDATA[Learn about Wayland and Ubuntu Touch on PinePhone... And how we build PinePhone Apps with LVGL]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/wayland</guid>
<pubDate>Sat, 25 Jul 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>(UNFINISHED) Auto Convert Go to Dart with an Abstract Syntax Tree</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/ast</link>
<description><![CDATA[How we convert Go code to Dart and Flutter automatically with an Abstract Syntax Tree]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/ast</guid>
<pubDate>Thu, 09 Jul 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Flutter State Management with Bloc for PineTime Companion App</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/bloc</link>
<description><![CDATA[How we manage state with the Bloc Library in the Flutter Companion App (Android and iOS) for PineTime Smart Watch]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/bloc</guid>
<pubDate>Sat, 27 Jun 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>PineTime doesn&apos;t run Linux... But that&apos;s OK!</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/pinetime</link>
<description><![CDATA[Getting started with PineTime Smart Watch]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/pinetime</guid>
<pubDate>Fri, 19 Jun 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Your First GTK App with Go and VSCodium</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/gotk3</link>
<description><![CDATA[Creating desktop apps on Linux doesn't have to be hard... Let's build GTK+ 3 apps in Go with the gotk3 library!]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/gotk3</guid>
<pubDate>Thu, 18 Jun 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Convert Go to Flutter and Dart for PineTime Companion App</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/companion</link>
<description><![CDATA[How we build the Flutter Companion App (Android and iOS) for PineTime Smart Watch by converting Go to Dart]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/companion</guid>
<pubDate>Wed, 17 Jun 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Your First Bluetooth Low Energy App with Flutter</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/flutter</link>
<description><![CDATA[Bluetooth Low Energy apps are ridiculously easy to code with Flutter and Dart, let me show you how!]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/flutter</guid>
<pubDate>Thu, 04 Jun 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Porting MicroPython and wasp-os to Mynewt on PineTime Smart Watch (nRF52)</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/micropython</link>
<description><![CDATA[Making wasp-os truly awesome with full multitasking, interoperable firmware updates and a common companion app]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/micropython</guid>
<pubDate>Tue, 02 Jun 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Wireless Firmware Update In Action on PineTime Smart Watch (nRF52)</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/dfutest</link>
<description><![CDATA[Observe step-by-step the Wireless Firmware Update running on PineTime Smart Watch (nRF52) with MCUBoot Bootloader, NimBLE Bluetooth LE Stack and Apache Mynewt]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/dfutest</guid>
<pubDate>Wed, 20 May 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>MCUBoot Bootloader for PineTime Smart Watch (nRF52)</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/mcuboot</link>
<description><![CDATA[Wireless Firmware Updates done right on PineTime Smart Watch... With the open source MCUBoot Bootloader from Apache Mynewt and Zephyr]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/mcuboot</guid>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Configure Mynewt for SPI Flash on PineTime Smart Watch (nRF52)</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/spiflash</link>
<description><![CDATA[Configure Mynewt OS to enable access to SPI Flash Memory on PineTime Smart Watch]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/spiflash</guid>
<pubDate>Fri, 15 May 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Firmware Update over Bluetooth Low Energy on PineTime Smart Watch</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/dfu</link>
<description><![CDATA[Flash any firmware to PineTime from our mobile phone... Without opening the watch!]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/dfu</guid>
<pubDate>Mon, 11 May 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>CHIP-8 Game Emulator in Rust for PineTime Smart Watch</title>
<link>https://lupyuen.github.io/pinetime-rust-mynewt/articles/chip8</link>
<description><![CDATA[Running Retro Games with Rust is not that hard on PineTime Smart Watch. Here's how I ported a CHIP-8 Game Emulator to PineTime]]></description>
<guid>https://lupyuen.github.io/pinetime-rust-mynewt/articles/chip8</guid>
<pubDate>Thu, 05 Mar 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Visual Rust for PineTime Smart Watch</title>
<link>https://github.com/lupyuen/visual-embedded-rust</link>
<description><![CDATA[Create and edit Embedded Rust programs visually by dragging and dropping blocks]]></description>
<guid>https://github.com/lupyuen/visual-embedded-rust</guid>
<pubDate>Thu, 05 Mar 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>My First Week As Embedded FOSS Advocate</title>
<link>https://lupyuen.github.io/articles/my-first-week-as-embedded-foss-advocate</link>
<description><![CDATA[Have humans become so greedy for profit… That we have forgotten how to teach one another and advance our species?]]></description>
<guid>https://lupyuen.github.io/articles/my-first-week-as-embedded-foss-advocate</guid>
<pubDate>Tue, 04 Feb 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Debug RIOT-OS on PineTime with VSCode</title>
<link>https://web.archive.org/https://medium.com/@ly.lee/debug-riot-os-on-pinetime-with-vscode-12f00c69c120</link>
<description><![CDATA[VSCode debugging configuration for RIOT]]></description>
<guid>https://web.archive.org/https://medium.com/@ly.lee/debug-riot-os-on-pinetime-with-vscode-12f00c69c120</guid>
<pubDate>Sun, 02 Feb 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>If youre in the East, please consider Rust!</title>
<link>https://web.archive.org/https://medium.com/@ly.lee/if-youre-in-the-east-please-consider-rust-23fa05873397</link>
<description><![CDATA[Coding in Embedded C is like building a skyscraper without scaffolding]]></description>
<guid>https://web.archive.org/https://medium.com/@ly.lee/if-youre-in-the-east-please-consider-rust-23fa05873397</guid>
<pubDate>Fri, 24 Jan 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Debug Rust+Mynewt Firmware for PineTime on Raspberry Pi</title>
<link>https://lupyuen.github.io/articles/debug-rust-mynewt-firmware-for-pinetime-on-raspberry-pi</link>
<description><![CDATA[Using only a Raspberry Pi, we can debug the firmware on PineTime Smart Watch: Step into the flashed program line by line, set a breakpoint to pause execution at a line, inspect variables at runtime, … Just like the Embedded Pros!]]></description>
<guid>https://lupyuen.github.io/articles/debug-rust-mynewt-firmware-for-pinetime-on-raspberry-pi</guid>
<pubDate>Thu, 23 Jan 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>OpenOCD on Raspberry Pi: Better with SWD on SPI</title>
<link>https://lupyuen.github.io/articles/openocd-on-raspberry-pi-better-with-swd-on-spi</link>
<description><![CDATA[Instead of sending SWD data over GPIO one bit at a time, what if we could blast out the data over Raspberry Pis SPI interface?]]></description>
<guid>https://lupyuen.github.io/articles/openocd-on-raspberry-pi-better-with-swd-on-spi</guid>
<pubDate>Sat, 18 Jan 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Build and Flash Rust+Mynewt Firmware for PineTime Smart Watch</title>
<link>https://lupyuen.github.io/articles/build-and-flash-rust-mynewt-firmware-for-pinetime-smart-watch</link>
<description><![CDATA[Programming a PineTime is not that hard… All you need is a Raspberry Pi, some wires and a little creativity!]]></description>
<guid>https://lupyuen.github.io/articles/build-and-flash-rust-mynewt-firmware-for-pinetime-smart-watch</guid>
<pubDate>Wed, 08 Jan 2020 00:00:00 +0000</pubDate>
</item>
<item>
<title>Optimising PineTimes Display Driver with Rust and Mynewt</title>
<link>https://lupyuen.github.io/articles/optimising-pinetimes-display-driver-with-rust-and-mynewt</link>
<description><![CDATA[Simple tweaks like Batched Updates and Non-Blocking SPI can have a huge impact on rendering performance]]></description>
<guid>https://lupyuen.github.io/articles/optimising-pinetimes-display-driver-with-rust-and-mynewt</guid>
<pubDate>Sun, 29 Dec 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Porting [druid] Rust Widgets to PineTime Smart Watch</title>
<link>https://lupyuen.github.io/articles/porting-druid-rust-widgets-to-pinetime-smart-watch</link>
<description><![CDATA[Code Watch Apps in Rust the Declarative Way]]></description>
<guid>https://lupyuen.github.io/articles/porting-druid-rust-widgets-to-pinetime-smart-watch</guid>
<pubDate>Sat, 14 Dec 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>My 5-Year IoT Mission</title>
<link>https://lupyuen.github.io/articles/my-5-year-iot-mission</link>
<description><![CDATA[5 years ago I decided to fix every link in the IoT Chain so that we can create really useful and affordable IoT gadgets, the Lean and Agile Way]]></description>
<guid>https://lupyuen.github.io/articles/my-5-year-iot-mission</guid>
<pubDate>Wed, 04 Dec 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Hey GD32 VF103 on RISC-V: I surrender… For now</title>
<link>https://lupyuen.github.io/articles/hey-gd32-vf103-on-risc-v-i-surrender-for-now</link>
<description><![CDATA[Porting Mynewt OS to GD32 VF103 on RISC-V was a nightmare]]></description>
<guid>https://lupyuen.github.io/articles/hey-gd32-vf103-on-risc-v-i-surrender-for-now</guid>
<pubDate>Sat, 23 Nov 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Building a Rust Driver for PineTimes Touch Controller</title>
<link>https://lupyuen.github.io/articles/building-a-rust-driver-for-pinetimes-touch-controller</link>
<description><![CDATA[Programming the Hynitron CST816S Capacitive Touch Controller]]></description>
<guid>https://lupyuen.github.io/articles/building-a-rust-driver-for-pinetimes-touch-controller</guid>
<pubDate>Fri, 22 Nov 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Sneak Peek of PineTime Smart Watch… And why its perfect for teaching IoT</title>
<link>https://lupyuen.github.io/articles/sneak-peek-of-pinetime-smart-watch-and-why-its-perfect-for-teaching-iot</link>
<description><![CDATA[PineTime is the spiritual successor to BBC micro:bit]]></description>
<guid>https://lupyuen.github.io/articles/sneak-peek-of-pinetime-smart-watch-and-why-its-perfect-for-teaching-iot</guid>
<pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Porting Apache Mynewt OS to GigaDevice GD32 VF103 on RISC-V</title>
<link>https://lupyuen.github.io/articles/porting-apache-mynewt-os-to-gigadevice-gd32-vf103-on-risc-v</link>
<description><![CDATA[Many GD32 VF103 RISC-V developer boards are coming real soon... And Mynewt OS would be perfect for them]]></description>
<guid>https://lupyuen.github.io/articles/porting-apache-mynewt-os-to-gigadevice-gd32-vf103-on-risc-v</guid>
<pubDate>Wed, 30 Oct 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Bluetooth Mesh with nRF52 and Apache Mynewt</title>
<link>https://lupyuen.github.io/articles/bluetooth-mesh-with-nrf52-and-apache-mynewt</link>
<description><![CDATA[Set up an nRF52 mesh network, step by step, without any coding]]></description>
<guid>https://lupyuen.github.io/articles/bluetooth-mesh-with-nrf52-and-apache-mynewt</guid>
<pubDate>Tue, 15 Oct 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Coding nRF52 with Rust and Apache Mynewt on Visual Studio Code</title>
<link>https://lupyuen.github.io/articles/coding-nrf52-with-rust-and-apache-mynewt-on-visual-studio-code</link>
<description><![CDATA[nRF52 works with popular open-source tools on Windows and macOS like VSCode, OpenOCD, Rust and ST-Link]]></description>
<guid>https://lupyuen.github.io/articles/coding-nrf52-with-rust-and-apache-mynewt-on-visual-studio-code</guid>
<pubDate>Thu, 03 Oct 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Build an NB-IoT GPS Tracker on STM32 L476 with Apache Mynewt and Embedded Rust</title>
<link>https://lupyuen.github.io/articles/build-an-nb-iot-gps-tracker-on-stm32-l476-with-apache-mynewt-and-embedded-rust</link>
<description><![CDATA[Lets build a simple gadget that determines its current location based on received GPS signals… And transmits the location to a server via NB-IoT]]></description>
<guid>https://lupyuen.github.io/articles/build-an-nb-iot-gps-tracker-on-stm32-l476-with-apache-mynewt-and-embedded-rust</guid>
<pubDate>Sun, 22 Sep 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Quick Peek of Huawei LiteOS with NB-IoT on Ghostyu NB-EK-L476 Developer Kit (STM32L476RCT6)</title>
<link>https://lupyuen.github.io/articles/quick-peek-of-huawei-liteos-with-nb-iot-on-ghostyu-nb-ek-l476-developer-kit</link>
<description><![CDATA[Peek into the LiteOS + Application source code that was bundled with the NB-IoT Developer Kit]]></description>
<guid>https://lupyuen.github.io/articles/quick-peek-of-huawei-liteos-with-nb-iot-on-ghostyu-nb-ek-l476-developer-kit</guid>
<pubDate>Wed, 04 Sep 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Low Power NB-IoT on STM32 Blue Pill with Apache Mynewt and Embedded Rust</title>
<link>https://lupyuen.github.io/articles/low-power-nb-iot-on-stm32-blue-pill-with-apache-mynewt-and-embedded-rust</link>
<description><![CDATA[Learn to optimise the power consumption of the NB-IoT Sensor Application in the previous tutorial]]></description>
<guid>https://lupyuen.github.io/articles/low-power-nb-iot-on-stm32-blue-pill-with-apache-mynewt-and-embedded-rust</guid>
<pubDate>Fri, 30 Aug 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Visual Embedded Rust Programming with Visual Studio Code</title>
<link>https://lupyuen.github.io/articles/visual-embedded-rust-programming-with-visual-studio-code</link>
<description><![CDATA[Create and edit Embedded Rust programs for STM32 Blue Pill and Apache Mynewt… By dragging and dropping blocks!]]></description>
<guid>https://lupyuen.github.io/articles/visual-embedded-rust-programming-with-visual-studio-code</guid>
<pubDate>Sat, 17 Aug 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Advanced Topics for Visual Embedded Rust Programming</title>
<link>https://lupyuen.github.io/articles/advanced-topics-for-visual-embedded-rust-programming</link>
<description><![CDATA[Watch what happens behind the scenes when you create a Visual Embedded Rust program]]></description>
<guid>https://lupyuen.github.io/articles/advanced-topics-for-visual-embedded-rust-programming</guid>
<pubDate>Sat, 17 Aug 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Rust Rocks NB-IoT! STM32 Blue Pill with Quectel BC95-G on Apache Mynewt</title>
<link>https://lupyuen.github.io/articles/rust-rocks-nb-iot-stm32-blue-pill-with-quectel-bc95-g-on-apache-mynewt</link>
<description><![CDATA[Hardly anyone writes embedded programs in Rust for microcontrollers (like STM32 Blue Pill), we all use C. But we really should switch to Rust!]]></description>
<guid>https://lupyuen.github.io/articles/rust-rocks-nb-iot-stm32-blue-pill-with-quectel-bc95-g-on-apache-mynewt</guid>
<pubDate>Sun, 04 Aug 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Connect STM32 Blue Pill to NB-IoT with Quectel BC95-G and Apache Mynewt</title>
<link>https://lupyuen.github.io/articles/connect-stm32-blue-pill-to-nb-iot-with-quectel-bc95-g-and-apache-mynewt</link>
<description><![CDATA[Lets build an IoT sensor with a real microcontroller — STM32 Blue Pill — and a real NB-IoT module — Quectel BC95-G!]]></description>
<guid>https://lupyuen.github.io/articles/connect-stm32-blue-pill-to-nb-iot-with-quectel-bc95-g-and-apache-mynewt</guid>
<pubDate>Thu, 25 Jul 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Get Started with NB-IoT and Quectel modules</title>
<link>https://lupyuen.github.io/articles/get-started-with-nb-iot-and-quectel-modules</link>
<description><![CDATA[How to use a Quectel evaluation board to send a CoAP message to the CoAP server hosted at thethings.io]]></description>
<guid>https://lupyuen.github.io/articles/get-started-with-nb-iot-and-quectel-modules</guid>
<pubDate>Mon, 15 Jul 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Visual Programming with Embedded Rust? Yes we can with Apache Mynewt and Google Blockly!</title>
<link>https://web.archive.org/https://medium.com/@ly.lee/visual-programming-with-embedded-rust-yes-we-can-with-apache-mynewt-and-google-blockly-8b67ef7412d7</link>
<description><![CDATA[Simpler embedded coding, the visual way]]></description>
<guid>https://web.archive.org/https://medium.com/@ly.lee/visual-programming-with-embedded-rust-yes-we-can-with-apache-mynewt-and-google-blockly-8b67ef7412d7</guid>
<pubDate>Thu, 11 Jul 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Safer, Simpler Embedded Rust with Apache Mynewt on STM32 Blue Pill</title>
<link>https://lupyuen.github.io/articles/safer-simpler-embedded-rust-with-apache-mynewt-on-stm32-blue-pill</link>
<description><![CDATA[Declarative and Procedural Macros (plus bindgen and tips for Visual Studio Code) to protect Embedded Rust coders from stumbling into embedded traps]]></description>
<guid>https://lupyuen.github.io/articles/safer-simpler-embedded-rust-with-apache-mynewt-on-stm32-blue-pill</guid>
<pubDate>Sun, 07 Jul 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Hosting Embedded Rust apps on Apache Mynewt with STM32 Blue Pill</title>
<link>https://lupyuen.github.io/articles/hosting-embedded-rust-apps-on-apache-mynewt-with-stm32-blue-pill</link>
<description><![CDATA[Its time to drop our legacy programming practices and adopt smarter, safer ways to exploit these microcontrollers… starting with Apache Mynewt and Rust.]]></description>
<guid>https://lupyuen.github.io/articles/hosting-embedded-rust-apps-on-apache-mynewt-with-stm32-blue-pill</guid>
<pubDate>Sun, 09 Jun 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Build Your IoT Sensor NetworkSTM32 Blue Pill + nRF24L01 + ESP8266 + Apache Mynewt + thethings.io</title>
<link>https://lupyuen.github.io/articles/build-your-iot-sensor-network-stm32-blue-pill-nrf24l01-esp8266-apache-mynewt-thethings-io</link>
<description><![CDATA[Let's build a Sensor Network running on two Blue Pills with nRF24L01 and ESP8266]]></description>
<guid>https://lupyuen.github.io/articles/build-your-iot-sensor-network-stm32-blue-pill-nrf24l01-esp8266-apache-mynewt-thethings-io</guid>
<pubDate>Mon, 27 May 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Super Blue PillLike STM32 Blue Pill, But Better!</title>
<link>https://lupyuen.github.io/articles/super-blue-pill-like-stm32-blue-pill-but-better</link>
<description><![CDATA[Friendlier for newbies, supports ESP8266 WiFi and nRF24L01]]></description>
<guid>https://lupyuen.github.io/articles/super-blue-pill-like-stm32-blue-pill-but-better</guid>
<pubDate>Tue, 21 May 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Connect STM32 Blue Pill to ESP8266 with Apache Mynewt</title>
<link>https://lupyuen.github.io/articles/connect-stm32-blue-pill-to-esp8266-with-apache-mynewt</link>
<description><![CDATA[And WiFi Geolocation with ESP8266]]></description>
<guid>https://lupyuen.github.io/articles/connect-stm32-blue-pill-to-esp8266-with-apache-mynewt</guid>
<pubDate>Sat, 20 Apr 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Create your IoT gadget with Apache Mynewt and STM32 Blue Pill</title>
<link>https://lupyuen.github.io/articles/create-your-iot-gadget-with-apache-mynewt-and-stm32-blue-pill</link>
<description><![CDATA[Apache Mynewt is a free, open-source realtime operating system for microcontrollers]]></description>
<guid>https://lupyuen.github.io/articles/create-your-iot-gadget-with-apache-mynewt-and-stm32-blue-pill</guid>
<pubDate>Tue, 26 Mar 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Push AWS IoT sensor data to Redshift with Kinesis Firehose</title>
<link>https://web.archive.org/web/20191204194129/https://medium.com/@ly.lee/push-aws-iot-sensor-data-to-redshift-with-kinesis-firehose-385506264a00?source=friends_link&amp;sk=bd45be8b48fbb328ed1d65d10a8d7c38</link>
<description><![CDATA[AWS IoT Rules Engine and Kinesis Firehose were designed to stream live sensor data into Redshift for storage and analysis]]></description>
<guid>https://web.archive.org/web/20191204194129/https://medium.com/@ly.lee/push-aws-iot-sensor-data-to-redshift-with-kinesis-firehose-385506264a00?source=friends_link&amp;sk=bd45be8b48fbb328ed1d65d10a8d7c38</guid>
<pubDate>Sun, 10 Mar 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Transform and Import a JSON file into Amazon Redshift with AWS Glue</title>
<link>https://web.archive.org/web/20191204194022/https://medium.com/@ly.lee/transform-and-import-a-json-file-into-amazon-redshift-with-aws-glue-3371006e03ca?source=friends_link&amp;sk=a57bcec30f5b6b1c978dc4f35d8d6427</link>
<description><![CDATA[With AWS Glue its now possible to keep our Redshift data warehouses in sync with JSON-based data stores… So we may exploit the full potential of business analytics and machine learning in AWS!]]></description>
<guid>https://web.archive.org/web/20191204194022/https://medium.com/@ly.lee/transform-and-import-a-json-file-into-amazon-redshift-with-aws-glue-3371006e03ca?source=friends_link&amp;sk=a57bcec30f5b6b1c978dc4f35d8d6427</guid>
<pubDate>Fri, 08 Mar 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>Connecting AWS Lambda Node.JS to Redshift or PostgreSQL? Try AWS Lambda Layers!</title>
<link>https://web.archive.org/web/20191204194031/https://medium.com/@ly.lee/connecting-aws-lambda-node-js-to-redshift-or-postgresql-try-aws-lambda-layers-78e60c27f39b?source=friends_link&amp;sk=84d0f78bddfece6049c2395741824e58</link>
<description><![CDATA[With Lambda Layers its really easy to connect our Node.js Lambda Function to Redshift or PostgreSQL]]></description>
<guid>https://web.archive.org/web/20191204194031/https://medium.com/@ly.lee/connecting-aws-lambda-node-js-to-redshift-or-postgresql-try-aws-lambda-layers-78e60c27f39b?source=friends_link&amp;sk=84d0f78bddfece6049c2395741824e58</guid>
<pubDate>Wed, 06 Mar 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>STM32 Blue PillBootloading the WebUSB Bootloader</title>
<link>https://lupyuen.github.io/articles/stm32-blue-pill-bootloading-the-webusb-bootloader</link>
<description><![CDATA[How do we upgrade the Bootloader when its always running in the background, waiting for flashing requests? This article explains a special technique I used to upgrade the MakeCode Bootloader over WebUSB… I call it “Baseloading”]]></description>
<guid>https://lupyuen.github.io/articles/stm32-blue-pill-bootloading-the-webusb-bootloader</guid>
<pubDate>Mon, 25 Feb 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>STM32 Blue PillDissecting the WebUSB Bootloader for MakeCode</title>
<link>https://lupyuen.github.io/articles/stm32-blue-pill-dissecting-the-webusb-bootloader-for-makecode</link>
<description><![CDATA[Explore the innards of the MakeCode Bootloader that I have ported to Blue Pill]]></description>
<guid>https://lupyuen.github.io/articles/stm32-blue-pill-dissecting-the-webusb-bootloader-for-makecode</guid>
<pubDate>Sat, 16 Feb 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>STM32 Blue Pill — Unit Testing with Qemu Blue Pill Emulator</title>
<link>https://lupyuen.github.io/articles/stm32-blue-pill-unit-testing-with-qemu-blue-pill-emulator</link>
<description><![CDATA[Computing sensor values in IoT devices can be prone to bugs… And Unit Testing can help to stop the bugs before they pollute the entire IoT chain]]></description>
<guid>https://lupyuen.github.io/articles/stm32-blue-pill-unit-testing-with-qemu-blue-pill-emulator</guid>
<pubDate>Thu, 07 Feb 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>STM32 Blue Pill Shrink your math libraries with Qfplib</title>
<link>https://lupyuen.github.io/articles/stm32-blue-pill-shrink-your-math-libraries-with-qfplib</link>
<description><![CDATA[Filling in tiny math functions with nano-float]]></description>
<guid>https://lupyuen.github.io/articles/stm32-blue-pill-shrink-your-math-libraries-with-qfplib</guid>
<pubDate>Wed, 30 Jan 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>STM32 Blue PillAnalyse and Optimise Your RAM and ROM</title>
<link>https://lupyuen.github.io/articles/stm32-blue-pill-analyse-and-optimise-your-ram-and-rom</link>
<description><![CDATA[Learn the tips and tools to prevent Blue Pill Bloat]]></description>
<guid>https://lupyuen.github.io/articles/stm32-blue-pill-analyse-and-optimise-your-ram-and-rom</guid>
<pubDate>Thu, 24 Jan 2019 00:00:00 +0000</pubDate>
</item>
<item>
<title>STM32 Blue Pill USB BootloaderHow I fixed the USB Storage, Serial, DFU and WebUSB interfaces</title>
<link>https://lupyuen.github.io/articles/stm32-blue-pill-usb-bootloader-how-i-fixed-the-usb-storage-serial-dfu-and-webusb-interfaces</link>
<description><![CDATA[STM32 Blue Pill is a remarkable microcontroller for US$ 2. I proved it by running the USB Storage, USB Serial, USB DFU (Direct Firmware Upgrade) and WebUSB interfaces all on the same Blue Pill concurrently, without any additional hardware!]]></description>
<guid>https://lupyuen.github.io/articles/stm32-blue-pill-usb-bootloader-how-i-fixed-the-usb-storage-serial-dfu-and-webusb-interfaces</guid>
<pubDate>Tue, 18 Dec 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>STM32 Blue Pill Visual Programming with MakeCode, CODAL and libopencm3</title>
<link>https://web.archive.org/web/20191204194221/https://medium.com/@ly.lee/work-in-progress-stm32-blue-pill-visual-programming-with-makecode-codal-and-libopencm3-422d308f252e?source=friends_link&amp;sk=b39519335652415d5f4aa17c9e4af1d2</link>
<description><![CDATA[This work-in-progress document describes an incomplete implementation of STM32 Blue Pill visual programming]]></description>
<guid>https://web.archive.org/web/20191204194221/https://medium.com/@ly.lee/work-in-progress-stm32-blue-pill-visual-programming-with-makecode-codal-and-libopencm3-422d308f252e?source=friends_link&amp;sk=b39519335652415d5f4aa17c9e4af1d2</guid>
<pubDate>Sun, 09 Dec 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Sigfox Teacher Answers Your Questions</title>
<link>https://web.archive.org/web/20191204194157/https://medium.com/@ly.lee/sigfox-teacher-answers-your-questions-7e47122716dc?source=friends_link&amp;sk=7668c0b2ecc6333cd60ff8e536501ebd</link>
<description><![CDATA[I teach Sigfox to working professionals. Here are their questions…]]></description>
<guid>https://web.archive.org/web/20191204194157/https://medium.com/@ly.lee/sigfox-teacher-answers-your-questions-7e47122716dc?source=friends_link&amp;sk=7668c0b2ecc6333cd60ff8e536501ebd</guid>
<pubDate>Fri, 07 Dec 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>以 thethings.iO 來將 BBC micro:bit 感測器圖形化</title>
<link>https://www.kidscoding8.com/98097.html</link>
<description><![CDATA[如果您可以將您以電池供應電力的BBC micro:bit設置在城市裡的任何一個角落來收集感測資料 … 或者是隨時查看從家裡、學校、工作場所即時更新的感測資料 … 不是很酷嗎?]]></description>
<guid>https://www.kidscoding8.com/98097.html</guid>
<pubDate>Thu, 29 Nov 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Visualising BBC micro:bit sensors with thethings.iO</title>
<link>https://web.archive.org/web/20191204194120/https://medium.com/@ly.lee/visualising-bbc-micro-bit-sensors-with-thethings-io-5689fb613531?source=friends_link&amp;sk=a8cfc404362ecbe3a26823f6a70fa5cb</link>
<description><![CDATA[Wouldnt it be cool if you could plant your BBC micro:bit anywhere in the city (powered by batteries) to collect sensor data… And watch live updates of the sensor data from your home, school, workplace, … Even on the go?]]></description>
<guid>https://web.archive.org/web/20191204194120/https://medium.com/@ly.lee/visualising-bbc-micro-bit-sensors-with-thethings-io-5689fb613531?source=friends_link&amp;sk=a8cfc404362ecbe3a26823f6a70fa5cb</guid>
<pubDate>Sat, 17 Nov 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>連接 BBC micro:bit 與 Sigfox 物聯網</title>
<link>https://makerpro.cc/2018/11/connect-bbc-microbit-and-sigfox-iot/</link>
<description><![CDATA[使用 BBC micro:bit 連接 Sigfox 物聯網網路會是一個很好幫助孩子們理解感測器與感測網路如何運作的理想方式。micro:bit 是新式以電池提供電力的感測器裝置典範具備充足的處理能力並支援大多數的感測器類型。在教育用途上Sigfox 可能是今日用於城市規模測試的感測網路之中,最為便宜的方案。]]></description>
<guid>https://makerpro.cc/2018/11/connect-bbc-microbit-and-sigfox-iot/</guid>
<pubDate>Tue, 13 Nov 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Connect BBC micro:bit to Sigfox</title>
2024-04-01 11:03:41 +08:00
<link>https://web.archive.org/web/20181107052846/https://medium.com/coinmonks/connect-bbc-micro-bit-to-sigfox-4d1603d19350</link>
2022-09-15 17:46:16 +08:00
<description><![CDATA[BBC micro:bit connected to the Sigfox IoT network is the perfect way to help kids understand how Sensors and Sensor Networks operate. The micro:bit is a good representation of a modern battery-powered sensor device, with ample processing power and support for most types of sensors. For education, Sigfox is likely the cheapest option today for experimenting with a city-wide sensor network.]]></description>
2024-04-01 11:03:41 +08:00
<guid>https://web.archive.org/web/20181107052846/https://medium.com/coinmonks/connect-bbc-micro-bit-to-sigfox-4d1603d19350</guid>
2022-09-15 17:46:16 +08:00
<pubDate>Mon, 05 Nov 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>連接 STM32F103C8T6 Blue Pill 開發板與 Sigfox 物聯網</title>
<link>https://makerpro.cc/2018/11/connect-blue-pill-with-sigfox-part-one/</link>
<description><![CDATA[以 STM32 微處理器為核心的 STM32F103C8T6 Blue Pill 開發板連接 Sigfox 收發器模組來接取 Sigfox 物聯網網路可能會是設計一款低功率物聯網裝置的最佳組合。]]></description>
<guid>https://makerpro.cc/2018/11/connect-blue-pill-with-sigfox-part-one/</guid>
<pubDate>Wed, 17 Oct 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Connect STM32 Blue Pill to Sigfox</title>
2024-04-01 11:03:41 +08:00
<link>https://web.archive.org/web/20181107040125/https://medium.com/coinmonks/connect-stm32-blue-pill-to-sigfox-28c6f91bddc1</link>
2022-09-15 17:46:16 +08:00
<description><![CDATA[STM32 “Blue Pill” microcontroller connected to a transceiver module for the Sigfox IoT network might be the best combination for low-power IoT devices right now.]]></description>
2024-04-01 11:03:41 +08:00
<guid>https://web.archive.org/web/20181107040125/https://medium.com/coinmonks/connect-stm32-blue-pill-to-sigfox-28c6f91bddc1</guid>
2022-09-15 17:46:16 +08:00
<pubDate>Fri, 28 Sep 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Watch STM32 Blue Pill Juggle Two SPI Sensors With DMA</title>
2024-04-01 11:03:41 +08:00
<link>https://web.archive.org/web/20190114162720/https://medium.com/coinmonks/watch-stm32-blue-pill-juggle-two-spi-sensors-with-dma-20cd1aa89869</link>
2022-09-15 17:46:16 +08:00
<description><![CDATA[This article that explains all that I have learnt about SPI ports, DMA and interrupts on the Blue Pill]]></description>
2024-04-01 11:03:41 +08:00
<guid>https://web.archive.org/web/20190114162720/https://medium.com/coinmonks/watch-stm32-blue-pill-juggle-two-spi-sensors-with-dma-20cd1aa89869</guid>
2022-09-15 17:46:16 +08:00
<pubDate>Wed, 19 Sep 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Program Your First FPGA With GOWIN GW1N-4</title>
2024-04-01 11:03:41 +08:00
<link>https://web.archive.org/web/20180929144643/https://medium.com/coinmonks/program-your-first-fpga-with-gowin-gw1n-4-b0d5c22b9fea</link>
2022-09-15 17:46:16 +08:00
<description><![CDATA[As we learn how to program the FPGA, well soon realise that FPGA programming is really extraordinary, unlike any other kind of programming we have done before]]></description>
2024-04-01 11:03:41 +08:00
<guid>https://web.archive.org/web/20180929144643/https://medium.com/coinmonks/program-your-first-fpga-with-gowin-gw1n-4-b0d5c22b9fea</guid>
2022-09-15 17:46:16 +08:00
<pubDate>Wed, 05 Sep 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Juggling STM32 Blue Pill For Arduino Jugglers</title>
2024-04-01 11:03:41 +08:00
<link>https://web.archive.org/web/20181107052906/https://medium.com/coinmonks/juggling-stm32-blue-pill-for-arduino-jugglers-edf6820dc808</link>
2022-09-15 17:46:16 +08:00
<description><![CDATA[Upsizing from Arduino Uno to a 32-bit STM microcontroller doesnt have to be hard]]></description>
2024-04-01 11:03:41 +08:00
<guid>https://web.archive.org/web/20181107052906/https://medium.com/coinmonks/juggling-stm32-blue-pill-for-arduino-jugglers-edf6820dc808</guid>
2022-09-15 17:46:16 +08:00
<pubDate>Mon, 27 Aug 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Juggling Sigfox Downlink And Arduino Sensors With cocoOS</title>
<link>https://web.archive.org/https://medium.com/coinmonks/juggling-sigfox-downlink-and-arduino-sensors-with-cocoos-4594be59bf1b</link>
<description><![CDATA[Using the cocoOS task scheduler to run Sensor Tasks concurrently while waiting for the Network and UART Tasks]]></description>
<guid>https://web.archive.org/https://medium.com/coinmonks/juggling-sigfox-downlink-and-arduino-sensors-with-cocoos-4594be59bf1b</guid>
<pubDate>Mon, 20 Aug 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Juggling Arduino Sensors With cocoOS</title>
2024-04-01 11:03:41 +08:00
<link>https://web.archive.org/web/20180813101011/https://medium.com/coinmonks/juggling-arduino-sensors-with-cocoos-403e14ec28be</link>
2022-09-15 17:46:16 +08:00
<description><![CDATA[Juggle multiple Arduino sensors, using an open source library for cooperative processing: cocoOS]]></description>
2024-04-01 11:03:41 +08:00
<guid>https://web.archive.org/web/20180813101011/https://medium.com/coinmonks/juggling-arduino-sensors-with-cocoos-403e14ec28be</guid>
2022-09-15 17:46:16 +08:00
<pubDate>Sat, 11 Aug 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Why use FPGA for IoT? Heres what I think…</title>
<link>https://web.archive.org/https://medium.com/coinmonks/why-use-fpga-for-iot-heres-what-i-think-e513772514d6</link>
<description><![CDATA[Since FPGAs are already mainstream, could we use them to create IoT devices that are more power-efficient than current devices based on microcontrollers?]]></description>
<guid>https://web.archive.org/https://medium.com/coinmonks/why-use-fpga-for-iot-heres-what-i-think-e513772514d6</guid>
<pubDate>Tue, 31 Jul 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Coding the STM32 Blue Pill with Rust and Visual Studio Code</title>
2024-04-01 11:03:41 +08:00
<link>https://web.archive.org/web/20180809082010/https://medium.com/coinmonks/coding-the-stm32-blue-pill-with-rust-and-visual-studio-code-b21615d8a20</link>
2022-09-15 17:46:16 +08:00
<description><![CDATA[Let's learn Rust, a modern systems programming language that promotes safe, concurrent low-level coding]]></description>
2024-04-01 11:03:41 +08:00
<guid>https://web.archive.org/web/20180809082010/https://medium.com/coinmonks/coding-the-stm32-blue-pill-with-rust-and-visual-studio-code-b21615d8a20</guid>
2022-09-15 17:46:16 +08:00
<pubDate>Tue, 10 Jul 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Making my first ever PCB with Seeed Fusion PCB assembly service</title>
2024-04-01 11:03:41 +08:00
<link>https://web.archive.org/web/20181107053043/https://medium.com/coinmonks/making-my-first-ever-pcb-with-seeed-fusion-pcb-assembly-service-9af5736016b3</link>
2022-09-15 17:46:16 +08:00
<description><![CDATA[Heres the story of the first gadget that I have ever created, with help from the brilliant minds at Seeed in Shenzhen]]></description>
2024-04-01 11:03:41 +08:00
<guid>https://web.archive.org/web/20181107053043/https://medium.com/coinmonks/making-my-first-ever-pcb-with-seeed-fusion-pcb-assembly-service-9af5736016b3</guid>
2022-09-15 17:46:16 +08:00
<pubDate>Thu, 05 Jul 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Running Rust and FreeRTOS on the PADI IoT Stamp</title>
<link>https://web.archive.org/https://medium.com/coinmonks/running-rust-and-freertos-on-the-padi-iot-stamp-fb36c5ef4844</link>
<description><![CDATA[Better tools for building robust and reliable programs for microcontrollers]]></description>
<guid>https://web.archive.org/https://medium.com/coinmonks/running-rust-and-freertos-on-the-padi-iot-stamp-fb36c5ef4844</guid>
<pubDate>Mon, 18 Jun 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>First Impressions of Alibaba Cloud (Aliyun)</title>
<link>https://web.archive.org/web/20191204194108/https://medium.com/@ly.lee/first-impressions-of-alibaba-cloud-aliyun-688dc46fa9b8?source=friends_link&amp;sk=0685f5028f4ce9575dfae9cc9515143d</link>
<description><![CDATA[Could Alibaba Cloud be the economical cloud for high volume IoT?]]></description>
<guid>https://web.archive.org/web/20191204194108/https://medium.com/@ly.lee/first-impressions-of-alibaba-cloud-aliyun-688dc46fa9b8?source=friends_link&amp;sk=0685f5028f4ce9575dfae9cc9515143d</guid>
<pubDate>Mon, 21 May 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Multitasking on the Arduino with a Finite State Machine And why youll need it for Sigfox Downlink</title>
2024-04-01 11:03:41 +08:00
<link>https://web.archive.org/web/20180801172644/https://medium.com/coinmonks/multitasking-on-the-arduino-with-a-finite-state-machine-and-why-youll-need-it-for-sigfox-d52dafc55d8e</link>
2022-09-15 17:46:16 +08:00
<description><![CDATA[How to implement a Finite State Machine on the Arduino Uno]]></description>
2024-04-01 11:03:41 +08:00
<guid>https://web.archive.org/web/20180801172644/https://medium.com/coinmonks/multitasking-on-the-arduino-with-a-finite-state-machine-and-why-youll-need-it-for-sigfox-d52dafc55d8e</guid>
2022-09-15 17:46:16 +08:00
<pubDate>Sun, 13 May 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Realtime sensor data processing with thethings.io and Amazon Web Services Kinesis</title>
<link>https://web.archive.org/https://medium.com/coinmonks/realtime-sensor-data-processing-with-thethings-io-and-amazon-web-services-kinesis-e12ebb022106</link>
<description><![CDATA[How to experiment with IoT today while minimising the security and performance risks, and keeping costs low]]></description>
<guid>https://web.archive.org/https://medium.com/coinmonks/realtime-sensor-data-processing-with-thethings-io-and-amazon-web-services-kinesis-e12ebb022106</guid>
<pubDate>Tue, 01 May 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>I Teach IoT. Heres what youll learn</title>
2024-04-01 11:03:41 +08:00
<link>https://web.archive.org/web/20180801172627/https://medium.com/@ly.lee/i-teach-iot-heres-what-you-ll-learn-3e0d1b997dd0</link>
2022-09-15 17:46:16 +08:00
<description><![CDATA[Arduino, Low Power Networks, IoT Networks, IoT Analytics, ...]]></description>
2024-04-01 11:03:41 +08:00
<guid>https://web.archive.org/web/20180801172627/https://medium.com/@ly.lee/i-teach-iot-heres-what-you-ll-learn-3e0d1b997dd0</guid>
2022-09-15 17:46:16 +08:00
<pubDate>Tue, 24 Apr 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>Developing cost-effective, energy efficient IoT solutions for outdoor as well as indoor applications</title>
<link>https://www.opengovasia.com/articles/developing-cost-effective-energy-efficient-iot-solutions-for-outdoor-as-well-as-indoor-applications</link>
<description><![CDATA[Lup Yuen talks about two classes of IoT, deep IoT and wide IoT. Deep IoT devices require high bandwidth and power supply. UnaBiz looks at wide IoT, which refers to devices that are very light, battery-powered and operate on pervasive networks. They can work anytime, anywhere in Singapore and do not rely on WiFi or the cellular network.]]></description>
<guid>https://www.opengovasia.com/articles/developing-cost-effective-energy-efficient-iot-solutions-for-outdoor-as-well-as-indoor-applications</guid>
<pubDate>Tue, 20 Mar 2018 00:00:00 +0000</pubDate>
</item>
<item>
<title>How To Build Your Sigfox Server (Version 1.0)</title>
<link>https://web.archive.org/web/20191204194035/https://medium.com/@ly.lee/how-to-build-your-sigfox-server-version-1-0-6763732692fd?source=friends_link&amp;sk=641f65c458ec59fa27dddbe7735b118a</link>
<description><![CDATA[Building highly reliable, robust and scalable systems for processing Sigfox messages]]></description>
<guid>https://web.archive.org/web/20191204194035/https://medium.com/@ly.lee/how-to-build-your-sigfox-server-version-1-0-6763732692fd?source=friends_link&amp;sk=641f65c458ec59fa27dddbe7735b118a</guid>
<pubDate>Sat, 14 Oct 2017 00:00:00 +0000</pubDate>
</item>
<item>
<title>Story of the UnaShield</title>
<link>https://web.archive.org/https://medium.com/@ly.lee/story-of-the-unashield-ff9e78fd7726</link>
<description><![CDATA[Co-created with Upton Lai, the brilliant guy who could make anything]]></description>
<guid>https://web.archive.org/https://medium.com/@ly.lee/story-of-the-unashield-ff9e78fd7726</guid>
<pubDate>Wed, 05 Jul 2017 00:00:00 +0000</pubDate>
</item>
<item>
<title>IoT is a Bad Word</title>
<link>https://web.archive.org/web/20191204194240/https://medium.com/@ly.lee/iot-is-a-bad-word-9003d9fab638?source=friends_link&amp;sk=f7d58ebca338f326b6be8dcb79c7d6f5</link>
<description><![CDATA[IoT is about solving real problems (not imaginary ones) in a sustainable way]]></description>
<guid>https://web.archive.org/web/20191204194240/https://medium.com/@ly.lee/iot-is-a-bad-word-9003d9fab638?source=friends_link&amp;sk=f7d58ebca338f326b6be8dcb79c7d6f5</guid>
<pubDate>Fri, 26 May 2017 00:00:00 +0000</pubDate>
</item>
<item>
<title>Overcoming Productivity Challenges in the F&amp;B Industry</title>
<link>https://goo.gl/wLhDYo</link>
<description><![CDATA[ ]]></description>
<guid>https://goo.gl/wLhDYo</guid>
<pubDate>Thu, 23 Apr 2015 00:00:00 +0000</pubDate>
</item>
<item>
<title>Sigfox and Google Cloud Platform</title>
<link>https://goo.gl/vt6WZf</link>
<description><![CDATA[ ]]></description>
<guid>https://goo.gl/vt6WZf</guid>
<pubDate>Mon, 20 Oct 2014 00:00:00 +0000</pubDate>
</item>
<item>
<title>Patent: Enlargement of video content streamed from the internet</title>
<link>http://patentscope.wipo.int/search/en/detail.jsf?docId=WO2012002906</link>
<description><![CDATA[This invention relates to a system for displaying video content streamed from a network in a full screen mode. The system receives receiving a network address based on a selection from a user. The system then transmits a request for content from the network address and subsequently receives the content associated with the network address. A search is performed on the content for data that provides displaying a video content in a full screen mode. Upon detecting the data, the process generates the data and displays video content in full screen mode.]]></description>
<guid>http://patentscope.wipo.int/search/en/detail.jsf?docId=WO2012002906</guid>
<pubDate>Wed, 30 Jun 2010 00:00:00 +0000</pubDate>
</item>
<item>
<title>Patent: A system and method for providing mobile services</title>
<link>http://patentscope.wipo.int/search/en/detail.jsf?docId=WO2008004981</link>
<description><![CDATA[A system and method for providing mobile services, the system comprising: a mobile device executing a client application for generating a mobile service request; and a hub server for receiving and processing the mobile service request, wherein the mobile service request comprises location data of the mobile device, and the hub server pushes one or more mobile service offers to the mobile device based on the location data. The method comprises executing a client application for generating a mobile service request on a mobile device; receiving and processing the mobile service request at a hub server; and pushing one or more mobile service offers from the hub server to the mobile device based on location data, wherein the mobile service request comprises location data of the mobile device.]]></description>
<guid>http://patentscope.wipo.int/search/en/detail.jsf?docId=WO2008004981</guid>
<pubDate>Wed, 27 Jun 2007 00:00:00 +0000</pubDate>
</item>
</channel>
</rss>