A collection of embedded systems projects demonstrating firmware development, control systems, authentication mechanisms, and unmanned aerial system (UAS) implementations. These projects showcase practical applications of microcontroller programming, sensor integration, and real-time control algorithms.
An embedded flight controller and ground station visualization platform for unmanned aerial systems.
Key Features:
- PID controller implementation for flight stability
- Sensor fusion using IMU (MPU6050) for orientation tracking
- PWM motor control for precise speed adjustment
- Ground Control Station (GCS) with UI for monitoring and commanding
- Real-time telemetry and visualization
Technologies:
- C++ for UAV firmware
- Python for GCS software
- IMU sensor integration
- PWM motor control
A secure embedded authentication system with OLED display interface and keypad input.
Key Features:
- Password authentication with verification and re-entry capabilities
- Menu-driven interface for password management and system settings
- OLED display feedback (128x64 resolution)
- RGB LED and buzzer status indicators
- Access attempt handling with feedback
- Interactive features including a simple game
Technologies:
- C++ firmware
- OLED display drivers
- Keypad input handling
- LED and buzzer control
A modular password authentication framework with hidden internal security logic.
Key Features:
- Callback-based interface for custom authentication flows
- Secure framework design where sensitive logic is abstracted
- Ideal for embedded systems and security SDKs
- User-implementable interfaces for password handling
Technologies:
- C++ modular design
- Interface-based architecture
-
Hardware Requirements:
- Microcontroller (e.g., Arduino, ESP32, or similar)
- IMU sensor (MPU6050) for UAS project
- OLED display (128x64) for authenticator
- Keypad for input
- Motors and ESCs for UAS
-
Software Requirements:
- Arduino IDE or PlatformIO for firmware development
- Python 3.x for GCS software
- Git for version control
-
Clone the repository:
git clone https://github.com/Abdulrhman-Bahaa/embedded-systems-apps.git cd embedded-systems-apps -
For UAS GCS software:
cd uas/gcs_software pip install -r requirements.txt # If requirements.txt exists
-
For firmware projects, open the respective directories in your preferred IDE and upload to your microcontroller.
embedded-system-projects/
├── README.md
├── images/
├── uas/
│ ├── README.md
│ ├── gcs_software/
│ │ └── src/
│ │ ├── application.py
│ │ ├── gcs_backend.py
│ │ ├── gcs_ui.py
│ │ └── uav.py
│ └── uav_firmware/
│ ├── include/
│ │ ├── application.hpp
│ │ ├── control.hpp
│ │ ├── gcs.hpp
│ │ ├── imu.hpp
│ │ ├── motors.hpp
│ │ └── std_types.hpp
│ └── src/
│ ├── application.cpp
│ ├── control.cpp
│ ├── gcs.cpp
│ ├── imu.cpp
│ └── motors.cpp
├── oled_based_password_authenticator/
│ ├── include/
│ │ ├── oled_menu.h
│ │ ├── pass_auth_system_config.h
│ │ └── pass_auth_system_main.h
│ └── src/
│ ├── oled_menu.cpp
│ ├── pass_auth_system_interfaces.cpp
│ └── pass_auth_system_main.cpp
└── shadow_auth/
├── include/
│ └── pass_auth_system_main.h
└── src/
├── pass_auth_system_interfaces.cpp
└── pass_auth_system_main.cpp
- Upload UAV firmware to your flight controller
- Run the GCS software:
python gcs_software/src/application.py - Connect to the UAV via serial communication
- Monitor telemetry and send commands through the UI
- Upload the firmware to your microcontroller
- Connect OLED display, keypad, LEDs, and buzzer
- Power on the system and follow on-screen prompts
- Use keypad to enter passwords and navigate menus
- Include the ShadowAuth headers in your project
- Implement the required callback interfaces
- Integrate with your authentication logic
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Abdulrhman Bahaa - GitHub Profile
Project Link: https://github.com/Abdulrhman-Bahaa/embedded-systems-apps