How Amazon Kiro helped a student turn an idea into a working Raspberry Pi project through conversation.
Amazon Kiro is an AI-powered IDE (Integrated Development Environment) that helps developers write code through natural conversation. Instead of memorising syntax or reading documentation for hours, you describe what you want to build and Kiro helps you implement it — writing code, debugging issues, and suggesting improvements along the way.
What started as a simple idea — "Can I type Morse code on a Raspberry Pi?" — evolved into a full-featured application. Here's how the conversation with Kiro shaped the project:
Kiro suggested using pygame for the display and mouse input, sense-hat for the LED matrix, pyttsx3 for text-to-speech, and threading for responsive UI. It laid out the class structure and main event loop.
Each feature was added through natural requests:
Kiro understood the context and implemented each feature while keeping the existing code working.
When issues came up, describing the problem was enough:
Kiro diagnosed threading race conditions and implemented proper locks and state management to fix them.
Physical setup varies for everyone. Simple requests like "Rotate the LED display 90 degrees anti-clockwise" or "Change the exit hold time from 10 to 5 seconds" were handled instantly.
Hardware projects traditionally require knowledge of Python, threading, hardware interfaces (GPIO, I2C), audio processing, and event-driven programming. With AI assistance, students can focus on what they want to build rather than how to implement every detail.
Instead of reading documentation for hours, students can start with a simple idea, see working code immediately, understand the implementation through explanations, and iterate freely.
This project uses multi-threading, state machines, audio synthesis with NumPy, and hardware abstraction with graceful fallbacks. AI handles the complexity while students learn the concepts.
Ideas can be tested in minutes, not hours. "Add an achievement tune" — done. "Actually, use Mario tune instead" — switched instantly. This keeps students engaged and experimenting.
Here are examples of the kind of natural-language requests that built this project:
"I want to make a Morse code input system using a mouse on my Raspberry Pi with a Sense HAT."
🤖 Kiro:Designed the full architecture, created the MorseCodeSystem class, set up pygame for mouse input, and implemented the Morse dictionary lookup.
"The LED shows scrambled text when I reset during a message."
🤖 Kiro:Identified a threading race condition where the LED was being written to from multiple threads simultaneously. Added led_lock and proper state clearing.
"Add a Mario tune when the message is complete."
🤖 Kiro:Implemented play_mario_tune() using NumPy sine wave synthesis with proper note frequencies, durations, and attack/decay envelopes.
"Let me also type text on the keyboard and hear it as Morse code."
🤖 Kiro:Added a keyboard mode toggle (TAB key), text input handling, and a text_to_morse_audio() function that converts each character to beeps.
Breaking a big idea into smaller, manageable tasks that can be built and tested one at a time.
Learning to describe technical requirements precisely — a skill that's valuable in any engineering career.
Describing what you see vs. what you expected, and working through the diagnosis logically.
Understanding how professional software is structured — classes, methods, event loops, and separation of concerns.
Building features incrementally, testing as you go, and refining based on real-world feedback.
Learning to work effectively with AI tools — a skill that will be increasingly important in the future of software development.