Git Product home page Git Product logo

friend's Introduction

Friend: Open-Source AI Wearable with 24h+ on single charge

Assembled Dissembled
CleanShot 2024-03-06 at 17 19 58 drawing

Discord Follow โ€‚ License: GPLv3

Friend is an AI wearable device that records everything you say, gives you proactive feedback and advice. Features:

  • Real-Time AI Audio Processing: Leverage powerful on-device AI capabilities for real-time audio analysis.
  • Low-powered Bluetooth: Capture audio for 24h+ on a small button battery
  • Open-Source Software: Access and contribute to the pin's software stack, designed with openness and community collaboration in mind.
  • Wearable Design: Experience unparalleled convenience with ergonomic and lightweight design, perfect for everyday wear.

Structure

There are 2 different apps in these repositories located in different branches and folders. Our goal is to merge them into one big project.

  • Standalone Branch or Folder "AppStandalone": Standalone version of the app that doesn't require any hardware to use it. Try example here used by thousands of people.

  • AppWithWearable Branch or Folder "AppWithWearable": Wearable-connected version of the app that requires the "Friend necklace" to use it.

  • [Main Branch] Branch that contains firmware, hardware, designs and both apps

Hardware Buying Guide (<$20 total)

  • Board: Seeed Studio XIAO nRF52840 Sense | $15 on Seedstudio and $24 on Amazon | <$15/unit

  • Rechargable Coin Battery| $13 for 5 units on Amazon but you only need one | $2.5/unit

  • Slider switch | $7 for 30+ units on Amazon but you only need one | <$1/unit

  • 3D-print design of the case is located here

Getting Started

Follow these steps to get started with your Friend:

Install the app

  1. Clone the repo git clone https://github.com/BasedHardware/friend.git
  2. Choose which version of the app you want to install (see Structure).
  • Don't have the device? run cd AppStandalone in terminal
  • Have the device/NRF Board? run cd AppWithWearable in terminal
  1. Install Flutter and CocoaPods
  2. Install your environment variables
  • For AppWithWearable, open file api_calls.dart located in AppWithWearable/lib/backend/api_requests Find "Whisper" and instead of , provide your own api-key for openai whisper for transcriptions to work

CleanShot 2024-03-25 at 21 58 42

  • For AppStandalone, update variables in in .env.template file
  1. iOS: Install XCode then navigate to the iOS folder. You might need to launch Xcode to select a team and specify a bundle identifier. Android: Download/install android Studio then navigate to the Android folder
  2. then run flutter clean then flutter pub get then pod install
  3. When everything is installed, run flutter run , this should run your app on a selected device

No-Code Alternative:

Install Firmware

  1. Download Arduino
  2. Run cd src/BluetoothDeviceDriver in your home repository and Open Arduino .ini file, go to "Settings" and paste these 2 links in additional Boards Manager URLs
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

IMAGE 2024-03-24 19:44:35 3. Go to Boards Manager and download these 2 Boards

IMAGE 2024-03-24 19:46:49

  1. Connect NRF52840 board via USB cable to your computer
  2. Go to Tools > Board > IMAGE 2024-03-24 19:50:42 and select "Seeed nRF52 mbed-enabled Boards (you need board that has Sense)

Also select Port (should be smth that containts USB...) IMAGE 2024-03-24 19:55:07

  1. Go to Sketch => Include Library => Add .zip library and upload a library which you should download from here
  2. Install Arduino BLE library standard library can be found in Arduino's menu
  3. Click "Upload" and then open Serial Monitor to see logs

How to test audio receiving on your computer: from home directory, go to "src" folder, then in terminal run python local_laptop_client.py - this script will list audio devices and IDs. Copy your device's ID and paste in same file on this line DEVICE_ID = "564A72F4-4552-8CE8-719D-8D5CB2E5D43D" (instead of 564A72F4-4552-8CE8-719D-8D5CB2E5D43D) then run the file again with python local_laptop_client.py (or python3)

Assemble the device

Step 0. Make sure you have bought everything from the buying guide above

Step 1: You need to design the case using 3D printer. Find .stl file here. If you don't know how to do it, send this file to someone who has a 3d printer

Step 2: Solder everything together like on the picture below. using a soldering kit. Don't have it? buy this one for $9

Step 3: Fit everything in the case. Biggest hole is for the usb port. In my example, I put the battery first, then the board and then the switch, however it's not an ideal design. If you will figure out a better solution, please contribute!

Step 4: Use hot glue to attach the lid to the case. You can also use a scotch tape first for testing purposes. Last, on the USB-port side, you'll find 2 small round holes. This is where the thread should go through.

Congratulations! you now have a fully working and assembled device!

Contributing

Join our Discord! We welcome contributions from the community! If you're interested in improving Friend, our current biggest goal is to combine both apps together (AppStandalone with AppWithWearable).

  • Standalone App brings great prompts and rich structure
  • AppWithWearable brings simple bluetooth connecting functionality

Support

For open-source support, please open an issue on GitHub and/or ask in our Discord Community. For commercial support, license inquiries, or any other questions, please contact us directly at [email protected].

Disclaimer

Please note that the Friend is a prototype project and is provided "as is", without warranty of any kind. Use of the device should comply with all local laws and regulations concerning privacy and data protection.

Thank you for your interest in Friend, the open-source AI wearable. We're excited to see what you'll build with it!

Licensing

Friend is available under dual licensing options:

  1. GNU General Public License (GPL): For open-source projects and community development, Friend is available under the GPL. This strong copyleft license ensures that all modifications and derived works are also open-source, fostering a collaborative development environment.

  2. Commercial License: For individuals or entities wishing to use Friend in closed-source projects or who require more flexible licensing terms than those offered by the GPL, a commercial license is available. The commercial license permits private modification, use, and distribution, as well as commercial support and warranty.

Choosing Your License

  • If you wish to contribute to or use Friend in open-source projects, you are free to do so under the terms of the GPL, as detailed in the LICENSE file.
  • If you require a commercial license for your project or enterprise, please contact us at [email protected] to discuss your needs and obtain licensing information.

friend's People

Contributors

kodjima33 avatar aapatni avatar axelpey avatar jonxuxu avatar ansh-chopra avatar yumat10 avatar kylevasulka avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.