# 3D Printed Star Trek Communicator

## Overview

https://www.youtube.com/watch?v=rjqdaax-xRk

![](https://cdn-learn.adafruit.com/assets/assets/000/032/344/medium800/3d_printing_hero-me.jpg?1462843630)

## Real Star Trek Communicator

Making is the final frontier. These are the projects of Adafruit Industries. Its life long mission: to explore strange new projects, to seek out new 3D printed forms and new circuitry, to boldly make what no maker has made before.

Boldly go where no&nbsp;project has gone before with this real working&nbsp;Star Trek Communicator!

![](https://cdn-learn.adafruit.com/assets/assets/000/032/416/medium800/3d_printing_hero-complete.jpg?1462928355)

This prop is more than just a 'prop' - it can make real cell phone calls using the FONA Feather! It features a vibration&nbsp;motor, speaker and microphone mounted inside the case.&nbsp;You can customize&nbsp;the buttons to call any number you want.

The 2500 mAh battery is rechargeable&nbsp;over USB&nbsp;and&nbsp;will provide several hours of energy.

It's never been easier to build your own cell phone!

https://www.youtube.com/watch?v=OjA5TVmHFMI

![](https://cdn-learn.adafruit.com/assets/assets/000/032/394/medium800/3d_printing_hero-calling.jpg?1462896516)

![](https://cdn-learn.adafruit.com/assets/assets/000/032/346/medium800/3d_printing_circuit-parts.jpg?1462843871)

## Adafruit Parts

- [Fona Feather](https://www.adafruit.com/products/3027)
- [SIM Card](https://www.adafruit.com/products/2505)
- [Mic](https://www.adafruit.com/products/1935)
- [Speaker](https://www.adafruit.com/products/1891)
- [Vibration Motor](https://www.adafruit.com/products/1201)
- [6mm Buttons](https://www.adafruit.com/products/367)
- [uFL Antenna](https://www.adafruit.com/products/1991)
- [~220 ohm resistor](https://www.adafruit.com/products/2780)
- [transistor](https://www.adafruit.com/products/756)
- [1N4001 diode](https://www.adafruit.com/products/755)
- [LED Sequin](https://www.adafruit.com/products/1758)
- [Flexy PCB](https://www.adafruit.com/products/1518)
- [JST Extension](https://www.adafruit.com/products/1131)
- [2000mAh Battery](https://www.adafruit.com/products/2011)
- [Slide Switch](https://www.adafruit.com/products/805)

## Tools and Supplies

- [3D Printer](https://www.adafruit.com/category/128)&nbsp;+&nbsp;[Filament](https://www.adafruit.com/products/2080)
- [Soldering Iron](https://www.adafruit.com/categories/84)&nbsp;+&nbsp;[Solder](https://www.adafruit.com/categories/84)
- [30AWG&nbsp;Wire](https://www.adafruit.com/products/2051)
- [Helping Third Hands](https://www.adafruit.com/products/291)&nbsp;/&nbsp;[Panavise](https://www.adafruit.com/products/151)
- [Heat Shrink](https://www.adafruit.com/products/1649)
- E6000 Glue / Mounting Tack
- [Wire Stripper](https://www.adafruit.com/products/527)&nbsp;/&nbsp;[Cutters](https://www.adafruit.com/products/152)
- Filing Tool / Hobby Knife

![](https://cdn-learn.adafruit.com/assets/assets/000/032/417/medium800thumb/3d_printing_energize-loop.jpg?1462929791)

# 3D Printed Star Trek Communicator

## Circuit Diagram

## Electronics

Follow the circuit diagram below and reference the connections for wiring the circuit.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/032/393/medium800/3d_printing_circuit-diagram.jpg?1462895704)

## Ground Splitters

Use a flex PCB to create the&nbsp;extra grounds needed for the&nbsp;buttons, LEDs&nbsp;and&nbsp;motor.&nbsp;

Cut two pieces from the&nbsp;ground railing on the flex PCB, one piece with 7 holes and one with 3 holes as shown.&nbsp;

## Vibration Motor

The motor requires a resistor, diode and transistor to work, follow the diagram&nbsp;as shown.

## Lithium Battery Charger

FONA Feather has a built-in USB battery charging circuit. Plug in a microUSB cable into the microUSB port on Fona&nbsp;to recharge the lipo battery using a USB adapter from a wall outlet or your computer.

# 3D Printed Star Trek Communicator

## 3D Printing

![](https://cdn-learn.adafruit.com/assets/assets/000/032/347/medium800/3d_printing_3d-parts.jpg?1462844025)

[Download Design](http://www.thingiverse.com/thing:1568731)
## 3D Printed Parts

The communicator is split into 12 different pieces. The two case parts&nbsp;snap fit together without any screws. The top case is printed in two colors by switching filament colors during the print. We paused the print&nbsp;at a height of&nbsp;7.25mm, and then swapped colors to achive the dual color&nbsp;case.

The speaker grill and buttons snap fit into the slot holes. The mic grill is attached to the button cover with&nbsp;a piece of a tape.&nbsp;

The case cover is&nbsp;held in place using a piece of filament to&nbsp;create the&nbsp;hinge.

Buttons are mounted underneath&nbsp;the top case with the button mounting plate.

The button cover was milled out of aluminium using a CNC, but you can easy print&nbsp;it in gray PLA material.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/543/medium800thumb/3d_printing_replicate-loop.jpg?1463622336)

## Slicer&nbsp;Settings

To slice the parts, we used Simplify3D. We recommend using&nbsp;the settings below or use them as reference. We 3D printed these&nbsp;parts on a&nbsp;Ultimaker 2+, Flashforge Creator Pro and the Othermill CNC. If you have Simplify3D, you can download our profiles below.

## Customize The Design

The&nbsp;parts where designed in Autodesk Fusion 360. The design is&nbsp;public and available to download in different formats. If&nbsp;you'd like to use a different CAD software package, you are free to import the files and remix them.

[Customize Design](http://a360.co/1TIaD39)
## Filament Materials

We recommend using PLA material to reduce wraping while 3D printing. The parts&nbsp;can be printed in different types of filament, such as ABS, PET or&nbsp;Nylon.

The push buttons are printed in Translucent PLA to allow the LEDs to show through.

Danger: 

## Tolerances

The slots for the speaker, motor, buttons and slide switch&nbsp;may have tight tolerances. Test the tolerances by inserting all of&nbsp;components into each slot. If parts&nbsp;don't&nbsp;fit into the slots, you may need to use a craft knife or filing tool to loosen&nbsp;the area.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/399/medium800/3d_printing_body-supports.jpg?1462908148)

## Generating Supports

The top body case will need supports underneath the&nbsp;entire part of the case. We can optimze the print&nbsp;by changing&nbsp;the default&nbsp;support **pillar resolution** to **8.00mm**. Generate the supports and then&nbsp;create additional pillars beneath all of the standoffs untill it looks like the picture above.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/032/400/medium800/3d_printing_cover-supports.jpg?1462908160)

## Cover Supports

Lay the&nbsp;cover flat like shown and then generate&nbsp;supports to hold up the hinges like in the picture above.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/032/415/medium800/3d_printing_two-buttons.jpg?1462927890)

## Minimize warping

The buttons are small and can easily warp if the hot end prints&nbsp;in the same area for&nbsp;too long. We recommend printing two buttons at the same time with the fan speed set to 100% to&nbsp;eliminate any deformation. &nbsp;

## Setting up dual colors

Print in two colors by pausing the print at a height of 7.25mm and swap the colors from gray to black.

&nbsp;

You can also do this inside of Simplify 3D by setting up two processes.&nbsp;

![3d_printing_z-pause.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/413/medium640/3d_printing_z-pause.jpg?1462927769)

![3d_printing_case-closed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/414/medium640/3d_printing_case-closed.jpg?1462927805)

![](https://cdn-learn.adafruit.com/assets/assets/000/032/398/medium800/3d_printing_remove-supports.jpg?1462907638)

Warning: 

## Removing supports

Use flat plairs to help remove&nbsp;supports.&nbsp;Don't pull a large amount&nbsp;off as it could damage the standoffs. Carefully&nbsp;remove small chunks at a time.

# 3D Printed Star Trek Communicator

## Code

Copy and paste the code below into the Arduino IDE.

Edit the FRIENDPHONE line to any&nbsp;number you'd like&nbsp;the communicator to call.

If you just want blinky lights without any phone functionality, you&nbsp;can use the&nbsp;simple blinky code on the bottom of this page.

https://www.youtube.com/watch?v=LKnZ1h_Mtwk

For a better understanding of how the code works, watch LadyAda's stream on coding the comunicator.

```auto
#include "Adafruit_FONA.h"
#include "pitches.h"

#define FONA_RX 9
#define FONA_TX 8
#define FONA_RST 4
#define FONA_RI 7

#define BUZZER A3
#define CALLBUTTON A0
#define HANGUPBUTTON A1
#define ANSWERBUTTON A2

#define FRIENDPHONE "5555555"

#define LED_PIN_RED    10
#define LED_PIN_YELLOW 11
#define LED_PIN_BLUE   12


#include <SoftwareSerial.h>
SoftwareSerial fonaSS = SoftwareSerial(FONA_TX, FONA_RX);
SoftwareSerial *fonaSerial = &fonaSS;

// Use this for FONA 800 and 808s
Adafruit_FONA fona = Adafruit_FONA(FONA_RST);

// Update LEDs; call this as frequently as possible in loop & any while() delays
void animateLEDs() {
  uint32_t t = millis();
  digitalWrite(LED_PIN_YELLOW, ((1 << ((t >> 8) & 0x7)) & 0b10100000) > 0);
  digitalWrite(LED_PIN_RED   , ((t / 3) &  511) > 100);
  digitalWrite(LED_PIN_BLUE  , ((t / 5) & 1023) > 800);
}

int melody[] = {
    NOTE_G3, NOTE_F4, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_C4, NOTE_B3, NOTE_AS3, NOTE_AS3, 
};
int noteDurations[] = {
    2,       2,       4,      4,        4,       4,        4,        2,       1
};
  
void playTune() {
  // iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < 9; thisNote++) {
     int noteDuration = 1000 / noteDurations[thisNote];
     fona.print(F("AT+SIMTONE=1,")); fona.print(melody[thisNote]);
     fona.print(","); fona.print(noteDuration);
     fona.print(",0,"); fona.println(noteDuration);
     noteDuration *= 1.1;
     while (noteDuration > 0) {
      // if a button press comes in, bail!
      if ( (! digitalRead(HANGUPBUTTON)) || (! digitalRead(CALLBUTTON)) || (! digitalRead(ANSWERBUTTON))) {
        return;
      }
      delay(10);
      animateLEDs();
      noteDuration -= 10;
     }
  }
}

void setup() {
  pinMode(CALLBUTTON, INPUT_PULLUP);
  pinMode(HANGUPBUTTON, INPUT_PULLUP);
  pinMode(ANSWERBUTTON, INPUT_PULLUP);
  pinMode(BUZZER, OUTPUT);
  pinMode(FONA_RI, INPUT);

  pinMode(FONA_RST, OUTPUT);
  digitalWrite(FONA_RST, LOW);
  delay(100);
  digitalWrite(FONA_RST, HIGH);

  pinMode(LED_PIN_RED   , OUTPUT);
  pinMode(LED_PIN_YELLOW, OUTPUT);
  pinMode(LED_PIN_BLUE  , OUTPUT);

  while (!Serial);

  Serial.begin(115200);
  Serial.println(F("Star Trek Communicator"));
  Serial.println(F("Initializing....(May take 3 seconds)"));
  
  fonaSerial->begin(4800);
  if (! fona.begin(*fonaSerial)) {
    Serial.println(F("Couldn't find FONA"));
    while (1);
  }
  Serial.println(F("FONA is OK"));
  
  while (1) {
    uint8_t n = fona.getNetworkStatus();
    Serial.print(F("Network status "));
    Serial.print(n);
    Serial.print(F(": "));
    if (n == 0) Serial.println(F("Not registered"));
    if (n == 1) Serial.println(F("Registered (home)"));
    if (n == 2) Serial.println(F("Not registered (searching)"));
    if (n == 3) Serial.println(F("Denied"));
    if (n == 4) Serial.println(F("Unknown"));
    if (n == 5) Serial.println(F("Registered roaming"));

    if (n == 1) break;

    delay(500);
  }

  fona.setAudio(FONA_EXTAUDIO);
  fona.setVolume(80); 
  playTune();

  Serial.println("Ready to call!");

  fona.println(F("AT+CRSL=0")); // set to ~80 if you want jingle ringtone on
}

void loop() {
   animateLEDs();

   if (digitalRead(FONA_RI)) {
     digitalWrite(BUZZER, LOW);
   } else {
     Serial.println(F("Ring Ring"));
     digitalWrite(BUZZER, HIGH);
     playTune();
   }
   
   if (! digitalRead(HANGUPBUTTON)) {
      delay(10); // debounce
      while (! digitalRead(HANGUPBUTTON));
      // button is released!
      Serial.println(F("Hanging up the phone!"));
      fona.hangUp();
   }

   if (! digitalRead(CALLBUTTON)) {
      delay(10); // debounce
      while (! digitalRead(CALLBUTTON));
      // button is released!

      if (fona.getCallStatus() != 0) {
        Serial.println(F("Not ready to call, bailing"));
        return;
      }
      Serial.print(F("Calling phone! "));
      Serial.println(FRIENDPHONE);
      fona.callPhone(FRIENDPHONE);
   }

   if (! digitalRead(ANSWERBUTTON)) {
      delay(10); // debounce
      while (! digitalRead(ANSWERBUTTON));
      // button is released!
      Serial.println(F("Answering the phone!"));
      fona.pickUp();
   }

}
  
```

```auto
/*************************************************
 * Public Constants
 *************************************************/

#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978


```

# Just the Blinky Code
```auto
#define LED_PIN_RED    10
#define LED_PIN_YELLOW 11
#define LED_PIN_BLUE   12


void animateLEDs() {
  uint32_t t = millis();
  digitalWrite(LED_PIN_YELLOW, ((1 << ((t >> 8) & 0x7)) & 0b10100000) > 0);
  digitalWrite(LED_PIN_RED   , ((t / 3) &  511) > 100);
  digitalWrite(LED_PIN_BLUE  , ((t / 5) & 1023) > 800);
}

void setup() {
  // put your setup code here, to run once:
  pinMode(LED_PIN_RED   , OUTPUT);
  pinMode(LED_PIN_YELLOW, OUTPUT);
  pinMode(LED_PIN_BLUE  , OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
 animateLEDs();
}
```

# 3D Printed Star Trek Communicator

## Assemble

https://www.youtube.com/watch?v=4R0DgQE4lAI

![](https://cdn-learn.adafruit.com/assets/assets/000/032/350/medium800/3d_printing_clean-holes.jpg?1462844115)

## Clean up

Use a hobby knife&nbsp;to clean any filament around the slots for each component.&nbsp;

Make sure to check the tolerence for each part before trimming away too much material.&nbsp;

## Speaker&nbsp;Cover

&nbsp;

Fit&nbsp;the speaker cover from the&nbsp;back of the top case. It should have a tight tolerence so it can stay&nbsp;place.&nbsp;

&nbsp;

## Speaker

&nbsp;

The speaker press fits inside the speaker slot as shown. Make sure to trim away any filament if it's too tight.

![3d_printing_speakerGrill-insert.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/374/medium640/3d_printing_speakerGrill-insert.jpg?1462849610)

![3d_printing_speakerl-insert.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/375/medium640/3d_printing_speakerl-insert.jpg?1462849652)

![](https://cdn-learn.adafruit.com/assets/assets/000/032/396/medium800thumb/3d_printing_sim-loop.jpg?1462905477)

## SIM Card

A SIM card is required for making phone calls. The Ting SIM card&nbsp;can snap apart into standard, mini, micro and nano SIM sizes. Insert the SIM into the Fona with the SIM pins facing down.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/355/medium800/3d_printing_measure-wire.jpg?1462844273)

## Measure&nbsp;wires

Lay the two cases side by side as shown and measrue each wire from the Fona to the mounting slots of&nbsp;each component. Leave a little extra slack to adjust wire&nbsp;sizes if needed.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/354/medium800/3d_printing_replace-speaker-wire.jpg?1462844244)

## Speaker wire

Replace the speaker wires with silicone wires so they can reach the pins on the&nbsp;Fona.

## Mic ring

Remove the rubber ring around the mic&nbsp;to&nbsp;allow it to fit inside the mic slot.

&nbsp;

## Mic Slot

Pass&nbsp;the wires&nbsp;through the mic slot and carefully wedge the mic into place until it's flush with the sqaure mic grill indent.

![3d_printing_mic-cap-off.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/365/medium640/3d_printing_mic-cap-off.jpg?1462845472)

![3d_printing_mic-inserted.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/366/medium640/3d_printing_mic-inserted.jpg?1462845494)

## Ground Splitters

Use a flex PCB to create the&nbsp;extra grounds for the&nbsp;buttons, LEDs&nbsp;and&nbsp;motor.

&nbsp;

Cut two pieces from the&nbsp;ground railing, one piece with 7 holes and one with 3 holes as shown.&nbsp;

## Tin Flexy PCBs

Use&nbsp;tweezers to hold the&nbsp;flex PCB pieces while tinning.

&nbsp;

![3d_printing_flexy-board-cut.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/367/medium640/3d_printing_flexy-board-cut.jpg?1462845671)

![3d_printing_tin-ground-splitter-1b.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/368/medium640/3d_printing_tin-ground-splitter-1b.jpg?1462845733)

## Solder ground Splitters

Solder the&nbsp;shorter ground splitter to the Fona ground pin.&nbsp;Lay&nbsp;it on&nbsp;top of the ground pin and apply heat to solder in place.&nbsp;The two additional grounds will connect the motor and the larger second ground splitter.

&nbsp;

&nbsp;The larger 7 hole splitter&nbsp;will connect the LEDs&nbsp;and buttons.&nbsp;

![3d_printing_tin-ground-splitter-soldered-1.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/369/medium640/3d_printing_tin-ground-splitter-soldered-1.jpg?1462845855)

![3d_printing_tinned-ground-splitter-soldered-2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/371/medium640/3d_printing_tinned-ground-splitter-soldered-2.jpg?1462845899)

![](https://cdn-learn.adafruit.com/assets/assets/000/032/376/medium800/3d_printing_bend-button-pins.jpg?1462849847)

## Button pins

To&nbsp;mount the buttons to the panel, we'll need to bend the pins stright out so they sit flush on the mounting plate.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/032/378/medium800/3d_printing_led-on-button.jpg?1462850106)

## Mounting LED to buttons

LEDs can be mounted on&nbsp;top of the button actuator&nbsp;with a small amount of glue or mounting tac. Be careful not to get any glue inside the button.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/485/medium800/3d_printing_button-ground-soldered.jpg?1463445451)

## Solder buttons

Tin the button pins and wires before soldering them to each ground wire.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/397/medium800/3d_printing_button-plate.jpg?1462906973)

## &nbsp;Buttons and LEDs Mounting Plate &nbsp;&nbsp;

Align the buttons with&nbsp;the&nbsp;square grooves on the mounting plate.

Use tac to mount the LEDs to the plate.&nbsp;&nbsp;

## &nbsp;

&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/032/391/medium800thumb/3d_printing_push-buttons.jpg?1462854732)

## Translucent Buttons

Slide the three&nbsp;color buttons through the top&nbsp;slot with the red button in the middle. The two&nbsp;black buttons mount in the&nbsp;bottom row.&nbsp;

## &nbsp;
![](https://cdn-learn.adafruit.com/assets/assets/000/032/379/medium800/3d_printing_button-holder_screw_in.jpg?1462851751)

## Mouting&nbsp;plate

Align the standoffs on the mounting plate&nbsp;to the standoffs on the case. Use&nbsp;#2-56 screws to attach the button plate&nbsp;to the&nbsp;case.

&nbsp;

## LED Placement&nbsp;

Make sure the&nbsp;LEDs are aligned and can equally&nbsp;diffuse each printed&nbsp;button. You can nudge them&nbsp;into place&nbsp;with a twezzer.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/380/medium800/3d_printing_vib-motor-parts.jpg?1462851934)

## Vibration Motor

The motor requires&nbsp;a resistor, diode and&nbsp;transistor to work, follow the circuit as shown.&nbsp;

Measure wires, solder the parts together and then&nbsp;mount the motor&nbsp;in&nbsp;the circular&nbsp;slot on the case.

&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/032/381/medium800/3d_printing_slide-switch-parts.jpg?1462851952)

## Slide switch

You will want the slide switch on the battery, not the ENABLE pin. Shorten and solder a JST extension cable to the slide switch as shown.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/382/medium800/3d_printing_battery-tac.jpg?1462852225)

## Mounting the Battery

Position&nbsp;the battery so the wires are close to the slide switch. Affix the battery to the case using double stick tape or mounting tac.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/032/383/medium800/3d_printing_parts-complete.jpg?1462852367)

## Circuit Complete

Mount the slide switch into slot and attach the&nbsp;uFL&nbsp;antenna to the Fona. &nbsp;Use tac to mount the vibration circuit&nbsp;next to the motor. You can apply tac to the transistor to keep it in place.

## &nbsp;

## Cable Management

Bundle the button and&nbsp;LED wires with&nbsp;shrink tube or tape.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/384/medium800/3d_printing_case-closed.jpg?1462852737)

## Snap case together

The two parts&nbsp;of the case snap fit together without any screws. Join one edge of the case and then apply a small amount of force to snap the opposite side&nbsp;together.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/390/medium800thumb/3d_printing_cover-attach.jpg?1462854301)

## Attaching the Cover

The cover hinge utilizes&nbsp;a piece of 1.75mm filament.&nbsp;Measure and cut a piece the length of the case.

Press the cover onto the case&nbsp;and then fit the filament&nbsp;through the holes in the case and the cover.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/385/medium800/3d_printing_hinge-cut.jpg?1462853091)

## Trim filament

Use flush cutters to trim off the ends of the filament.  
  
You can&nbsp;push the filament out with another piece of filament if you ever need to remove the cover.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/386/medium800/3d_printing_mic-grill-tape.jpg?1462853244)

## Mic Grill

Use a piece of tape to attach the microphone grill to the button cover. Cut a small piece and stick it to backside&nbsp;of the button cover.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/387/medium800/3d_printing_button-panel-attach.jpg?1462853404)

## Button Cover

Align&nbsp;the&nbsp;two buttons through the cover and slide&nbsp;the button cover in at an angle. &nbsp;Apply a small amount of force to snap fit&nbsp;the&nbsp;cover to the case.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/388/medium800/3d_printing_hero-hand-sign.jpg?1462853521)

## Complete

Your real working communicator is now complete! Flip on the slide switch and make a test call.

Live long and prosper :)


## Related Guides

- [Adafruit Feather 32u4 FONA](https://learn.adafruit.com/adafruit-feather-32u4-fona.md)
- [Introducing Adafruit Crickit #MakeRobotFriend](https://learn.adafruit.com/adafruit-crickit-creative-robotic-interactive-construction-kit.md)
- [CircuitPython Essentials](https://learn.adafruit.com/circuitpython-essentials.md)
- [3D Printed Dragon Lamp](https://learn.adafruit.com/dragon-lamp.md)
- [LoRa and LoRaWAN Radio for Raspberry Pi](https://learn.adafruit.com/lora-and-lorawan-radio-for-raspberry-pi.md)
- [LED Matrix Necklace Pendant](https://learn.adafruit.com/led-matrix-necklace-pendant.md)
- [NeoPixel Flame Torch](https://learn.adafruit.com/neopixel-flame-torch.md)
- [Circuit Cookie Roller](https://learn.adafruit.com/circuit-cookie-roller.md)
- [PyBadge Thermal Camera Case](https://learn.adafruit.com/pybadge-thermal-camera-case.md)
- [Simple Vertical Wordclock](https://learn.adafruit.com/vertical-wordclock.md)
- [Raspberry Pi LED Matrix Sand Toy](https://learn.adafruit.com/matrix-led-sand.md)
- [Spinning Disc Step Sequencer](https://learn.adafruit.com/spinning-disc-step-sequencer.md)
- [Square NeoPixel Display with Black LED Acrylic](https://learn.adafruit.com/sqaure-neopixel-display-with-black-led-acrylic.md)
- [Wooden NeoPixel Xmas Tree](https://learn.adafruit.com/wooden-neopixel-xmas-tree.md)
- [Mini Raspberry Pi Handheld Notebook](https://learn.adafruit.com/mini-raspberry-pi-handheld-notebook-palmtop.md)
- [Circuit Playground Express Sugar Glider](https://learn.adafruit.com/cpx-sugar-glider.md)
