We have a solar powered GPS device that transmits data wirelessly. The Arc is great for measuring what power is being consumed for the different operations of the IoT device but I wondered if it could measure the output of the solar panel, as we want to test different panels & harvesting circuits under different light conditions?
Thank you!
Hi and welcome to the forum,
If you have an enterprise or automation toolbox license then you can control the current sink inside Otii Arc by scripting.
With this script, you could then create I-V curves for different lighting conditions by increasing the sinking current and graphing voltage, I have quickly written a script that does this already, see below for a lua implementation.
If you do not have the correct license then contact sales and we can provide you with a trial license, so you can try this setup and evaluate it.
-- Configure otii
local devices = otii.get_devices("Arc")
assert(#devices == 1, "No available devices or more than one Arc connected")
local box = otii.open_device(devices[1].id)
assert(box ~= nil, "No available otii")
-- Create project or use already created project
local project = otii.get_active_project()
if project == nil then
project = otii.create_project()
end
-- Cleanup function to be run when scripts stops
function cleanup()
project:stop()
project:enable_main_power(false)
box:set_power_regulation("voltage")
end
otii.on_stop(cleanup)
-- Enable channels
box:enable_channel("mv", true)
box:enable_channel("mc", true)
-- Set I-V curve variables
local step_size = 1e-6
local sleep_time = 100 -- Hom many ms to sleep between each value
local exit_voltage = 0.5 --lowest exit value is 0.5V
-- Start
local current = 0
box:set_power_regulation("current")
box:set_main_current(current)
project:enable_main_power(true)
project:start()
otii.msleep(sleep_time)
while true do
current = current - step_size
box:set_main_current(current)
otii.msleep(sleep_time)
if box:get_value("mv") < exit_voltage then break end
end
cleanup()
Best regards,
Björn