Close
0%
0%

Star Trek Communicator Badge

In the true spirit of Star Trek, this communicator badge is completely autonomous, while fitting in the form factor of an original badge

Joe
Similar projects worth following
Star Trek was known for dreaming up technology that was deemed nearly impossible given the limitations of the technology for the day. Having a small badge that could send audio across vast distances seemed out of the realm of possibility during the late 1980's. This project's aim is to use modern technology to provide nearly all the features of visionary tech, namely:

- Tap to connect and communicate instantly
- Long range (from orbit to planet surface)
- Small form factor (of an original TNG badge)
- Fully autonomous (no cell phone or base station needed)
- No external power source (i.e. battery powered)

Wireless Transceiver Design Decision Details

A similar project to this could easily be done with a bluetooth audio chipset much like the ones we see in wireless handsfree modules. The problem with those modules is that they don't meet any of the requirements of THIS project. First, they rely on a connection to a cell phone for communication, this would not make the system autonomous. Second, the range of bluetooth audio is very limited, making it impractical to use without being paired to a cell phone.

Therefore, I was tasked with finding a wireless communications system that had:

  1. Small form factor
  2. Low power
  3. Fast enough data-rate to send audio
  4. Long range
  5. Multi-node communications protocol

From this point, I believe I have found this in the RFM69HCW ISM band transceiver. This module meets all the requirements: https://www.sparkfun.com/products/13910

  1. Smaller than a US quarter
  2. Low power: Rx = 16 mA, 100nA register retention
  3. FSK Bit rates up to 300 kb/s (fast enough for 8-bit audio with 16kHz bandwidth)
  4. It has been used to communicate from space to ground (http://www.50dollarsat.info/)
  5. It supports up to unique 255 node IDs

There may be better modules that come available in the future so it is desirable to design a system that can easily scale to use any TX module with minor software and board changes. Therefore, I have decided to base this design on a Teensy micro-controller.

Communicator_Demo.zip

Arduino demo code that puts one Teensy LC in Audio Transmit mode and another in Audio Receive mode.

Zip Archive - 224.88 kB - 02/21/2017 at 02:53

Download

MOUSER_Invoice_scrubbed.pdf

Detailed Mouser invoice showing exactly what parts to get. Bootloader chip needs to be purchased from PRJC directly.

Adobe Portable Document Format - 852.62 kB - 02/17/2017 at 07:27

Preview Download

communicator_v2.brd

New Board Layout

brd - 138.53 kB - 02/17/2017 at 07:18

Download

communicator_v2.sch

New Board Schematic

sch - 280.76 kB - 02/17/2017 at 07:18

See BOM Download

Bitrate Calculations.xlsx

Spreadsheet of bitrate calculations and achievable bandwidths

sheet - 5.17 kB - 02/03/2017 at 04:40

Download

communicator.sch

Eagle Schematic of Communicator Badge

sch - 280.76 kB - 02/03/2017 at 04:04

See BOM Download

communicator.brd

Eagle Layout of Communicator Badge

brd - 134.07 kB - 02/03/2017 at 04:04

Download

View all 7 files

  • 1 × 0915AT43A0026E (915 MHZ antenna) Electronic Components / Misc. Electronic Components
  • 1 × TSX-3225 16.0000MF09Z-AC0 Frequency Control / Crystals
  • 1 × KXT 131 LHS Electronic Components / Tactile Switch
  • 1 × SPU0414HR5H-SB Electronic Components / Misc. Electronic Components
  • 1 × TPA2006D1DRBR Audio ICs / Audio Amplifiers
  • 1 × PSR1511N08S3K Electronic Components / Micro Speaker
  • 1 × 10118192-0001LF Connectors and Accessories / Telecom and Datacom (Modular) Connectors
  • 1 × LIS3DHTR Semiconductors and Integrated Circuits / Misc. Semiconductors and Integrated Circuits
  • 1 × LM3671MF-3.3/NOPB Power Management ICs / Switching Regulators and Controllers
  • 1 × MCP73831T-2ACI/OT Power Management ICs / Power Supply Support

View all 14 components

  • Trying a new PCB

    Joe6 days ago 0 comments

    Well, still no luck getting the current PCB up and running with the Teensy. I have decided to try making a new one.

    • I improved the oscillator grounding
    • I moved things around to make it a little easier to debug
    • I have made the SMD pads to the teensy longer to make it easier to do hand touch-up soldering.

    The main challenge I think is that I am trying to go straight from breadboarding to miniaturization. This makes it a bit harder to debug, not to mention solder. Right now I am not using a stencil which makes the solder paste application very tedious and error prone. Hopefully these improvements will make it a bit easier. You can find the new board on oshpark here:

  • Custom Teensy Bringup

    Joe02/07/2017 at 04:43 0 comments

    I am having trouble getting my custom Teensy LC to boot up properly. The teensy is getting programmed by the bootloader chip and I see the crystal oscillator start running, but I am not getting any USB comms whatsoever. If anyone has any ideas, you can see more details and post a reply on the prjc forum here: https://forum.pjrc.com/threads/41994-Custom-Teensy-LC-with-MK02-accepts-bootloader-but-no-USB?p=132921

  • Breadboard Prototype

    Joe02/03/2017 at 05:13 0 comments

      Before manufacturing a fully miniaturized system it is always wise to prototype at a larger scale first. This will help find bugs that will reduce the likelyhood of having to do a board respin later. In my case, must of the components I wanted to work with could easily be bought on Adafruit of Sparkfun with easily breadboardable headers.

      In this breadboard prototype, I connected two Teensy LC micro-controllers to two wireless transceivers, microphones, speakers, etc. I wrote some code to configure one as a transmitter and one as a receiver to test the communications protocol/procedure, bitrates, and the system as a whole. Here are some of the lessons I learned:

      1. The 3.3V regulator on the teensy is not powerful enough to power the receiver and speaker at the same time. I needed to have an external, higher-power regulator.
      2. The Arduino library for the RF transceiver doesn't support the high-data-rate mode so it had to be modified for this application.
      3. Any mic used needs high gain in order to be able to hear a human voice while attached to a lapel. Because a mic amplifier takes up valuable space and power I have found a mic that has an internal low-power amplifier. In addition, the teensy has an internal amplifier than can be used if additional gain is needed.
      4. I thought the RF module had built features that made it simple to operate ( such as a power-on-reset feature) but it has been proven that it doesn't. Therefore, I have found that additional pins need to be connected to support all the modes I need.
      5. Some times the Teensy doesn't play well with the RF library, therefore a manual reset button is a must and board space must be used.
      6. The speaker amplifier consumes considerable power so it is necessary that I choose an amplifier that has a shutdown mode.

View all 3 project logs

  • 1

    Order Parts and PCB: This is a complex build requiring many SMD components. Many components are standard ICs and passives that can be found on this list, but there are a couple components that must be special ordered:

    1. The MKL02Z32 must be purchased with the teensy bootloader pre-burned in it from here
    2. The RFM69HCW must be the 915 MHz version to match the antenna
  • 2

    SMD Solder: This is NOT EASY. The density of this board is very high. The components have very small pin pitches and some CAN ONLY BE REFLOW SOLDERED. For example, the microphone pins are underneath the part have cannot be accessed with a soldering iron.

    I recommend building this in steps. Populate the Teensy LC chip, it's bootloader chip, the crystal oscillator, and the reset switch. This will allow you to get the teensy up and running before waisting time with other components. If the teensy doesn't work, nothing will work. You can bypass the 3.3V regulator and use a bench power supply to connect to the 3.3V power pin (and ground of course).

    Test the teensy by connecting to it on your PC and making sure you can program it with some example code or simple blink code. If you can take to it you are good!

  • 3

    Next, or if you don't have a bench power supply, populate the 3.3V regulator and it's associated components. Test it with a multi-meter.

View all 5 instructions

Enjoy this project?

Share      

Discussions

josephchrzempiec wrote 4 hours ago point

So I'm getting the hang of all your information here  and 2 things in your parts list i didn't understand. there was it looked like two processors  chips. But in fact there is just one chip is the processor and one is a programmer chip. Basically you are just making a all in one board using  a teensy layout and programming correct? Sorry still kinda new to all this.

  Are you sure? yes | no

TheotherMike wrote an hour ago point

Joe is basically building a Teensy LC, with a layout especially designed for use with the RFM69. The basic schematic should be comparable to this one (at least I think so):

https://www.pjrc.com/teensy/schematic.html

That´s also the reason why you Need a Special pre-programmed chip from pjrc. It includes the bootloader program which is needed so you can use the Arduino IDE with the Teensy LC...

  Are you sure? yes | no

josephchrzempiec wrote an hour ago point

Thank you TheotherMike for that.  I had a feeling it was for a teensy board. I my self never had a teensy board. I only learned a lot using arduino and arduino IDE not even sure what is the difference between the Arduino M0 pro board and the Teensy other then it uses the same Processor chip.

  Are you sure? yes | no

josephchrzempiec wrote 11 hours ago point

Hello i have a question maybe I'm missing this. But which battery are you plan on using with the communicator? Also i was why two processors chips. Is one focus on processing the sound and the other focusing on transmitting and receiving?

  Are you sure? yes | no

Joe wrote 9 hours ago point

Thats a good question... I don't have one on the list. It must be a LIPO battery as the charger chip is designed for one. Then it's just a matter of size that will fit in the form factor. I haven't sourced one yet but the final design will probably fit about 50-100mAh or so.

  Are you sure? yes | no

josephchrzempiec wrote 8 hours ago point

Thank you. Being at 50 to 100ma current. How long do you think you might get out of it? What i mean is Do you expect it to last a longer time say over 2 or 3 hours, Or will it last longer? I know these micro processors take low power only a few milliamps But the RF transceiver not sure of.

  Are you sure? yes | no

Joe wrote 8 hours ago point

the rfm69 has a low power receive mode that only takes 16mA, duty cycled with a standby mode of 1.25mA (and maybe even 0.1uA sleep with clear coding). So the battery life will be dominated by talk time (up to 100mA for max range). If you don't talk hardly at all, I think we can get a full day of standby out of it.

  Are you sure? yes | no

josephchrzempiec wrote 4 hours ago point

so I say if staying on no more then 20 to 30 seconds of talk should be okay. But if in standby mode will it wake up if get a commutation incoming. How does the standby work in this case? 

  Are you sure? yes | no

josephchrzempiec wrote 2 days ago point

Hello i have a question in your documentation you are using the M0 chip is that for the arduino m0 pro board chip? The second question i have is what about code for sketch or libraries and what not? I wanted to make one But I'm not a coder my self.

  Are you sure? yes | no

Joe wrote 2 days ago point

I am using a Teensy LC chip. This is essentially made up of two arm chips: the main micro (MKL26Z64VFT4) and a bootloader micro (MKL02Z32). The MKL02Z32 chip needs to be bought from PRJC.com with their custom firmware loaded on it. This allows you to them program the main micro via USB with the Arduino IDE. I am far from finishing the software. But I have a demo that puts one module in TX and another in RX. Once I get the new board up and running I will post a better demo SW release.

  Are you sure? yes | no

Neo wrote 5 days ago point

Keep up the good work, very exciting project!

  Are you sure? yes | no

TheotherMike wrote 6 days ago point

Dear Joe, could you please also update the eagle files?

  Are you sure? yes | no

TheotherMike wrote 6 days ago point

...brd ordered... :-)

  Are you sure? yes | no

