User:Debellt/sandbox

OPEnS-Hub_Frontiers DOI

This is the Data, CAD, and Code archive for the OPEnS Hub Project

Project Page

Project Loom Repository that this is a instance/subset of

Development Boards This project used the Adafruit line of Development boards called Feathers and FeatherWings

Specifically

Adafruit's M0 LoRa RFM95 Feather Adafruit's Ethernet FeatherWing Adafruit's Adalogger FeatherWing (Real-time Clock and SD Card) Bill of Materials BOM

Getting Started Details on setting up Arduino IDE and Code can be found here

Details on using the Code once setup (with examples) can be found here

Low Power & Real-Time Clock Support Our dependancy library supports two RTC devices:

Adafruit DS3231 Adafruit PCF8523 Currently, interrupts (for waking the microprocessor from sleep) are only supported via the DS3231, with the PCF8523 mostly being used in conjunction with an SD card (as Adafruit Adalogger featherwing has PCF8523 and SD card holder) to provide timestamps.

The Loom Library has support for both devices for returning strings of the date, time, or weekday. Additional timer functions are provided for the DS3231.

RTC and Low Power Dependencies DS3231 Extended Library Low Power Library Enable Interrupt NOTE: To use the DS3231 extended library with the Feather M0, the following line must be added to RTClibExtended.h:

Sleep Modes Project Loom supports two sleep modes for the Feather M0 and one sleep mode for the Feather 32u4. Here are some details on the various modes:
 * 1) define _BV(bit) (1 << (bit))

Mode	Supported board	Current Draw Idle_2	Feather M0	~5 mA Standby	Feather M0	~0.7 mA Standby Operation Due to some incompatibilities between Standby mode and falling interrupts, a very particular scheme must be followed to use Standby mode on the Feather M0. The following code is an example of how standby mode can be set up on the M0 with a wakeup interrupt on pin 11:

void setup { pinMode(11, INPUT_PULLUP); bool OperationFlag = false; delay(10000); //It's important to leave a delay so the board can more easily //be reprogrammed }

void loop { if (OperationFlag) {

// Whatever you want the board to do while awake goes here

OperationFlag = false; //reset the flag }

attachInterrupt(digitalPinToInterrupt(11), wake, LOW);

LowPower.standby; }

void wake { OperationFlag = true; detachInterrupt(digitalPinToInterrupt(11)); //detach the interrupt in the ISR so that //multiple ISRs are not called } Supporting Files Adafruit References CAD Files Field Data Images Wiring PushingBox Guide