Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions boards/OPENMV_RT1060/manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,9 @@
require("ntptime")
require("webrepl")
freeze ("$(OMV_LIB_DIR)/", "rpc.py")
freeze ("$(OMV_LIB_DIR)/", "rtsp.py")
# freeze ("$(OMV_LIB_DIR)/", "rtsp.py") # Use device/rtsp.py instead
freeze ("$(OMV_LIB_DIR)/", "mqtt.py")
freeze ("$(OMV_LIB_DIR)/", "requests.py")
require("microdot-lib")

# Utils
require("time")
Expand All @@ -41,5 +40,12 @@
require("protocol", library="openmv-lib")
include("$(MPY_DIR)/extmod/asyncio")

# GroupGets device stack.
GROUPGETS_DIR = "../../../groupgets"
freeze(GROUPGETS_DIR + "/frameworks/microdot/src", "microdot")
freeze(GROUPGETS_DIR, "device")
freeze(GROUPGETS_DIR + "/device", "main.py") # Top-level boot entry
freeze(GROUPGETS_DIR, "static")

# Boot script
freeze ("$(OMV_LIB_DIR)/", "_boot.py")
188 changes: 147 additions & 41 deletions common/omv_csi.h
Original file line number Diff line number Diff line change
Expand Up @@ -200,47 +200,153 @@ typedef enum {
} omv_csi_flags_t;

