Hello World!

Welcome to the CloudMouse Engineering Blog!
We're thrilled you're here. This isn't just another platform for product announcements; this is your access pass to the technical core of the CloudMouse SDK.

Inside the CloudMouse SDK Engineering Lab

Here, we peel back the layers on embedded systems engineering, revealing the design decisions, deep-dive implementations, and hard-won stability fixes that make our IoT platform tick.

 

What we'll be talking about here

Our mission here is simple: to share the engineering journey behind creating a robust, reliable, and scalable Software Development Kit for modern IoT devices, especially those built on the ESP32.

We'll focus on three main pillars of technical discussion:

 

1. SDK implementation deep dives

We won't just tell you what the SDK does; we'll show you how it does it. This involves deep dives into complex topics that ensure device stability:

  • Concurrency & Stability: As seen in our first technical post (fixing NVS crashes), we'll dissect how we achieve thread safety using FreeRTOS primitives and smart design patterns like Nested Locking.
  • Performance Optimization: How do we balance memory consumption and CPU usage on a resource-constrained device? We'll show benchmarks and trade-offs.
  • Design Decisions: Why did we choose a specific third-party library? Why did we structure the configuration layer this way? We'll provide the rationale behind every major architectural choice.

 

2. The Core of the CloudMouse architecture

At the heart of the CloudMouse SDK is its ability to handle asynchronous events reliably. We'll frequently discuss our centralized communication layer: the Event Bus.

The Event Bus decouples different parts of the firmware, ensuring that the Wi-Fi stack doesn't directly interfere with the sensor reading task. This is the secret sauce for clean, maintainable, and stable code.

We'll explain this concept with pseudocode examples:

// ❌ The Problem: Tight Coupling
Task_WiFi.onConnect() {
    Task_Sensor.startReading(); // Direct interference
}

// ✅ The Solution: Event Bus
// 1. Task_WiFi publishes an event
Task_WiFi.publish("WIFI_CONNECTED"); 

// 2. Task_Sensor subscribes to that event
Task_Sensor.subscribe("WIFI_CONNECTED", handleStart); 

// Result: No direct dependency, superior stability.

 

3. Building On Top of the SDK (Tutorials)

We want you to build amazing things with the CloudMouse SDK. Therefore, the blog will feature practical tutorials demonstrating how to leverage the core functionalities.

  • Creating Custom Handlers: Learn how to inject your own business logic into our core loop without breaking the SDK's stability contracts.
  • Integrating New Sensors: A step-by-step guide on adding a new peripheral and feeding its data into our communication stack.
  • Advanced Features: Tutorials on over-the-air (OTA) updates, secure certificate handling, and so on.

 


 

Expect Code, Not Fluff

In line with our engineering philosophy, this blog will be heavy on technical depth and light on marketing jargon.

To ensure clarity, every concept, design pattern, and complex fix will be accompanied by real code snippets or illustrative pseudocode. We believe that showing the implementation is the best way to explain the architecture.

We're looking forward to sharing our passion for building robust, clean embedded software. Whether you're a seasoned firmware developer or a hobbyist looking to scale your first IoT project, the CloudMouse Engineering Blog is your resource for leveling up your embedded game.

Dive into the first article and see how we fixed stability issues using the Nested Locking pattern!

Happy coding everyone!