I am planning to create a solar-powered greenroof monitor with my spark core to monitor water flow off of a greenroof. Because it is solar powered, I have to worry about the power, and have some questions the how some of the core works, mostly related to this.
-
Is it possible to underclock the cpu? The datasheet for it seems to indicate that it can go all the way down to 8 Mhz, with good power savings all the way down. I am planning to underclock it to 16 Mhz. Will this work?
-
Is it possible to control when the spark core connects to the spark cloud, and to still run code while it is disconnected? I have already worked out a method for it to communicate with my server with raw TCP connections, so the only thing I would use the spark core is for updating the code, and I would want to make sure it only does that when there’s enough battery. ** Never mind, I just found the commented out section in the firmware documentation that explains how to do this** (https://raw.github.com/spark/docs/master/docs/firmware.md lines 158-183)
-
On that subject, why is this part of the documentation commented out? Is it planned to be implemented? (The part about
Spark.connect()
andSpark.disconnect()
) -
Also: why is the part about
Spark.sleep(int millis, array peripherals)
commented out? Is that planned to be implemented? -
How much power does the CC3000 module draw while idling (not shut off, but not transmitting or receiving)? I looked at the datasheet for the CC3000, but couldn’t find it.
-
Does the firmware still run while the core is in normal sleep mode (only CC3000 turned off)?
-
Is it possible to toggle CC3000 sleep, instead of requesting it sleep for a specific amount of time?
-
Is it possible to put the spark core into deep sleep until it receives an interrupt, rather than for a specific amount of time? (For instance go into
DEEP_SLEEP_UNTIL_INTERRUPT
when the battery is almost dead, and attach an interrupt to a pin hooked up to part of the battery controller that would notify it when, for instance battery charge > 10% or something) -
What’s the minimum voltage that the voltage regulator can take? The datasheet for the voltage regulator linked in the docs says it has an input voltage of 2.1V-6V, but the documentation you have says it takes 3.6V-6V. Which is correct? (if it can take as low as 2.1V, then I can power directly from the battery circuit, without any upconverting) Never mind, just realized the datasheet also says Vin ≥ Vout + Vdropout
-
What would the spark core do if it was powered with too low a voltage? Would it damage it, or would it just shut off, or something else?
-
How much power does the core use under various conditions (running code but not connected to cloud, deep sleep, running code with CC3000 off, etc…)?
-
How much time and power does the core take to wake up from various sleep levels?
-
The ARM chip lists various sleep levels it can go into in its datasheet. Which ones do the
Spark.sleep(int seconds)
andSpark.sleep(SLEEP_MODE_DEEP, int seconds)
put it into? -
What is the maximum temperature range the core can take? (This thing will be on a NYC rooftop, and I need to know if I need to include some sort of heating for when the temperature drops to around -15C).