top of page

Bait-Cast-Reel

Client

ECE 1895: Junior Design

Location

Pittsburgh, PA

Year

2022

Resources

mark-github-512.png

BOM

Bait-Cast-Reel is a fishing-inspired variation of the original Bop-It toy. Rather than the traditional "Bop It," "Twist it," "Pull It" prompts that the original device gives, we prompt the user with "Bait It," "Cast It," and "Reel It." These prompts require different tangible user inputs and must be completed before the timer runs out. As the user acquires a higher score, the prompts increase in frequency, adding a level of natural difficulty scaling. 

My team designed the hardware, software, and mechanical enclosure of the device. This involved using a variety of breakout boards, a custom MCU PCB, and multiple physical fabrication techniques. 

This project was completed for the University of Pittsburgh's

ECE 1895: Junior Design. 

money.png

User Experience

To provide the experience of actions that might be completed while the user is fishing, our 3 tangible inputs that the user is required to complete are

  • Touching the hook at the end of the rod to mimic the act of Baiting

  • Casting the rod - i.e. moving the rod across a wide arc above one's head

  • Reeling in the catch

The order of the prompts is randomized, so we decided to indicate to the user which prompt was triggered through visual and auditory signaling.

For each prompt, the user must provide a successful input before the time allocated to the prompt runs out. If the user provides the input successfully, the score is incremented and displayed on a 7-segment readout. If the user does not provide the correct input in the designated block of time, the game is lost. As the user's score increases, the allocated amount of time to complete each prompt decreases in length. This makes for a monotonic linear increase in difficulty level and intensity.

Tangible Implementation

To implement the functionality described above, we used 3 different sensors.

  • Bait functionality uses a wire run down the rod into a capacitive touch breakout board. 

  • Cast functionality uses an embedded accelerometer to measure the acceleration and orientation of the rod

  • Reel functionality uses a rotary encoder to ensure that the reel has been cranked 1 full rotation. 

For visual and auditory signaling, we used 3 different LED colors and an amplified speaker to output tones of varying frequency. We also used a 7-segment display with 4 digits in case we wanted to display other values. 

As the user experience (and therefore tangible user interface [TUI]) is the most important aspect of our design, we made sure that we knew how the peripherals transducing user inputs worked before implementing further hardware. You can see our breadboarded testing circuit narrated by my group member Maya Roman.   

Technical Implementation

To get a jumpstart on testing and assembly, we significantly frontloaded the development of our PCB and mechanical enclosure, especially with a PCB lead time of ~2 weeks and a project timeline of 5-6 weeks. We split up tasks and tracked our project's progress on a Kanban board. 

gantt.png

With our peripherals tested, we finalized the top-level system diagram of our hardware. We selected our peripherals very carefully to only use one communication protocol - I2C. This simplified wiring tremendously and allowed us to place all peripherals on one bus. Furthermore, each peripheral defaulted to a unique address and required no logic-level conversion. This simplified our PCB design as well, especially when a mistake on our PCB could mean a 10-day delay. 

We decided to use an ATMEGA328P microcontroller. This allowed us to program using the Arduino IDE. As we had little experience with embedded programming, learning to program a new MCU would be very challenging. 

The ATMEGA328P is burned with code through SPI. 

While we didn't yet have the hardware to manifest our software, we were able to also finalize an abstract diagram of how the code would flow. 

The great thing about a team project is that this software was able to be developed in parallel with the physical components. 

PCB Design

The bulk of my contributions came in the form of schematic capture and PCB layout. We had a ton of off-board connections to deal with. Additionally, we wanted to house all components in the bulb of the fishing rod, motivating a small form factor. You'll notice quite a few design choices in the PCB.

  • DIP Socket - This was included for two reasons: In case we fried the IC and had to replace it, and to prevent dumping lots of heat in the delicate inner circuitry when soldering. 

  • Test Points - +5V and GND test points are useful to power the board and probe around during troubleshooting. 

  • SPI Pins - We included functionality to burn code onto the ATMEGA328P directly. This DIP package has a relatively low number of mating cycles, and we wanted to avoid taking it in and out of its socket. 

  • JST Connectors - We used 4 different types of JST connectors - 2,4,5, and 7-pin - to connect all peripherals. These 4 types were selected based on both supply chain availability and how many pins we needed. For example, a few breakout boards contained some digital interrupt input pins. As these might have proved useful later in development, we included positions on the connectors for them just in case we decided to use them. 

Though they require 1-2 extra days of lead time, I pushed hard for a 4-layer board design. We have enough peripherals and sophisticated routing to do in a small form factor that I believed an extra PWR and GND plane are justified. Yes, we were working with low serial communication frequencies (~400 kHz) and high-impedance ground traces probably wouldn't make a difference, but I like to rigorously adhere to best PCB design practices to keep a clean routing and signal integrity. The 4-layer design is what you see above. 

I had to quickly copy the 4-layer design and transform it to a 2-layer design, however, as there were concerns about whether the board would arrive in time. 

This turned out to be an incredibly lucky occurrence. Our 4-layer boards arrived with incomplete copper deposition for a still-unknown reason, shown to the right. We proceeded by using our fully functional (but less pretty) 2-layer board. 

Enclosure Design

Our fishing rod-esque enclosure came together from an array of manufacturing techniques. The major core of the design is the bulb at the base of the rod, near the handle. It contains all PCB modules and almost all peripherals. 

Side View

Front View, Cross-Section

We used a simple PVC pipe for the actual rod portion of the enclosure and fastened the pipe to the bulb through a cleverly-designed laser-cut piece of acrylic and screws. We decided to use only M2 screws for the entire design to keep assembly simple. We almost exclusively used fasteners to avoid adhesives and, by extension, the permanent joining of materials. 

Maya machined a small hook out of aluminum. This serves two purposes: to look cool and to serve as a conductor that ultimately connects back electrically to the capacitive touch module. 

Below is a CAD animation of the complete enclosure assembly.

Final Assembly & TeSting

Our careful design decisions resulted in a relatively smooth assembly and testing procedure. We were not without err, but had made enough good decisions to allow all minor mistakes to be fixed in the software. We did lots of crimping, soldering, and heat-shrinking. 

enclosure-real.jpg

To ensure that the team was on the same page, I made cabling diagrams as master templates for us to refer back to, which allowed the safe splitting up of crimping/soldering among all group members. 

cable-diagram-1.png
cable-diagram-2.png
cable-diagram-4.png
cable-diagram-3.png

As for errors,

  • We blew up an amplifier, but buying extra components and using fasteners/mounting holes allowed us to swap in a functional one immediately. 

  • The wire connecting the hook to the capacitive touch sensor had lots of capacitance and was incredibly sensitive - so much so that it would set itself off. To remedy this, we tried insulating the wire and using aluminum foil as a Farraday-like shield. Neither of these worked, so we fixed the issue in the code by taking an average of the cap. touch inputs over a few milliseconds. 

We ended up having an incredibly successful design that others loved playing with and functions exactly as we'd expected. For future iterations, we would significantly shrink the size of the bulb by moving from an individual breakout board for each peripheral to all ICs integrated into one PCB. We would also include an SD card port and MP3 module to allow us to play more interesting sounds. Finally, we would tune the exact values of timers based on user testing. 

716-261-0079

  • linktree

©2021 by Mark Hofmeister

Buffalo, NY

bottom of page