Joe wrote 5 days ago point

Done. When you are ordering parts, make sure you get the MKL02Z32 from PRJC because it needs a pre-loaded teensy bootloader. I'll attach my Mouser invoice so you konw exactly what parts to get...

  Are you sure? yes | no

TheotherMike wrote 2 days ago point

Parts now also ordered....your part list was a great help, thank you! The preprogrammed bootloader chips are a bigger problem in Europe and will take some weeks from now on... :-|  Well, it´s getting more and more exciting with your project !! :-)))

  Are you sure? yes | no

josephchrzempiec wrote 6 days ago point

Hello 255 nodes is the max what happens if you have more then what is there a way to add more? Also what about code to make the audio to transmit and receive? 

  Are you sure? yes | no

Joe wrote 5 days ago point

Actually there is a maximum of 255 node IDs. If two nodes have the same ID it is probably fine. The only reason we would care about the IDs is if we wanted to restrict communications or maybe have multiple channels.

  Are you sure? yes | no

TheotherMike wrote 02/10/2017 at 09:07 point

Perhaps I don´t see it in the Image (no Viewer at Hand...), but don´t you Need pin 2 on GND ?

  Are you sure? yes | no

Joe wrote 02/10/2017 at 17:01 point

Thanks for looking, pin 2 is grounded via a connection to the center pad.

  Are you sure? yes | no

