User Tools

Site Tools


phil_crump:boards:avr_sensor_v3

Gerber Render This is an AVR and RFM board designed for use as a cheap and simple UKHASnet Node.

It also features a 3.3V LDO, broken out AVR GPIO and connection for a switched Sensor.

Layout Repository: github.com/philcrump/UKHASnet-avr-sensor/V3

Errata

  • 470K and 100K should replace the 4.7M and 1M resistors in the ADC Divider. This is to reduce error caused by thermally correlated leakage current in the ADC input.

Potential Applications

Temp / Humidity Sensor

Sensor Device: DHT22

Power Source: 3x Asda Alkaline AA

Antenna: 8.2cm of wire connected to Antenna Pad

Code: github.com/UKHASnet/UKHASnet_Firmware/arduino_sensor

In this setup the node could be configured to transmit Temperature, Humidity and Battery Voltage every couple of minutes. Due to the powersaving used on the Microcontroller and Radio, as well as the switching of the DHT22 Supply, the expected battery life would be around 9 months.

Repeater

Power Source: 1x LiPO charged by Solar Panel

Antenna: SMA Dipole

Code: github.com/UKHASnet/UKHASnet_Firmware/arduino_repeater

In this setup the node is configured to listen, repeating other nodes that are heard and helping extend the network.

In addition the UART output could be enabled to allow an IP-connected device to upload packets to ukhas.net

Sensor Options

DS18B20

DS18B20 Wire-up Accurate Temperature Sensor

Datasheet: DS18B20

DHT22

DHT22 Wire-up Cheap Humidity and Temperature Sensor

Datasheet: DHT22

Power Source Options

3x Alkaline AA Batteries

This is the cheapest and will work well for sensors where the average current draw is tiny, and so no recharging will be required.

3x Ni-MH Rechargeable Batteries

This is the cheapest rechargeable solution. Research into easy methods of trickle charging Ni-MH is currently underway,

1x 3.7V LiPO

If you're confined on space, LiPOs can give you the best energy density. Cells with protection circuits should always be used. You can charge these crudely from 5V solar panels using the very cheap USB LiPO chargers on ebay, however this doesn't appear to work well in winter.

Antenna Options

The PCB has an SMA footprint with a plated through-hole, allowing a variety of options.

1/4 wave Wire Whip

1/4 Wave Wire Whip This is the cheapest and easiest by far. Solder one end of the wire onto the center pad of the SMA footprint, then bend it vertically and cut so that you have a length of 8.2cm from the PCB surface.

The more exact the length, the better. Ideally you'd want to check it with an antenna analyser, however very few people own one suitable for 869 MHz.

This antenna does rely on a ground-plane. The PCB appears to perform this function adequately. You can extend the PCB using wires from the four corner Ground Pads.

SMA 1/4 wave

By soldering on an SMA socket, you can then purchase a factory-tuned version of the 1/4 wave wire whip. This is guaranteed to be the correct length and comes cased in plastic for durability.

This antenna does rely on a ground plane and if not mounted directly to the PCB, one should be provided.

eg. RF Solutions 869 MHz 1/4 wave Antenna

SMA Dipole

This also requires an SMA socket. The dipole is a lot more efficient than the 1/4 wave and does not rely on a ground-plane.

It is also a lot longer and may need additional mechanical support!

eg. RF Solutions 869 MHz Dipole Antenna

Bill Of Materials (aka. BOM)

1x 28DIP ATMega328P

1x RFM69[H]W

1x TO-92 MCP1700 3.3V LDO

Passives

6x 100nF 50V Cap

1/4W Through-Hole Resistors

  • 1x 100K
  • 1x 470K
  • 1x 10K
  • 1x 4.7K (Required for DS18B20/DHT22)

Connectors

1x 6-pin ICSP Header

1x JST-PH 2 Pin Socket

1x 28-pin DIP Socket (Optional)

Arduino Board Definition

8MHz internal oscillator

sensorv3i.name=UKHASnet Sensor V3 (8MHz internal)
sensorv3i.upload.protocol=arduino
sensorv3i.upload.maximum_size=30720
sensorv3i.upload.speed=57600
sensorv3i.bootloader.low_fuses=0xE2
sensorv3i.bootloader.high_fuses=0xDA
sensorv3i.bootloader.extended_fuses=0x07
sensorv3i.bootloader.path=atmega
sensorv3i.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
sensorv3i.bootloader.unlock_bits=0x3F
sensorv3i.bootloader.lock_bits=0x0F
sensorv3i.build.mcu=atmega328p
sensorv3i.build.f_cpu=8000000L
sensorv3i.build.core=arduino:arduino
sensorv3i.build.variant=arduino:standard

8MHz Resonator (untested)

sensorv3.name=UKHASnet Sensor V3 (8MHz resonator)
sensorv3.upload.protocol=arduino
sensorv3.upload.maximum_size=32256
sensorv3.upload.speed=115200
sensorv3.bootloader.low_fuses=0xff
sensorv3.bootloader.high_fuses=0xde
sensorv3.bootloader.extended_fuses=0x05
sensorv3.bootloader.path=optiboot
sensorv3.bootloader.file=optiboot_atmega328.hex
sensorv3.bootloader.unlock_bits=0x3F
sensorv3.bootloader.lock_bits=0x0F
sensorv3.build.mcu=atmega328p
sensorv3.build.f_cpu=8000000L
sensorv3.build.core=arduino
sensorv3.build.variant=standard
phil_crump/boards/avr_sensor_v3.txt · Last modified: 2017/01/02 11:53 by dbrooke