Moteino
This is a clone of the Low Power Labs Moteino AVR radio board which supports RFM95W LoRa modules.
The clone was made by XRobotix Pty Ltd but nothing else is known about that.
Issues
There is a flaw in the design of the Moteino which presents VIN on the serial programming port instead of VDD. This can adversely affect UART programmers which use VDD to detect the target voltage.
The Moteino runs the ATMEGA out of specification by using a 16 MHZ XTAL at 3V3. Generally this works but is not guaranteed at a wide temperature range.
There is no RESET pin connection for the RFM95W module. This doesn't have an impact if appreciated. Similarly there is no input for DIO1 which may be utilised for Rx timeouts.
On the XRobotix clone the LDO VREG has been replaced. VIN max is 6V rather than 16V and current max is 200mA instead of 600mA.
The board has been tested to work at 2.5V and will transmit at this frequency even with the 16 MHz XTAL, however, the boot-loader has a BOR setting of 2V7 which means it will continually reboot at around 2.9V which is at the top of the BOR range for 2V7. The ATmega and SX1276 can operate at 1.8V minimum.
Pinout
GND VIN 3V3 PD1 PD0 ADC7 ADC6 PC5 PC4 PC3 PC2 PC1 PC0 Tx Rx SCL SDA DTR Tx LDO VREG ANT Rx 3V3 GND VIN ATMEGA328P 3V3 NC XTAL AREF GND 16MHz LED SS MOSI MISO SCK RST PD2 PD3 PD4 PD5 PD6 PD7 PB0 PB1 PB2 PB3 PB4 PB5 LDO VREG VIN MAX XC6206 6V MCP1703A 16V
Boot-loader
This is a quick test that communications are working.
The bootloader is related to DualOptiboot_V5.0_atmega328_BlinkD9.hex, perhaps an older revision.
Pololu USB AVR Programmer v2.1
This programming board can supply power to the circuit but not enough power for radio transmission.
Configure
pavr2cmd --restore-defaults pavr2cmd --regulator-mode 3v3 pavr2cmd --vcc-output enabled
Probe
avrdude -carduino -P`pavr2cmd --ttl-port` -b115200 -pm328p -D avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f (probably m328p) avrdude: safemode: Fuses OK (E:00, H:00, L:00) avrdude done. Thank you.
ISP
ISP must be performed at 3V3. Beware of cheap programmers that bit-bang I/O at 5V.
Pololu USB AVR Programmer v2.1
I/O pins on the Pololu have 470R in series and it uses target voltage sense.
Moteino
PB2 must be pulled high via 100K when ISP is connected to disconnect the RFM95W module from the SPI bus. This floats otherwise.
RESET RST SCK PB5 MISO PB4 MOSI PB3 SS PB2 ---100K---3V3 3V3 GND
Pololu
Vcc must be connected to target 3V3 because ISP will not function unless a target voltage is sensed.
MISO PB4 |1 2| Vcc SCK PB5 |3 4| PB3 MOSI RESET RST |5 6| GND GROUND
Configure
pavr2cmd --restore-defaults pavr2cmd --regulator-mode 3v3 pavr2cmd --vcc-output disabled
Probe
avrdude -B 50 -c avrisp2 -P `pavr2cmd --prog-port` -p atmega328p avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x1e950f (probably m328p) avrdude: safemode: Fuses OK (E:FD, H:DE, L:FF) avrdude done. Thank you.
Antenna
Frequency | 1/4 wavelength |
---|---|
433 MHz | 16.4 cm |
868 MHz | 8.2 cm |
915 MHz | 7.8 cm |