Assembling and Testing the Voice It

Common Components Installation – Part 1

[Video – starting at step 8]

  1. Gather all the non-3D-printed components (Video)
  2. Prepare the software environment
  3. Prepare the micro-SD card with the sound files
  4. Either prepare an RFID tag for testing by adding the text “different” to the tag or prepare a QR code for testing by encoding the text “different”, or both. If you’ll be using the RFID Smart Card NFC Reader/Writer to create the RFID tag, you’ll need to download software to control reader/writer.
  5. Print the enclosure – note that you need to pause the print of the enclosure top at one point to insert the 4 hex nuts. Alternatively, you can insert the nuts after the print has completed (but that can be a pain – so insert them during the printing process if you can). Note that you do not (and probably should not) use supports when printing the enclosure.
  6. Optionally, prepare the QR code module for assembly (Video).
  7. Either prepare the headphone jack for assembly or prepare the headphone plug for assembly or both.
  8. Insert the Arduino into the terminal block breakout board and secure it using (4) screws that came with the terminal board (PH#1). Sometimes the posts holding the screws want to turn before the screw does. In that case, use some pliers to hold the post in place while removing the screw. Be careful aligning the pins on the Arduino with the slots in the headers of the terminal board. The pins may initially resist going all the way into the slots. Be patient, there are a lot of pins, so lots of resistance. Remove and reinsert the board a few times. If you just can’t get the board all the way into the slots, don’t worry. Just tighten the screws back down to the point where they’re holding the board. They don’t have to tighten all the way down to the posts for the Voice It to work.
  9. Use scissors to clean the sacrificial bridge from the reset hole in the bottom of the enclosure.
  10. Install the momentary switch in the reset hole. Set aside the lock washer (aka split washer).  You don’t need it, and it makes the assembly more difficult. Tighten it using the body of the switch, not the wires.
  11. Optional: Insert the battery into the enclosure base. Fold a sheet of paper twice and trim (away from folds) to the approximate size of the battery. You can remove the battery temporarily and trace around it to help you size the paper, then reinsert the battery. Place the folded paper on top of the battery, place the terminal breakout board on top of the paper and onto the raised stands for the terminal board.
  12. Attach the terminal breakout board to the stands using (4) #4 x 3/8″ screws (PH#1). Don’t tighten the screws too tightly! Just gently secure the board to the pedestals. If you tighten the screws too tightly, you may cause board to bend and damage it which may cause the Voice It to fail permanently or intermittently.
  13. Insert the wires from the momentary switch into terminal block slots RST and GND in the second row of slots. Either wire can go into either slot.  Note that the terminal block slots come “closed” from the factory. You’ll need to unscrew the slot screw to “open” the slot before you can insert the jumper wire. When tightening the screws, ensure that the metal of the slot is making contact with the exposed wire and not just with the insulation around the wire. Pull gently on each wire to ensure that it has been properly captured in its slot.
  14. Install the USB extension cable (refer to the image engraved on the outside of the enclosure bottom to properly orient the large end of the extension cable) (PH#2).

Verifying the Common Components Installation – Part 1

[Video]

  1. Connect the Arduino to the PC by plugging the micro-USB data cable into the exposed/large end of the USB extender cable.
  2. Verify that the green LED next to the USB connector on the Arduino is lit.
  3. You may see another LED blinking. Every Arduino comes with the “Blink” program installed, so when you provide the board with power by inserting the USB cable, that software will run, and the second LED will begin to blink. You can ignore it and continue with the assembly as if it wasn’t happening.
  4. Verify that you can retrieve “Board Info” using the Arduino IDE.
  5. Push the male[1] JST connector on the battery into the female connector on the Arduino. There is a ridge on one side of the JST connector, that side should go up when you insert the connector.
  6. Allow the battery to charge for several hours. [The battery will charge faster if the USB data cable is attached to a standard mobile phone AC plug. You can also charge it from your PC but it will take longer.]
  7. Disconnect the male JST connector of the battery from the female connector on the Arduino. Put a piece of masking tape over the JST connector of the battery.
  8. Disconnect micro-USB data cable from USB extension cable.

Do not attach the battery to Arduino again until instructed to do so.


Common Components Installation – Part 2

[Video]

  1. Insert the micro-SD card into the socket (chunky end) of the SD card extension cable.
  2. Insert the other end of the extension cable into the SD card socket on the Arduino. The gold contacts go down. Note that it won’t “click” into place.
  3. Insert the socket end of the SD card extension cable into the rectangular opening in the enclosure bottom.
  4. Tear a 1.5-inch piece of masking tape and set aside.
  5. Gently lay the ribbon cable forward over the Arduino headers (avoid sharp folds in ribbon cable).
  6. Use the masking tape to secure the ribbon cable to the headers on the Arduino.

Verifying the Common Components Installation- Part 2

[Video]

  1. Connect the Arduino to the PC using micro-USB data cable
  2. Verify that green LED next to USB connector on Arduino is lit.
  3. Verify that you can retrieve “Board Info” using the Arduino IDE.
  4. Download the Voice It software {if you haven’t done this already while configuring the Arduino software environment}.
  5. Open Voice It software in the Arduino IDE
  6. Verify that the Voice It software is complete.
  7. Upload Voice It software to the Arduino.
  8. Verify that upload completes successfully
  9. Verify that Serial Monitor shows that the SD card has initialized successfully and the startup.wav file was successfully played (note you won’t hear anything at this point):
Initializing SD card... ready
Opening startup.wav...OK
File type (expecting WAVE): WAVE
Chunk size (expecting 16): 16
Format (expecting 1): 1
Number of channels (expecting 1): 1
Sample rate (variable): 88200
Sample size (expecting 8): 8
  1. Clear the content of the Serial Monitor.
  2. Using the eraser end of a pencil, press the momentary switch on the underside of the enclosure. Verify that you hear the “startup” sound and that you can again use the test RFID tag to play the “different” recording.
  3. Verify that the Voice It software restarts and the following is displayed in the Serial Monitor.
Initializing SD card... ready
Opening startup.wav...OK
File type (expecting WAVE): WAVE
Chunk size (expecting 16): 16
Format (expecting 1): 1
Number of channels (expecting 1): 1
Sample rate (variable): 88200
Sample size (expecting 8): 8
  1. Close the Serial Monitor window.
  2. Disconnect micro-USB data cable from USB extension cable.

Optional: RFID Card Installation

[Video]

  1. Tear off (7) male to female breadboard jumper wires, keeping them joined in the center.
  2. Check the order of the pins on the RFID Card from left to right. If the pins on your RFID card are in a different order, reorder the table rows below to match the order of your pins.  Fill in the middle column of the table:
RFID Card Pin Wire Color (left to right)Terminal Block Slot Number
SDA (NSS, CS) 7
SCK   9
MOSI   8
MISO   10
IRQ (skip) (unused)
GND   GND
RST   6
3.3V (VCC)   3V3
Available as a separate document in the Voice It “assembly” folder.
  1. Insert the male ends of the jumper wires into the terminal block slots based on their color. Note that the terminal block slots come “closed” from the factory. You’ll need to unscrew the slot screw to “open” the slot before you can insert the jumper wire. It may be necessary to separate the wires a bit to allow them to reach their designated slots. The 3v3 and GND wires should be connected to the corresponding slots in the first row. Tighten each slot screw as you go (SL#3). Pull gently on each wire to ensure that it has been properly captured in its slot.
  2. Slide the female ends of the jumper wires over the RFID card pins based on their color.
  3. Triple-check that the wire colors are routed to the correct pins and terminal block slots

Optional: Verifying the RFID Card Installation

[Video]

  1. Connect the micro-USB data cable from the USB extension cable panel mount on the bottom of the enclosure.
  2. Verify that the green LED next to USB connector on Arduino is lit.
  3. Verify that the red LED on the RFID card lights as well.
  4. Verify that you can retrieve “Board Info” using the Arduino IDE.
  5. Upload Voice It software (quickly open the Serial Monitor). Verify that Serial Monitor shows that the SD card has initialized successfully and that the startup.wav file was successfully played (note, you won’t hear anything at this point):
Initializing SD card... ready
Opening startup.wav...OK
File type (expecting WAVE): WAVE
Chunk size (expecting 16): 16
Format (expecting 1): 1
Number of channels (expecting 1): 1
Sample rate (variable): 88200
Sample size (expecting 8): 8
  1. Click on the “Clear output” button in the upper right corner of the Serial Monitor window.
  2. Touch an encoded RFID tag to the target region of the RFID card. Verify that the card is read, and the associated WAV file is successfully found and played (note, you won’t hear anything at this point):
MIFARE 1KB: Auth: 0 OK
[different] 
different.wav
File type (expecting WAVE): WAVE
Chunk size (expecting 16): 16
Format (expecting 1): 1
Number of channels (expecting 1): 1
Sample rate (variable): 44100
Sample size (expecting 8): 8
  1. If you’re unsuccessful getting the RFID reader card to recognize the RFID tag that you prepared, there could be several causes, but the first thing to check is whether you have wired the connections between the terminal block and the RFID card properly. The Pin Test process can help you identify a wiring problem. Follow the instructions here.
  2. Close the Serial Monitor window.
  3. Disconnect the micro-USB data cable from the USB extension cable panel mount on the bottom of the enclosure.

Optional: QR Code Module Installation

[Video]

  1. Insert two rubber washers into the inside-facing sides of the QR code module mount in the enclosure top.
  2. Insert one hex nut into the slot on the outside of one of the QR code module mounts. Use a pair of pliers to squeeze the nut completely into the recess.
  3. Gently guide the four wires attached to the QR code module into the opening in the enclosure top and then slowly work the QR code module enclosure between the two rubber washers. You can look through the adjustment hole in the end of the enclosure top to see when the holes in the mount align with the holes in the module enclosure.
  4. With the holes aligned, insert a 2-inch screw through the mounts and module enclosure from the side opposite the nut that you inserted in step 2. Be careful that you don’t damage the module wires as you insert the screw.
  5. Insert a Philips-head screwdriver through the adjustment slot and tighten the screw. It doesn’t need to be tight. The screw is primarily there to provide a pivot for the module enclosure. You can test the tightness by rotating the module enclosure up and down.
  6. Refer to how you filled in this table when you prepared the QR code module. Attach the extension wirers to their associated terminal block slots. You may need to position the enclosure top next to the enclosure bottom for the jumper wires to reach.
Module Wire ColorExtension Wire ColorTerminal Block Slot Number
Green13
White14
Red3V3
BlackGND
Available as a separate document in the Voice It “assembly” folder.

Optional: Verifying the QR Code Module Installation

[Video]

  1. Connect the USB data cable to the USB extension cable panel mount on the Voice It.
  2. If the QR code module is properly receiving power, you will hear an almost immediate beep and the module will light up.
  3. Verify that the green LED next to USB connector on Arduino is lit.
  4. Verify that you can retrieve “Board Info” using the Arduino IDE.
  5. If the Arduino IDE isn’t already running, launch it and upload Voice It software (quickly open the Serial Monitor). Verify that Serial Monitor shows that the SD card has initialized successfully and that the startup.wav file was successfully played (note, you won’t hear anything at this point):
Initializing SD card... ready
Opening startup.wav...OK
File type (expecting WAVE): WAVE
Chunk size (expecting 16): 16
Format (expecting 1): 1
Number of channels (expecting 1): 1
Sample rate (variable): 88200
Sample size (expecting 8): 8
  1. Click on the “Clear output” button in the upper right corner of the Serial Monitor window.
  2. Place the test QR code in front of the QR code reader module. Verify that the QR code is read, and the associated WAV file is successfully found and played (note, you won’t hear anything at this point):
Code: different 
different.wav
File type (expecting WAVE): WAVE
Chunk size (expecting 16): 16
Format (expecting 1): 1
Number of channels (expecting 1): 1
Sample rate (variable): 44100
Sample size (expecting 8): 8
  1. Close the Serial Monitor window.
  2. Disconnect the micro-USB data cable from the USB extension cable panel mount on the bottom of the enclosure.

Internal Speaker/Audio Amplifier or External Speaker Jack Installation and Initial Test

[Video]

  1. Attach the speaker to the speaker stands using (4) #4 x 3/8″ screws (PH#1).
  2. Wrap the speaker wire around the wrapping posts, in a figure-eight, leaving about 1.5″ of wire unwrapped. Secure the wire with the 3D-printed wire clip.
  3. Remove the black knob cover, nut, and washer from the audio amp volume control knob, and rotate the volume control knob to approximately its middle position. You can discard the black knob cover, nut, and washer.
  4. Just like with the terminal block, the slots on the audio amp come from the factory in the closed state. You’ll need to open them before inserting wires. Insert the black wire of the JST-PH 2.0 female connector cable into the L- slot in the audio amp. Insert the red wire into the L+ slot on the outside of the audio amp. When tightening the screws, ensure that the metal of the slot is making contact with the exposed part of both wires and not just with the insulation around the wire. Pull gently on each wire to ensure that it has been properly captured in the slot.
  5. Attach the DC 5V + and – connectors of the audio amplifier to the 3V3 and GND slots on the fourth rank of connectors on the terminal block using the wires you’ve already prepared.
  6. Insert the appropriate jumper wire wire you’ve already prepared into the A0 slot in the fourth row of slots on the terminal block.. Pull gently on the wire to ensure that it has been properly captured in the slot.
  7. Insert the male JST connector at the end of the speaker wire into the female JST connector that you just connected to the audio amp. Be sure that you’re connecting to the speaker and not the battery.
  8. Insert the stereo plug into the headphone jack on the audio amp.
  9. If you’ve installed a headphone jack for connection to an external speaker or headphones, connect your external speaker or headphones to the headphone jack.
  10. Connect Arduino to power plugging micro-USB data cable into the panel mount end of the USB extender cable on the Voice It.
  11. If you’ve installed an internal speaker along with an audio amplifier, verify that the green light on the audio amp is lit.
  12. If you have installed the QR code reader module, verify that you hear the initialization “beep” from the module.
  13. Verify that you hear the “startup” sound through the internal speaker or external speaker.
  14. Touch the RFID test tag to the target region of the RFID tag or pass the test QR code in front of the QR Code reader module. Verify that the tag/QR code is read, and the associated WAV file is successfully found and played. If you are creating a Voice It with both capabilities, you can test both the ability to read an RFID tag and a QR code.
  15. Disconnect micro-USB data cable from USB extension cable panel mount on bottom of enclosure

Final Assembly and Verification

[Video]

  1. If you have installed the internal speaker and audio amplifier, detach the audio amp 3V3 and GND wires from the terminal block and detach the headphone plug from the audio amp. Disconnect the audio amp from the JST connector at the end of the speaker wires (this connection can be fairly tight and may require you to use some small pliers).
  2. Place the enclosure top end-to-end with the enclosure bottom.
  3. If you have installed the internal speaker and audio amplifier, place the audio amp in against the top of the enclosure (with the volume control knob inserted into the access control channel) and secure with (4) #4 x 3/8″ screws (PH#1).
  4. If you’ve installed an RFID reader card, place the RFID card against the top of the enclosure with pins up. Don’t overly twist the wires as you do this.  Use the RFID card bracket and (4) #4 x 3/8″ screws to secure the card in place (PH#1).
  5. Position the enclosure top so that you can attach the audio wires to the GND and 3V3 slots on the terminal board as before.
  6. If you have installed the internal speaker and audio amplifier, plug the headphone plug back into the audio amp.
  7. If you have installed the internal speaker and audio amplifier, plug the male JST connector on the speaker wire into the female JST connector from the audio amp.
  8. Plug the male JST connector of the battery into the female JST connector on the Arduino. You will hear the startup sound.
  9. If you have installed a headphone jack to connect to an external speaker, lay the head of the headphone jack on the cradle next to the speaker.
  10. Carefully push the wires connecting the terminal block to the audio amp, headphone jack, and RFID reader into the enclosure as you put the enclosure top onto the enclosure bottom – matching the key (small rectangle of plastic on the top edge of the enclosure bottom) that aligns the enclosure top and bottom.
  11. If you’re using screw-on rubber feet with a hole in the center, place (4) rubber feet onto each of (4) #6-32 x 1-1/2-inch flat head machine screws.
  12. Insert (1) #6-32 x 2-inch flat head machine screw into each corner and tighten it to the nuts that you inserted into the enclosure top during printing (PH#1). [You will feel some resistance prior to each nut, that’s the sacrificial layer added for printing purposes.  Just push through and engage the nut. . You’ll encounter a second sacrificial layer just before passing through the slide-in nut slot. Push through this one as well.]
  13. If you’re using stick-on rubber feet, cover the (4) screw heads with (4) stick-on rubber feet.
  14. Using the eraser end of a pencil, press the momentary switch. Verify that you hear the “startup” sound and that you can again use the test RFID tag and/or QR code to play the “different” recording.
  15. If you have a set of stereo headphones or powered speakers, plug them into the headphone jack and test the RFID tag again. Ensure that you can hear the word spoken through the headphones or speakers.
  16. If you have installed the internal speaker, adjust the volume by inserting a small, slotted-head screwdriver into the access control channel and into the slot of the audio amp volume control. Turn the screwdriver clockwise to increase the volume and counterclockwise to decrease the volume. If you turn the knob completely to the left, you’ll hear a click. This turns the audio amp off. Turning the amp off will extend the life of the battery but it will still drain because it is powering the Arduino.

[1] Note that the gender of a JST connector is actually the opposite of what we talk about here since it’s determined by the presence or absence of the exposed wires rather than what the plastic surround is doing.