Skip to the content.

🛠 Implementation

TV Remote and IR Sensor

The TV remote was programmed with a specific TV code so that each button could be uniquely identified. By using the Saleae Digital Logic Analyzer, we captured and analyzed the waveforms of button presses, converting them into hexadecimal format for recognition by the CC3200 board.

The IR sensor was built based on the manufacturer’s circuit diagram. The output was connected to a GPIO pin on the CC3200, where a GPIO interrupt handler was used to detect signals. These signals were processed using a SysTick timer, allowing us to determine whether the trigger represented a zero, one, or clear signal. The CC3200 handled all button recognition internally.


AWS Integration

AWS served as the backbone of our prototype, handling GIF storage and processing. We leveraged AWS IoT Core, S3 Buckets, and Lambda Functions to manage data flow between the GIPHY API and the CC3200.

IoT Core

IoT Core was used to detect user actions, such as search queries and GIF selection. A device shadow was created, and SQL-based message routing rules were established to trigger different events. The getURL variable distinguished actions:

S3 Buckets

S3 Buckets stored all essential data, including GIF URLs and processed RGB565 frames. The bucket permissions were modified to allow public access, enabling direct HTTP GET requests from the CC3200 board.

Example S3 Bucket Policy

Bucket Policy

To enable public access, we had to:

  1. Disable public access restrictions.
  2. Set bucket ownership to “Bucket Owner Preferred”.
  3. Apply a policy to permit object access.

Lambda Functions

Lambda functions were used to trigger automated processes and handle data transformation.

Lambda Functions Used

Lambda Functions

Each function played a specific role:

1️⃣ findGifs_Giphy

Example Input for findGifs_Giphy

findGifs_Giphy Event

2️⃣ selectGIFfromGIPHY

Example Input for selectGIFfromGIPHY

selectGIFfromGIPHY Event

3️⃣ gifConverter

Example JSON Data Passed to Lambda

JSON Data


TI CC3200 Board

The CC3200 handled HTTP requests, user interface logic, and display rendering.

HTTP Request Handling

The menu system was structured with three main states:

A one-hot state machine was used to manage state transitions, ensuring smooth menu navigation and animation playback.

Accelerometer & OLED Display

To optimize performance, we:


🔙 Return to Main Page

🔙 Return to Home