Summary of Key Points
This article illustrates a critical bottleneck that AI faces when moving from the pure software domain to the real physical world (such as hardware, robotics, and automobiles) through a real-case study of an STM32 hardware bug. The main issue is that many crucial pieces of information in the real world are not digitized, making it impossible for AI to detect them. Moreover, observing the real world itself can alter the outcomes, making it difficult for AI to identify the root causes of problems. The article suggests that for AI to conquer the physical world, it must first overcome the engineering challenge of digitizing reality (equivalent to giving AI “eyes and ears”). In this process, the role of human engineers will shift from writing code to identifying what the machines are unable to perceive.
AI: A “Top Student” in the Pure Software Realm, but Lost in the Hardware World
AI excels at writing code and fixing software bugs, not because it is smarter than humans, but because the software world is inherently “digital-friendly.” Requirements, code, and error logs are all in text format, and test results are structured data that can be easily analyzed. AI can complete the entire process of writing code, compiling it, running tests, and making adjustments on its own. As long as all tests pass, it assumes the task is completed.
However, the situation is completely different in the hardware world. For example, the STM32 board in the article experienced intermittent network failures, and despite extensive efforts by AI, the cause could not be determined. This is because AI can only see the code and cannot detect invisible issues such as sudden drops in voltage, overlapping memory addresses, or conflicts between DMA and Cache. In the real world, there is no stable correlation between the causes and symptoms, and without this additional data, AI cannot infer the problems.
Bugs in the Real World Hide in Hidden Corners
Web service errors are clear and specific (e.g., “connection failed” or “array out of bounds”), but hardware errors are random and ambiguous. Issues like intermittent network failures may only occur under certain conditions (e.g., in summer) or disappear when a debugger is connected. The root causes of these problems may lie outside the code:
- Hardware: Voltage fluctuations, high temperatures, differences in chip batches, issues with PCB wiring.
- System: Overlapping memory areas, DMA reading data from Cache before it is written to memory.
- Environmental: Electromagnetic interference, bus contention (multiple devices competing for the same data bus).
Most of these factors are not converted into digital information that AI can understand, leaving AI unable to identify problems, much like a blind person trying to understand an elephant.
Observation Changes the Reality
Debugging hardware has a problematic aspect: trying to observe a problem can actually alter it. For instance, adding a log line can change the system’s timing, causing existing bugs to disappear; connecting a debugger can affect interrupt responses; reducing the optimization level of code (from -O2 to -O0) can make bugs disappear. AI does not understand this, and it can only infer based on the code and logs it sees. For example, if a bug disappears after adding a log, AI might assume the log fixed the problem, rather than realizing that the timing has changed. This is why experienced engineers can quickly locate issues; they understand how observations can disrupt the system, whereas AI lacks this practical knowledge.
For AI to Succeed in the Real World, It Needs “Eyes and Ears”
To enter the physical world (robotics, automobiles, industrial equipment), AI cannot rely solely on smart models and context. The key is to enable it to “see” the real world. This requires a series of digitalization efforts:
- Adding more sensors: To measure voltage, temperature, vibration, etc.
- Recording more data: Chip register states, bus transaction traces, waveforms from oscilloscopes.
- Optimizing hardware architecture: To ensure that AI can verify that its commands are actually executed (e.g., whether a robot has stopped or a device has been turned off).
The role of human engineers will also shift from writing code to identifying what the machines cannot perceive, such as which states are inferred by software (not necessarily real), which “successes” are just API responses (not actual actions), and which safety checks use outdated data. When AI can generate code automatically, the most dangerous scenario is not a coding error, but a system that runs smoothly but misunderstands the real world from the start.
In Conclusion
AI thrives in the digital world, but to conquer the physical world, we need to convert reality into digital information it can understand. This requires not only more advanced models but also additional components that give AI the ability to “see, hear, and process” the real world. The core value of human engineers lies in helping AI to bridge the gap between the digital and the physical.