Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Blog Post - A Semester of Progress and Growth: The Pi4Micronaut Journey #155

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 136 additions & 0 deletions blog/2024-12-08-pi4micronaut.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
---
title: A Semester of Progress and Growth - The Pi4Micronaut Journey
description: Pi4Micronaut, a Java library by Open Source with SLU for Micronaut, enables development on Raspberry Pi. Version 1.0 was released in the Maven Central repository on Pi Day.
slug: blog_pi4micronaut_journey
authors: [Yenkatarajalaxmimanohar]
tags: [announcement, news]
hide_table_of_contents: false
---

# A Semester of Progress and Growth: The Pi4Micronaut Journey

This semester has been transformative for the Pi4Micronaut project as we navigated through challenges, celebrated milestones, and stayed committed to building an open-source IoT library that integrates seamlessly with Raspberry Pi and Micronaut. Our journey has been marked by technical breakthroughs, collaborative problem-solving, and a focus on delivering value to our contributors, users, and clients.

## Project Overview

Pi4Micronaut is an IoT development project that integrates the Micronaut framework with Raspberry Pi components through the Pi4J library. The primary goal is to provide a comprehensive solution for controlling, monitoring, and automating Raspberry Pi-connected hardware.

## Technical Landscape and Innovation

### Hardware Component Integration

We tackled a variety of hardware components this semester, including complex devices like:

- **DC Motors**
- **Speed sensors**
- **Fan control systems**
- **4-digit seven-segment displays**
- **Analog to Digital Converters (ADC)**
- **Thermistor**
- **Seven-segment displays** (not fully done)

Each component presented unique challenges, requiring:

- Precise circuit design
- Careful testing methodologies
- Robust software integration
- Comprehensive documentation

Despite challenges like hardware testing, we adopted a systematic approach with controlled setups, step-by-step validation, and detailed documentation to ensure reliable results.

### Development Approach

We adopted a systematic approach to hardware and software integration, including:

- **Project and Environment setups:** Set up a Micronaut project with Java 17, configure dependencies, enable Raspberry Pi communication via I2C/SPI, guide Raspberry Pi OS installation, Java setup, remote development (SSH), and configure build/deployment for Pi4Micronaut on Raspberry Pi.
- **Creating Components:** Implement helper and controller classes for hardware interactions
- **Testing:** Hardware testing and developed unit tests for hardware components.
- **Documentation:** Create detailed docs for hardware components, API references, and example applications.

## Collaborative Ecosystem

### Team Dynamics

Our team's success was rooted in:

- **Regular knowledge-sharing sessions**
- **Hands-on hardware training**
- **Unified development environment setup**
- **Open communication channels**
- **Peer review and collaborative problem-solving**

One of the most rewarding aspects of this semester has been the growth of our team dynamic. To ensure every member could contribute effectively, we prioritized hands-on learning and resource sharing. From guiding teammates on hardware connections to setting up a unified development environment with Raspberry Pi and SSH access, we built a foundation of shared knowledge and collaboration. Weekly meetings and peer review sessions created an open and feedback-friendly environment, allowing the team to tackle technical and non-technical challenges together.

### Resource Optimization

Key strategies included:

- **SSH access** for remote Raspberry Pi development
- **Shared development environments**
- **Weekly progress meetings**
- **Flexible task redistribution**

## Challenges and Adaptability

### Technical Hurdles

We encountered several challenges:

- Hardware availability constraints
- Identifying the suitable communication protocol (e.g., I2C, SPI, GPIO) between the Raspberry Pi and the component posed a challenge due to varying compatibility and configuration requirements.
- Testing limitations
- Time management during academic periods

### Mitigation Strategies

To address these challenges, we implemented:

- Create a detailed hardware inventory checklist at the start or before each sprint, guided by the circuit diagram of the component, to ensure all necessary hardware is available before development begins.
- Alternative testing methodologies.
- Unit testing for unavailable hardware.
- Intermediate sprint deadlines.
Proactive communication with stakeholders.

## Documentation and Accessibility

### Documentation Philosophy

Our documentation efforts focused on:

- Clarity and comprehensiveness
- Step-by-step usage guides
- Circuit diagrams
- Code examples
- Consistent formatting

### Developer Experience

We prioritized:

- Lowering entry barriers for IoT development
- Creating user-friendly documentation
- Ensuring maintainability
- Supporting future contributors

## Client and Community Engagement

### Client Collaboration

Our approach emphasized:

- Regular client consultations
- Alignment with project expectations
- Transparent progress reporting
- Incorporating feedback

### Open Source Vision

We committed to:

- Community-driven development
- Encouraging contributions
- Creating an inclusive project ecosystem

- To further this vision, I actively participated in events like the Saint Louis Code and Coffee meetup, where I engaged with local developers, shared insights about the Pi4Micronaut project, and fostered interest in contributing to our open-source initiative.

![Saint Louis Code and Coffee](./stlouis-code-and-coffee-event-20241208/code-and-coffee.png)
10 changes: 8 additions & 2 deletions blog/authors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ ruthvik:
image_url: /img/ruthvik_avatar.png

Yash Kamal Bhatia:
name: Yash Kamal Bhatia
name: Yash Kamal Bhatia
title: Graduate research assistant at Open Source with SLU
url: https://github.com/yashb196
image_url: /img/yash_avatar1.jpg
Expand All @@ -38,4 +38,10 @@ maryam:
name: Maryam Moshrefi
title: Graduate research assistant at Saint Louis University
url: https://github.com/Moshrefi
image_url: /img/maryam_avatar.jpeg
image_url: /img/maryam_avatar.jpeg

Yenkatarajalaxmimanohar:
name: Yenkatarajalaxmimanohar Meda
title: Tech Lead at Open Source With SLU
url: https://github.com/yrlmanoharreddy
image_url: /img/manohar_avatar.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading