Jump to content


501st Member[501st]
  • Posts

  • Joined

  • Last visited

Everything posted by r2db

  1. The diodes allow you to use the USB to power it or another power supply. Mine can be powered from the speaker box or the computer, or plugged into the computer while powered from the speaker box. The diode only drops the voltage slightly, and the on-board regulator takes that down to 3.3V. In my current build I have a diode from the speaker box to the Teensy and a diode from the USB power to the Teensy. That way I don't try to power the speaker off of USB power and I don't try to feed power back to the USB bus from the Teensy.
  2. I respectfully disagree. You should use diodes to protect from pushing voltage backwards where it shouldn't be. I apologize in advance if I am getting too elementary here. 1N4001 diodes should be more than sufficient to isolate the power. You can pick them up at Radio Shack. 1) Cut the trace from the USB 5V (VUSB) to the 5V pin (VIN) as noted on the diagram: 2) Put one diode from the VUSB to VIN. Just seat it in the hole for VUSB, bend the cathode lead (the wire next to the silver stripe) to the VIN pin. This DOES NOT need to go through to the audio board. The audio board only uses 3.3v. 3) Solder your 5V supply directly to VIN after the diode. Doing this allows you to both power the board externally and connect the USB to program or debug it. However, is you are going to use the cut USB to power it, I recommend heat shrink tubing to cover the splice and splicing the wires a bit cleaner (NASA Lineman's splice http://makezine.com/2012/02/28/how-to-splice-wire-to-nasa-standards/). I will post later about the minimum pins needed for the audio board.
  3. I will, but I am already working on a more streamlined unit. This one is a mess of spaghetti as I didn't know where I was putting everything until it wound up where it is. This new one will have just the microphone and a bluetooth transceiver in the helmet. Right now I have an 8-conductor UTP network cable connecting the speaker and the Teensy/ audio board since I need 1 pair for power, 1 pair for audio, and 1 pair for the low battery warning and amplifier shutdown. If I put everything in the speaker unit by extending it about 1.5 inches I can tidy up the helmet don/ doff routine. I also need to figure out why the potentiometer is not working as expected. I wound up putting two pots in, one immediately after the Teensy output (10k linear taper) and one in the speaker box (10k audio taper). The 10k audio taper by itself just wasn't working in practice even after confirming multiple times that it was doing what it was supposed to on the bench. I am thinking of a digital potentiometer in the future build. I could store the volume in the eeprom and use two more debounced inputs for volume up and down.
  4. OK, I was able to get everything working. I used two lithium round cell 2200 mAh batteries, the Adafruit 5V 1000 mA power board, the Adafruit 2.5 W mono amplifier board, 4 ohm 3W speaker. The amplifier was modified as follows: 1) Remove the pull-up resistor for the "shutdown" pin and if you feel adventurous rotate it 90 degrees right, solder one end to the capacitor ground terminal and the other end to the shutdown pad to make it a pull-down resistor. On the photo above I already soldered a 10k pull-down resistor into the wiring because as I was soldering the chip resistor back on it disappeared on the floor somewhere. 2) Remove the potentiometer on the amplifier board and shunt the positive input to the potentiometer output terminal. The external potentiometer shown above substitutes for that. I can put up a more detailed wiring diagram later. The program was modified and the .wav files for the battery conditions and a JRS startup file are at http://www.r2db.me/TIE/TKTalkie.zip For the program, I needed to move the shutdown signal to the main loop and add another timer for that. It shuts down the amp 1 second after the sound effect terminates if you are not talking again. This does not work if you have background chatter going on. After trooping update: I need a noise-cancelling microphone or some feedback prevention. If I turn up the amplifier all the way even with the amplifier in the pocket just above my knee I get feedback. The amplifier shutdown function worked great, and no low battery during the troop.
  5. I have added the low battery function, but I have yet to be able to try the amplifier power function since I am away from home at work. The whole file is at http://www.r2db.me/TIE/TKTalkie.ino int OUTPUT_ENABLE_PIN = -1; // This pin is for the amplifier output enable signal, used by some amplifiers // to put the amplifier in a low-power state when no audio is being played. // Set to -1 to disable this feature int LOW_BATTERY_PIN = -1; // This pin is a digital input, used if your power supply has a low power warning. // This is assumed to be a high = adequate battery voltage, low = low battery // voltage. Set to -1 to disable this feature. bool BATTERY_GOOD = true; String LOW_BATTERY_WAV = "LOWBATT.wav"; String GOOD_BATTERY_WAV = "GOODBATT.wav"; Bounce LBP = Bounce(); // Used to read low battery pin (if feature is enabled) /*** * Check if the low battery signal has gone low */ boolean checkBattery() { if (LBP.update()) { // If there was a change in the battery state since the last update then: if (!LBP.read()) { // If the battery was previously good and now is low, play .wav file. playEffect(EFFECTS_PLAYER, LOW_BATTERY_WAV); return false; // sample: "Critical failure in power bus. Expect comm system failure." } else { // The battery was previously low but is now good. playEffect(EFFECTS_PLAYER, GOOD_BATTERY_WAV); return true; // sample: "Power bus reconfiguration successful." } } else { return BATTERY_GOOD; // Return the same value currently in the variable, the state hasn't changed. } }
  6. Setting the pin high in VoiceOn() sounds fine, and that is what I have done already, but if I set it low during VoiceOff() it can clip the ending static burst. Is there a way to determine the duration of the .wav file so that I could use millis() to determine in the main loop when to pull the pin low? I could always just cheat and say 2 seconds after the end it will pull it low, but then someone out there will make their own crazy static burst sound that is 4 seconds long and they will complain that it won't play the whole thing.
  7. Requesting 501st access. http://501st.com/members/displaymemberdetails.php?userID=21340 TI-85246
  8. I am working on building my own Aker-style unit that, like the Icomm combo, will power the TKTalkie from the speaker unit. The amplifier that I am using has an output enable pin that when grounded shuts down the amp to conserve power, so I am trying to figure out a way to have the TKTalkie code set that pin to ground when no audio is playing and then set it high just prior to calling to play a file or sending some mic output through. Second, the power boost converter I am using to step up the 3.7V lithium cells to 5V has a low battery output, that I am sending to the TKTalkie so that it will play a "LOWBATT.wav" file to alert you if your about to have a "bad comm" situation. I will post some code later.
  • Create New...