Designed with the science of AI and the wisdom of mindfulness, TERRA is the incredible, pocket-sized compass that lets you wander without getting lost. Leave your phone behind and reconnect with your surroundings.
- Improvised Trails, Powered by AI: Every journey begins with a prompt. TERRA’s sophisticated AI translates your intentions, available time, and precise location into a tailored trail of GPS coordinates. Users don't know where TERRA will take them; the only certainty is finding their way back to the starting point.
- Wander Without Your Phone: TERRA invites users to leave their smartphones behind and reconnect with their surroundings. The standalone device boasts a minimalist interface, featuring a tranquil compass needle and gentle haptic feedback to ensure users remain engaged with the present moment.
- Open-Source by Design: TERRA is designed with a DIY mindset. Anyone can download the open-source software, 3D print the CAD designs, assemble the necessary hardware, and start wandering.
The TERRA App generates coordinates or checkpoints from a starting point and an ideal trail length using the ChatGPT API.
Node.js
v21.5body-parser
v1.20.2cors
v2.8.5express
v4.19.0node-fetch
v3.3.2
To run the TERRA App locally, follow these steps:
- Implement ChatGPT API Key: Obtain a ChatGPT API key and replace
YOUR_OPENAI_API_KEY
with it in theserver.js
file. - Implement Google Maps API Key: Obtain a Google Places API key and replace
YOUR_MAPS_KEY
with it in theindex.js
file. - Run Locally: To run the application, use the command:
node server.js
- Load Application: Open
index.html
in a browser to use the app for generating a route. - Download config.h File: Download the
config.h
file which contains the generated route configuration. - Update Arduino Code: Replace the
config.h
file in the Arduino code directory with the newly downloaded file.
The hardware for the TERRA project is based on an ESP32 device, equipped with a range of sensors for navigation and interaction.
The main components required are:
- ESP32 Feather V2 link
- Waveshare 1.28" Round LCD Display Module with GC9A01 Driver link
- Adafruit Push-button Power Switch link
- Beitian BN 880 GPS module link
- Adafruit DRV2605L Haptic Controller Breakout link
- CMPS12 Compass link
- Round Battery
- USB C charging port extender
Connect the components together in the following order:
ESP32 Pin | Screen | Motor Driver | Compass | GPS | Push Button |
---|---|---|---|---|---|
3V | VCC | VIN | VIN | VIN | |
GND | GND | GND | GND | GND | GND |
19 (MOSI) | DIN | ||||
4 (A5) | RST | ||||
5 (SCK) | CLK | ||||
12 | BL | ||||
15 | CS | ||||
32 (A7) | OFF | ||||
33 | DC | ||||
SDA | SDA | SDA | |||
SCL | SCL | SCL | |||
RX | TX | ||||
TX | RX |
To run the Arduino code, you will need to set up the ESP32 board and install the necessary libraries.
-
ESP32 Arduino Setup: Add the ESP32 board to the Arduino IDE.
- Go to Arduino > Preferences.
- Add the following URL to the Additional Boards Manager URLs:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
- Select Adafruit Feather ESP32 V2 as the board.
-
Install Libraries: Install the following libraries through the Library Manager in the Arduino IDE.
TinyGPSPlus.h
TFT_eSPI.h
Adafruit_DRV2605.h
-
Upload the Code: After installing the libraries and updating the
config.h
file with new coordinates, upload the code to the ESP32 device. The device should work without further adjustments. -
Debug Mode: A
debugMode
flag is available in the code. To test the device with manual coordinates, set this flag totrue
and input coordinates into the serial monitor.
You can use your own checkpoint files by converting black and white images into a compatible format.
- Convert static black and white, 240x240PX
.bmp
images to.XBM
format using this online tool. - Open the XBM file in a text editor and copy the hexadecimal values included in the curly brackets.
- Replace the existing files in the
images/checkpoints
directory with your customized.h
file.
Vision + Concept: Modem
Industrial Design: Panter&Tourron
Software + Hardware: Alice Stewart
Product Renderings: Côme Lart
Illustrations: Hugo Bernier
Campaign Teaser: Michael Willis
TERRA is licensed under the GNU General Public License v3.0 © 2024 Modem