LowPowerLab's FTDI Adapter power questions.

Started by rjkirk, August 07, 2013, 02:59:43 AM

rjkirk

I usually use an ISP, so flashing through FTDI is new for me.
I have ordered a LowPowerLabs FTDI along with my two Moteinos.

Questions:
1. Does the Moteino get power from the FTDI, or does it need it's own power when flashing?
2. I know the FTDI data lines are defaulting to 3.3volts...which is good. But the power is defaulting to 5.0 volts.
is this OK, or should I be adjusting the power on the FTDI down to 3.3 volts.

Felix

Hi rjkirk,
The LowpowerLab FTDI adapter, and most others out there will work just fine, without any other adjustments.
Moteino, like most Arduino clones has a bootloader installed already which allows you to reflash using an FTDI, without the need of an ISP. The bootloader installed on Moteino also allows wireless programming when the FLASH chip is installed.

The FTDI provides power to Moteino so external power should NOT be connected while connected through it.
The 5V provided by the FTDI will go through the Moteino onboard regulator which regulates it to 3.3V for the Atmega and transceiver which ONLY works at 3.3V, not 5V.

bstott

#2
An FTDI is a section of earlier Arduinos that has been taken out of these Arduino clone boards. The FTDI was the section of the board that you plugged your USB into and it created a COM port on your PC. You then did what you did with the Arduinos IDE and uploaded sketches. Since the FTDI portion has been removed from the Arduino clone board the board can be much smaller but, you now need to have this omitted electronics to attach to the Arduino clone to power and communicate to the PC. Thus: PC ---> USB cord ---> FTDI board ---> Arduino clone. Then you do what you know. If you are already setup to work on say a Duemilanove then you just plug and play. You will open the IDE select your COM port and the board - UNO, in the Motenio case, and find the sketch and upload.

Power and communications are via PC -> USB -> FTDI -> Moteino. The Motenio lowers the USB 5V to 3.3V.

If you separately power the Moteino it takes a range of input voltages up to 13V? And via an onboard voltage regulator lowers the voltage to 3.3V for the Moteino and RFM.

[Edit 8/30/2013: Correct my Moteino misspelling.

Felix


lilpint97

If am reading this correct, could one use a car battery not step down to run a moteino and it will regulate the voltage down to 3.3V?

I am also looking for a way to extend a 9V battery, mine is running down every week or two. Now I was sending data every 5 seconds, and that was for testing, so I am moving to every minute with radio.sleep engaged on my transmitters. Has anyone devised any kind of circuit to draw less power and extend the life of a battery, or is it really just using the radio less?

Any formulas for calculating power drain?

Thanks.

KanyonKris

You will save the most power by transmitting as little as possible. Also put the radio and Moteino to sleep when you can. There are JeeNodes running on a single lithium coin cell so it is possible to run for months on a battery.

I use these commands:

radio.Sleep();
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);


radio.Sleep is in the Moteino RFM12 and RFM69 libraries.

For the 2nd line you will need the lowpower library - http://www.rocketscream.com/blog/2011/07/04/lightweight-low-power-arduino-library/
The longest you can sleep the ATmega is 8 seconds (SLEEP_8S) so to sleep longer just use a loop and put the Moteino back to sleep over and over until you need it to do something.

See the SumpPump code for an example - https://github.com/LowPowerLab/SumpPumpAlert/blob/master/SumpPumpAlert.ino

lilpint97

Thanks a lot, that is very helpful... I am going to see what my mAh after I update the code.

KanyonKris

I happened upon this article on Jee Lab for making low power sketches - http://jeelabs.org/2011/12/13/developing-a-low-power-sketch/

I'm doing most of the items listed, except avoiding use of delay. If the program needs to wait, it makes sense to power down instead of idling. I use a fairly standard routine for blinking the Moteino LED that I will be changing the delay commands to:

// Sleep for 60 ms with ADC module and BOD module off
LowPower.powerDown(SLEEP_60MS, ADC_CONTROL_OFF, BOD_OFF);


FYI, there are other low power arduino libraries. Narcoleptic has some nice features, including sleeping for much longer times and correction for millis() - https://code.google.com/p/narcoleptic/source/browse/user+guide.txt

Fee Lab made his own library called Sleepy that is in the ports library, I like the thinking between the looseSomeTime function - https://github.com/jcw/jeelib/blob/master/Ports.h#L331-L362