typedef enum {
OMV_CSI_IOCTL_SET_READOUT_WINDOW = 0x00 | OMV_CSI_FLAG_IOCTL_ABORT,
OMV_CSI_IOCTL_GET_READOUT_WINDOW = 0x01,
OMV_CSI_IOCTL_SET_TRIGGERED_MODE = 0x02,
OMV_CSI_IOCTL_GET_TRIGGERED_MODE = 0x03,
OMV_CSI_IOCTL_SET_FOV_WIDE = 0x04,
OMV_CSI_IOCTL_GET_FOV_WIDE = 0x05,
OMV_CSI_IOCTL_TRIGGER_AUTO_FOCUS = 0x06,
OMV_CSI_IOCTL_PAUSE_AUTO_FOCUS = 0x07,
OMV_CSI_IOCTL_RESET_AUTO_FOCUS = 0x08,
OMV_CSI_IOCTL_WAIT_ON_AUTO_FOCUS = 0x09,
OMV_CSI_IOCTL_SET_NIGHT_MODE = 0x0A,
OMV_CSI_IOCTL_GET_NIGHT_MODE = 0x0B,
OMV_CSI_IOCTL_LEPTON_GET_WIDTH = 0x0C,
OMV_CSI_IOCTL_LEPTON_GET_HEIGHT = 0x0D,
OMV_CSI_IOCTL_LEPTON_GET_RADIOMETRY = 0x0E,
OMV_CSI_IOCTL_LEPTON_GET_REFRESH = 0x0F,
OMV_CSI_IOCTL_LEPTON_GET_RESOLUTION = 0x10,
OMV_CSI_IOCTL_LEPTON_RUN_COMMAND = 0x11,
OMV_CSI_IOCTL_LEPTON_SET_ATTRIBUTE = 0x12,
OMV_CSI_IOCTL_LEPTON_GET_ATTRIBUTE = 0x13,
OMV_CSI_IOCTL_LEPTON_GET_FPA_TEMP = 0x14,
OMV_CSI_IOCTL_LEPTON_GET_AUX_TEMP = 0x15,
OMV_CSI_IOCTL_LEPTON_SET_MODE = 0x16 | OMV_CSI_FLAG_IOCTL_ABORT,
OMV_CSI_IOCTL_LEPTON_GET_MODE = 0x17,
OMV_CSI_IOCTL_LEPTON_SET_RANGE = 0x18 | OMV_CSI_FLAG_IOCTL_ABORT,
OMV_CSI_IOCTL_LEPTON_GET_RANGE = 0x19,
OMV_CSI_IOCTL_HIMAX_MD_ENABLE = 0x1A,
OMV_CSI_IOCTL_HIMAX_MD_CLEAR = 0x1B,
OMV_CSI_IOCTL_HIMAX_MD_WINDOW = 0x1C | OMV_CSI_FLAG_IOCTL_ABORT,
OMV_CSI_IOCTL_HIMAX_MD_THRESHOLD = 0x1D,
OMV_CSI_IOCTL_HIMAX_OSC_ENABLE = 0x1E | OMV_CSI_FLAG_IOCTL_ABORT,
OMV_CSI_IOCTL_GET_RGB_STATS = 0x1F,
OMV_CSI_IOCTL_GENX320_SET_BIASES = 0x20,
OMV_CSI_IOCTL_GENX320_SET_BIAS = 0x21,
OMV_CSI_IOCTL_GENX320_SET_AFK = 0x22,
OMV_CSI_IOCTL_GENX320_SET_MODE = 0x23,
OMV_CSI_IOCTL_GENX320_READ_EVENTS = 0x24,
OMV_CSI_IOCTL_GENX320_CALIBRATE = 0x25,
OMV_CSI_IOCTL_GENX320_SET_STC = 0x26,
OMV_CSI_IOCTL_GENX320_READ_EVENTS_RAW = 0x27,
OMV_CSI_IOCTL_UPDATE_AGC_AEC = 0x7F
OMV_CSI_IOCTL_SET_READOUT_WINDOW = 0x00 | OMV_CSI_FLAG_IOCTL_ABORT,
OMV_CSI_IOCTL_GET_READOUT_WINDOW = 0x01,
OMV_CSI_IOCTL_SET_TRIGGERED_MODE = 0x02,
OMV_CSI_IOCTL_GET_TRIGGERED_MODE = 0x03,
OMV_CSI_IOCTL_SET_FOV_WIDE = 0x04,
OMV_CSI_IOCTL_GET_FOV_WIDE = 0x05,
OMV_CSI_IOCTL_TRIGGER_AUTO_FOCUS = 0x06,
OMV_CSI_IOCTL_PAUSE_AUTO_FOCUS = 0x07,
OMV_CSI_IOCTL_RESET_AUTO_FOCUS = 0x08,
OMV_CSI_IOCTL_WAIT_ON_AUTO_FOCUS = 0x09,
OMV_CSI_IOCTL_SET_NIGHT_MODE = 0x0A,
OMV_CSI_IOCTL_GET_NIGHT_MODE = 0x0B,
OMV_CSI_IOCTL_LEPTON_GET_WIDTH = 0x0C,
OMV_CSI_IOCTL_LEPTON_GET_HEIGHT = 0x0D,
OMV_CSI_IOCTL_LEPTON_GET_RADIOMETRY = 0x0E,
OMV_CSI_IOCTL_LEPTON_GET_REFRESH = 0x0F,
OMV_CSI_IOCTL_LEPTON_GET_RESOLUTION = 0x10,
OMV_CSI_IOCTL_LEPTON_RUN_COMMAND = 0x11,
OMV_CSI_IOCTL_LEPTON_SET_ATTRIBUTE = 0x12,
OMV_CSI_IOCTL_LEPTON_GET_ATTRIBUTE = 0x13,
OMV_CSI_IOCTL_LEPTON_GET_FPA_TEMP = 0x14,
OMV_CSI_IOCTL_LEPTON_GET_AUX_TEMP = 0x15,
OMV_CSI_IOCTL_LEPTON_SET_MODE = 0x16 | OMV_CSI_FLAG_IOCTL_ABORT,
OMV_CSI_IOCTL_LEPTON_GET_MODE = 0x17,
OMV_CSI_IOCTL_LEPTON_SET_RANGE = 0x18 | OMV_CSI_FLAG_IOCTL_ABORT,
OMV_CSI_IOCTL_LEPTON_GET_RANGE = 0x19,
OMV_CSI_IOCTL_HIMAX_MD_ENABLE = 0x1A,
OMV_CSI_IOCTL_HIMAX_MD_CLEAR = 0x1B,
OMV_CSI_IOCTL_HIMAX_MD_WINDOW = 0x1C | OMV_CSI_FLAG_IOCTL_ABORT,
OMV_CSI_IOCTL_HIMAX_MD_THRESHOLD = 0x1D,
OMV_CSI_IOCTL_HIMAX_OSC_ENABLE = 0x1E | OMV_CSI_FLAG_IOCTL_ABORT,
OMV_CSI_IOCTL_GET_RGB_STATS = 0x1F,
OMV_CSI_IOCTL_GENX320_SET_BIASES = 0x20,
OMV_CSI_IOCTL_GENX320_SET_BIAS = 0x21,
OMV_CSI_IOCTL_GENX320_SET_AFK = 0x22,
OMV_CSI_IOCTL_GENX320_SET_MODE = 0x23,
OMV_CSI_IOCTL_GENX320_READ_EVENTS = 0x24,
OMV_CSI_IOCTL_GENX320_CALIBRATE = 0x25,
OMV_CSI_IOCTL_GENX320_SET_STC = 0x26,
// Boson-specific
OMV_CSI_IOCTL_BOSON_GET_FPA_TEMP = 0x27,
OMV_CSI_IOCTL_BOSON_RUN_FFC = 0x28,
OMV_CSI_IOCTL_BOSON_GET_FFC_STATUS = 0x29,
OMV_CSI_IOCTL_BOSON_SET_FFC_MODE = 0x2A,
OMV_CSI_IOCTL_BOSON_SET_GAIN_MODE = 0x2B,
OMV_CSI_IOCTL_BOSON_GET_GAIN_MODE = 0x2C,
OMV_CSI_IOCTL_BOSON_SET_AGC_PARAM = 0x2D,
OMV_CSI_IOCTL_BOSON_GET_IMAGE_STATS = 0x2E,
OMV_CSI_IOCTL_BOSON_SET_STATS_ROI = 0x2F,
OMV_CSI_IOCTL_BOSON_SET_ISOTHERM_ENABLE = 0x30,
OMV_CSI_IOCTL_BOSON_SET_ISOTHERM_TEMPS = 0x31,
OMV_CSI_IOCTL_BOSON_SET_ISOTHERM_UNIT = 0x32,
OMV_CSI_IOCTL_BOSON_SET_GAIN_SWITCH = 0x33,
OMV_CSI_IOCTL_BOSON_GET_SERIAL = 0x34,
OMV_CSI_IOCTL_BOSON_GET_PART_NUMBER = 0x35,
OMV_CSI_IOCTL_BOSON_SET_COLORLUT = 0x36,
OMV_CSI_IOCTL_BOSON_SET_SCALER_ZOOM = 0x37,
OMV_CSI_IOCTL_BOSON_GET_SCALER_ZOOM = 0x38,
OMV_CSI_IOCTL_GENX320_READ_EVENTS_RAW = 0x39,
// Image Stats & Spot Meter
OMV_CSI_IOCTL_BOSON_GET_STATS_ROI = 0x70,
OMV_CSI_IOCTL_BOSON_SET_SPOT_METER_ENABLE = 0x71,
OMV_CSI_IOCTL_BOSON_GET_SPOT_METER_ENABLE = 0x72,
OMV_CSI_IOCTL_BOSON_SET_SPOT_METER_ROI = 0x73,
OMV_CSI_IOCTL_BOSON_GET_SPOT_METER_ROI = 0x74,
OMV_CSI_IOCTL_BOSON_GET_SPOT_METER_STATS = 0x75,
OMV_CSI_IOCTL_BOSON_GET_SPOT_METER_TEMP_STATS = 0x76,
OMV_CSI_IOCTL_BOSON_GET_SPOT_METER_ROI_MAX = 0x77,
// Isotherm Getters
OMV_CSI_IOCTL_BOSON_GET_ISOTHERM_ENABLE = 0x78,
OMV_CSI_IOCTL_BOSON_GET_ISOTHERM_UNIT = 0x79,
OMV_CSI_IOCTL_BOSON_GET_ISOTHERM_TEMPS = 0x7A,
// Radiometry, Sensor Info & Overtemp
OMV_CSI_IOCTL_BOSON_GET_RADIOMETRY_CAPABLE = 0x7B,
OMV_CSI_IOCTL_BOSON_SET_RADIOMETRY_ENABLE = 0x7C,
OMV_CSI_IOCTL_BOSON_GET_RADIOMETRY_ENABLE = 0x7D,
OMV_CSI_IOCTL_BOSON_SET_EMISSIVITY = 0x7E,
OMV_CSI_IOCTL_UPDATE_AGC_AEC = 0x7F,
OMV_CSI_IOCTL_BOSON_GET_EMISSIVITY = 0x80,
OMV_CSI_IOCTL_BOSON_GET_SOFTWARE_REV = 0x81,
OMV_CSI_IOCTL_BOSON_GET_SENSOR_SN = 0x82,
OMV_CSI_IOCTL_BOSON_GET_OVERTEMP_THRESHOLD = 0x83,
OMV_CSI_IOCTL_BOSON_GET_OVERTEMP_EVENT_COUNT = 0x84,
OMV_CSI_IOCTL_BOSON_GET_LOW_POWER_MODE = 0x85,
// FFC control IOCTLs
OMV_CSI_IOCTL_BOSON_GET_FFC_MODE = 0x86,
OMV_CSI_IOCTL_BOSON_SET_FFC_TEMP_THRESHOLD = 0x87,
OMV_CSI_IOCTL_BOSON_GET_FFC_TEMP_THRESHOLD = 0x88,
OMV_CSI_IOCTL_BOSON_SET_FFC_FRAME_THRESHOLD = 0x89,
OMV_CSI_IOCTL_BOSON_GET_FFC_FRAME_THRESHOLD = 0x8A,
OMV_CSI_IOCTL_BOSON_SET_FFC_TEMP_THRESHOLD_LG = 0x8B,
OMV_CSI_IOCTL_BOSON_GET_FFC_TEMP_THRESHOLD_LG = 0x8C,
OMV_CSI_IOCTL_BOSON_SET_FFC_FRAME_THRESHOLD_LG = 0x8D,
OMV_CSI_IOCTL_BOSON_GET_FFC_FRAME_THRESHOLD_LG = 0x8E,
OMV_CSI_IOCTL_BOSON_SET_FFC_WARN_TIME = 0x8F,
OMV_CSI_IOCTL_BOSON_GET_FFC_WARN_TIME = 0x90,
OMV_CSI_IOCTL_BOSON_GET_FFC_DESIRED = 0x91,
OMV_CSI_IOCTL_BOSON_GET_LAST_FFC_FRAME_COUNT = 0x92,
OMV_CSI_IOCTL_BOSON_GET_LAST_FFC_TEMP = 0x93,
OMV_CSI_IOCTL_BOSON_SET_STARTUP_FFC_PERIOD = 0x94,
OMV_CSI_IOCTL_BOSON_GET_STARTUP_FFC_PERIOD = 0x95,
// FFC correction pipeline IOCTLs
OMV_CSI_IOCTL_BOSON_SET_SCNR_ENABLE = 0x96,
OMV_CSI_IOCTL_BOSON_GET_SCNR_ENABLE = 0x97,
OMV_CSI_IOCTL_BOSON_SET_TF_ENABLE = 0x98,
OMV_CSI_IOCTL_BOSON_GET_TF_ENABLE = 0x99,
OMV_CSI_IOCTL_BOSON_SET_SPNR_ENABLE = 0x9A,
OMV_CSI_IOCTL_BOSON_GET_SPNR_ENABLE = 0x9B,
OMV_CSI_IOCTL_BOSON_SET_BPR_ENABLE = 0x9C,
OMV_CSI_IOCTL_BOSON_GET_BPR_ENABLE = 0x9D,
OMV_CSI_IOCTL_BOSON_SET_LFSR_ENABLE = 0x9E,
OMV_CSI_IOCTL_BOSON_GET_LFSR_ENABLE = 0x9F,
OMV_CSI_IOCTL_BOSON_SET_SRNR_ENABLE = 0xA0,
OMV_CSI_IOCTL_BOSON_GET_SRNR_ENABLE = 0xA1,
OMV_CSI_IOCTL_BOSON_SET_GAO_ENABLE = 0xA2,
OMV_CSI_IOCTL_BOSON_GET_GAO_ENABLE = 0xA3,
OMV_CSI_IOCTL_BOSON_SET_FFC_PIPE_STATE = 0xA4,
OMV_CSI_IOCTL_BOSON_GET_FFC_PIPE_STATE = 0xA5,
OMV_CSI_IOCTL_BOSON_SET_SFFC_STATE = 0xA6,
OMV_CSI_IOCTL_BOSON_GET_SFFC_STATE = 0xA7,
// AGC control IOCTLs
OMV_CSI_IOCTL_BOSON_SET_AGC_MODE = 0xA8,
OMV_CSI_IOCTL_BOSON_GET_AGC_MODE = 0xA9,
OMV_CSI_IOCTL_BOSON_SET_AGC_PERCENT_PER_BIN = 0xAA,
OMV_CSI_IOCTL_BOSON_GET_AGC_PERCENT_PER_BIN = 0xAB,
OMV_CSI_IOCTL_BOSON_SET_AGC_OUTLIER_CUT = 0xAC,
OMV_CSI_IOCTL_BOSON_GET_AGC_OUTLIER_CUT = 0xAD,
OMV_CSI_IOCTL_BOSON_SET_AGC_DETAIL_HEADROOM = 0xAE,
OMV_CSI_IOCTL_BOSON_GET_AGC_DETAIL_HEADROOM = 0xAF,
OMV_CSI_IOCTL_BOSON_GET_AGC_LINEAR_PERCENT = 0xB0,
OMV_CSI_IOCTL_BOSON_GET_AGC_D2BR = 0xB1,
OMV_CSI_IOCTL_BOSON_GET_AGC_SIGMA_R = 0xB2,
OMV_CSI_IOCTL_BOSON_GET_AGC_MAX_GAIN = 0xB3,
OMV_CSI_IOCTL_BOSON_GET_AGC_DF = 0xB4,
OMV_CSI_IOCTL_BOSON_GET_AGC_GAMMA = 0xB5,
// Dynamic range control IOCTLs
OMV_CSI_IOCTL_BOSON_GET_GAIN_SWITCH_PARAMS = 0xB6,
OMV_CSI_IOCTL_BOSON_SET_GAIN_SWITCH_HYST_TIME = 0xB7,
OMV_CSI_IOCTL_BOSON_GET_GAIN_SWITCH_HYST_TIME = 0xB8,
OMV_CSI_IOCTL_BOSON_SET_GAIN_SWITCH_FRAME_THRESH = 0xB9,
OMV_CSI_IOCTL_BOSON_GET_GAIN_SWITCH_FRAME_THRESH = 0xBA,
OMV_CSI_IOCTL_BOSON_GET_GAIN_SWITCH_DESIRED = 0xBB,
// TLinear & spot meter stats mode IOCTLs
OMV_CSI_IOCTL_BOSON_SET_TLINEAR_ENABLE = 0xBC,
OMV_CSI_IOCTL_BOSON_GET_TLINEAR_ENABLE = 0xBD,
OMV_CSI_IOCTL_BOSON_SET_SPOT_METER_STATS_MODE = 0xBE,
OMV_CSI_IOCTL_BOSON_GET_SPOT_METER_STATS_MODE = 0xBF
} omv_csi_ioctl_t;

typedef enum {
Expand Down
Loading
Loading