The Curious Engineer

All blogs / Embedded / microcontrollers

lupyuen

lupyuen.org

IoT Techie and Educator

Embedded / microcontrollersOS / kernelDevOps / SRE / infrastructure

Posts
273 from 27 Jun 2007 to 21 Apr 2026
Posting
monthly (19 in the last year)
Kind
personal blog
Feed
https://lupyuen.org/rss.xml
Also at
https://lupyuen.codeberg.page/
Also at
https://lupyuen.github.io/

2026 18

  1. Apache NuttX RTOS: CI Build Retry works OK yay!
  2. Apache NuttX RTOS: More Testing of Retry for CI Builds
  3. Apache NuttX RTOS: Build Monitor
  4. Apache NuttX RTOS: Parsing the GitHub Build Logs
  5. Apache NuttX RTOS: Building the PR Monitor + Most Expensive Apps PR
  6. Apache NuttX RTOS: PR Monitoring + Third Most Expensive PR
  7. Apache NuttX RTOS: NTFC Download Failure + Second Most Expensive PR
  8. Apache NuttX RTOS: Testing of Retry for CI Builds
  9. Apache NuttX RTOS: Building PRs in Our Own Repo
  10. Apache NuttX RTOS: Analysing the Most Expensive PR
  11. Apache NuttX RTOS: Cost of NuttX PRs vs NuttX Apps
  12. Apache NuttX RTOS: Most Expensive PR
  13. Apache NuttX RTOS: Dumping the GitHub Jobs
  14. Apache NuttX RTOS: Too Many GitHub Runners
  15. Apache NuttX RTOS: GitHub Runners and Mystery Spikes
  16. Is Apache NuttX RTOS really OK? Daily Routine for NuttX Monitoring
  17. GitHub Actions pull_request_target vs Apache NuttX RTOS
  18. Grafana Dashboard on Google Cloud VM for Apache NuttX RTOS

2025 13

  1. Uncle Nerd Runs A Marathon
  2. Creating the Unicorn Emulator for Avaota-A1 SBC (Apache NuttX RTOS)
  3. Inside Arm64 MMU: Unicorn Emulator vs Apache NuttX RTOS
  4. Porting Apache NuttX RTOS to Avaota-A1 SBC (Allwinner A527 SoC)
  5. PR Test Bot for PinePhone (Apache NuttX RTOS)
  6. StarPro64 EIC7700X RISC-V SBC: Maybe LLM on NPU on NuttX?
  7. QEMU Test Bot for Pull Requests: Beware of Semihosting Breakout (Apache NuttX RTOS)
  8. Test Bot for Pull Requests ... Tested on Real Hardware (Apache NuttX RTOS / Oz64 SG2000 RISC-V SBC)
  9. Auto-Rewind for Daily Test (Apache NuttX RTOS)
  10. Rust Standard Library on Apache NuttX RTOS
  11. Fixing a uname bug (Apache NuttX RTOS)
  12. Forgejo Git Forge for Apache NuttX RTOS (Experimental)
  13. Git Bisecting a Bug (Apache NuttX RTOS)

2024 26

  1. Mastodon Server for Continuous Integration (Apache NuttX RTOS)
  2. Buy a Coffee for Lup Yuen Lee
  3. Failing a Continuous Integration Test for Apache NuttX RTOS (QEMU RISC-V)
  4. Rewinding a Build for Apache NuttX RTOS (Docker)
  5. macOS Build Farm for Apache NuttX RTOS (Apple Silicon)
  6. Continuous Integration Dashboard for Apache NuttX RTOS (Prometheus and Grafana)
  7. Optimising the Continuous Integration for Apache NuttX RTOS (GitHub Actions)
  8. Your very own Build Farm for Apache NuttX RTOS
  9. LLM Bot that reviews Pull Requests for Apache NuttX RTOS
  10. Continuous Integration for Apache NuttX RTOS
  11. Early Days of Rust Apps on Apache NuttX RTOS
  12. RISC-V Emulator for Sophgo SG2000 SoC (Pine64 Oz64 / Milk-V Duo S)
  13. Daily Automated Testing for Milk-V Duo S RISC-V SBC (IKEA TRETAKT / Apache NuttX RTOS)
  14. Apache NuttX RTOS on Sophgo SG2000 RISC-V SoC (Milk-V Duo S / Oz64 SBC)
  15. Rust Apps on Ox64 BL808 RISC-V SBC and Apache NuttX RTOS
  16. Rust Custom Target for QEMU RISC-V on Apache NuttX RTOS
  17. Rust Apps on Apache NuttX RTOS and QEMU RISC-V
  18. Too many Embedded Logs? PureScript might help (Ox64 BL808 SBC / Apache NuttX RTOS)
  19. (Homage to MakeCode) Coding Ox64 BL808 SBC the Drag-n-Drop Way
  20. QuickJS JavaScript Engine on a Real-Time Operating System (Apache NuttX RTOS)
  21. Zig runs ROM FS Filesystem in the Web Browser (thanks to Apache NuttX RTOS)
  22. TCC RISC-V Compiler runs in the Web Browser (thanks to Zig Compiler)
  23. Automated Testing with Ox64 BL808 Emulator (Apache NuttX RTOS)
  24. Emulate Ox64 BL808 in the Web Browser: Experiments with TinyEMU RISC-V Emulator and Apache NuttX RTOS
  25. Apache NuttX RTOS in a Web Browser? Adventures with TinyEMU and VirtIO
  26. Nim on a Real-Time Operating System: Apache NuttX RTOS + Ox64 BL808 SBC

