100%
arduino_longdistance pcb_mainboard view
Description

Imported from GitHub: jonmon6691/arduino_longdistance · commit 67e9b36 · license MIT

Description

An improvement to arduino_RustysCalling that increases range, responsiveness, battery life, reduces complexity, and even folds your laundry!

README

arduino_LongDistance

An improvement to arduino_RustysCalling that increases range, responsiveness, battery life, reduces complexity, and even folds your laundry!

Todo

  • Clean up phone wiring, can I get a new handset??
  • Add wiring for dial
  • Power button
    • Toggle button with LED
    • LED can be powered directly with 3.3V output, brightness is good at 2k series R, current is only .5ma

Remote

This module is simply a button and a LoRa transmitter.

While the button is pressed, the remote transmitts packets as fast as it can. Otherwise it's idle, not sending anything.

Note: To maximize the packet rate (and therefore increase the responsiveness), the modems use the .setModemConfig(RH_RF95::Bw500Cr45Sf128) setting to optimize speed at the cost of distance. In practice this results in a packet every 8ms. The range appears to be more than sufficient, even when the rx is closed inside the phone.

Feather Option

https://www.adafruit.com/product/3178

Battery life for a SAMD Radiofruit with a 350mAh little lipo pack is about 1 week. Would be nice if this was replaceable... Note: that's with 1mA while asleep (not using RFM sleep), 120mA while transmitting

BSN3 Option

https://github.com/EasySensors/ButtonSizeNode3

Programs just like an Arduino Pro Mini, directly with an FTDI cable. Using sleep state for the Mega and for radio its down to 4 microamps. The two CR2032's (255mAh @ 6.5V) should last 7 years!!! I need to double check my ammeter tbh

Phone

The LoRa receiver also orchestrates the phones other functions

Ringer

Every time the phone receives a LoRa packet, it will run the ringer for the next 20 milliseconds. Since the packets come every 8ms, this means the ringer will stay on without interruption while the remote button held down, and will ring for about 20ms after its released. Which isn't noticeable.

To turn on the ringer, the microcontroller drives the gate of an N-channel FET with a 3.3k pulldown resistor. That FET provides a path to ground for a ringer module which converts the DC of a 9V battery into 70V 20Hz AC to power the ringer directly.

  • Experiments on making the ringer louder
    • 2x A23 in parallel,(172mA) Not significantly louder, but less voltage drop during ringing (4v drop vs 2v drop) and will probably last a lot longer
    • 12v wall wart, (210mA) not significantly louder, no voltage drop at all while ringing.
    • 1x 9V, (160mA) not significantly quieter, but could in theory last a lot longer, like 20x
    • 2x A23 in series (24v) doesn't work, but thankfully, doesn't break the ringer either
    • 2x 9V in series (18.5v) doesn't work, but thankfully, doesn't break the ringer either
    • Conclusion: Using single 9V battery for convinience and longevity
  • Power consumption
    • ESP + Lora listening = 81mA! 68mA of that is from the ESP by itself. Surely there's a way to lower this, maybe Wifi or BT is on??
    • Audio FX board: 29mA idle

Playing audio

When the handset is lifted off the cradle, the phone will play a random audio file through the speaker.

The audio is generated by an Adafruit SFX board which is controlled using UART from the LoRa receiver module.

When the handset is placed back on the cradle, the audio will stop.

When the dial is turned and the handset is off the cradle, the current audio will be interrupted and the phone will play a giggling noise. When it's released, it will start a new audio.

The ground of the audio board is driven with another FET like the ringer module so that the power consumption can be cut by the main controller.

Comments
Sign in to comment

No comments yet. Be the first to ask about this board.