---
logosub: "Avans TI student, year 3"
language: "jp"
title: "Embedded Internet Radio"
year: "2014"
date: "2014-01-01"
---

<div class="alert alert-warning" role="alert">
   <div>
<span>申し訳ありませんが、このページはまだ日本語に翻訳されていません。</span>
   </div>
</div>

This project gave me the opportunity to work with the SIR120 internet radio made by the company StreamIT. The radio involved connecting to exiting internet streams and interfacing with the <a href="https://en.wikipedia.org/wiki/Liquid-crystal_display" target="_blank" rel="noopener noreferrer">LCD</a> and buttons on the device. The code was written in <a href="https://en.wikipedia.org/wiki/C_(programming_language)" target="_blank" rel="noopener noreferrer">C</a>.                

<figure class="text-center">
  <picture class="d-flex justify-content-center">
    <source
      media="(max-width: 510px)"
      srcset="/images/software/projects/embedded-internet-radio/front-w240.webp"
    />
    <source
      media="(max-width: 850px)"
      srcset="/images/software/projects/embedded-internet-radio/front-w480.webp"
    />
    <img
      src="/images/software/projects/embedded-internet-radio/front.webp"
      alt="Radio front"
      class="img-fluid"
    />
  </picture>
    <figcaption class="figure-caption mt-2">
    <a href="/images/software/projects/embedded-internet-radio/front.webp">
      Radio front
    </a>
  </figcaption>
</figure>

## Development

The radio had an existing operating system called <a href="https://en.wikipedia.org/wiki/Ethernut" target="_blank" rel="noopener noreferrer">Nut/OS</a>, an open source OS. Nut/OS provided the TCP/IP stack we required to connect the device to the internet. The radio was able to play a select number of internet streams. The user could read the stream channel on the LCD and use the buttons to navigate between them.

This project often had code overhauls because our code kept moving towards a more <a href="https://en.wikipedia.org/wiki/Object-oriented_programming" target="_blank" rel="noopener noreferrer">OOP</a> approach using structs rather than large chunks of produral code.

<figure class="text-center">
  <picture class="d-flex justify-content-center">
    <source
      media="(max-width: 510px)"
      srcset="/images/software/projects/embedded-internet-radio/inside-w240.webp"
    />
    <source
      media="(max-width: 850px)"
      srcset="/images/software/projects/embedded-internet-radio/inside-w480.webp"
    />
    <img
      src="/images/software/projects/embedded-internet-radio/inside.webp"
      alt="Radio insides"
      class="img-fluid"
    />
  </picture>
    <figcaption class="figure-caption mt-2">
    <a href="/images/software/projects/embedded-internet-radio/inside.webp">
      Radio insides
    </a>
  </figcaption>
</figure>

## Design

A simple flowchart was created to show how the user could navigate through the menu.

<figure class="text-center">
  <picture class="d-flex justify-content-center">
    <source
      media="(max-width: 510px)"
      srcset="/images/software/projects/embedded-internet-radio/flowchart-w240.webp"
    />
    <source
      media="(max-width: 850px)"
      srcset="/images/software/projects/embedded-internet-radio/flowchart-w480.webp"
    />
    <img
      src="/images/software/projects/embedded-internet-radio/flowchart-w800.webp"
      alt="Radio insides"
      class="img-fluid"
    />
  </picture>
    <figcaption class="figure-caption mt-2">
    <a href="/images/software/projects/embedded-internet-radio/flowchart.webp">
      Menu flowchart
    </a>
  </figcaption>
</figure>