2023 50

  1. $8 RISC-V SBC on a Real-Time Operating System: Ox64 + NuttX
  2. Fixed the UART Interrupt and Platform-Level Interrupt Controller (Ox64 BL808)
  3. RISC-V Ox64 BL808 SBC: UART Interrupt and Platform-Level Interrupt Controller (PLIC)
  4. RISC-V Ox64 BL808 SBC: NuttX Apps and Initial RAM Disk
  5. RISC-V Ox64 BL808 SBC: Sv39 Memory Management Unit
  6. RISC-V Ox64 BL808 SBC: Starting Apache NuttX Real-Time Operating System
  7. Ox64 BL808 RISC-V SBC: Booting Linux and (maybe) Apache NuttX RTOS
  8. Star64 JH7110 RISC-V SBC: Experiments with OpenSBI (Supervisor Binary Interface)
  9. Strange Workaround for TFTP Timeout in U-Boot Bootloader (Star64 JH7110 RISC-V SBC)
  10. (Slides) Apache NuttX RTOS for PINE64 PinePhone
  11. (Video) Apache NuttX RTOS for PINE64 PinePhone
  12. (Slides) PinePhone Touchscreen on NuttX: Handling MIPI DSI, Display Engine and I2C Touch Input
  13. (Video) PinePhone Touchscreen on NuttX: Handling MIPI DSI, Display Engine and I2C Touch Input
  14. (Slides) LVGL in WebAssembly: Building NuttX Touchscreen Apps with Zig and testing them in the Web Browser
  15. (Video) LVGL in WebAssembly: Building NuttX Touchscreen Apps with Zig and testing them in the Web Browser
  16. RISC-V Star64 JH7110: Power Up the Display Controller with U-Boot Bootloader
  17. RISC-V Star64 JH7110: Inside the Display Controller
  18. (Slides) What's inside a Smartphone? Exploring the internals with Apache NuttX Real-Time Operating System
  19. (Video) What's inside a Smartphone? Exploring the internals with Apache NuttX Real-Time Operating System
  20. RTOS on a RISC-V SBC: Star64 JH7110 + Apache NuttX
  21. Star64 JH7110 + NuttX RTOS: Creating the First Release for the RISC-V SBC
  22. Star64 JH7110 + NuttX RTOS: RISC-V PLIC Interrupts and Serial I/O
  23. Star64 JH7110 + NuttX RTOS: RISC-V Semihosting and Initial RAM Disk
  24. Star64 JH7110 + NuttX RTOS: RISC-V Privilege Levels and UART Registers
  25. Star64 JH7110 RISC-V SBC: Boot from Network with U-Boot and TFTP
  26. Apache NuttX RTOS on RISC-V: Star64 JH7110 SBC
  27. Booting RISC-V Linux on Star64 JH7110 SBC
  28. Inspecting the RISC-V Linux Images for Star64 SBC
  29. 64-bit RISC-V with Apache NuttX Real-Time Operating System
  30. NuttX RTOS for PinePhone: The First Year
  31. (Slides) TinyEMU RISC-V Emulator for Apache NuttX RTOS
  32. (Video) TinyEMU RISC-V Emulator for Apache NuttX RTOS
  33. (Video) Adventures of Ox64 BL808 RISC-V SBC with Apache NuttX RTOS
  34. (Video) Analysis of Real-Time Logs for Apache NuttX RTOS with PureScript
  35. NuttX RTOS for PinePhone: Feature Phone UI in LVGL, Zig and WebAssembly
  36. (Possibly) LVGL in WebAssembly with Zig Compiler
  37. Recipe for Wholemeal Sourdough with Bread Machine
  38. Inside a Smartphone Accelerometer: PinePhone with NuttX RTOS
  39. NuttX RTOS for PinePhone: Phone Calls and Text Messages
  40. NuttX RTOS for PinePhone: 4G LTE Modem
  41. NuttX RTOS for PinePhone: Simpler USB with EHCI (Enhanced Host Controller Interface)
  42. (Clickable) Call Graph for Apache NuttX Real-Time Operating System
  43. (Possibly) Emulate PinePhone with Unicorn Emulator
  44. NuttX RTOS for PinePhone: Exploring USB
  45. NuttX RTOS for PinePhone: LVGL Terminal for NSH Shell
  46. Apache NuttX RTOS trips ChatGPT
  47. NuttX RTOS for PinePhone: Boot to LVGL
  48. NuttX RTOS for PinePhone: Touch Panel
  49. NuttX RTOS for PinePhone: What is it?
  50. NuttX RTOS for PinePhone: Framebuffer

