Otto is a plush species of monkey that we found at a highway store in February 2017 during a trip with my girlfriend.

Its ability, while being extremely sweet, was to listen to you, then walk and repeat everything with a high pitch.

My goal was to make it more powerful by turning it into a vocal assistant.

I wanted to replace all these things with new and programmable hardware.

The real challenge here was to find the rights components that were fitted in the original enclosure. The available space was not much, so every choice had to be made honestly.

base board
The preferred hardware for this project is the Raspberry Pi board.

They are small and powerful enough to allow developers to use a high-level programming language and built-in libraries without having to flash the software every time.

In addition, you can debug your application in a more comfortable environment.

The best hardware at that time was the Raspberry Pi Zero W. Launched in late February 2017, the Pie Zero W has all the functionality of the original Pi Zero, but with added connectivity.

The board was not sufficient for such a project, so I added additional hardware.

audio component
To make a vocal assistant, we need audio components. The requirements for these components are, of course, a speaker and a microphone.

For the microphone, I tried the USB microphone. The problem with this accessory was that it wasn’t as sensible as I wanted. Also it required an additional USB hub to connect.

Also, I couldn’t connect a raw speaker smoothly.

For this reason, I opted to purchase an additional board that accomplished this task very well: the ReSpeaker 2-mics Pi HAT.

The ReSpeaker 2-Mics Pi HAT is a dual-microphone expansion board for the Raspberry Pi designed for AI and voice applications.

The board is developed on the basis of WM8960, a low power stereo codec. There are 2 microphones on either side of the board to collect sound. It also offers 3 APA102 RGB LEDs, 1 user button and 2 on-board Grove interfaces.

I didn’t plan on connecting the LEDs to my board, but the fact that this HAT has built-in LEDs made me think to use them.

Then I took an old bluetooth mini-speaker, disassembled it, and connected it to the JST 2.0 speaker out port.

For this to work, you need to have your drivers installed on your board. Drivers are also used to control the LEDs within your application via standard protocols.

power the board

The Raspberry Pi board can be easily powered through the USB 5V input. The problem with this approach is that you have to buy a battery pack and connect it via USB.

I didn’t find any battery pack small enough to fit in my plush, so my unique option back then was using LiPo batteries.

You can’t connect your LiPo battery to your board, you have to use a converter. It can be powered by any 3.7V LiIon/LiPoly battery, and then it converts the battery output to 5.2V DC.

Initially I bought a LiPo SHIM, but I haven’t noticed that this controller powers your board without charging your battery.

For this reason I switched to the Adafruit PowerBoost 500 charger. It has a built-in battery charger circuit. You’ll be able to keep your project running while you charge the battery!

additional hardware

The software uses the “hotword” concept to initiate a conversation. Basically, it constantly listens for a hotword, like “Hey Otto,” then you just talk and say the command.

To have an alternate way to initiate conversation, I installed a push button connected directly to the GPIO board on the GPIO8 pin.

Leave a Reply

Your email address will not be published. Required fields are marked *