Starmoon is an affordable, compact AI-enabled device, you can take anywhere and converse with. It can understand your emotions and respond with empathy, offering supportive conversations and personalized learning assistance.
Demo.mp4
If you can't see the video, you can watch it here
- Cost-effective: Assemble the device yourself with affordable off-the-shelf components.
- Voice-enabled emotional intelligence: Understand and analyze insights in your emotions through your conversations in real time.
- Open-source: Fully open-source, you can deploy Starmoon locally and self-host to ensure the privacy of your data.
- Compact device: Only slightly larger than an Apple Watch, you can carry the device anywhere.
- Reduced screen time: A myriad of AI companions are screen-based, and our intention is to give your eyes a rest.
-
Software:
- Vscode and PlatformIO plugin: For firmware burning
- Starmoon API key: Login to Starmoon and go to settings page to get your API key
-
Hardware list (Tax and shipping rates may vary by region)
- Step 0: Follow the below Pin Configuration to set up the the ESP32 device
Component | Seeed Studio XIAO ESP32S3 | ESP32-S3 |
---|---|---|
I2S Input (Microphone) | ||
SD | D0 | GPIO 13 |
WS | D1 | GPIO 1 |
SCK | D2 | GPIO 4 |
I2S Output (Speaker) | ||
WS | D5 | GPIO 5 |
BCK | D6 | GPIO 6 |
DATA | D4 | GPIO 7 |
SD (shutdown) | D3 | N/A |
Others | ||
LED Red | N/A | GPIO 9 |
LED Green | N/A | GPIO 8 |
LED Blue | D9 | GPIO 13 |
Button | D10 | GPIO 2 |
If you are using the Seeed Studio XIAO ESP32S3, then you can directly connect the lithium battery to the back of the ESP32.
-
Step 1: If you use normal ESP32-S3 chip, otherwise you can skip this step:
-
please go to Config.h and uncomment the
USE_NORMAL_ESP32_S3
line and comment theUSE_XIAO_ESP32_DEVKIT
line.// ----------------- Pin Definitions ----------------- // Define which board you are using (uncomment one) #define USE_NORMAL_ESP32_S3 // #define USE_XIAO_ESP32_DEVKIT // #define USE_XIAO_ESP32 // #define USE_NORMAL_ESP32 // #define USE_ESP32_S3_WHITE_CASE
-
Then, go to platformio.ini and uncomment the
[env:esp32-s3-devkitm-1]
block and comment the[env:seeed_xiao_esp32s3]
line.; [env:seeed_xiao_esp32s3] ; platform = espressif32 ; board = seeed_xiao_esp32s3 ; framework = arduino ; monitor_speed = 115200 [env:esp32-s3-devkitm-1] platform = espressif32 board = esp32-s3-devkitm-1 framework = arduino monitor_speed = 115200
-
-
Step 2: Click PlatformIO Icon in VScode left sidebar
- Click "Pick a folder"
- Select the location of the
firmware
folder in the current project.
-
Step 3: Build the firmware
- Click
Build
button in the PlatformIO toolbar or run the build task.
- Click
-
Step 4: Upload the firmware to the device
- Connect your ESP32-S3 to your computer using usb.
- Click the
Upload
button to run the upload task, orUpload and Monitor
button to run the upload task and monitor the device.
-
Step 5: Hardware usage
-
Turn on the device by main button and wait for the LED to turn on.
-
Use your phone/tablet/pc to connect "Starmoon-xxx" WiFi and follow the instructions to set up internet connection (only support 2.4Ghz WiFi).
- Connect the wifi by your credentials
- Use your Starmoon API key and email to set up the device
-
This project is licensed under the GPL-3.0 License - see the LICENSE file for details