2022 33

  1. NuttX RTOS for PinePhone: LCD Panel
  2. NuttX RTOS for PinePhone: Display Engine
  3. NuttX RTOS for PinePhone: MIPI Display Serial Interface
  4. Preparing a Pull Request for Apache NuttX RTOS
  5. NuttX RTOS for PinePhone: Render Graphics in Zig
  6. Rendering PinePhone's Display (DE and TCON0)
  7. NuttX RTOS for PinePhone: Display Driver in Zig
  8. Understanding PinePhone's Display (MIPI DSI)
  9. NuttX RTOS for PinePhone: Blinking the LEDs
  10. NuttX RTOS for PinePhone: UART Driver
  11. NuttX RTOS for PinePhone: Fixing the Interrupts
  12. PinePhone boots Apache NuttX RTOS
  13. Apache NuttX RTOS on Arm Cortex-A53: How it might run on PinePhone
  14. Visual Programming with Zig and NuttX Sensors
  15. Zig Visual Programming with Blockly
  16. Read NuttX Sensor Data with Zig
  17. Build an LVGL Touchscreen App with Zig
  18. Build a PinePhone App with Zig and zgt
  19. Build an IoT App with Zig and LoRaWAN
  20. Zig on RISC-V BL602: Quick Peek with Apache NuttX RTOS
  21. (Mostly) Automated Testing of Apache NuttX RTOS on PineDio Stack BL604 RISC-V Board
  22. NuttX GPIO Expander for PineDio Stack BL604
  23. NuttX Touch Panel Driver for PineDio Stack BL604
  24. PineDio Stack BL604 runs Apache NuttX RTOS
  25. ST7789 Display with LVGL Graphics on Apache NuttX RTOS
  26. Rust talks I2C on Apache NuttX RTOS
  27. Apache NuttX Driver for BME280 Sensor: Ported from Zephyr OS
  28. Connect IKEA Air Quality Sensor to Apache NuttX OS
  29. BL602 EFlash Loader: Reverse Engineered with Ghidra
  30. Auto Flash and Test NuttX on RISC-V BL602
  31. Rust on Apache NuttX OS
  32. Encode Sensor Data with CBOR on Apache NuttX OS
  33. LoRaWAN on Apache NuttX OS

