Automated Device Program Generation for Microcontroller Memory Constraints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Microcontrollers are limited by their memory capacity and processing power, restricting program complexity and external communication capabilities, making programming challenging and error-prone.

Innovation Solution

An automated device program generation system that uses a graphical user interface to visualize and select physical attributes of a microcontroller, generating code that offloads processing to a remote coding server, expanding functionality and simplifying programming by coordinating with external servers for data handling and execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If programs are stored locally in microcontroller memory, then program execution is fast and reliable, but memory capacity limits program complexity and size

Engineering Contradiction:
Improveprogram execution reliabilityVSAvoidprogram complexity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides the program into two segments: a small bootstrap loader stored locally in the microcontroller's memory (maintaining reliability) and the bulk of the program code stored remotely on external servers (enabling complexity). The local memory only needs to hold the loader and minimal runtime code, while complex programs are fetched and executed from remote storage, resolving the contradiction between local execution reliability and program size capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a remote server as an intermediary between the microcontroller and the program code. The server stores large-scale programs and communicates them to the microcontroller as needed. This intermediary enables the system to access complex programs without requiring large local memory, while the microcontroller maintains its simple, reliable local execution environment through the mediator's support.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If more code is stored in microcontroller memory, then program functionality increases, but usable memory space decreases

Engineering Contradiction:
Improveprogram functionalityVSAvoidusable memory space
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent extends the storage dimension from purely local (microcontroller memory) to include remote dimensions (external servers). By adding this external storage dimension, the system can access vast amounts of program code without consuming any additional local memory space. The microcontroller's usable memory remains intact while functionality expands through remote program access.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If programming is done manually with traditional methods, then program execution is efficient, but programming becomes challenging and error-prone

Engineering Contradiction:
Improveprogram execution efficiencyVSAvoidprogramming difficulty
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements self-service programming where the system automatically generates, compiles, and uploads programs to remote storage based on user specifications. Instead of requiring users to manually write complex code, the system serves itself by automatically creating the necessary program code, managing memory allocation, and handling the deployment process, thereby reducing programming difficulty while maintaining execution efficiency.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent performs preliminary actions by pre-compiling and storing program code on remote servers before it is needed by the microcontroller. This preliminary preparation of code eliminates the need for users to manually program during operation, reducing programming difficulty while ensuring that optimized, efficient code is ready for execution when deployed to the device.

Inventive Principle:
Principle #10Preliminary action

4Speed

If microcontrollers use local libraries and processing, then response time is fast, but communication capabilities are restricted to local applications

Engineering Contradiction:
Improveresponse timeVSAvoidcommunication capabilities
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent makes the microcontroller system universal by enabling it to access and execute programs from multiple sources (local memory and remote servers). This multi-functionality allows the same hardware platform to handle both fast local responses and complex remote communications, adapting to various application requirements without sacrificing response time or communication versatility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9619112B2Method and apparatus for automatic device program generation
Publication Date: 2017.04.11 CIANMBELLA LTD
  • US9619112B2 patent drawing
  • US9619112B2 patent drawing
  • US9619112B2 patent drawing

AI summary

A method and apparatus for automatic generation of a device program including determining a controller from among a plurality of controllers displayed in a graphical user interface (GUI) on a user device communicatively coupled to a corresponding external controller, generating a user interactive pin layout in the GUI for the controller, displaying in the GUI, a plurality of operations for execution by the controller, determining an operation from among the plurality of operations for the controller, associating pins selected to parameters of the operation, receiving parameter data for the operation from at least one data entry field in the GUI, generating a program for the controller based on the user interactive pin layout, the received parameter data, the operation, and sending the program for storage in a memory on the controller.