EcoBord v3 is a microcontroler based on the processor ATSAMD21G18 ARM Cortex M0 at 48Mhz with 3V3 logic, as the Arduino Zero. The chip has 256K of FLASH and 32K of RAM. It's fully compatible with Arduino and Adafruit libraries. You can connect a LoRaWAN module to send the data to a LoRaWAN Gateway.
We added several useful features
- LoRaWAN RFM69/9x (868Mhz) hat
- GPRS/GPS (SIM808) hat (nest future)
- a RTC clock hat (near future)
- a 128x64 OLED screen hat (near future)
- Solar panel input
- 1Kb EEPROM
- A MicroSD card
- A Real Time Clock (Option)
- GPIO Port Expander
- 2 I2C connector
- 1 UART connector
- 5 1-Wire or Analog connector
- A debuger/programmer connector
- A reset buton
- A programable buton
- A switch ON/OFF Button
All examples are done for the EcoBoard, but you can easly use it for other Arduino board, with may be, a few modification.
For all example scripts, feel free to collaborate and share suggestions for improvement :)
Actually, I have some examples code for the EcoBoard
- How to work with the EEPROM
- How to use the GPIO I/O expander port and a 1-Wire Digital temperature sensor (DS18B20)
- How to use a barometer (BME280)
- How to use a Davis anemometer
- How to log data into a SD card
In the very near future, I will provide example codes to use
- a pyranometer
- a rain gauge
- a drop counter for watering crops
- a Waternark sensors to better plan crop irrigation
You can connect the EcoLora V3 borad built with a RFM95 LoRaWWAN radio module for Europe (868Mhz).
Example will come later for Arduino
For now, you have an example with a Raspberry, Python and TTN here
You will be able to use a GPRS/GPS (EcoGprs) module instead of the EcoLora module. The module is still under developpement and not tested yet.
The EcoBoard is built with a BQ24074 to keep your Lithium Ion (LiIon) rechargeable batteries topped up. You can use USB, DC or Solar power, with a wide 5-10V input voltage range. The charger chip is super smart, and will reduce the current draw if the input voltage starts to dip under 4.5V, making it a perfect near-MPPT solar charger that you can use with a wide range of 5-10V panels.
The bq24074 which powers this design is great for solar charging, and will automatically draw the most current possible from the panel in any light condition Even thought it isn't a 'true' MPPT (max power point tracker), it has near-identical performance without the additional cost of a buck-converter.
- 3.7V/4.2V Lithium Ion or Lithium Polymer battery charger
- Charge with 5-10V DC, USB or 5-10V solar panel
- Use any 5-10V solar panel
- Two color indicator LEDs (D1 and D2)
- Set for 1000mA max charge rate, can be adjusted to 500mA or 1.5A by soldering closed a jumper '0.5A' or '1.5A' (do not forget to cut the jumper '1A').
- automatically uses the input power when available, to keep battery from constantly charging/discharging
- Optional Temperature monitoring of battery by soldering in a 10K NTC thermistor (not included) at J10
- Input current limit configuration
The default charge rate is 1A. To modify from the default value, cut the traces in the jumpers and solder according to your need.
To modify from the default, cut the traces in the jumpers and solder according to the options below
100 mA input current limit
Jumper | Status |
---|---|
EN1 | LOW |
EN2 | LOW |
500 mA input current limit (Default)
Jumper | Status |
---|---|
EN1 | HIGH |
EN2 | LOW |
1.5A input current limit (Should not be used)
Jumper | Status |
---|---|
EN1 | LOW |
EN2 | HIGH |
EcoLora has a 1KB EEPROM (74LC01) to store relatively small amounts of data as keys or parameters.
See simple example here
We add an SD card to log the activities or to save some parameters or other values. The MicroSD card is not provided with the board
EcoBoard uses 6 additonal GPIO with the PCF8574 (Datasheeet ). The outputs P1 to P6, controls other devices or LEDs. However, as the outputs can only provide 25mA, in some cases, this power may not be sufficient. It's the reason why, we added three MOSFET-P (IRML2244) on the outputs P0, P1, P2 and P3.
Thus, the outputs P0, P1, P2 and P3 will colse/open the MOSFET-P to power the devises connected at J0 to J3 with VCC (max 500mA) instead of the PCF8574 output. (Read Headers section).
Jumper | Devise | Status |
---|---|---|
P0 * | Power the devise on J0 (max 500mA) | LOW to turn on the sensor |
P1 * | Power the devise on J1 (max 500mA) | LOW to turn on the sensor |
P2 * | Power the devise on J2 (max 500mA) | LOW to turn on the sensor |
P3 * | Power the devise on J3 (max 500mA) | LOW to turn on the sensor |
P4 | Power the devise on J4 (Max 25mA | HIGH to turn on the sensor |
P5 | LED D5 | HIGH to turn on the LED (max 25mA) |
P6 | LED D6 | HIGH to turn on the LED (max 25mA) |
The jumpers ARE NOT SOLDERED. You have to solder the jumpers, either to Px or 3V3
All devices connected to 1 to 4 can be permanently powered with VCC by changing the jumper JP_1 to JP_4
See an exemple about PCF9574 and 1-Wire sensor here
All of those connectors are Analogic inputs, but you also can use a 1-Wire sensors.
By default, the input are not wired to a 4.7kOhm. However, You can choose to pull up or pull down (4.7kOhm) the input by soldering the jumpers JP0 to JP5
As I mentionned above, you need to solder the jumper JP_1 to JP_4 to choose wither if you will permanently power the sensors or if you want to manage the power state through a MOSFSET-P and the PCF8574.
If you want to permaently power the sensor, change the Jumper JP_0, JP_1, JP_2, JP_3 or JP_4 to '3V3' If you want to manager the power the sensor, change the Jumper JP_0, JP_1, JP_2, JP_3 or JP_4 to P1, P2, P3 or P4. Do not leave JP_0, JP_1, JP_2, JP_3 or JP_4 open
Change P0, P1, P2, P3 or P4 to LOW state to power the sensor and HIGH to unpower the sensor. (Note: as the maximum output current of the PCF8574 is 25 mA per pin, we use a MISFET-P to power the sensor with 3V3 (max 500mA)
Pin | Output |
---|---|
1 | GND |
2 | P0 or 3V3 |
3 | A0 |
Pin | Output |
---|---|
1 | GND |
2 | P1 or 3V3 |
3 | A2 |
Pin | Output |
---|---|
1 | GND |
2 | P2 or 3V3 |
3 | A2 |
Pin | Output |
---|---|
1 | GND |
2 | P3 or 3V3 |
3 | A3 |
Pin | Output |
---|---|
1 | GND |
2 | P4 |
3 | A4 |
Pin | Output |
---|---|
1 | GND |
2 | 3V3 |
3 | Rx (D0) |
4 | Tx (D1) |
Pin | Output |
---|---|
1 | GND |
2 | 3V3 |
3 | SCL |
4 | SDA |
See an example with bme280
Pin | Output |
---|---|
1 | GND |
2 | 3V3 |
3 | SCL |
4 | SDA |
See an example with bme280
Pin | Output |
---|---|
1 | GND |
2 | POWER |
At J9, you can use and connect the EcoLora V3 board. The GSM board is not ready yet. The ATSAMD21G18 column indicates the connection to the µController.
Pin | ATSAMD21G18 (GPIO) | EcoLora | EcoGprs |
---|---|---|---|
1 | 3V3 | 3V3 | 3V3 |
2 | 3V3 | NC | VIO (3V3) |
3 | 16 (D0) RX | NC | Tx |
4 | 15 (D1) TX | NC | Rx |
5 | 29 (D6) | RST | NC |
6 | NC | NC | NC |
7 | NC | NC | NC |
8 | NC | NC | NC |
9 | NC | NC | NC |
10 | GND | GND | GND |
11 | 21 (MISO) | MISO | NC |
12 | NC | NC | NC |
13 | 20 (SCK) | SCK | NC |
14 | NC | NC | NC |
15 | 27 (D10) | IRQ | RST |
16 | NC | NC | NC |
17 | 19 (MOSI) | MOSI | NC |
18 | 28 (D12) | DIO_2 | KEY |
19 | 25 (D11) | DIO_1 | RI |
20 | 24 (D5) | CS | NC |
EcoGprs is not ready yet and it has not been tested
Connects the thermistor input to ground when not in use. To use a thermistor, carefully cut the THERM jumper connection and connect a 10kΩ NTC thermistor in the battery pack to the THERM pin. The thermistor should also be connected to the negative lead of the battery pack.
Pin | Output |
---|---|
1 | GND |
2 | NTC |
Pin | Output |
---|---|
1 | VBUS |
2 | D- |
3 | D+ |
4 | NC |
5 | GND |
Pin | Output |
---|---|
1 | GND |
2 | VBAT |
Pin | Output |
---|---|
1 | GND |
2 | VBAT |
Pin | Output |
---|---|
1 | VUSB |
2 | D- |
3 | D+ |
4 | NC |
5 | GND |
I only use it to upload the firmware.
Pin | Output |
---|---|
1 | GND |
2 | 3V3 |
3 | SWCLK |
4 | SWDIO |
5 | !RESET (You need to close JP9) |
6 | NC |
Pin | Output |
---|---|
1 | GND |
2 | 3V3 |
3 | SWCLK |
4 | SWDIO |
Pin | Output |
---|---|
1 | GND |
2 | VBUS |
By default, the analog input are not wired to a 4.7kOhm (pullup/pulldown). However, You can choose to pull up or pull down (4.7kOhm) the input by soldering the jumpers JP0 to JP5, on A0, A1, A2, A3, or A4 (Default: all open)
All devices connected to 1 to 4 can be permanently powered with VCC by changing the jumper JP_1 to JP_4 The jumpers ARE NOT SOLDERED. You have to solder the jumpers, either to Px or 3V3
You can also read the section GPIO I/O expander port (PCF8574)
Close is to connect HREF to 3V3 (Default: open)
Connected to a 4.7kOhm pull-up resistance. Default: Close Cut the trace if you does not want to pullup the SDA
Connected to a 4.7kOhm pull-up resistance. Default: Close Cut the trace if you does not want to pullup the SCL
Open by default. Solder to close the JP9 to connect the pin 5 of J13 (debuger/programmer) to RESET
Open by default. You can choose to power your application either from the Liothium battery (I rather prefere) or from the Output of the BQ24074
(Default: close) Cut it if you want to connect a Thermistor at J10
See at the solar panel section
See at the solar panel section
Battery good
Charging
The LED D8 and D13 are connected to D8 and D13 of the ATSAMD21G18 (D13 light on when you upload the code)
The LEDs D5 and D6 can be powered with P5 and P6 of the PCF8574
Here a basic example:
#include <Wire.h> // Required for I2C communication
#include "PCF8574.h" // Required for PCF857
PCF8574 expander; // Required for PCF857
void setup(){
Serial.begin(9600);
Serial.println("Starting with PCF8574");
expander.begin(0x27); // Define the I2C address
expander.pinMode(5,OUTPUT);
expander.pinMode(6,OUTPUT);
}
void loop() {
Serial.println("TESTING THE LEDs (P5 and P6)");
Serial.println("Turn on LED 5");
expander.digitalWrite(5, HIGH);
delay(1000);
Serial.println("Turn off LED 5");
expander.digitalWrite(5, LOW);
delay(1000);
Serial.println("Turn on LED 6");
expander.digitalWrite(6, HIGH);
delay(1000);
Serial.println("Turn off LED 6");
expander.digitalWrite(6, LOW);
delay(1000);
Serial.println("");
A detailed example can be found here expander-1wire
EcoBoard © 2024 by Pierre Amey is licensed under CC BY-NC-SA 4.0