2021 37

  1. LoRa SX1262 on Apache NuttX OS
  2. SPI on Apache NuttX OS
  3. Apache NuttX OS on RISC-V BL602 and BL604
  4. PineDio LoRa Gateway: Testing The Prototype
  5. Build a Linux Driver for PineDio LoRa SX1262 USB Adapter
  6. Monitor IoT Devices in The Things Network with Prometheus and Grafana
  7. CBOR Payload Formatter for The Things Network
  8. Internal Temperature Sensor on BL602
  9. IoT Digital Twin with Roblox and The Things Network
  10. Encode Sensor Data with CBOR on BL602
  11. Grafana Data Source for The Things Network
  12. The Things Network on PineDio Stack BL604 RISC-V Board
  13. LoRaWAN on PineDio Stack BL604 RISC-V Board
  14. Rust on RISC-V BL602: Rhai Scripting
  15. PineDio Stack BL604 RISC-V Board: Testing The Prototype
  16. Rust on RISC-V BL602: Simulated with WebAssembly
  17. Rust on RISC-V BL602: Is It Sunny?
  18. RISC-V BL706 Audio Video Board
  19. Reverse Engineering WiFi on RISC-V BL602
  20. Machine Learning on RISC-V BL602 with TensorFlow Lite
  21. BL602 Bootloader
  22. Simulate RISC-V BL602 with WebAssembly, uLisp and Blockly
  23. uLisp and Blockly on PineCone BL602 RISC-V Board
  24. PineCone BL602 Talks LoRaWAN
  25. Build a LoRaWAN Network with RAKwireless WisGate Developer Gateway
  26. Run Rust RISC-V Firmware with BL602 IoT SDK
  27. PineCone BL602 RISC-V Board Receives LoRa Packets
  28. RAKwireless WisBlock talks LoRa with PineCone BL602 RISC-V Board
  29. Connect PineCone BL602 to LoRa Transceiver
  30. The RISC-V BL602 Book
  31. PineCone BL602 Talks UART to Grove E-Ink Display
  32. PineCone BL602 Blasting Pixels to ST7789 Display with LVGL Library
  33. PineCone BL602 talks SPI too!
  34. PineCone BL602 talks to I2C Sensors
  35. Mynewt GPIO ported to PineCone BL602 RISC-V Board
  36. Control PineCone BL602 RGB LED with GPIO and PWM
  37. Flashing Firmware to PineCone BL602

2020 33

  1. Porting Mynewt to PineCone BL602
  2. Better Open Source Advocate
  3. Debug Rust on PineCone BL602 with VSCode and GDB
  4. Connect PineCone BL602 to OpenOCD
  5. Quick Peek of PineCone BL602 RISC-V Evaluation Board
  6. (UNFINISHED) Draw your own PineTime Watch Face... From WebAssembly to Embedded Rust
  7. Create Your Own PineTime Watch Face in Rust... And Publish on crates.io
  8. Bluetooth Time Sync and LVGL on PineTime Mynewt
  9. Porting PineTime Watch Face from C to Rust On RIOT with LVGL
  10. Safer, Simpler Embedded Programs with Rust on RIOT (Presentation)
  11. Safer, Simpler Embedded Programs with Rust on RIOT (Video)
  12. Preview PineTime Watch Faces in your Web Browser with WebAssembly
  13. Build PineTime Firmware in the Cloud with GitHub Actions
  14. Wayland and LVGL on PinePhone with Ubuntu Touch
  15. (UNFINISHED) Auto Convert Go to Dart with an Abstract Syntax Tree
  16. Flutter State Management with Bloc for PineTime Companion App
  17. PineTime doesn't run Linux... But that's OK!
  18. Your First GTK App with Go and VSCodium
  19. Convert Go to Flutter and Dart for PineTime Companion App
  20. Your First Bluetooth Low Energy App with Flutter
  21. Porting MicroPython and wasp-os to Mynewt on PineTime Smart Watch (nRF52)
  22. Wireless Firmware Update In Action on PineTime Smart Watch (nRF52)
  23. MCUBoot Bootloader for PineTime Smart Watch (nRF52)
  24. Configure Mynewt for SPI Flash on PineTime Smart Watch (nRF52)
  25. Firmware Update over Bluetooth Low Energy on PineTime Smart Watch
  26. CHIP-8 Game Emulator in Rust for PineTime Smart Watch
  27. Visual Rust for PineTime Smart Watch
  28. My First Week As Embedded FOSS Advocate
  29. Debug RIOT-OS on PineTime with VSCode
  30. If you’re in the East, please consider Rust!
  31. Debug Rust+Mynewt Firmware for PineTime on Raspberry Pi
  32. OpenOCD on Raspberry Pi: Better with SWD on SPI
  33. Build and Flash Rust+Mynewt Firmware for PineTime Smart Watch

2019 32

  1. Optimising PineTime’s Display Driver with Rust and Mynewt
  2. Porting [druid] Rust Widgets to PineTime Smart Watch
  3. My 5-Year IoT Mission
  4. Hey GD32 VF103 on RISC-V: I surrender… For now
  5. Building a Rust Driver for PineTime’s Touch Controller
  6. Sneak Peek of PineTime Smart Watch… And why it’s perfect for teaching IoT
  7. Porting Apache Mynewt OS to GigaDevice GD32 VF103 on RISC-V
  8. Bluetooth Mesh with nRF52 and Apache Mynewt
  9. Coding nRF52 with Rust and Apache Mynewt on Visual Studio Code
  10. Build an NB-IoT GPS Tracker on STM32 L476 with Apache Mynewt and Embedded Rust
  11. Quick Peek of Huawei LiteOS with NB-IoT on Ghostyu NB-EK-L476 Developer Kit (STM32L476RCT6)
  12. Low Power NB-IoT on STM32 Blue Pill with Apache Mynewt and Embedded Rust
  13. Visual Embedded Rust Programming with Visual Studio Code
  14. Advanced Topics for Visual Embedded Rust Programming
  15. Rust Rocks NB-IoT! STM32 Blue Pill with Quectel BC95-G on Apache Mynewt
  16. Connect STM32 Blue Pill to NB-IoT with Quectel BC95-G and Apache Mynewt
  17. Get Started with NB-IoT and Quectel modules
  18. Visual Programming with Embedded Rust? Yes we can with Apache Mynewt and Google Blockly!
  19. Safer, Simpler Embedded Rust with Apache Mynewt on STM32 Blue Pill
  20. Hosting Embedded Rust apps on Apache Mynewt with STM32 Blue Pill
  21. Build Your IoT Sensor Network — STM32 Blue Pill + nRF24L01 + ESP8266 + Apache Mynewt + thethings.io
  22. Super Blue Pill — Like STM32 Blue Pill, But Better!
  23. Connect STM32 Blue Pill to ESP8266 with Apache Mynewt
  24. Create your IoT gadget with Apache Mynewt and STM32 Blue Pill
  25. Push AWS IoT sensor data to Redshift with Kinesis Firehose
  26. Transform and Import a JSON file into Amazon Redshift with AWS Glue
  27. Connecting AWS Lambda Node.JS to Redshift or PostgreSQL? Try AWS Lambda Layers!
  28. STM32 Blue Pill — Bootloading the WebUSB Bootloader
  29. STM32 Blue Pill — Dissecting the WebUSB Bootloader for MakeCode
  30. STM32 Blue Pill — Unit Testing with Qemu Blue Pill Emulator
  31. STM32 Blue Pill – Shrink your math libraries with Qfplib
  32. STM32 Blue Pill — Analyse and Optimise Your RAM and ROM

2018 23

  1. STM32 Blue Pill USB Bootloader — How I fixed the USB Storage, Serial, DFU and WebUSB interfaces
  2. STM32 Blue Pill Visual Programming with MakeCode, CODAL and libopencm3
  3. Sigfox Teacher Answers Your Questions
  4. 以 thethings.iO 來將 BBC micro:bit 感測器圖形化
  5. Visualising BBC micro:bit sensors with thethings.iO
  6. 連接 BBC micro:bit 與 Sigfox 物聯網
  7. Connect BBC micro:bit to Sigfox
  8. 連接 STM32F103C8T6 Blue Pill 開發板與 Sigfox 物聯網
  9. Connect STM32 Blue Pill to Sigfox
  10. Watch STM32 Blue Pill Juggle Two SPI Sensors With DMA
  11. Program Your First FPGA With GOWIN GW1N-4
  12. Juggling STM32 Blue Pill For Arduino Jugglers
  13. Juggling Sigfox Downlink And Arduino Sensors With cocoOS
  14. Juggling Arduino Sensors With cocoOS
  15. Why use FPGA for IoT? Here’s what I think…
  16. Coding the STM32 Blue Pill with Rust and Visual Studio Code
  17. Making my first ever PCB with Seeed Fusion PCB assembly service
  18. Running Rust and FreeRTOS on the PADI IoT Stamp
  19. First Impressions of Alibaba Cloud (Aliyun)
  20. Multitasking on the Arduino with a Finite State Machine – And why you’ll need it for Sigfox Downlink
  21. Realtime sensor data processing with thethings.io and Amazon Web Services Kinesis
  22. I Teach IoT. Here’s what you’ll learn
  23. Developing cost-effective, energy efficient IoT solutions for outdoor as well as indoor applications

2017 3

  1. How To Build Your Sigfox Server (Version 1.0)
  2. Story of the UnaShield
  3. IoT is a Bad Word

2015 1

  1. Overcoming Productivity Challenges in the F&B Industry

2014 1

  1. Sigfox and Google Cloud Platform

2010 1

  1. Patent: Enlargement of video content streamed from the internet

2007 1

  1. Patent: A system and method for providing mobile services

Undated 1

  1. Download PDF