Skip to content

Firmware development for UIRB (ATmega328P) with PlatformIO, custom boards, EEPROM tools, and debugging.

License

Notifications You must be signed in to change notification settings

DjordjeMandic/UIRBpio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Universal Infrared Blaster (UIRB) PlatformIO Project Example

The Universal Infrared Blaster PlatformIO project example provides an easy-to-use solution for developing firmware for the UIRB board with an ATmega328P microcontroller. A custom board definition for the UIRB V0.2 board simplifies development by leveraging PlatformIO's Atmel AVR platform and MiniCore. This repository includes everything needed to get started, such as hardware configurations, example firmware, and scripts for backing up EEPROM data with the urboot bootloader or a custom programmer like USBasp.


What is UIRB?

The Universal Infrared Blaster is a customizable development board designed for transmitting infrared signals and optionally receiving them with expansion boards. It enables the development of universal remote controllers, automation of IR devices, or exploration of microcontroller programming. PlatformIO simplifies project management and code building. (A link to the UIRB repository will be added in the future.)


Repository Structure

The repository structure follows the basic PlatformIO project layout. Refer to the PlatformIO quickstart guide for more details.

Root Directory

Key Directories


Getting Started

Prerequisites

Before starting, ensure you have the following:

Clone the Repository

git clone https://github.com/DjordjeMandic/UIRBpio.git
cd UIRBpio

PlatformIO Project Configuration File Overview

Environment Configurations

  1. Default (uirb-v02):
  2. USBasp (uirb-v02-usbasp):
    • Standard release build for the UIRB V0.2 board, using the USBasp programmer instead of a bootloader.
  3. Debug (uirb-v02-dbg):
  4. SimAVR (uirb-v02-dbg-simavr):
    • Debug build with simulation and debugging via SimAVR.
  5. AVR-Stub (uirb-v02-dbg-avrstub):
    • Debug build with serial debugging support via avr-stub.

Custom Targets & EEPROM Management

The script backup_eeprom.py adds custom targets for handling EEPROM data:

  • backupeep: Reads and saves EEPROM data in binary format.
  • archiveeep: Consolidates EEPROM backups into a ZIP file.
  • cleaneep: Removes empty EEPROM backup directories.

Usage

  1. Connect Your Device: Ensure the UIRB board is connected to your computer (via COM port or ISP programmer).
  2. Select an Environment: Choose an environment (e.g., uirb-v02, uirb-v02-usbasp, etc.) using PlatformIO's interface or CLI.
  3. Run Commands: Build, upload, or debug as needed:
    platformio run -e uirb-v02
    platformio upload -e uirb-v02
    platformio debug -e uirb-v02-dbg

Additional Notes

  • Ensure your hardware is compatible with the selected environment.
  • Manually specify the upload port for GDB debugging with avr-stub. This is a known limitation due to the platform-atmelavr issue #253.
  • If autodetection of the port based on hardware IDs fails, manually set the upload and monitor ports.
  • Refer to the UIRBcore Library for additional documentation and examples.
  • [Board documentation will be added soon.]

License

This project is licensed under the MIT License. See the LICENSE file for details.


Support

If you encounter any issues, feel free to open an issue on this repository. Contributions are welcome!


Acknowledgements

Djordje Mandic. For more information, visit linktr.ee/djordjemandic.

About

Firmware development for UIRB (ATmega328P) with PlatformIO, custom boards, EEPROM tools, and debugging.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published