I saw a reel... https://www.youtube.com/shorts/VlxiOgdox-g (credit gptars).
Had to give it a shot. Picture this guy mounted on the kitchen wall chirping your roommates when they don't put the dishes away. Or telling you the weather with your day's agenda (would you trust him with calendar write access?). Or perhaps rap-battling? The opportunities are endless.
Step 1: SurgeryUnscrew the back panel of the Billy Bass.
Cut the wires leading to the original battery compartment and the circuit board.
Identify the Motors: You will see four wires going into the fish body.
Touch these wires briefly to a single AA battery (1.5V) to test them.
Find the pair that lifts the Head/Tail.
Find the pair that opens the Mouth.
Label them (or remember), and connect each to a jumper cable. If you just pull the plastic terminal out, you can keep it and use a male jumper end to avoid needing to solder or further secure this part.
Warning:
- The PocketBeagle uses 5V via micro-USB and 3.3V logic.
- The motors run on ~6V.
- Do not mix these rails.
Power Setup:
- Motor Power: Set the AC adapter to 6V (though you can safely try 9V if you want more motor power). Connect it directly to the TB6612FNG
VMpin. Use a barrel-jack-to-jumper adapter: One jumper to VM (positive rail). one jumper to GND - Positive Rail: The TB6612FNG VM line also feeds the shared positive rail
- PocketBeagle Power: Powered separately via micro-USB from a laptop
- Logic Power (3.3V): PocketBeagle P1_14 (3.3V) powers:TB6612FNG VCC, USB breakout, VCC
- Common GroundTie together:AC adapter ground, PocketBeagle ground, TB6612FNG ground using the negative breadboard rail.
This setup uses:
- One wall adapter for motors
- One wall adapter for the USB hub
- A laptop connection for PocketBeagle power & SSH
(wall adapter to jumper cable pictured)
The PocketBeagle does not have a standard full-size USB port, so a breakout is required to attach peripherals (Wi-Fi, audio). USB Host Mode must be forced manually.
USB Breakout Wiring:
- VCC: PocketBeagle 3.3V positive rail (P1_14)(The USB hub itself is wall-powered.)
- D-: PocketBeagle P1_09
- D+: PocketBeagle P1_11
- GND: Common Ground
- ID Pin:P1_13 → P1_15 (GND)(Forces USB host mode.)
Plug the externally powered USB hub into the breakout, then connect:
- Microphone
- Speaker
Wi-Fi dongle
(image from instructables)
Logic & Power Connections
- VCC → PocketBeagle P1_14 (3.3V)Logic power for the driver
- GND → Common Ground
- STBY → PocketBeagle P1_06(or tie HIGH to 3.3V)Enables the motor driver
- VM → 6V AC adapterMotor power
Mouth Motor (Channel A)
- PWMA → PocketBeagle P1_36(speed / PWM)
- AIN1 → PocketBeagle P1_32(direction A)
- AIN2 → PocketBeagle P1_30(direction B)
- AOUT1 → One of the mouth jumpers from earlier (You may have to switch if the fish mouth closes further shut when the fish tries to talk. This will be hard to miss.)
- AOUT2 → The other mouth jumper.
Head/Tail Motor (Channel B)
- PWMB → PocketBeagle P1_33(speed / PWM)
- BIN1 → PocketBeagle P1_28(direction A)
- BIN2 → PocketBeagle P1_26(direction B)
- BOUT1 → One of the body jumpers from earlier (You may have to switch if the tail flaps when the head should turn supposed to look at you. Again, hard to miss.)
- BOUT2 → The other body jumper.
- Power the motors using the 6V wall adapter.
- Power the USB hub using its wall adapter.
- Connect the PocketBeagle to your laptop via micro-USB.
- Connect to the beagle from laptop and run the setup scripts (software setup detailed in GitHub, linked below)
Currently in my build, I spin up a server on my laptop that connects to a client on the beagle. I have the microphone go directly to the server through the laptop mic instead of the mic connected to the beagle because of how much noise there was. It was impossible to detect speech. I'd like to figure out a way to handle the mic on the beagle and eliminate the direct laptop mic dependency, through hardware isolation or better power filtering.















_3u05Tpwasz.png?auto=compress%2Cformat&w=40&h=40&fit=fillmax&bg=fff&dpr=2)
Comments