TheotherMike wrote 02/10/2017 at 18:33 point

Alright,.....er...but, I´m sorry to ask again..... is the center pad really connected to GND. On this computer I have an old eagle version and neither in the .sch nor in .brd I can see a real connection. Might just be an issue with my program or my lacking skills...

  Are you sure? yes | no

Joe wrote 02/10/2017 at 19:03 point

Gosh, I hope I didn't mess that up...The via in the center of the pad should connect the pad to the ground plane below. Where in the sch do you not see the GND connection? I have 3 VSS pins on the left side that are all connected together. Does the image of the schematic I posted look the same as what your eagle is showing?

  Are you sure? yes | no

TheotherMike wrote 02/10/2017 at 19:13 point

Yes, Sir, it looks identical. But I miss pin 2 in the schematic, like shown here: https://www.pjrc.com/teensy/schematic.html

I´m still not able to verify the gnd-plane...

Edit: I see...in the brd it seems to be all connected...mmhhhh.....

  Are you sure? yes | no

Joe wrote 02/06/2017 at 06:52 point

I am using a custom trunk of the https://github.com/LowPowerLab/RFM69 library. I decided that I needed more flexibility to switch between low power packet mode and high-power streaming. Right now, the protocol is designed to send a lower power encrypted packet to tell the slaves to start receiving audio, then I kick the master and slaves into streaming mode. Yes, the LIS3DH is for tap detection. I'll be posting some example fixed master, fixed slave code soon.

  Are you sure? yes | no

oshpark wrote 02/03/2017 at 20:23 point

Exciting project!

  Are you sure? yes | no

TheotherMike wrote 02/03/2017 at 17:17 point

That´s very Cool! :-))

What libs do you use ?  It somehow reminds me of "RF24Audio". But please os firmware!?

The LIS3DHTR is for tap recognition?

  Are you sure? yes | no

Does this project spark your interest?

Become a member to follow this project and never miss any updates