├── .gitattributes ├── arduino ├── linux │ ├── m │ ├── test_i2c │ └── test_i2c.c ├── mpptChg │ ├── examples │ │ ├── lib_oled_test │ │ │ └── lib_oled_test.ino │ │ └── lib_ser_test │ │ │ └── lib_ser_test.ino │ ├── keywords.txt │ ├── mpptChg.cpp │ └── mpptChg.h ├── pictures │ ├── lib_oled_test.png │ └── oled_back.png └── readme.md ├── examples ├── enclosure │ ├── design_files │ │ ├── rear_cutout.dxf │ │ ├── rear_cutout.ezdraw │ │ ├── rear_cutout.lyz │ │ ├── rear_cutout.pdf │ │ ├── shelf_cutout.dxf │ │ ├── shelf_cutout.ezdraw │ │ ├── shelf_cutout.lyz │ │ └── shelf_cutout.pdf │ ├── pictures │ │ ├── battery_mount.png │ │ ├── enclosure_assy_1.png │ │ ├── enclosure_assy_2.png │ │ ├── enclosure_assy_3.png │ │ ├── enclosure_parts.png │ │ ├── enclosure_solar_cable.png │ │ ├── outdoor_cam.png │ │ ├── rear_cutout.png │ │ └── shelf_cutout.png │ └── readme.md ├── esp8266 │ ├── esp8266_solar_data │ │ └── esp8266_solar_data.ino │ ├── pictures │ │ ├── dashboard.png │ │ ├── esp8266_charger.png │ │ └── esp8266_connection_diagram.png │ └── readme.md ├── motioneyeos │ ├── dnsmasq.conf │ ├── hostapd.conf │ ├── mpptChgDconfig.txt │ ├── pictures │ │ ├── first_run.png │ │ └── pi_cam_connection_diagram.png │ ├── readme.md │ └── userinit.sh ├── nightlighting │ ├── pictures │ │ ├── closed_j1.png │ │ ├── nightlight_connection_diagram.png │ │ ├── ssd_lit_sign.png │ │ ├── strip_lit.png │ │ ├── usb_light.png │ │ └── usb_light_lit.png │ └── readme.md ├── pi_UPS │ ├── pictures │ │ ├── pi_hdd_ups_connection_diagram.png │ │ ├── ups_cap_schem.png │ │ ├── ups_capacitor.png │ │ ├── ups_dashboard.png │ │ ├── ups_dell_supply.png │ │ ├── ups_liteon_supply.png │ │ └── ups_pi_hdd.png │ └── readme.md ├── rad_sensor │ ├── photon_solar_rad_mon │ │ ├── mpptChg.cpp │ │ ├── mpptChg.h │ │ ├── photon-solar-rad-mon.ino │ │ └── project.properties │ ├── pictures │ │ ├── blynk_app.png │ │ ├── blynk_qr_code.png │ │ ├── radmonitor_connection_diagram.png │ │ ├── radmonitor_hardware.png │ │ └── resistor_divider.png │ └── readme.md └── readme.md ├── firmware ├── SolarMpptCharger │ ├── .cproject │ ├── .project │ ├── .settings │ │ └── com.silabs.ss.framework.ide.project.sls.core.prefs │ ├── Keil 8051 v9.53 - Release │ │ ├── SolarMpptCharger.hex │ │ ├── SolarMpptCharger.lnp │ │ ├── SolarMpptCharger.m51 │ │ ├── SolarMpptCharger.omf │ │ ├── makefile │ │ ├── objects.mk │ │ ├── sources.mk │ │ └── src │ │ │ ├── InitDevice.OBJ │ │ │ ├── InitDevice.__i │ │ │ ├── InitDevice.lst │ │ │ ├── Interrupts.OBJ │ │ │ ├── Interrupts.__i │ │ │ ├── Interrupts.lst │ │ │ ├── SILABS_STARTUP.OBJ │ │ │ ├── SILABS_STARTUP.__ia │ │ │ ├── SILABS_STARTUP.lst │ │ │ ├── SolarMpptCharger_main.OBJ │ │ │ ├── SolarMpptCharger_main.__i │ │ │ ├── SolarMpptCharger_main.lst │ │ │ ├── adc.OBJ │ │ │ ├── adc.__i │ │ │ ├── adc.lst │ │ │ ├── adc_ref_const.OBJ │ │ │ ├── adc_ref_const.__ia │ │ │ ├── adc_ref_const.lst │ │ │ ├── buck.OBJ │ │ │ ├── buck.__i │ │ │ ├── buck.lst │ │ │ ├── charge.OBJ │ │ │ ├── charge.__i │ │ │ ├── charge.lst │ │ │ ├── led.OBJ │ │ │ ├── led.__i │ │ │ ├── led.lst │ │ │ ├── param.OBJ │ │ │ ├── param.__i │ │ │ ├── param.lst │ │ │ ├── power.OBJ │ │ │ ├── power.__i │ │ │ ├── power.lst │ │ │ ├── smbus.OBJ │ │ │ ├── smbus.__i │ │ │ ├── smbus.lst │ │ │ ├── subdir.mk │ │ │ ├── temp.OBJ │ │ │ ├── temp.__i │ │ │ ├── temp.lst │ │ │ ├── timer.OBJ │ │ │ ├── timer.__i │ │ │ ├── timer.lst │ │ │ ├── watchdog.OBJ │ │ │ ├── watchdog.__i │ │ │ └── watchdog.lst │ ├── SolarMpptCharger.hwconf │ ├── inc │ │ ├── InitDevice.h │ │ ├── adc.h │ │ ├── buck.h │ │ ├── charge.h │ │ ├── config.h │ │ ├── led.h │ │ ├── param.h │ │ ├── power.h │ │ ├── smbus.h │ │ ├── temp.h │ │ ├── timer.h │ │ └── watchdog.h │ └── src │ │ ├── InitDevice.c │ │ ├── Interrupts.c │ │ ├── SILABS_STARTUP.A51 │ │ ├── SolarMpptCharger_main.c │ │ ├── adc.c │ │ ├── adc_ref_const.A51 │ │ ├── buck.c │ │ ├── charge.c │ │ ├── led.c │ │ ├── param.c │ │ ├── power.c │ │ ├── smbus.c │ │ ├── temp.c │ │ ├── timer.c │ │ └── watchdog.c ├── pictures │ ├── programmer_setup.png │ ├── programming_pads.png │ ├── programming_steps.png │ ├── selecting_part.png │ ├── simplicity_studio_setup.png │ ├── usb_debug_adapter.png │ └── usb_debug_adapter_pins.png └── readme.md ├── hardware ├── connection_diagrams.pdf ├── makerPower_doc.pdf ├── makerPower_user_manual.pdf ├── mppt_charger_schem_02.pdf ├── pictures │ ├── 35_00082_02.png │ ├── LiFePO4_jumper.png │ ├── board_conn_dim.png │ └── connection_diagrams.png └── readme.md ├── mpptChgD ├── ini.c ├── ini.h ├── libwiringPi.so.2.46 ├── m ├── mpptChgD ├── mpptChgD.c ├── mpptChgDconfig.txt └── readme.md ├── mppt_dashboard ├── Builds - mppt_dashboard.xojo_binary_project │ ├── Linux 64 bit │ │ └── mppt_dashboard │ │ │ ├── mppt_dashboard │ │ │ ├── mppt_dashboard Libs │ │ │ ├── XojoGUIFramework64.so │ │ │ ├── libGZip64.so │ │ │ ├── libRBAppearancePak64.so │ │ │ ├── libRBCrypto64.so │ │ │ ├── libRBInternetEncodings64.so │ │ │ ├── libRBRegEx64.so │ │ │ ├── libRBShell64.so │ │ │ └── libc++.so.1 │ │ │ └── mppt_dashboard Resources │ │ │ ├── appicon_128.png │ │ │ ├── appicon_32.png │ │ │ ├── appicon_48.png │ │ │ ├── connect_check_icon.png │ │ │ ├── connect_excl_icon.png │ │ │ ├── connect_icon.png │ │ │ ├── graph_256.png │ │ │ ├── mag_icon30x30.png │ │ │ ├── open_icon30x30.png │ │ │ ├── save_icon30x30.png │ │ │ ├── tool_icon30x30.png │ │ │ └── trash_icon30x30.png │ ├── Windows 64 bit │ │ └── mppt_dashboard │ │ │ ├── XojoGUIFramework64.dll │ │ │ ├── icudt65.dll │ │ │ ├── icuin65.dll │ │ │ ├── icuuc65.dll │ │ │ ├── mppt_dashboard Libs │ │ │ ├── Appearance Pakx64.dll │ │ │ ├── Cryptox64.dll │ │ │ ├── GZipx64.dll │ │ │ ├── Internet Encodingsx64.dll │ │ │ └── RegExx64.dll │ │ │ ├── mppt_dashboard Resources │ │ │ ├── connect_check_icon.png │ │ │ ├── connect_excl_icon.png │ │ │ ├── connect_icon.png │ │ │ ├── graph_256.png │ │ │ ├── mag_icon30x30.png │ │ │ ├── open_icon30x30.png │ │ │ ├── save_icon30x30.png │ │ │ ├── tool_icon30x30.png │ │ │ └── trash_icon30x30.png │ │ │ ├── mppt_dashboard.exe │ │ │ ├── msvcp120.dll │ │ │ ├── msvcp140.dll │ │ │ ├── msvcr120.dll │ │ │ ├── vccorlib140.dll │ │ │ ├── vcruntime140.dll │ │ │ └── vcruntime140_1.dll │ └── macOS Universal │ │ └── mppt_dashboard.app │ │ └── Contents │ │ ├── Frameworks │ │ ├── AppearancePakCocoa.dylib │ │ ├── Crypto.dylib │ │ ├── InternetEncodings.dylib │ │ ├── RegEx.dylib │ │ ├── XojoFramework.framework │ │ │ ├── Resources │ │ │ ├── Versions │ │ │ │ ├── A │ │ │ │ │ ├── Resources │ │ │ │ │ │ ├── AllDirectionsCursor.pdf │ │ │ │ │ │ ├── ControllerBackgroundLeft.tiff │ │ │ │ │ │ ├── ControllerBackgroundMiddle.tiff │ │ │ │ │ │ ├── ControllerBackgroundRight.tiff │ │ │ │ │ │ ├── Cursors.plist │ │ │ │ │ │ ├── EastWestCursor.pdf │ │ │ │ │ │ ├── FileTypeChooser.nib │ │ │ │ │ │ │ ├── keyedobjects-101300.nib │ │ │ │ │ │ │ └── keyedobjects.nib │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ ├── InvisibleCursor.png │ │ │ │ │ │ ├── MacWaitCursor.pdf │ │ │ │ │ │ ├── MagnifyLargerCursor.pdf │ │ │ │ │ │ ├── MagnifySmallerCursor.pdf │ │ │ │ │ │ ├── NorthEastSouthWestCursor.pdf │ │ │ │ │ │ ├── NorthSouthCursor.pdf │ │ │ │ │ │ ├── NorthWestSouthEastCursor.pdf │ │ │ │ │ │ ├── Pause.tiff │ │ │ │ │ │ ├── Play.tiff │ │ │ │ │ │ ├── ScrubberKnob.tiff │ │ │ │ │ │ ├── ScrubberTrackLoadedLeft.tiff │ │ │ │ │ │ ├── ScrubberTrackLoadedMiddle.tiff │ │ │ │ │ │ ├── ScrubberTrackLoadedRight.tiff │ │ │ │ │ │ ├── ScrubberTrackUnloadedLeft.tiff │ │ │ │ │ │ ├── ScrubberTrackUnloadedMiddle.tiff │ │ │ │ │ │ ├── ScrubberTrackUnloadedRight.tiff │ │ │ │ │ │ ├── StepBackward.tiff │ │ │ │ │ │ ├── StepForward.tiff │ │ │ │ │ │ ├── VolumeHigh.tiff │ │ │ │ │ │ ├── VolumeLow.tiff │ │ │ │ │ │ ├── VolumeMedium.tiff │ │ │ │ │ │ ├── VolumeMuted.tiff │ │ │ │ │ │ ├── VolumeOff.tiff │ │ │ │ │ │ ├── VolumeSliderKnob.tiff │ │ │ │ │ │ ├── VolumeSliderTrack.tiff │ │ │ │ │ │ ├── VolumeWindow.tiff │ │ │ │ │ │ ├── XOJPrintProgressDialog.nib │ │ │ │ │ │ │ ├── keyedobjects-101300.nib │ │ │ │ │ │ │ └── keyedobjects.nib │ │ │ │ │ │ ├── XOJTooltipController.nib │ │ │ │ │ │ │ ├── keyedobjects-101300.nib │ │ │ │ │ │ │ └── keyedobjects.nib │ │ │ │ │ │ ├── ar.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── ca.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── cs.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── da.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── de.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── el.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── en.lproj │ │ │ │ │ │ │ ├── InfoPlist.strings │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── es.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── fi.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── fr.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── he.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── hr.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── hu.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── it.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── ja.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── ko.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── nl.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── no.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── pl.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── pt-BR.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── pt-PT.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── ro.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── ru.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── sk.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── sv.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── th.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── tr.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── uk.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ ├── zh-CN.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ │ └── zh-TW.lproj │ │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ ├── XojoFramework │ │ │ │ │ └── _CodeSignature │ │ │ │ │ │ └── CodeResources │ │ │ │ └── Current │ │ │ └── XojoFramework │ │ └── libGzip.dylib │ │ ├── Info.plist │ │ ├── MacOS │ │ └── mppt_dashboard │ │ ├── PkgInfo │ │ ├── Resources │ │ ├── App.icns │ │ ├── TextPlain.icns │ │ ├── connect_check_icon.png │ │ ├── connect_excl_icon.png │ │ ├── connect_icon.png │ │ ├── graph_256.png │ │ ├── mag_icon30x30.png │ │ ├── open_icon30x30.png │ │ ├── save_icon30x30.png │ │ ├── tool_icon30x30.png │ │ └── trash_icon30x30.png │ │ └── _CodeSignature │ │ └── CodeResources ├── DataPlotClasses │ ├── DataPlotClasses_UG.pdf │ ├── Examples │ │ ├── DataPlot Demo.rbp │ │ ├── Example - Add,Drag,Delete Points with Mouse.rbp │ │ ├── Example - Adding Traces, Initializing.rbp │ │ ├── Example - Animate Data.rbp │ │ ├── Example - Custom Tickmarks 2.rbp │ │ ├── Example - Custom Tickmarks.rbp │ │ ├── Example - Data Logging.rbp │ │ ├── Example - Getting Started.rbp │ │ ├── Example - Linear and Logarithmic Scales.rbp │ │ ├── Example - Sound Waveform Viewer.rbp │ │ ├── Example - Using DataPlotClasses from a Thread.rbp │ │ ├── Example - Zoom and Scroll.rbp │ │ └── WAV Files │ │ │ ├── 1kHz_Sine.wav │ │ │ ├── 1kHz_Square.wav │ │ │ ├── Noise.wav │ │ │ ├── mono example.wav │ │ │ ├── stereo example.wav │ │ │ └── vssver.scc │ ├── Figure.rbo │ ├── Graph.rbo │ ├── Legend.rbo │ ├── TextLabel.rbo │ └── Trace.rbo ├── icons │ ├── connect_check_icon.png │ ├── connect_excl_icon.png │ ├── connect_icon.png │ ├── graph_256.png │ ├── graph_icon_set_Icon_128x128.png │ ├── graph_icon_set_Icon_16x16.png │ ├── graph_icon_set_Icon_256x256.png │ ├── graph_icon_set_Icon_32x32.png │ ├── graph_icon_set_Icon_48x48.png │ ├── graph_icon_set_Icon_64x64.png │ ├── graph_icon_set_Icon_8bit_16x16.png │ ├── graph_icon_set_Icon_8bit_32x32.png │ ├── graph_icon_set_Icon_8bit_48x48.png │ ├── mag_icon30x30.png │ ├── open_icon30x30.png │ ├── save_icon30x30.png │ ├── tool_icon30x30.png │ └── trash_icon30x30.png ├── mppt_dashboard.pdf ├── mppt_dashboard.png ├── mppt_dashboard.xojo_binary_project └── readme.md └── readme.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /arduino/linux/m: -------------------------------------------------------------------------------- 1 | g++ -o test_i2c test_i2c.c mpptChg.cpp -I ./ -I /usr/local/include -l wiringPi 2 | -------------------------------------------------------------------------------- /arduino/linux/test_i2c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/arduino/linux/test_i2c -------------------------------------------------------------------------------- /arduino/linux/test_i2c.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "mpptChg.h" 5 | 6 | mpptChg chg; 7 | 8 | 9 | void printStatus(uint16_t s) 10 | { 11 | switch (s & MPPT_CHG_STATUS_CHG_ST_MASK) { 12 | case MPPT_CHG_ST_NIGHT: 13 | printf("NIGHT "); 14 | break; 15 | case MPPT_CHG_ST_IDLE: 16 | printf("IDLE "); 17 | break; 18 | case MPPT_CHG_ST_VSRCV: 19 | printf("VSRCV "); 20 | break; 21 | case MPPT_CHG_ST_SCAN: 22 | printf("SCAN "); 23 | break; 24 | case MPPT_CHG_ST_BULK: 25 | printf("BULK "); 26 | break; 27 | case MPPT_CHG_ST_ABSORB: 28 | printf("ABSORB "); 29 | break; 30 | case MPPT_CHG_ST_FLOAT: 31 | printf("FLOAT "); 32 | break; 33 | default: 34 | printf("??? "); 35 | } 36 | } 37 | 38 | 39 | int main() 40 | { 41 | uint16_t s; 42 | int16_t vs, is, vb, ib, ic; 43 | 44 | if (!chg.begin()) { 45 | printf("begin failed\n"); 46 | return(-1); 47 | } 48 | 49 | if (chg.getStatusValue(SYS_ID, &s)) { 50 | printf("ID = 0x%4x\n", s); 51 | } else { 52 | printf("getStatusValue ID failed\n"); 53 | return(-1); 54 | } 55 | 56 | while (1) { 57 | (void) chg.getStatusValue(SYS_STATUS, &s); 58 | (void) chg.getIndexedValue(VAL_VS, &vs); 59 | (void) chg.getIndexedValue(VAL_IS, &is); 60 | (void) chg.getIndexedValue(VAL_VB, &vb); 61 | (void) chg.getIndexedValue(VAL_IB, &ib); 62 | (void) chg.getIndexedValue(VAL_IC, &ic); 63 | 64 | printStatus(s); 65 | printf("%5d %5d %5d %5d %5d\n", vs, is, vb, ib, ic); 66 | 67 | sleep(1); 68 | } 69 | 70 | return(0); 71 | } 72 | 73 | -------------------------------------------------------------------------------- /arduino/mpptChg/examples/lib_oled_test/lib_oled_test.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | // --- ARDUINO PIN DEFINITIONS 5 | uint8_t RSPin = 2; 6 | uint8_t RWPin = 3; 7 | uint8_t ENPin = 4; 8 | uint8_t D4Pin = 5; 9 | uint8_t D5Pin = 6; 10 | uint8_t D6Pin = 7; 11 | uint8_t D7Pin = 8; 12 | 13 | // --- Hardware objects 14 | Adafruit_CharacterOLED lcd(OLED_V1, RSPin, RWPin, ENPin, D4Pin, D5Pin, D6Pin, D7Pin); 15 | mpptChg chg; 16 | 17 | uint16_t st; 18 | int16_t vs, is, vb, ib; 19 | 20 | void setup() 21 | { 22 | chg.begin(); 23 | lcd.begin(16, 2); 24 | delay(100); // Let OLED finish initializing 25 | } 26 | 27 | void loop() 28 | { 29 | lcd.clear(); 30 | 31 | // Read and display values 32 | if (chg.getStatusValue(SYS_STATUS, &st)) { 33 | // Assume remaining reads will work 34 | (void) chg.getIndexedValue(VAL_VS, &vs); 35 | (void) chg.getIndexedValue(VAL_IS, &is); 36 | (void) chg.getIndexedValue(VAL_VB, &vb); 37 | (void) chg.getIndexedValue(VAL_IB, &ib); 38 | 39 | // Line 1 40 | lcd.setCursor(0, 0); 41 | printStatus(st); 42 | lcd.setCursor(8, 0); 43 | printMilliAsFloat(computePowerMw(vs, is)); 44 | lcd.print(F("W")); 45 | 46 | // Line 2 47 | lcd.setCursor(0, 1); 48 | printMilliAsFloat(vb); 49 | lcd.print(F("V")); 50 | lcd.setCursor(8, 1); 51 | printRightMilli(ib); 52 | lcd.print(F("mA")); 53 | } else { 54 | lcd.setCursor(0, 0); 55 | lcd.print(F("read failed")); 56 | } 57 | 58 | delay(1000); 59 | } 60 | 61 | // Prints in form II.FF 62 | void printMilliAsFloat(uint16_t val) 63 | { 64 | uint16_t intPortion; 65 | uint16_t fracPortion; 66 | 67 | // Scale by 10 before we format 68 | val = val / 10; 69 | intPortion = val / 100; 70 | fracPortion = val % 100; 71 | 72 | // Integer portion 73 | if (intPortion < 10) { 74 | // leading space 75 | lcd.print(F(" ")); 76 | } 77 | lcd.print(intPortion); 78 | lcd.print(F(".")); 79 | 80 | // Fractional portion 81 | if (fracPortion < 10) { 82 | // leading zero 83 | lcd.print(F("0")); 84 | } 85 | lcd.print(fracPortion); 86 | } 87 | 88 | // Prints right-justified integer 89 | void printRightMilli(uint16_t val) 90 | { 91 | if (val < 10) { 92 | lcd.print(F(" ")); 93 | } else if (val < 100) { 94 | lcd.print(F(" ")); 95 | } else if (val < 1000) { 96 | lcd.print(F(" ")); 97 | } else if (val < 10000) { 98 | lcd.print(F(" ")); 99 | } 100 | lcd.print(val); 101 | } 102 | 103 | void printStatus(uint16_t s) 104 | { 105 | switch (s & MPPT_CHG_STATUS_CHG_ST_MASK) { 106 | case MPPT_CHG_ST_NIGHT: 107 | lcd.print(F("NIGHT")); 108 | break; 109 | case MPPT_CHG_ST_IDLE: 110 | lcd.print(F("IDLE")); 111 | break; 112 | case MPPT_CHG_ST_VSRCV: 113 | lcd.print(F("VSRCV")); 114 | break; 115 | case MPPT_CHG_ST_SCAN: 116 | lcd.print(F("SCAN")); 117 | break; 118 | case MPPT_CHG_ST_BULK: 119 | lcd.print(F("BULK")); 120 | break; 121 | case MPPT_CHG_ST_ABSORB: 122 | lcd.print(F("ABSORB")); 123 | break; 124 | case MPPT_CHG_ST_FLOAT: 125 | lcd.print(F("FLOAT")); 126 | break; 127 | default: 128 | lcd.print(F("???")); 129 | } 130 | } 131 | 132 | uint16_t computePowerMw(uint16_t mV, uint16_t mA) 133 | { 134 | uint32_t p; 135 | 136 | p = (uint32_t) mV * (uint32_t) mA; 137 | p = p / (uint32_t) 1000; 138 | return ((uint16_t) p); 139 | } 140 | 141 | -------------------------------------------------------------------------------- /arduino/mpptChg/examples/lib_ser_test/lib_ser_test.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | mpptChg chg; 4 | 5 | uint16_t st; 6 | int16_t vs, is, vb, ib; 7 | 8 | void setup() { 9 | chg.begin(); 10 | Serial.begin(57600); 11 | } 12 | 13 | void loop() { 14 | if (chg.getStatusValue(SYS_STATUS, &st)) { 15 | (void) chg.getIndexedValue(VAL_VS, &vs); 16 | (void) chg.getIndexedValue(VAL_IS, &is); 17 | (void) chg.getIndexedValue(VAL_VB, &vb); 18 | (void) chg.getIndexedValue(VAL_IB, &ib); 19 | 20 | Serial.print(st, HEX); 21 | Serial.print(" "); 22 | Serial.print(vs); 23 | Serial.print(" "); 24 | Serial.print(is); 25 | Serial.print(" "); 26 | Serial.print(vb); 27 | Serial.print(" "); 28 | Serial.println(ib); 29 | } else { 30 | Serial.println(F("getStatusValue failed")); 31 | } 32 | 33 | delay(1000); 34 | } 35 | -------------------------------------------------------------------------------- /arduino/mpptChg/keywords.txt: -------------------------------------------------------------------------------- 1 | 2 | ####################################### 3 | # Syntax Coloring Map For mpptChg 4 | ####################################### 5 | 6 | ####################################### 7 | # Datatypes (KEYWORD1) 8 | ####################################### 9 | 10 | mpptChg KEYWORD1 11 | mpptChg_sys_t KEYWORD1 12 | mpptChg_val_t KEYWORD1 13 | mpptChg_cfg_t KEYWORD1 14 | 15 | 16 | ####################################### 17 | # Methods and Functions (KEYWORD2) 18 | ####################################### 19 | 20 | begin KEYWORD2 21 | getStatusValue KEYWORD2 22 | getIndexedValue KEYWORD2 23 | getConfigurationValue KEYWORD2 24 | setConfigurationValue KEYWORD2 25 | getWatchdogEnable KEYWORD2 26 | setWatchdogEnable KEYWORD2 27 | setWatchdogTimeout KEYWORD2 28 | getWatchdogTimeout KEYWORD2 29 | isAlert KEYWORD2 30 | isNight KEYWORD2 31 | 32 | 33 | ####################################### 34 | # Constants (LITERAL1) 35 | ####################################### 36 | 37 | MPPT_CHG_ID_BRD_ID_MASK LITERAL1 38 | MPPT_CHG_ID_MAJ_REV_MASK LITERAL1 39 | MPPT_CHG_ID_MIN_REV_MASK LITERAL1 40 | 41 | MPPT_CHG_STATUS_HW_WD_MASK LITERAL1 42 | MPPT_CHG_STATUS_SW_WD_MASK LITERAL1 43 | MPPT_CHG_STATUS_BAD_BATT_MASK LITERAL1 44 | MPPT_CHG_STATUS_EXT_MISS_MASK LITERAL1 45 | MPPT_CHG_STATUS_WD_RUN_MASK LITERAL1 46 | MPPT_CHG_STATUS_PWR_EN_MASK LITERAL1 47 | MPPT_CHG_STATUS_ALERT_MASK LITERAL1 48 | MPPT_CHG_STATUS_PCTRL_MASK LITERAL1 49 | MPPT_CHG_STATUS_T_LIM_MASK LITERAL1 50 | MPPT_CHG_STATUS_NIGHT_MASK LITERAL1 51 | MPPT_CHG_STATUS_CHG_ST_MASK LITERAL1 52 | 53 | MPPT_CHG_ST_NIGHT LITERAL1 54 | MPPT_CHG_ST_IDLE LITERAL1 55 | MPPT_CHG_ST_VSRCV LITERAL1 56 | MPPT_CHG_ST_SCAN LITERAL1 57 | MPPT_CHG_ST_BULK LITERAL1 58 | MPPT_CHG_ST_ABSORB LITERAL1 59 | MPPT_CHG_ST_FLOAT LITERAL1 60 | 61 | MPPT_CHG_BUCK_PWM_MASK LITERAL1 62 | MPPT_CHG_BUCK_LIM2_MASK LITERAL1 63 | MPPT_CHG_BUCK_LIM1_MASK LITERAL1 64 | -------------------------------------------------------------------------------- /arduino/pictures/lib_oled_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/arduino/pictures/lib_oled_test.png -------------------------------------------------------------------------------- /arduino/pictures/oled_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/arduino/pictures/oled_back.png -------------------------------------------------------------------------------- /arduino/readme.md: -------------------------------------------------------------------------------- 1 | ## makerPower™ Arduino Library 2 | 3 | ![OLED Solar Monitor](pictures/lib_oled_test.png) 4 | 5 | This directory contains a simple Arduino library providing access the makerPower via I2C and a couple of simple example sketches. It includes support for the ESP8266 software I2C implementation requiring specification of pin numbers for SDA and SCL. The library can also be compiled on a Raspberry Pi (requires [wiringPi](http://wiringpi.com/download-and-install/)). 6 | 7 | ### Sample Sketches 8 | 9 | 1. lib\_ser\_test - Reads several values from the board and outputs their values via the serial port. 10 | 2. lib\_ole\_test - Displays the charge state, solar power, battery voltage and current draw on a 2x16 character OLED display. This sketch may be easily ported to a LCD-based 2x16 character display. My prototype uses a Sparkfun LCD driver board that is actually an Arduino. 11 | 12 | ![OLED backside](pictures/oled_back.png) 13 | 14 | ### Linux Example 15 | The linux directory contains a simple example using the library on a Raspberry Pi. Put the source in the same directory as the library files and use the command line in the 'm' file to compile. It assumes wiringPi has been installed. I just ```chmod +x m``` and compile using ```./m``` in the same directory as the source files. 16 | 17 | Run the demo program ```./test_i2c```. 18 | 19 | Note that the I2C interface on all Pi versions has a bug that causes it to fail when the I2C slave stretches the clock (the makerPower stretches the clock slightly). A work-around is to reduce the I2C clock rate to 50 kHz that can be done by adding the following line to the ```/boot/config.txt``` file. 20 | 21 | ``` 22 | dtparam=i2c_arm_baudrate=50000 23 | ``` 24 | -------------------------------------------------------------------------------- /examples/enclosure/design_files/rear_cutout.lyz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/design_files/rear_cutout.lyz -------------------------------------------------------------------------------- /examples/enclosure/design_files/rear_cutout.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/design_files/rear_cutout.pdf -------------------------------------------------------------------------------- /examples/enclosure/design_files/shelf_cutout.lyz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/design_files/shelf_cutout.lyz -------------------------------------------------------------------------------- /examples/enclosure/design_files/shelf_cutout.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/design_files/shelf_cutout.pdf -------------------------------------------------------------------------------- /examples/enclosure/pictures/battery_mount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/pictures/battery_mount.png -------------------------------------------------------------------------------- /examples/enclosure/pictures/enclosure_assy_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/pictures/enclosure_assy_1.png -------------------------------------------------------------------------------- /examples/enclosure/pictures/enclosure_assy_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/pictures/enclosure_assy_2.png -------------------------------------------------------------------------------- /examples/enclosure/pictures/enclosure_assy_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/pictures/enclosure_assy_3.png -------------------------------------------------------------------------------- /examples/enclosure/pictures/enclosure_parts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/pictures/enclosure_parts.png -------------------------------------------------------------------------------- /examples/enclosure/pictures/enclosure_solar_cable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/pictures/enclosure_solar_cable.png -------------------------------------------------------------------------------- /examples/enclosure/pictures/outdoor_cam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/pictures/outdoor_cam.png -------------------------------------------------------------------------------- /examples/enclosure/pictures/rear_cutout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/pictures/rear_cutout.png -------------------------------------------------------------------------------- /examples/enclosure/pictures/shelf_cutout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/enclosure/pictures/shelf_cutout.png -------------------------------------------------------------------------------- /examples/enclosure/readme.md: -------------------------------------------------------------------------------- 1 | # Camera Enclosure 2 | The Bud Industries [PIP-11774-C]((https://www.budind.com/view/NEMA+Boxes/NEMA+4X+-+PIP)) enclosure with clear lid, available through distributors like Mouser, can be used with a set of laser-cut acrylic panels as a waterproof enclosure for an outdoor camera. 3 | 4 | ![Solar Powered Wildlife Cam](pictures/outdoor_cam.png) 5 | 6 | This example describes a build using the makerPower™ solar charger, a Raspberry Pi Zero (with external USB WiFi dongle), Pi Camera and 7 Ah battery. Mounting holes are included to support full-size Raspberry Pi boards as well. 7 | 8 | Some additional parts are also required. 9 | 10 | 1. Stand-offs for the Raspberry Pi and charger (they should allow the charger to be mounted above the Pi). 11 | 2. Zip-ties long enough to attach the battery to its mounting plate (at least 14"/36mm long). 12 | 3. 4 wires to connect Pi to charger. I used commonly available connector cables with a female dupont connector on one end for the charger and directly soldered to the Pi on the other. 13 | 4. 2 18 AWG battery connectors with 6.3mm spade terminals. 14 | 5. 2-conductor cable (18-20 AWG) for solar panel connection. This is passed through a hole in the enclosure. 15 | 6. Mounting hardware or thick double-sticky tape to mount the camera module. 16 | 7. Cut piece of plywood to sit below battery (5x3x0.375" / 127x76x9.5mm). 17 | 18 | ## Acrylic Cut Outs 19 | Three pieces of laser-cut acrylic plastic are used to mount the camera, electronics and battery inside the enclosure. I used the Macintosh program EazyDraw 7 to create the parts and output DXF versions and Inkscape to convert them into the LYZ files the laser cutter at my makerspace requires. These files along with PDF versions are included in the "design_files" directory here. 20 | 21 | ![Enclosure Parts](pictures/enclosure_parts.png) 22 | 23 | A mounting plate attaches the battery and a shelf to the enclosure. It will require an approximately 200 x 200 mm piece of plastic (I used 0.125" / 3.175mm thick). It has screw holes matching the enclosure, a set of slots for the other piece of plastic and cut-outs for Zip Ties to hold the battery. 24 | 25 | ![Rear Mounting Plate](pictures/rear_cutout.png) 26 | 27 | A shelf has screw holes for the stacked Raspberry Pi and charger and a set of slots for the camera mount. The camera mount includes screw holes matching the Raspberry Pi camera module and a cut-out for the flex cable. Both are cut from the same piece of plastic (approx 250 x 200 mm). 28 | 29 | ![Shelf and Camera Plates](pictures/shelf_cutout.png) 30 | 31 | ## Assembly 32 | I used a Cyanoacrylate Glue ("Super Glue") to attach the shelf to the mounting plate and camera mount to the shelf. Make sure you don't do what I did and initially put the camera mount on the wrong side. It should go on the opposite side from the battery mount. 33 | 34 | ![Pi and Camera](pictures/enclosure_assy_1.png) 35 | 36 | The Pi is mounted on the bottom and charger on top. 37 | 38 | ![Complete Assembly](pictures/enclosure_assy_2.png) 39 | 40 | I dressed the power cable for the Solar Panel through a small hole in the bottom of the enclosure, behind the mounting plate and sealed with liquid electrical tape. 41 | 42 | ![Solar Power Cable](pictures/enclosure_solar_cable.png) 43 | 44 | The assembled unit is inserted and attached to the enclosure before installing the battery. 45 | 46 | ![Installed Assembly](pictures/enclosure_assy_3.png) 47 | 48 | The battery is then inserted and zip tied in place. I put the small piece of plywood under the battery to relieve strain on the zip ties. 49 | 50 | ![Battery Mount](pictures/battery_mount.png) 51 | 52 | ## Condensation Note 53 | This [link](https://www.thethingsnetwork.org/forum/t/condensation-with-waterproof-enclosure-node/3053/7) contains information about managing condensation in sealed enclosures. If condensation is a concern then it appears that providing a breathable but waterproof venting mechanism or conformally coating all the electronics may be a solution. 54 | 55 | ## Battery Temperature Compensation 56 | In extreme environments it is a good idea to remove the external temperature sensor from the makerPower charger board and mount it on the battery with a short 3-wire cable. The sensor may be taped to the top surface of the battery. -------------------------------------------------------------------------------- /examples/esp8266/pictures/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/esp8266/pictures/dashboard.png -------------------------------------------------------------------------------- /examples/esp8266/pictures/esp8266_charger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/esp8266/pictures/esp8266_charger.png -------------------------------------------------------------------------------- /examples/esp8266/pictures/esp8266_connection_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/esp8266/pictures/esp8266_connection_diagram.png -------------------------------------------------------------------------------- /examples/motioneyeos/dnsmasq.conf: -------------------------------------------------------------------------------- 1 | interface=wlan0 2 | dhcp-range=192.168.27.50,192.168.27.150,24h 3 | dhcp-leasefile=/data/dnsmasq.leases 4 | -------------------------------------------------------------------------------- /examples/motioneyeos/hostapd.conf: -------------------------------------------------------------------------------- 1 | ssid=solarcam 2 | wpa_passphrase=12345678 3 | wpa=2 4 | wpa_key_mgmt=WPA-PSK 5 | interface=wlan0 6 | channel=1 7 | driver=nl80211 8 | hw_mode=g 9 | ieee80211n=1 10 | ieee80211ac=1 11 | -------------------------------------------------------------------------------- /examples/motioneyeos/mpptChgDconfig.txt: -------------------------------------------------------------------------------- 1 | # mpptChgD configuration file 2 | # 3 | # Configure the following optional functions: 4 | # 1. Auto shutdown enable 5 | # 2. TCP Access 6 | # 3. Charger register value Logging 7 | # 4. Charger configuration parameters 8 | # 5. Watchdog enable 9 | # 10 | # All options shown below. Uncomment to enable. Configuration items have the form 11 | # = where may be an integer or string value. Items that are 12 | # used to enable functionality (such as SHUTDOWN below) may either be commented out 13 | # or set to 0 to disable. Uncomment them and set the value to 1 to enable. 14 | # 15 | # Comments are indicated by a '#' or ';' character in the first position. 16 | # 17 | 18 | # ========================================================================================== 19 | # 20 | # Automatic Low Battery shutdown. Uncomment the following line to enable a controlled 21 | # OS shutdown upon detection of an imminent power down due to low battery. 22 | SHUTDOWN=1 23 | 24 | 25 | # ========================================================================================== 26 | # 27 | # Remote TCP access. Uncomment and set the TCP_PORT to a non-zero number to enable 28 | # TCP access to the daemon. Remember that this may introduce security risks to your 29 | # system. 30 | TCP_PORT=23000 31 | # Maximum number of simultaneous TCP connections (default is 1 connection, maximum 4) 32 | TCP_MAX=1 33 | 34 | 35 | # ========================================================================================== 36 | # 37 | # Logging parameters 38 | # 39 | # Configure the logfile 40 | #LOG_FILE=/data/log/mpptChgDlog.txt 41 | # 42 | # Number of seconds between log entries 43 | #LOG_DELAY=60 44 | # 45 | # Log items. Uncomment charger register values you wish to log. A comment is written 46 | # to the log file indicating the items being logged and their order. Items that are not 47 | # enabled are skipped. See the user manual for an explanation of each register. Values 48 | # are logged as base-10 decimal numbers separated by a space character. 49 | # 50 | # ID Register 51 | #LOG=ID 52 | # 53 | # STATUS Register 54 | #LOG=STATUS 55 | # 56 | # BUCK Status Register 57 | #LOG=BUCK 58 | # 59 | # Solar Panel Voltage in mV (VS) 60 | #LOG=VS 61 | # 62 | # Solar Panel Current in mA (IS) 63 | #LOG=IS 64 | # 65 | # Battery Voltage in mV (VB) 66 | #LOG=VB 67 | # 68 | # Battery Load Current in mA (IB) 69 | #LOG=IB 70 | # 71 | # Battery Charge Current in mA (IC) 72 | #LOG=IC 73 | # 74 | # Internal Temperature Sensor temperature in degrees C x 10 (IT) - (25C will show up as 250) 75 | #LOG=IT 76 | # 77 | # External Temperature Sensor temperature in degrees C x 10 (ET) 78 | #LOG=ET 79 | # 80 | # Current calculated solar panel maximum power point voltage in mV (VM) 81 | #LOG=VM 82 | # 83 | # Current temperature compensated battery charge voltage in mV (TH) 84 | #LOG=TH 85 | # 86 | # Battery BULK/ABSORPTION charge voltage threshold for 25C in mV (BULKV) 87 | #LOG=BULKV 88 | # 89 | # Battery FLOAT charge voltage threshold for 25C in mV (FLOATV) 90 | #LOG=FLOATV 91 | # 92 | # Low Battery power-off threshold in mV (PWROFFV) 93 | #LOG=PWROFFV 94 | # 95 | # Battery power-on restart threshold in mV (PWRONV) 96 | #LOG=PWRONV 97 | # 98 | # Watchdog enable Register (0=disabled, 1=enabled)(WDEN) 99 | #LOG=WDEN 100 | # 101 | # Watchdog timeout count Register in seconds (WDCNT) 102 | #LOG=WDCNT 103 | 104 | 105 | # ========================================================================================== 106 | # 107 | # Charger parameters. Uncomment the following lines to configure non-default charger 108 | # configuration parameters. 109 | # 110 | # Battery BULK/ABSORPTION charge voltage threshold for 25C in mV (BULKV) 111 | # Must be within the range 14000 - 15000 mV 112 | #BULKV=14700 113 | # 114 | # Battery FLOAT charge voltage threshold for 25C in mV (FLOATV) 115 | # Must be within the range 13000 - 14000 mV 116 | #FLOATV=13650 117 | # 118 | # Low Battery power-off threshold in mV (PWROFFV) 119 | # Must be within the range 11000 - 12000 mV 120 | #PWROFFV=11500 121 | # 122 | # Battery power-on restart threshold in mV (PWRONV) 123 | # Must be within the range 12000 - 13000 mV 124 | #PWRONV=12500 125 | 126 | 127 | # ========================================================================================== 128 | # 129 | # Watchdog Enable. Uncomment the following line to enable the daemon to control the charger's 130 | # watchdog mechanism. It will enable the watchdog functionality and make sure that it is 131 | # updated in order to not cycle power. The daemon will catch most terminal signals and 132 | # automatically disable the watchdog before exiting. However a hard kill of the daemon will 133 | # leave the watchdog running and unless it is disabled via another facility, the charger will 134 | # power cycle the system within 120 - 180 seconds. 135 | #WATCHDOG=1 136 | 137 | -------------------------------------------------------------------------------- /examples/motioneyeos/pictures/first_run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/motioneyeos/pictures/first_run.png -------------------------------------------------------------------------------- /examples/motioneyeos/pictures/pi_cam_connection_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/motioneyeos/pictures/pi_cam_connection_diagram.png -------------------------------------------------------------------------------- /examples/motioneyeos/userinit.sh: -------------------------------------------------------------------------------- 1 | # Start the mpptChgD daemon 2 | export LD_LIBRARY_PATH=/data/mpptChg 3 | /data/mpptChg/mpptChgD -d -f /data/mpptChg/mpptChgDconfig.txt & 4 | -------------------------------------------------------------------------------- /examples/nightlighting/pictures/closed_j1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/nightlighting/pictures/closed_j1.png -------------------------------------------------------------------------------- /examples/nightlighting/pictures/nightlight_connection_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/nightlighting/pictures/nightlight_connection_diagram.png -------------------------------------------------------------------------------- /examples/nightlighting/pictures/ssd_lit_sign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/nightlighting/pictures/ssd_lit_sign.png -------------------------------------------------------------------------------- /examples/nightlighting/pictures/strip_lit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/nightlighting/pictures/strip_lit.png -------------------------------------------------------------------------------- /examples/nightlighting/pictures/usb_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/nightlighting/pictures/usb_light.png -------------------------------------------------------------------------------- /examples/nightlighting/pictures/usb_light_lit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/nightlighting/pictures/usb_light_lit.png -------------------------------------------------------------------------------- /examples/nightlighting/readme.md: -------------------------------------------------------------------------------- 1 | # Automatic Night Lighting Control 2 | 3 | The makerPower MPPT Solar Charger "Night Only" mode is designed to enable applications at night as detected by the Solar Panel by controlling the 5V output. 4 | 5 | ### Night Only Jumper 6 | 7 | The charger enters NIGHT state whenever the solar panel voltage is below 3.5 volts. When transitioning from day to night the charger will move from IDLE to NIGHT state five minutes after the voltage is first detected below 3.5 volts. When transitioning from night to day the charger will move from NIGHT to IDLE one minute after the voltage is first detected above 3.5 volts. These timeouts provide a hysteresis function to prevent errant or multiple transitions. 8 | The charger asserts the NIGHT signal during the NIGHT state. 9 | 10 | Closing the 5V Power Enable Night Mode jumper J1 with a blob of solder configures the charger to only enable 5V power while the charger is in the NIGHT state. When the charger transitions out of NIGHT state, it will first assert the ALERT signal and then switch off the 5V Buck converter 60 seconds after that. When it transitions into NIGHT state, it will de-assert the ALERT signal and re-enable the 5V power output simultaneously. 11 | 12 | ![Night Only Jumper](pictures/closed_j1.png) 13 | 14 | The solder jumper can be bridged using a soldering iron to deposit a small blob of solder across the two pads. It can be un-bridged by using solder-wick to remove the solder or dragging a fine tip between the two pads after applying flux to cause the solder to separate into two blobs. Take care to use a fine soldering iron tip and not rip up the jumper pads. Sparkfun has a [tutorial](https://learn.sparkfun.com/tutorials/how-to-work-with-jumper-pads-and-pcb-traces/all). 15 | 16 | ## Super Simple USB Spot Light 17 | 18 | ![USB Light](pictures/usb_light.png) 19 | 20 | An inexpensive USB "flashlight" makes a quick & dirty spot light. Just add jumper J1 and plug the USB light into the charger. 21 | 22 | ![Charger powering USB light](pictures/usb_light_lit.png) 23 | 24 | I found the unit shown above on Amazon with bendable extension for just over $7 USD. Although advertised as a 1.75W device, it draws only 200 mA at 5V (1W) and less than 100 mA from the 12V battery (only about 1.2 Ah per 12 hour night). With appropriate waterproofing it would make a great path or sign light. 25 | 26 | ## Sign Lighting using a 12V LED Strip 27 | The Fused 12V battery terminals are available to power higher-voltage loads like commonly available 12V LED strips. A N-Channel MOSFET transistor can be used as a low-side switch to turn the 12V load on and off as shown in the following diagram. While either the NIGHT output or +5V output may be used to control the transistor, using the +5V output instead of the NIGHT output allows the charger to prevent the lights from coming on when the battery is fully discharged. 28 | 29 | ![Switched 12V LED Strip](pictures/nightlight_connection_diagram.png) 30 | 31 | The MOSFET is not super-critical in this application. It should be able to be fully turned on by the 5V gate voltage, have fairly low on-resistance and be capable of carrying the necessary current. High power transistors available from [Adafruit](https://www.adafruit.com/product/355) and [Sparkfun](https://www.sparkfun.com/products/10213) will work just fine without any heatsinking. Take some care as they are ESD sensitive. 32 | 33 | ![Lit 12V LED Strip](pictures/strip_lit.png) 34 | 35 | Most 12V LED strips can be cut every 3 LEDs. Current consumption - and therefore required battery capacity - is computed by the number of 3 LED segments multiplied by the current required by one segment. Current required by segment depends on the type of LED used in the strip but varies, in my experience, from less than 20 mA for 3528 LEDs to about 60 mA for 5050 and 5630 LEDs. The 5 segment (15 LED) waterproof strip in my photograph requires about 80 mA at 12.5 volts. It would match well with a 20-25 W Solar Panel and 7 Ah battery. The system would normally have a very low nightly discharge from the battery resulting in long battery life and the capability of operation for up to a week in low-light conditions (e.g. snow covered solar panels). 36 | 37 | ![Lit Solid State Depot Sign](pictures/ssd_lit_sign.png) 38 | 39 | They work really well to edge-light etched plexiglass signs. -------------------------------------------------------------------------------- /examples/pi_UPS/pictures/pi_hdd_ups_connection_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/pi_UPS/pictures/pi_hdd_ups_connection_diagram.png -------------------------------------------------------------------------------- /examples/pi_UPS/pictures/ups_cap_schem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/pi_UPS/pictures/ups_cap_schem.png -------------------------------------------------------------------------------- /examples/pi_UPS/pictures/ups_capacitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/pi_UPS/pictures/ups_capacitor.png -------------------------------------------------------------------------------- /examples/pi_UPS/pictures/ups_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/pi_UPS/pictures/ups_dashboard.png -------------------------------------------------------------------------------- /examples/pi_UPS/pictures/ups_dell_supply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/pi_UPS/pictures/ups_dell_supply.png -------------------------------------------------------------------------------- /examples/pi_UPS/pictures/ups_liteon_supply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/pi_UPS/pictures/ups_liteon_supply.png -------------------------------------------------------------------------------- /examples/pi_UPS/pictures/ups_pi_hdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/pi_UPS/pictures/ups_pi_hdd.png -------------------------------------------------------------------------------- /examples/rad_sensor/photon_solar_rad_mon/project.properties: -------------------------------------------------------------------------------- 1 | dependencies.blynk=0.5.4 -------------------------------------------------------------------------------- /examples/rad_sensor/pictures/blynk_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/rad_sensor/pictures/blynk_app.png -------------------------------------------------------------------------------- /examples/rad_sensor/pictures/blynk_qr_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/rad_sensor/pictures/blynk_qr_code.png -------------------------------------------------------------------------------- /examples/rad_sensor/pictures/radmonitor_connection_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/rad_sensor/pictures/radmonitor_connection_diagram.png -------------------------------------------------------------------------------- /examples/rad_sensor/pictures/radmonitor_hardware.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/rad_sensor/pictures/radmonitor_hardware.png -------------------------------------------------------------------------------- /examples/rad_sensor/pictures/resistor_divider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/examples/rad_sensor/pictures/resistor_divider.png -------------------------------------------------------------------------------- /examples/readme.md: -------------------------------------------------------------------------------- 1 | ## Example Applications 2 | 3 | This repository contains several example applications including wiring diagrams and supporting code and configuration files. 4 | 5 | 1. esp8266 - Communicate with the cloud via WiFi and display charger data on an Adafruit IO dashboard. 6 | 2. enclosure - Laser cut acrylic mounting plates to convert an off-the-shelf waterproof enclosure into a solar camera. 7 | 3. motioneyeos - Incorporate the mpptChgD daemon into the motioneyeos distribution for a remotely monitored solar powered webcam. 8 | 4. nightlighting - The "night-only" function can be used to automatically turn on LED lighting at night. 9 | 5. pi_UPS - Use the charger as a long-lasting uninterruptable power supply with controlled shutdown for Raspberry Pi based systems. 10 | 6. rad_sensor - Display information from a geiger counter remotely through the Blynk app on your phone. -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | SolarMpptCharger 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | com.silabs.ss.framework.ide.project.sls.core.SLSProjectNature 24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/.settings/com.silabs.ss.framework.ide.project.sls.core.prefs: -------------------------------------------------------------------------------- 1 | copiedFilesOriginState={} 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/SolarMpptCharger.lnp: -------------------------------------------------------------------------------- 1 | "./src/InitDevice.OBJ", 2 | "./src/Interrupts.OBJ", 3 | "./src/SILABS_STARTUP.OBJ", 4 | "./src/SolarMpptCharger_main.OBJ", 5 | "./src/adc.OBJ", 6 | "./src/adc_ref_const.OBJ", 7 | "./src/buck.OBJ", 8 | "./src/charge.OBJ", 9 | "./src/led.OBJ", 10 | "./src/param.OBJ", 11 | "./src/power.OBJ", 12 | "./src/smbus.OBJ", 13 | "./src/temp.OBJ", 14 | "./src/timer.OBJ", 15 | "./src/watchdog.OBJ" 16 | TO "SOLARMPPTCHARGER.OMF.CRBUILD" REMOVEUNUSED PRINT(.\SolarMpptCharger.m51) PAGEWIDTH (120) PAGELENGTH (65) CLASSES( ECODE(C:0x0 - C:0x1ffe), HCONST(C:0x0 - C:0x1ffe), XDATA(X:0x0 - X:0xff), HDATA(X:0x0 - X:0xff)) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/SolarMpptCharger.omf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/SolarMpptCharger.omf -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/makefile: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # Automatically-generated file. Do not edit! 3 | ################################################################################ 4 | 5 | # Keil tools exit code 1 is warnings only, so don't treat as an error in make 6 | RC := test $$? -lt 2 7 | 8 | -include ../makefile.init 9 | 10 | RM := rm -rf 11 | 12 | # All of the sources participating in the build are defined here 13 | -include sources.mk 14 | -include src/subdir.mk 15 | -include subdir.mk 16 | -include objects.mk 17 | 18 | -include ../makefile.defs 19 | 20 | # Add inputs and outputs from these tool invocations to the build variables 21 | 22 | # All Target 23 | all: SolarMpptCharger.omf 24 | 25 | # Tool invocations 26 | SolarMpptCharger.omf: echo_path $(OBJS) 27 | @echo 'Building target: $@' 28 | @echo 'Invoking: Keil 8051 Linker' 29 | wine "/Applications/Simplicity Studio.app/Contents/Eclipse/developer/toolchains/keil_8051/9.60/BIN/LX51" "@SolarMpptCharger.lnp" || $(RC) 30 | @echo 'Finished building target: $@' 31 | 32 | # Change from all upper case to the expected case 33 | @-mv "SOLARMPPTCHARGER.OMF.CRBUILD" "$@" 34 | 35 | # Generate hex file: SolarMpptCharger.hex 36 | @wine "/Applications/Simplicity Studio.app/Contents/Eclipse/developer/toolchains/keil_8051/9.60/BIN/Ohx51" "SolarMpptCharger.omf" "HEXFILE (SolarMpptCharger.hex)" "H386" 2>&1 >/dev/null 37 | 38 | # Other Targets 39 | clean: 40 | -$(RM) $(EXECUTABLES)$(OBJS) SolarMpptCharger.omf 41 | -@echo ' ' 42 | 43 | .PHONY: all clean dependents 44 | .SECONDARY: 45 | 46 | -include ../makefile.targets 47 | # echo the path 48 | echo_path: 49 | @echo PATH=$$PATH 50 | @echo ' ' 51 | 52 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/objects.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # Automatically-generated file. Do not edit! 3 | ################################################################################ 4 | 5 | USER_OBJS := 6 | 7 | LIBS := 8 | 9 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/sources.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # Automatically-generated file. Do not edit! 3 | ################################################################################ 4 | 5 | A51_UPPER_SRCS := 6 | OBJ_UPPER_SRCS := 7 | SRC_UPPER_SRCS := 8 | ASM_SRCS := 9 | C_SRCS := 10 | S_UPPER_SRCS := 11 | EXECUTABLES := 12 | OBJS := 13 | 14 | # Every subdirectory with source files must be described here 15 | SUBDIRS := \ 16 | src \ 17 | 18 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/InitDevice.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/InitDevice.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/InitDevice.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/InitDevice.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/InitDevice.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/InitDevice.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/Interrupts.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/Interrupts.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/Interrupts.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/Interrupts.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/Interrupts.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/Interrupts.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/SILABS_STARTUP.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/SILABS_STARTUP.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/SILABS_STARTUP.__ia: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/SILABS_STARTUP.A51" ERRORPRINT SET (COMPACT) DEBUG MACRO NOMOD51 INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) PRINT(.\src/SILABS_STARTUP.lst) COND SYMBOLS PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/SILABS_STARTUP.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/SolarMpptCharger_main.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/SolarMpptCharger_main.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/SolarMpptCharger_main.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/SolarMpptCharger_main.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/SolarMpptCharger_main.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/SolarMpptCharger_main.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/adc.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/adc.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/adc.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/adc.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/adc.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/adc.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/adc_ref_const.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/adc_ref_const.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/adc_ref_const.__ia: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/adc_ref_const.A51" ERRORPRINT SET (COMPACT) DEBUG MACRO NOMOD51 INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) PRINT(.\src/adc_ref_const.lst) COND SYMBOLS PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/adc_ref_const.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/adc_ref_const.lst: -------------------------------------------------------------------------------- 1 | AX51 MACRO ASSEMBLER ADC_REF_CONST 02/10/23 13:46:28 PAGE 1 2 | 3 | 4 | MACRO ASSEMBLER AX51 V3.15.3.0 5 | OBJECT MODULE PLACED IN .\src\adc_ref_const.OBJ 6 | ASSEMBLER INVOKED BY: Z:\Applications\Simplicity Studio.app\Contents\Eclipse\developer\toolchains\keil_8051\9.60\BIN\AX5 7 | 1.exe /Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/adc_ref_const.A51 ERRORPR 8 | INT SET(COMPACT) DEBUG MACRO NOMOD51 INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpp 9 | tCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Devi 10 | ce/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1 11 | .7//Device/EFM8SB1/inc) PRINT(.\src\adc_ref_const.lst) COND SYMBOLS PAGEWIDTH(120) PAGELENGTH(65) 12 | OBJECT(.\src\adc_ref_const.OBJ) 13 | 14 | LOC OBJ LINE SOURCE 15 | 16 | 1 ; Code-space storage for ADC Reference voltage (mV) 17 | 2 ; 18 | 3 ; Designed to be accessed through the variable, adcVRefMv, 19 | 4 ; defined in adc.c. This allows a calibrated value to be loaded 20 | 5 ; by a manufacturing test programmer. 21 | 6 ; 22 | 7 ; The default value is 1650 mV (specified internal reference voltage). 23 | 8 ; 1650 = 672h 24 | 9 ; 25 | 10 ; The address is the last 2-bytes in code-space before the bootloader 26 | 11 ; signature byte and lock byte 27 | 12 ; 28 | 001FFC 13 CSEG AT 01FFCh 29 | 001FFC 06 14 ADC_REF_VAL_HIGH: DB 06h 30 | 001FFD 72 15 ADC_REF_VAL_LOW: DB 72h 31 | 16 END 32 | AX51 MACRO ASSEMBLER ADC_REF_CONST 02/10/23 13:46:28 PAGE 2 33 | 34 | SYMBOL TABLE LISTING 35 | ------ ----- ------- 36 | 37 | 38 | N A M E T Y P E V A L U E ATTRIBUTES 39 | 40 | ADC_REF_VAL_HIGH . C ADDR 1FFCH R SEG=?CO?ADC_REF_CONST?1 41 | ADC_REF_VAL_LOW. . C ADDR 1FFDH R SEG=?CO?ADC_REF_CONST?1 42 | 43 | 44 | REGISTER BANK(S) USED: 0 45 | 46 | 47 | ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S). 48 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/buck.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/buck.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/buck.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/buck.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/buck.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/buck.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/charge.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/charge.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/charge.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/charge.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/charge.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/charge.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/led.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/led.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/led.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/led.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/led.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/led.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/param.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/param.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/param.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/param.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/param.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/param.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/power.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/power.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/power.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/power.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/power.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/power.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/smbus.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/smbus.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/smbus.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/smbus.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/smbus.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/smbus.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/temp.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/temp.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/temp.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/temp.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/temp.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/temp.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/timer.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/timer.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/timer.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/timer.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/timer.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/timer.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/watchdog.OBJ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/watchdog.OBJ -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/Keil 8051 v9.53 - Release/src/watchdog.__i: -------------------------------------------------------------------------------- 1 | "/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/src/watchdog.c" OMF2 COMPACT DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SPEED) DEFINE (NDEBUG=1) INTVECTOR(0x0000) INTPROMOTE INCDIR(/Users/danjulio/SimplicityStudio/v4_workspace/SolarMpptCharger/inc;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/shared/si8051Base;/Applications/Simplicity Studio.app/Contents/Eclipse/developer/sdks/8051/v4.1.7//Device/EFM8SB1/inc) REGFILE (SolarMpptCharger.ORC) PRINT(.\src/watchdog.lst) COND SYMBOLS CODE PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/watchdog.OBJ) -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/InitDevice.h: -------------------------------------------------------------------------------- 1 | //========================================================= 2 | // inc/InitDevice.h: generated by Hardware Configurator 3 | // 4 | // This file will be regenerated when saving a document. 5 | // leave the sections inside the "$[...]" comment tags alone 6 | // or they will be overwritten! 7 | //========================================================= 8 | #ifndef __INIT_DEVICE_H__ 9 | #define __INIT_DEVICE_H__ 10 | 11 | // USER CONSTANTS 12 | // USER PROTOTYPES 13 | 14 | // $[Mode Transition Prototypes] 15 | extern void enter_DefaultMode_from_RESET(void); 16 | // [Mode Transition Prototypes]$ 17 | 18 | // $[Config(Per-Module Mode)Transition Prototypes] 19 | extern void PCA_0_enter_DefaultMode_from_RESET(void); 20 | extern void PCACH_0_enter_DefaultMode_from_RESET(void); 21 | extern void PCACH_1_enter_DefaultMode_from_RESET(void); 22 | extern void PCACH_2_enter_DefaultMode_from_RESET(void); 23 | extern void VREG_0_enter_DefaultMode_from_RESET(void); 24 | extern void PORTS_0_enter_DefaultMode_from_RESET(void); 25 | extern void PORTS_1_enter_DefaultMode_from_RESET(void); 26 | extern void PBCFG_0_enter_DefaultMode_from_RESET(void); 27 | extern void RSTSRC_0_enter_DefaultMode_from_RESET(void); 28 | extern void HFOSC_0_enter_DefaultMode_from_RESET(void); 29 | extern void CLOCK_0_enter_DefaultMode_from_RESET(void); 30 | extern void FLASH_0_enter_DefaultMode_from_RESET(void); 31 | extern void TIMER01_0_enter_DefaultMode_from_RESET(void); 32 | extern void TIMER16_2_enter_DefaultMode_from_RESET(void); 33 | extern void TIMER_SETUP_0_enter_DefaultMode_from_RESET(void); 34 | extern void ADC_0_enter_DefaultMode_from_RESET(void); 35 | extern void VREF_0_enter_DefaultMode_from_RESET(void); 36 | extern void SMBUS_0_enter_DefaultMode_from_RESET(void); 37 | extern void INTERRUPT_0_enter_DefaultMode_from_RESET(void); 38 | // [Config(Per-Module Mode)Transition Prototypes]$ 39 | 40 | #endif 41 | 42 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/adc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * adc.h 3 | * 4 | * Header for ADC Module 5 | * 6 | * Copyright (c) 2018-2023 danjuliodesigns, LLC. All rights reserved. 7 | * 8 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * SolarMpptCharger is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Lesser General Public License for more details. 17 | * 18 | * See . 19 | * 20 | */ 21 | 22 | #ifndef INC_ADC_H_ 23 | #define INC_ADC_H_ 24 | 25 | #include "SI_EFM8SB1_Register_Enums.h" 26 | 27 | 28 | //----------------------------------------------------------------------------- 29 | // Constants 30 | //----------------------------------------------------------------------------- 31 | 32 | // Estimate of our Buck Converter efficiency (integer percentage) 33 | #define BUCK_EFF_INT_PERCENT 91 34 | 35 | // Measurement indices (first 4 must be measured ADC values) 36 | #define ADC_NUM_MEASUREMENTS 6 37 | #define ADC_MEAS_VS_INDEX 0 38 | #define ADC_MEAS_IS_INDEX 1 39 | #define ADC_MEAS_VB_INDEX 2 40 | #define ADC_MEAS_IB_INDEX 3 41 | #define ADC_MEAS_TI_INDEX 4 42 | #define ADC_MEAS_TE_INDEX 5 43 | 44 | // 45 | // Low-pass digital filter parameters 46 | // From: https://www.edn.com/design/systems-design/4320010/A-simple-software-lowpass-filter-suits-embedded-system-applications 47 | // 48 | // K Bandwidth (normalized to 1Hz) Rise Time (Samples) 49 | // 1 0.1197 3 50 | // 2 0.0466 8 51 | // 3 0.0217 16 52 | // 4 0.0104 34 53 | // 5 0.0051 69 54 | // 6 0.0026 140 55 | // 7 0.0012 280 56 | // 8 0.0007 561 57 | // 58 | #define ADC_V_FILTER_SHIFT 3 59 | #define ADC_I_FILTER_SHIFT 6 60 | 61 | // Temperature averaging - must be a power-of-two - max is 16 samples 62 | #define ADC_NUM_TEMP_SMPLS 8 63 | #define ADC_TEMP_SHIFT 3 64 | #define ADC_TEMP_RND_MASK 0x04 65 | 66 | // Analog input scaling factors 67 | #define ADC_VREF_MV 1650 68 | #define V_SF 15 69 | // I_DIVISOR is ADC_MAX_VAL * I_GAIN * I_RESISTOR) = 4092 * 20 * 0.025 70 | #define I_DIVISOR 2046 71 | 72 | // Temperature measurement evaluation interval (one temp sensor every 500 mSec) 73 | #define ADC_EVALS_PER_MSEC 4 74 | #define ADC_TEMP_EVAL_MSEC 500 75 | #define ADC_TEMP_EVAL_COUNT (ADC_EVALS_PER_MSEC*ADC_TEMP_EVAL_MSEC) 76 | 77 | // Temperature sensor indicies 78 | #define ADC_TEMP_INT 0 79 | #define ADC_TEMP_EXT 1 80 | 81 | // BUCK Module regulator evaluation interval 82 | #define ADC_BUCK_EVAL_MSEC 5 83 | #define ADC_BUCK_EVAL_COUNT (ADC_EVALS_PER_MSEC*ADC_BUCK_EVAL_MSEC) 84 | 85 | // Timer0 Interrupt control macros 86 | #define _ADC_DIS_TMR0() IE_ET0 = 0 87 | #define _ADC_EN_TMR0() IE_ET0 = 1 88 | 89 | // ADC Interrupt control macros 90 | #define _ADC_DIS_INT() EIE1 &= ~EIE1_EADC0__BMASK 91 | #define _ADC_EN_INT() EIE1 |= EIE1_EADC0__BMASK 92 | 93 | 94 | 95 | //----------------------------------------------------------------------------- 96 | // API Routines 97 | //----------------------------------------------------------------------------- 98 | void ADC_Init(); 99 | int16_t ADC_GetValue(uint8_t index); 100 | uint16_t ADC_GetValueForIsr(uint8_t index); 101 | 102 | #endif /* INC_ADC_H_ */ 103 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/buck.h: -------------------------------------------------------------------------------- 1 | /* 2 | * buck.h 3 | * 4 | * Header for buck converter control module 5 | * 6 | * Copyright (c) 2018-2019 danjuliodesigns, LLC. All rights reserved. 7 | * 8 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * SolarMpptCharger is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Lesser General Public License for more details. 17 | * 18 | * See . 19 | * 20 | */ 21 | 22 | #ifndef BUCK_H_ 23 | #define BUCK_H_ 24 | 25 | #include "SI_EFM8SB1_Register_Enums.h" 26 | 27 | 28 | //----------------------------------------------------------------------------- 29 | // Constants 30 | //----------------------------------------------------------------------------- 31 | #define BUCK_PWM_MIN 0 32 | #define BUCK_PWM_MAX 1023 33 | 34 | 35 | 36 | //----------------------------------------------------------------------------- 37 | // Externs 38 | //----------------------------------------------------------------------------- 39 | extern volatile uint16_t SI_SEG_IDATA buckCurVal; 40 | extern volatile uint16_t SI_SEG_IDATA buckBattRegMv; 41 | extern volatile uint16_t SI_SEG_IDATA buckSolarRegMv; 42 | extern volatile bool buckEnable; 43 | extern volatile bool buckLimit1; // Over-current or over-voltage limit 44 | extern volatile bool buckLimit2; // Regulate voltage above min 45 | 46 | 47 | 48 | //----------------------------------------------------------------------------- 49 | // API Routines 50 | //----------------------------------------------------------------------------- 51 | void BUCK_Init(); 52 | void BUCK_SetSolarVoltage(uint16_t v); 53 | void BUCK_SetBattVoltage(uint16_t v); 54 | void BUCK_EnableRegulate(bool en); 55 | void BUCK_EnableBatteryLimit(bool en); 56 | void BUCK_Update(); 57 | uint8_t BUCK_GetEfficiency(uint16_t ps); 58 | 59 | #define BUCK_GetPwm() buckCurVal 60 | #define BUCK_GetCurBattRegMv() buckBattRegMv 61 | #define BUCK_GetCurSolarRegMv() buckSolarRegMv 62 | #define BUCK_IsEnabled() buckEnable 63 | #define BUCK_IsLimiting() (buckLimit1 || buckLimit2) 64 | #define BUCK_IsLimit1() buckLimit1 65 | #define BUCK_IsLimit2() buckLimit2 66 | 67 | #endif /* BUCK_H_ */ 68 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/charge.h: -------------------------------------------------------------------------------- 1 | /* 2 | * charge.h 3 | * 4 | * Header for charge control logic module 5 | * 6 | * Copyright (c) 2018-2023 danjuliodesigns, LLC. All rights reserved. 7 | * 8 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * SolarMpptCharger is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Lesser General Public License for more details. 17 | * 18 | * See . 19 | * 20 | */ 21 | 22 | #ifndef INC_CHARGE_H_ 23 | #define INC_CHARGE_H_ 24 | 25 | #include "SI_EFM8SB1_Register_Enums.h" 26 | 27 | 28 | //----------------------------------------------------------------------------- 29 | // Constants 30 | //----------------------------------------------------------------------------- 31 | 32 | // Charge State 33 | #define CHG_ST_NIGHT 0 34 | #define CHG_ST_IDLE 1 35 | #define CHG_ST_VSRCV 2 36 | #define CHG_ST_SCAN 3 37 | #define CHG_ST_BULK 4 38 | #define CHG_ST_ABS 5 39 | #define CHG_ST_FLT 6 40 | 41 | // 42 | // MPPT Scan parameters 43 | // 44 | // Value added to current battery voltage to establish ending solar panel voltage 45 | #define CHG_SCAN_END_DELTA 1500 46 | 47 | 48 | //----------------------------------------------------------------------------- 49 | // Externs 50 | //----------------------------------------------------------------------------- 51 | extern bool chargeTempLimited; 52 | extern uint8_t chargeState; 53 | extern uint16_t v_s_mv; 54 | extern uint16_t i_s_ma; 55 | extern uint16_t v_b_mv; 56 | extern uint16_t i_b_ma; 57 | extern int16_t i_c_ma; 58 | extern uint16_t chargeSolarRegMv; 59 | extern uint16_t chargeCompThreshMv; 60 | 61 | 62 | //----------------------------------------------------------------------------- 63 | // API Macros 64 | //----------------------------------------------------------------------------- 65 | #define CHARGE_GetVsMv() v_s_mv 66 | #define CHARGE_GetIsMa() i_s_ma 67 | #define CHARGE_GetVbMv() v_b_mv 68 | #define CHARGE_GetIbMa() i_b_ma 69 | #define CHARGE_GetIcMa() i_c_ma 70 | #define CHARGE_GetState() chargeState 71 | #define CHARGE_IsTempLimited() chargeTempLimited 72 | #define CHARGE_GetMpptMv() chargeSolarRegMv 73 | #define CHARGE_GetCompMv() chargeCompThreshMv 74 | 75 | 76 | //----------------------------------------------------------------------------- 77 | // API Routines 78 | //----------------------------------------------------------------------------- 79 | void CHARGE_Init(); 80 | void CHARGE_MpptUpdate(); 81 | void CHARGE_StateUpdate(); 82 | 83 | #endif /* INC_CHARGE_H_ */ 84 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * config.h 3 | * 4 | * Global default system configuration parameters 5 | * 6 | * Copyright (c) 2018-2023 danjuliodesigns, LLC. All rights reserved. 7 | * 8 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * SolarMpptCharger is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Lesser General Public License for more details. 17 | * 18 | * See . 19 | * 20 | */ 21 | 22 | #ifndef INC_CONFIG_H_ 23 | #define INC_CONFIG_H_ 24 | 25 | // Firmware version 26 | // Each field should be limited to 4-bits 27 | #define FW_ID 1 28 | #define FW_VER_MAJOR 2 29 | #define FW_VER_MINOR 0 30 | 31 | // Note about constant suffixes 32 | // _1 : Applies to Lead Acid batteries 33 | // _2 : Applies to LiFePO4 batteries 34 | 35 | // Charge Voltage Thresholds (mV) 36 | #define V_NIGHT_THRESH 3500 37 | #define V_MAX_SOLARV 21000 38 | #define V_MIN_GOOD_SOLAR 18000 39 | #define V_MIN_SOLARV 12000 40 | #define V_MIN_IDLE_2_FLT_1 12700 41 | #define V_MIN_IDLE_2_FLT_2 13200 42 | #define V_BULK_DEFAULT_1 14700 43 | #define V_BULK_DEFAULT_2 14400 44 | #define V_FLOAT_DEFAULT 13650 45 | #define V_DELTA_CHANGE 20 46 | 47 | // Load Control Voltage Thresholds (mV) 48 | #define V_LOAD_OFF 11500 49 | #define V_LOAD_ON_1 12500 50 | #define V_LOAD_ON_2 13600 51 | 52 | // Bad Battery Voltage Threshold (mV) 53 | #define V_BAD_BATTERY 10500 54 | 55 | // Adjustable threshold limits 56 | #define V_BULK_MIN 14000 57 | #define V_BULK_MAX 15000 58 | #define V_FLOAT_MIN 13000 59 | #define V_FLOAT_MAX 14000 60 | #define V_LOAD_OFF_MIN 11000 61 | // V_LOAD_OFF_MAX set by current V_LOAD_ON 62 | #define V_LOAD_ON_MIN 12000 63 | #define V_LOAD_ON_MAX 15000 64 | 65 | // Hysteresis to prevent night timer operation toggling around a critically low 66 | // battery voltage 67 | #define PWR_LB_HYST_MV 250 68 | 69 | // Current Thresholds (mA) 70 | #define I_SOLAR_MIN_THRESH 10 71 | #define I_SOLAR_MAX 2000 72 | #define I_ABS_CUTOFF 300 73 | 74 | // Power Thresholds (mW) 75 | #define P_MIN_THRESH 100 76 | 77 | // Charging temperature limits (C) 78 | #define TEMP_LIMIT_HIGH 50 79 | #define TEMP_LIMIT_LOW_1 -20 80 | #define TEMP_LIMIT_LOW_2 0 81 | #define TEMP_LIMIT_HYST 5 82 | 83 | // Lead Acid Temperature compensation (mV for 6 cells per degree C) 84 | // x 10 to enable rounding of an integer calculation 85 | #define V_BULK_COMP_X10 -300 86 | #define V_FLOAT_COMP_X10 -198 87 | 88 | // Buck regulator voltage regulation hysteresis (mV) 89 | #define V_BUCK_HYST 15 90 | 91 | // Timeouts (seconds) - should fit in an uint16_t 92 | #define WAKE_TIMEOUT 60 93 | #define NIGHT_TIMEOUT 300 94 | #define MPPT_SCAN_TIMEOUT 600 95 | #define HIGH_CHARGE_TIMEOUT 36000 96 | #define CHG_RCVR_PERIOD 3 97 | #define LOWPWR_TIMEOUT 60 98 | #define PWROFF_WARN_TIMEOUT 60 99 | #define PWROFF_DEF_WD_TIMEOUT 10 100 | #define PWROFF_LB_CHG_TIMEOUT 3600 101 | // Timeouts (seconds) - should fit in an uint8_t 102 | #define LOW_PROD_TIMEOUT 15 103 | #define ABS_TERM_TIMEOUT 30 104 | 105 | // MPPT Step voltages 106 | #define MPPT_HI_I_STEP_MV 50 107 | #define MPPT_MID_I_STEP_MV 100 108 | #define MPPT_LO_I_STEP_MV 200 109 | #define MPPT_HI_I_STEP_MA 200 110 | #define MPPT_LO_I_STEP_MA 100 111 | 112 | // MPPT Scan Step voltage 113 | #define MPPT_SCAN_STEP_MV 200 114 | 115 | // Diagnostic output port bits for use by any module 116 | SI_SBIT(AUX, SFR_P0, 0); 117 | 118 | 119 | #endif /* INC_CONFIG_H_ */ 120 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/led.h: -------------------------------------------------------------------------------- 1 | /* 2 | * led.h 3 | * 4 | * Header for for status LED module 5 | * 6 | * Copyright (c) 2018-2019 danjuliodesigns, LLC. All rights reserved. 7 | * 8 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * SolarMpptCharger is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Lesser General Public License for more details. 17 | * 18 | * See . 19 | * 20 | */ 21 | #ifndef INC_LED_H_ 22 | #define INC_LED_H_ 23 | 24 | #include "SI_EFM8SB1_Register_Enums.h" 25 | #include "timer.h" 26 | 27 | //----------------------------------------------------------------------------- 28 | // Constants 29 | //----------------------------------------------------------------------------- 30 | 31 | // Main State 32 | #define LED_ST_INIT 0 33 | #define LED_ST_IDLE_CHG 1 34 | #define LED_ST_LOW_BATT 2 35 | #define LED_ST_CHARGE 3 36 | #define LED_ST_FAULT 4 37 | 38 | 39 | // Blinking LED State 40 | #define LED_BLINK_OFF_ST 0 41 | #define LED_BLINK_ON_ST 1 42 | #define LED_BLINK_WAIT_ST 2 43 | #define LED_PWM_UP_ST 3 44 | #define LED_PWM_DN_ST 4 45 | 46 | 47 | // Fault types 48 | #define LED_FAULT_NONE 0 49 | #define LED_FAULT_BAD_BATT 1 50 | #define LED_FAULT_MISS_ET 2 51 | #define LED_FAULT_TEMP_RNG 3 52 | 53 | 54 | // Fault blink counts 55 | #define LED_BAD_BATT_BLNKS 2 56 | #define LED_MISS_ET_BLNKS 3 57 | #define LED_TEMP_RNG_BLNKS 4 58 | #define LED_UNKNOWN_BLNKS 5 59 | 60 | 61 | // Time intervals (must fit in a uint16_t) 62 | #define LED_EVAL_MSEC TIMER_FAST_TICK_MS 63 | #define LED_PO_PER_MSEC 10000 64 | #define LED_IDLE_PER_MSEC 5000 65 | #define LED_FAULT_PER_MSEC 5000 66 | #define LED_BLINK_ON_MSEC 60 67 | #define LED_BLINK_OFF_MSEC 240 68 | 69 | 70 | // Blink PWM brightness 71 | #define LED_BLINK_PWM 160 72 | 73 | // Pulsed PWM brightness parameters : The maximum LED brightness is scaled, based on 74 | // solar current, between LED_MIN_PWM and 255 for 0 - I_SOLAR_MAX. LED_NUM_STEPS 75 | // sets the number of increments or decrements between minimum and maximum brightness 76 | // (number of eval cycles for each half of the pulse). It is an 8-bit value and should 77 | // be a power-of-2 to prevent an overflow in the interpolator logic. 78 | #define LED_MIN_PWM 32 79 | #define LED_NUM_STEPS 64 80 | 81 | 82 | 83 | //----------------------------------------------------------------------------- 84 | // API Routines 85 | //----------------------------------------------------------------------------- 86 | void LED_Init(); 87 | void LED_Update(); 88 | 89 | 90 | #endif /* INC_LED_H_ */ 91 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/param.h: -------------------------------------------------------------------------------- 1 | /* 2 | * param.h 3 | * 4 | * Adjustable system parameter access. Access mechanisms for setting and 5 | * getting configurable system parameters. 6 | * 7 | * Copyright (c) 2018-2023 danjuliodesigns, LLC. All rights reserved. 8 | * 9 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 10 | * under the terms of the GNU Lesser General Public License as published 11 | * by the Free Software Foundation, either version 3 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * SolarMpptCharger is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU Lesser General Public License for more details. 18 | * 19 | * See . 20 | * 21 | */ 22 | 23 | #ifndef INC_PARAM_H_ 24 | #define INC_PARAM_H_ 25 | 26 | #include "SI_EFM8SB1_Register_Enums.h" 27 | 28 | //----------------------------------------------------------------------------- 29 | // Constants 30 | //----------------------------------------------------------------------------- 31 | #define PARAM_INDEX_BULK 0 32 | #define PARAM_INDEX_FLOAT 1 33 | #define PARAM_INDEX_PWROFF 2 34 | #define PARAM_INDEX_PWRON 3 35 | 36 | 37 | 38 | //----------------------------------------------------------------------------- 39 | // Externs 40 | //----------------------------------------------------------------------------- 41 | extern bit PARAM_battIsLeadAcid; 42 | 43 | 44 | 45 | //----------------------------------------------------------------------------- 46 | // API Routines 47 | //----------------------------------------------------------------------------- 48 | void PARAM_Init(); 49 | 50 | // API routines for interrupt-driven SMBUS logic 51 | void PARAM_SetIndexedValue(uint8_t index, uint16_t val); 52 | uint16_t PARAM_GetIndexedValue(uint8_t index); 53 | 54 | // API routines for main code thread 55 | uint16_t PARAM_GetBulkMv(); 56 | uint16_t PARAM_GetFloatMv(); 57 | uint16_t PARAM_GetPwrOffMv(); 58 | uint16_t PARAM_GetPwrOnMv(); 59 | 60 | #define PARAM_GetBattIsLeadAcid() PARAM_battIsLeadAcid 61 | 62 | 63 | #endif /* INC_PARAM_H_ */ 64 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/power.h: -------------------------------------------------------------------------------- 1 | /* 2 | * power.h 3 | * 4 | * Header for output power control module 5 | * 6 | * Copyright (c) 2018-2019 danjuliodesigns, LLC. All rights reserved. 7 | * 8 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * SolarMpptCharger is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Lesser General Public License for more details. 17 | * 18 | * See . 19 | * 20 | */ 21 | 22 | #ifndef INC_POWER_H_ 23 | #define INC_POWER_H_ 24 | 25 | #include "SI_EFM8SB1_Register_Enums.h" 26 | 27 | //----------------------------------------------------------------------------- 28 | // Constants 29 | //----------------------------------------------------------------------------- 30 | #define PWR_ST_OFF_LB 0 31 | #define PWR_ST_OFF_DAY 1 32 | #define PWR_ST_ALERT_LB 2 33 | #define PWR_ST_ALERT_DAY 3 34 | #define PWR_ST_ON 4 35 | #define PWR_ST_WD_ALERT 5 36 | #define PWR_ST_WD_OFF 6 37 | 38 | 39 | 40 | //----------------------------------------------------------------------------- 41 | // Externs 42 | //----------------------------------------------------------------------------- 43 | extern bool POWER_badBatt; 44 | extern bool POWER_enableAtNight; 45 | extern bool POWER_isNight; 46 | extern bool POWER_powerEnabled; 47 | extern bool POWER_watchdogGlobalEnable; 48 | extern bool POWER_watchdogTriggered; 49 | extern uint8_t POWER_state; 50 | extern uint8_t POWER_watchdogCount; 51 | extern uint16_t POWER_watchdogPwrOffTO; 52 | 53 | 54 | 55 | //----------------------------------------------------------------------------- 56 | // API Routines 57 | //----------------------------------------------------------------------------- 58 | void POWER_Init(); 59 | void POWER_Update(); 60 | void POWER_EnableWatchdog(bool en); 61 | void POWER_SetWatchdogTimeout(uint8_t sec); 62 | void POWER_SetWatchdogPwrOffTO(uint16_t sec); 63 | bool POWER_WatchdogRunning(); 64 | 65 | #define POWER_badBattery() POWER_badBatt 66 | #define POWER_PctrlSet() POWER_enableAtNight 67 | #define POWER_IsEnabled() POWER_powerEnabled 68 | #define POWER_LowBattDisabled() (POWER_state == PWR_ST_OFF_LB) 69 | #define POWER_IsAlert() (POWER_state != PWR_ST_ON) 70 | #define POWER_IsNight() POWER_isNight 71 | #define POWER_WatchdogGlobalEnable() POWER_watchdogGlobalEnable 72 | #define POWER_GetWatchdogTimeout() POWER_watchdogCount 73 | #define POWER_GetWatchdogPwrOffTO() POWER_watchdogPwrOffTO 74 | #define POWER_WatchdogWasTriggered() POWER_watchdogTriggered 75 | #define POWER_ClearWatchdogTriggered() POWER_watchdogTriggered = false 76 | 77 | #endif /* INC_POWER_H_ */ 78 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/smbus.h: -------------------------------------------------------------------------------- 1 | /* 2 | * smbus.h 3 | * 4 | * Header for SMBus access module 5 | * 6 | * Copyright (c) 2018-2019 danjuliodesigns, LLC. All rights reserved. 7 | * 8 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * SolarMpptCharger is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Lesser General Public License for more details. 17 | * 18 | * See . 19 | * 20 | */ 21 | 22 | #ifndef SMBUS_H_ 23 | #define SMBUS_H_ 24 | 25 | 26 | //----------------------------------------------------------------------------- 27 | // Constants 28 | //----------------------------------------------------------------------------- 29 | 30 | // Register access indices 31 | // To simplify the interrupt-driven SMB logic, we segregate the registers by 32 | // type. RO registers are first followed by RW registers. RO registers are 33 | // held in a local array for fast access that is updated by main code as values 34 | // change. 35 | // 36 | // RO state 16-bit register indices (index into local array) 37 | #define SMB_INDEX_ID 0 38 | #define SMB_INDEX_STATUS 1 39 | #define SMB_INDEX_BUCK 2 40 | #define SMB_INDEX_VS 3 41 | #define SMB_INDEX_IS 4 42 | #define SMB_INDEX_VB 5 43 | #define SMB_INDEX_IB 6 44 | #define SMB_INDEX_IC 7 45 | #define SMB_INDEX_I_TEMP 8 46 | #define SMB_INDEX_E_TEMP 9 47 | #define SMB_INDEX_VM 10 48 | #define SMB_INDEX_TH 11 49 | 50 | 51 | // RW PARAM 16-bit register SMBus address (must match PARAM order) 52 | #define SMB_ADDR_BULK_V 24 53 | #define SMB_ADDR_FLT_V 26 54 | #define SMB_ADDR_POFF_V 28 55 | #define SMB_ADDR_PON_V 30 56 | // RW Watchdog 8-bit register SMBus address 57 | #define SMB_ADDR_WD_EN 33 58 | #define SMB_ADDR_WD_TO 35 59 | // RW Watchdog 16-bit register SMBus address 60 | #define SMB_ADDR_WD_PWROFF 36 61 | 62 | #define SMB_NUM_RO 12 63 | #define SMB_PARAM_START SMB_ADDR_BULK_V 64 | #define SMB_WD_START 32 65 | 66 | 67 | // Status register masks 68 | #define SMB_ST_SWD_DET_MASK 0x8000 69 | #define SMB_ST_PWD_TRIG_MASK 0x4000 70 | #define SMB_ST_BAD_BATT_MASK 0x2000 71 | #define SMB_ST_ET_MISS_MASK 0x1000 72 | #define SMB_ST_WD_RUN_MASK 0x0100 73 | #define SMB_ST_PWR_EN_MASK 0x0080 74 | #define SMB_ST_ALERT_MASK 0x0040 75 | #define SMB_ST_PCTRL_MASK 0x0020 76 | #define SMB_ST_T_LIM_MASK 0x0010 77 | #define SMB_ST_NIGHT_MASK 0x0008 78 | #define SMB_ST_CHG_ST_MASK 0x0007 79 | 80 | 81 | // Buck Status register masks 82 | #define SMB_BUCK_PWM_MASK 0xFF00 83 | #define SMB_BUCK_LIM2_MASK 0x0002 84 | #define SMB_BUCK_LIM1_MASK 0x0001 85 | 86 | 87 | // Watchdog Enable Register magic value (to enable) 88 | #define SMB_WD_EN_MAGIC_BYTE 0xEA 89 | 90 | 91 | // 92 | // Internal SMBus operation constants 93 | // 94 | 95 | // I2C Address LSB 96 | #define SMB_WRITE 0x00 // SMBus WRITE command 97 | #define SMB_READ 0x01 // SMBus READ command 98 | 99 | // Status vector - top 4 bits only 100 | #define SMB_SRADD 0x20 // (SR) slave address received 101 | // (also could be a lost 102 | // arbitration) 103 | #define SMB_SRSTO 0x10 // (SR) STOP detected while SR or ST, 104 | // or lost arbitration 105 | #define SMB_SRDB 0x00 // (SR) data byte received, or 106 | // lost arbitration 107 | #define SMB_STDB 0x40 // (ST) data byte transmitted 108 | #define SMB_STSTO 0x50 // (ST) STOP detected during a 109 | // transaction; bus error 110 | 111 | 112 | //----------------------------------------------------------------------------- 113 | // API Routines 114 | //----------------------------------------------------------------------------- 115 | void SMB_Init(); 116 | 117 | // Routines for use by main code to atomically update SMBus values 118 | void SMB_SetIndexedValue(uint8_t index, uint16_t val); 119 | void SMB_SetBuckStatus(uint16_t val); 120 | void SMB_SetStatusBit(uint16_t mask, bool val); 121 | void SMB_SetStatusChargeState(uint8_t state); 122 | 123 | // Interrupt macros 124 | #define SMBUS_DIS_INT() EIE1 &= ~EIE1_ESMB0__BMASK 125 | #define SMBUS_EN_INT() EIE1 |= EIE1_ESMB0__BMASK 126 | 127 | 128 | #endif /* SMBUS_H_ */ 129 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/temp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * temp.h 3 | * 4 | * Temperature sensor module header 5 | * 6 | * Copyright (c) 2018-2023 danjuliodesigns, LLC. All rights reserved. 7 | * 8 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * SolarMpptCharger is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Lesser General Public License for more details. 17 | * 18 | * See . 19 | * 20 | */ 21 | 22 | #ifndef INC_TEMP_H_ 23 | #define INC_TEMP_H_ 24 | 25 | #include "SI_EFM8SB1_Register_Enums.h" 26 | 27 | //----------------------------------------------------------------------------- 28 | // Constants 29 | //----------------------------------------------------------------------------- 30 | 31 | // 32 | // The missing temp sensor threshold is used to detect a disconnected ext sensor. 33 | // According to the spec, the lowest value the sensor can read is about -40C 34 | // (Vout=100 mV). The external temp sensor has a 44.2 k-ohm pull-down resistor 35 | // that will theoretically cause the ADC value to read near 0 if the sensor is 36 | // missing. In reality, leakage current and noise from the pull-down cause the 37 | // ADC to read higher (measured ADC values were around 40-60). For this reason 38 | // we set the threshold to be slightly higher than the equivalent temperature. 39 | // 40 | // We detect a missing sensor if the external temp reading is below this 41 | // threshold (C*10) and the internal temperature sensor is more than the 42 | // difference (C*10) away. 43 | // 44 | #define TEMP_MISSING_THRESH_C10 -425 45 | #define TEMP_INT_DIFF_THRESH_C10 200 46 | 47 | 48 | 49 | //----------------------------------------------------------------------------- 50 | // Externs 51 | //----------------------------------------------------------------------------- 52 | extern bool TEMP_extIsMissing; 53 | extern int16_t TEMP_IntTempC10; 54 | extern int16_t TEMP_ExtTempC10; 55 | extern int16_t TEMP_CurTempC10; 56 | extern uint16_t TEMP_compBulkMv; 57 | extern uint16_t TEMP_compFloatMv; 58 | 59 | 60 | //----------------------------------------------------------------------------- 61 | // API Routines 62 | //----------------------------------------------------------------------------- 63 | void TEMP_Init(); 64 | void TEMP_Update(); 65 | 66 | #define TEMP_ExtSensorMissing() TEMP_extIsMissing 67 | #define TEMP_GetCurTempC10() TEMP_CurTempC10 68 | #define TEMP_GetIntTempC10() TEMP_IntTempC10 69 | #define TEMP_GetExtTempC10() TEMP_ExtTempC10 70 | #define TEMP_GetCompBulkMv() TEMP_compBulkMv 71 | #define TEMP_GetCompFloatMv() TEMP_compFloatMv 72 | 73 | #endif /* INC_TEMP_H_ */ 74 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * timer.h 3 | * 4 | * Header file for main code evaluation timer module. 5 | * 6 | * Copyright (c) 2018-2019 danjuliodesigns, LLC. All rights reserved. 7 | * 8 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * SolarMpptCharger is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Lesser General Public License for more details. 17 | * 18 | * See . 19 | * 20 | */ 21 | 22 | #ifndef INC_TIMER_H_ 23 | #define INC_TIMER_H_ 24 | 25 | #include "SI_EFM8SB1_Register_Enums.h" 26 | 27 | 28 | //----------------------------------------------------------------------------- 29 | // Constants 30 | //----------------------------------------------------------------------------- 31 | // Fast and slow ticks should be a multiple of TIMER_CORE_TICK_MS (hardware timer rate) 32 | #define TIMER_CORE_TICK_MS 10 33 | #define TIMER_FAST_TICK_MS 10 34 | #define TIMER_SLOW_TICK_MS 250 35 | 36 | 37 | 38 | //----------------------------------------------------------------------------- 39 | // Externs 40 | //----------------------------------------------------------------------------- 41 | extern bool TIMER_fastTick; 42 | extern bool TIMER_slowTick; 43 | 44 | 45 | 46 | //----------------------------------------------------------------------------- 47 | // API Routines 48 | //----------------------------------------------------------------------------- 49 | void TIMER_Init(); 50 | void TIMER_Update(); 51 | 52 | #define TIMER_FastTick() TIMER_fastTick 53 | #define TIMER_SlowTick() TIMER_slowTick 54 | 55 | 56 | #endif /* INC_TIMER_H_ */ 57 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/inc/watchdog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * watchdog.h 3 | * 4 | * Header file for main system watchdog timer module. 5 | * 6 | * Copyright (c) 2018-2019 danjuliodesigns, LLC. All rights reserved. 7 | * 8 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * SolarMpptCharger is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Lesser General Public License for more details. 17 | * 18 | * See . 19 | * 20 | */ 21 | 22 | #ifndef INC_WATCHDOG_H_ 23 | #define INC_WATCHDOG_H_ 24 | 25 | //----------------------------------------------------------------------------- 26 | // Constants 27 | //----------------------------------------------------------------------------- 28 | 29 | // 30 | // Set the (maximum) period of the watchdog reset with the value loaded into 31 | // PCA0CPL2. This value is the number of times PCA0L overflows before a 32 | // WDT is detected. PCA0L is incremented with SYSCLK (24.5 MHz) so each 33 | // count in PCA0CPL2 is about 10.449 uSec. The watchdog period may vary 34 | // some depending on where PCA0L is when the watchdog is reloaded. The 35 | // formula from the reference manual is 36 | // 37 | // Period (in PCA clocks) = (256 x PCA0CPL2) + (256 - PCA0L) 38 | // 39 | // We choose a value of around 2.7 mSec (2.6645 - 2.6749 mSec) because this is 40 | // longer than the maximum measured time through the watchdog protected main 41 | // loop but still very short in real-time. 42 | // 43 | #define WD_PCA0CPL2_RELOAD 255 44 | 45 | 46 | 47 | //----------------------------------------------------------------------------- 48 | // Externs 49 | //----------------------------------------------------------------------------- 50 | extern bool WD_Detected; 51 | 52 | 53 | 54 | //----------------------------------------------------------------------------- 55 | // API Routines 56 | //----------------------------------------------------------------------------- 57 | //void WD_Disable(); 58 | void WD_Init(); 59 | void WD_Reset(); 60 | 61 | #define WD_WatchdogWasTriggered() WD_Detected 62 | #define WD_ClearWatchdogTriggered() WD_Detected = false 63 | 64 | #endif /* INC_WATCHDOG_H_ */ 65 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/src/Interrupts.c: -------------------------------------------------------------------------------- 1 | //========================================================= 2 | // src/Interrupts.c: generated by Hardware Configurator 3 | // 4 | // This file will be regenerated when saving a document. 5 | // leave the sections inside the "$[...]" comment tags alone 6 | // or they will be overwritten! 7 | //========================================================= 8 | 9 | // USER INCLUDES 10 | #include 11 | 12 | //============================================================================= 13 | // Automatically generated interrupt routines must be commented out here 14 | // every time the Simplicity Studio configuration tool is run because they 15 | // are defined in their respective modules. 16 | //============================================================================= 17 | 18 | /* 19 | //----------------------------------------------------------------------------- 20 | // TIMER0_ISR 21 | //----------------------------------------------------------------------------- 22 | // 23 | // TIMER0 ISR Content goes here. Remember to clear flag bits: 24 | // TCON::TF0 (Timer 0 Overflow Flag) 25 | // 26 | //----------------------------------------------------------------------------- 27 | SI_INTERRUPT (TIMER0_ISR, TIMER0_IRQn) 28 | { 29 | 30 | } 31 | 32 | //----------------------------------------------------------------------------- 33 | // TIMER2_ISR 34 | //----------------------------------------------------------------------------- 35 | // 36 | // TIMER2 ISR Content goes here. Remember to clear flag bits: 37 | // TMR2CN0::TF2H (Timer # High Byte Overflow Flag) 38 | // TMR2CN0::TF2L (Timer # Low Byte Overflow Flag) 39 | // 40 | //----------------------------------------------------------------------------- 41 | SI_INTERRUPT (TIMER2_ISR, TIMER2_IRQn) 42 | { 43 | 44 | } 45 | 46 | //----------------------------------------------------------------------------- 47 | // SMBUS0_ISR 48 | //----------------------------------------------------------------------------- 49 | // 50 | // SMBUS0 ISR Content goes here. Remember to clear flag bits: 51 | // SMB0CN0::SI (SMBus Interrupt Flag) 52 | // 53 | //----------------------------------------------------------------------------- 54 | SI_INTERRUPT (SMBUS0_ISR, SMBUS0_IRQn) 55 | { 56 | 57 | } 58 | */ 59 | 60 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/src/adc_ref_const.A51: -------------------------------------------------------------------------------- 1 | ; Code-space storage for ADC Reference voltage (mV) 2 | ; 3 | ; Designed to be accessed through the variable, adcVRefMv, 4 | ; defined in adc.c. This allows a calibrated value to be loaded 5 | ; by a manufacturing test programmer. 6 | ; 7 | ; The default value is 1650 mV (specified internal reference voltage). 8 | ; 1650 = 672h 9 | ; 10 | ; The address is the last 2-bytes in code-space before the bootloader 11 | ; signature byte and lock byte 12 | ; 13 | CSEG AT 01FFCh 14 | ADC_REF_VAL_HIGH: DB 06h 15 | ADC_REF_VAL_LOW: DB 72h 16 | END 17 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/src/param.c: -------------------------------------------------------------------------------- 1 | /* 2 | * param.c 3 | * 4 | * Adjustable system parameter access. Access mechanisms for setting and 5 | * getting configurable system parameters. 6 | * 7 | * Copyright (c) 2018-2019 danjuliodesigns, LLC. All rights reserved. 8 | * 9 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 10 | * under the terms of the GNU Lesser General Public License as published 11 | * by the Free Software Foundation, either version 3 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * SolarMpptCharger is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU Lesser General Public License for more details. 18 | * 19 | * See . 20 | * 21 | */ 22 | #include "param.h" 23 | #include "config.h" 24 | #include "smbus.h" 25 | 26 | 27 | //----------------------------------------------------------------------------- 28 | // External IO bits 29 | //----------------------------------------------------------------------------- 30 | SI_SBIT(IO_BATT_TYPE_I, SFR_P1, 7); 31 | 32 | 33 | 34 | //----------------------------------------------------------------------------- 35 | // Variables 36 | //----------------------------------------------------------------------------- 37 | bit PARAM_battIsLeadAcid; 38 | uint16_t PARAM_bulkMv; 39 | uint16_t PARAM_floatMv; 40 | uint16_t PARAM_pwrOffMv; 41 | uint16_t PARAM_pwrOnMv; 42 | 43 | 44 | 45 | //----------------------------------------------------------------------------- 46 | // Internal routine forward declarations 47 | //----------------------------------------------------------------------------- 48 | uint16_t _PARAM_ValidateNewValue(uint16_t val, uint16_t min, uint16_t max); 49 | 50 | 51 | 52 | //----------------------------------------------------------------------------- 53 | // API Routines 54 | //----------------------------------------------------------------------------- 55 | void PARAM_Init(){ 56 | // Read the battery type first 57 | PARAM_battIsLeadAcid = IO_BATT_TYPE_I; 58 | 59 | // Set parameters 60 | if (PARAM_battIsLeadAcid == 1) { 61 | PARAM_bulkMv = V_BULK_DEFAULT_1; 62 | PARAM_pwrOnMv = V_LOAD_ON_1; 63 | } else { 64 | PARAM_bulkMv = V_BULK_DEFAULT_2; 65 | PARAM_pwrOnMv = V_LOAD_ON_2; 66 | } 67 | PARAM_floatMv = V_FLOAT_DEFAULT; 68 | PARAM_pwrOffMv = V_LOAD_OFF; 69 | } 70 | 71 | 72 | // 73 | // API routines for interrupt-driven SMBUS logic 74 | // 75 | void PARAM_SetIndexedValue(uint8_t index, uint16_t val) 76 | { 77 | switch (index) { 78 | case PARAM_INDEX_BULK: 79 | PARAM_bulkMv = _PARAM_ValidateNewValue(val, V_BULK_MIN, V_BULK_MAX); 80 | break; 81 | case PARAM_INDEX_FLOAT: 82 | PARAM_floatMv = _PARAM_ValidateNewValue(val, V_FLOAT_MIN, V_FLOAT_MAX); 83 | break; 84 | case PARAM_INDEX_PWROFF: 85 | PARAM_pwrOffMv = _PARAM_ValidateNewValue(val, V_LOAD_OFF_MIN, PARAM_pwrOnMv); 86 | break; 87 | case PARAM_INDEX_PWRON: 88 | PARAM_pwrOnMv = _PARAM_ValidateNewValue(val, V_LOAD_ON_MIN, V_LOAD_ON_MAX); 89 | break; 90 | } 91 | } 92 | 93 | 94 | uint16_t PARAM_GetIndexedValue(uint8_t index) 95 | { 96 | uint16_t v = 0; 97 | 98 | switch (index) { 99 | case PARAM_INDEX_BULK: 100 | v = PARAM_bulkMv; 101 | break; 102 | case PARAM_INDEX_FLOAT: 103 | v = PARAM_floatMv; 104 | break; 105 | case PARAM_INDEX_PWROFF: 106 | v = PARAM_pwrOffMv; 107 | break; 108 | case PARAM_INDEX_PWRON: 109 | v = PARAM_pwrOnMv; 110 | break; 111 | } 112 | 113 | return v; 114 | } 115 | 116 | 117 | // 118 | // API routines for main code thread 119 | // 120 | uint16_t PARAM_GetBulkMv() 121 | { 122 | uint16_t v; 123 | 124 | // Atomically access variable 125 | SMBUS_DIS_INT(); 126 | v = PARAM_bulkMv; 127 | SMBUS_EN_INT(); 128 | 129 | return v; 130 | } 131 | 132 | 133 | uint16_t PARAM_GetFloatMv() 134 | { 135 | uint16_t v; 136 | 137 | // Atomically access variable 138 | SMBUS_DIS_INT(); 139 | v = PARAM_floatMv; 140 | SMBUS_EN_INT(); 141 | 142 | return v; 143 | } 144 | 145 | 146 | uint16_t PARAM_GetPwrOffMv() 147 | { 148 | uint16_t v; 149 | 150 | // Atomically access variable 151 | SMBUS_DIS_INT(); 152 | v = PARAM_pwrOffMv; 153 | SMBUS_EN_INT(); 154 | 155 | return v; 156 | } 157 | 158 | 159 | uint16_t PARAM_GetPwrOnMv() 160 | { 161 | uint16_t v; 162 | 163 | // Atomically access variable 164 | SMBUS_DIS_INT(); 165 | v = PARAM_pwrOnMv; 166 | SMBUS_EN_INT(); 167 | 168 | return v; 169 | } 170 | 171 | 172 | 173 | //----------------------------------------------------------------------------- 174 | // Internal routines 175 | //----------------------------------------------------------------------------- 176 | uint16_t _PARAM_ValidateNewValue(uint16_t val, uint16_t min, uint16_t max) 177 | { 178 | if (val < min) { 179 | return min; 180 | } else if (val > max) { 181 | return max; 182 | } else { 183 | return val; 184 | } 185 | } 186 | 187 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/src/temp.c: -------------------------------------------------------------------------------- 1 | /* 2 | * temp.c 3 | * 4 | * Temperature sensor module 5 | * 1. Compute temperature compensated battery voltage thresholds for 6 | * Bulk/Absorption and Float conditions using external temperature 7 | * sensor (if it is present) or internal temperature sensor as a 8 | * backup if the external sensor is not present. 9 | * 2. Detect missing external temperature sensor. 10 | * 3. Update SMBus registers with temperature sensor values and missing 11 | * temperature sensor detection. 12 | * 13 | * Copyright (c) 2018-2023 danjuliodesigns, LLC. All rights reserved. 14 | * 15 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 16 | * under the terms of the GNU Lesser General Public License as published 17 | * by the Free Software Foundation, either version 3 of the License, or 18 | * (at your option) any later version. 19 | * 20 | * SolarMpptCharger is distributed in the hope that it will be useful, 21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | * GNU Lesser General Public License for more details. 24 | * 25 | * See . 26 | * 27 | */ 28 | #include "temp.h" 29 | #include "adc.h" 30 | #include "config.h" 31 | #include "math.h" 32 | #include "param.h" 33 | #include "smbus.h" 34 | 35 | 36 | //----------------------------------------------------------------------------- 37 | // Variables 38 | //----------------------------------------------------------------------------- 39 | bool TEMP_extIsMissing; 40 | int16_t TEMP_IntTempC10; 41 | int16_t TEMP_ExtTempC10; 42 | int16_t TEMP_CurTempC10; 43 | uint16_t TEMP_compBulkMv; 44 | uint16_t TEMP_compFloatMv; 45 | 46 | 47 | 48 | //----------------------------------------------------------------------------- 49 | // API Routines 50 | //----------------------------------------------------------------------------- 51 | void TEMP_Init() 52 | { 53 | TEMP_Update(); 54 | } 55 | 56 | 57 | void TEMP_Update() 58 | { 59 | int32_t t = 0; 60 | 61 | // Update temperature values 62 | TEMP_IntTempC10 = ADC_GetValue(ADC_MEAS_TI_INDEX); 63 | TEMP_ExtTempC10 = ADC_GetValue(ADC_MEAS_TE_INDEX); 64 | 65 | // Look for missing external temperature sensor 66 | if ((TEMP_ExtTempC10 < TEMP_MISSING_THRESH_C10) && 67 | (abs(TEMP_IntTempC10 - TEMP_ExtTempC10) > TEMP_INT_DIFF_THRESH_C10)) { 68 | 69 | TEMP_extIsMissing = true; 70 | TEMP_CurTempC10 = TEMP_IntTempC10; 71 | } else { 72 | TEMP_extIsMissing = false; 73 | TEMP_CurTempC10 = TEMP_ExtTempC10; 74 | } 75 | 76 | // 77 | // Compute temperature compensated voltage thresholds 78 | // 79 | // Since both our temperature and compensation constant values are x 10, we have to divide 80 | // by 100 to properly compute mV delta values. 81 | // 82 | // Evaluate temperature compensated charge voltage for FLOAT 83 | if (PARAM_GetBattIsLeadAcid()) { 84 | t = ((int32_t) TEMP_CurTempC10 - 250) * V_FLOAT_COMP_X10; 85 | if ((t % 100) >= 50) { 86 | // Round up 87 | t += 100; 88 | } 89 | } 90 | TEMP_compFloatMv = (uint16_t) ((int32_t) PARAM_GetFloatMv() + (t / 100)); 91 | 92 | // Evaluate temperature compensated charge voltage for BULK/ABS 93 | if (PARAM_GetBattIsLeadAcid()) { 94 | t = ((int32_t) TEMP_CurTempC10 - 250) * V_BULK_COMP_X10; 95 | if ((t % 100) >= 50) { 96 | // Round up 97 | t += 100; 98 | } 99 | } 100 | TEMP_compBulkMv = (uint16_t) ((int32_t) PARAM_GetBulkMv() + (t / 100)); 101 | 102 | // Update SMB registers 103 | SMB_SetStatusBit(SMB_ST_ET_MISS_MASK, TEMP_extIsMissing); 104 | SMB_SetIndexedValue(SMB_INDEX_I_TEMP, TEMP_IntTempC10); 105 | SMB_SetIndexedValue(SMB_INDEX_E_TEMP, TEMP_ExtTempC10); 106 | } 107 | 108 | 109 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/src/timer.c: -------------------------------------------------------------------------------- 1 | /* 2 | * timer.c 3 | * 4 | * Main code evaluation timer. Generates fast and low tick values to cause 5 | * activity by the main evaluation thread. 6 | * 7 | * Copyright (c) 2018-2019 danjuliodesigns, LLC. All rights reserved. 8 | * 9 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 10 | * under the terms of the GNU Lesser General Public License as published 11 | * by the Free Software Foundation, either version 3 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * SolarMpptCharger is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU Lesser General Public License for more details. 18 | * 19 | * See . 20 | * 21 | */ 22 | #include "timer.h" 23 | 24 | //----------------------------------------------------------------------------- 25 | // Variables 26 | //----------------------------------------------------------------------------- 27 | volatile bool TIMER_IsrTick; 28 | bool TIMER_fastTick; 29 | bool TIMER_slowTick; 30 | uint8_t TIMER_FastCount; 31 | uint8_t TIMER_SlowCount; 32 | 33 | 34 | 35 | //----------------------------------------------------------------------------- 36 | // API Routines 37 | //----------------------------------------------------------------------------- 38 | void TIMER_Init() 39 | { 40 | TIMER_IsrTick = false; 41 | TIMER_FastCount = 0; 42 | TIMER_SlowCount = 0; 43 | } 44 | 45 | 46 | // Designed to be called once per system evaluation interval 47 | void TIMER_Update() 48 | { 49 | // Flags set as necessary for this evaluation interval 50 | TIMER_fastTick = false; 51 | TIMER_slowTick = false; 52 | 53 | if (TIMER_IsrTick) { 54 | TIMER_IsrTick = false; 55 | 56 | if (++TIMER_FastCount == (TIMER_FAST_TICK_MS/TIMER_CORE_TICK_MS)) { 57 | TIMER_FastCount = 0; 58 | TIMER_fastTick = true; 59 | } 60 | 61 | if (++TIMER_SlowCount == (TIMER_SLOW_TICK_MS/TIMER_CORE_TICK_MS)) { 62 | TIMER_SlowCount = 0; 63 | TIMER_slowTick = true; 64 | } 65 | } 66 | } 67 | 68 | 69 | 70 | //----------------------------------------------------------------------------- 71 | // TIMER2 ISR 72 | //----------------------------------------------------------------------------- 73 | SI_INTERRUPT (TIMER2_ISR, TIMER2_IRQn) 74 | { 75 | // Overflows every 10 ms 76 | TMR2CN0 &= ~TMR2CN0_TF2H__BMASK; 77 | 78 | TIMER_IsrTick = true; 79 | } 80 | -------------------------------------------------------------------------------- /firmware/SolarMpptCharger/src/watchdog.c: -------------------------------------------------------------------------------- 1 | /* 2 | * watchdog.c 3 | * 4 | * Main system watchdog timer control module. WD_Reset() must be called more 5 | * frequently than the minimum watchdog timeout or the module will reset the 6 | * processor. Make a wathdog detected status available to the SMBus module. 7 | * 8 | * Copyright (c) 2018-2019 danjuliodesigns, LLC. All rights reserved. 9 | * 10 | * SolarMpptCharger is free software: you can redistribute it and/or modify it 11 | * under the terms of the GNU Lesser General Public License as published 12 | * by the Free Software Foundation, either version 3 of the License, or 13 | * (at your option) any later version. 14 | * 15 | * SolarMpptCharger is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU Lesser General Public License for more details. 19 | * 20 | * See . 21 | * 22 | */ 23 | 24 | #include 25 | #include "watchdog.h" 26 | #include "smbus.h" 27 | 28 | //----------------------------------------------------------------------------- 29 | // Variables 30 | //----------------------------------------------------------------------------- 31 | bool WD_Detected; 32 | 33 | 34 | 35 | //----------------------------------------------------------------------------- 36 | // API routines 37 | //----------------------------------------------------------------------------- 38 | /* 39 | void WD_Disable() 40 | { 41 | // Disable the watchdog 42 | PCA0MD &= ~PCA0MD_WDTE__BMASK; 43 | } 44 | */ 45 | 46 | void WD_Init() 47 | { 48 | // Detect if we have been reset because of a watchdog timeout 49 | WD_Detected = ((RSTSRC & RSTSRC_WDTRSF__BMASK) == RSTSRC_WDTRSF__SET); 50 | 51 | // Configure our watchdog timeout 52 | // PCA0CPL2 = WD_PCA0CPL2_RELOAD; 53 | 54 | // Enable and lock-enabled the watchdog timer 55 | // PCA0MD |= PCA0MD_WDLCK__BMASK; 56 | // PCA0MD |= PCA0MD_WDTE__BMASK; 57 | // PCA0MD = PCA0MD_CPS__SYSCLK | PCA0MD_CIDL__NORMAL 58 | // | PCA0MD_ECF__OVF_INT_DISABLED | PCA0MD_WDTE__DISABLED 59 | // | PCA0MD_WDLCK__LOCKED; 60 | 61 | // Reset the watchdog 62 | // PCA0CPH2 = 0; 63 | } 64 | 65 | 66 | void WD_Reset() 67 | { 68 | // Reset the timeout value 69 | PCA0CPL2 = WD_PCA0CPL2_RELOAD; 70 | 71 | // Reset the timer itself 72 | PCA0CPH2 = 0; 73 | } 74 | -------------------------------------------------------------------------------- /firmware/pictures/programmer_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/pictures/programmer_setup.png -------------------------------------------------------------------------------- /firmware/pictures/programming_pads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/pictures/programming_pads.png -------------------------------------------------------------------------------- /firmware/pictures/programming_steps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/pictures/programming_steps.png -------------------------------------------------------------------------------- /firmware/pictures/selecting_part.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/pictures/selecting_part.png -------------------------------------------------------------------------------- /firmware/pictures/simplicity_studio_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/pictures/simplicity_studio_setup.png -------------------------------------------------------------------------------- /firmware/pictures/usb_debug_adapter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/pictures/usb_debug_adapter.png -------------------------------------------------------------------------------- /firmware/pictures/usb_debug_adapter_pins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/firmware/pictures/usb_debug_adapter_pins.png -------------------------------------------------------------------------------- /firmware/readme.md: -------------------------------------------------------------------------------- 1 | ## makerPower™ MPPT Solar Charger firmware 2 | 3 | This directory contains the firmware for the Silicon Labs EFM8SB10F8 micro-controller on the 35-00082-02 PCB Assembly. 4 | 5 | Code is developed using Simplicity Studio version 4.1.14. 6 | 7 | ### Updating to FW 2.0 (LiFePO4 support) 8 | 9 | You can update the firmware on existing boards if you have some soldering skill and know your way (or aren't afraid to learn your way) around development software. 10 | 11 | You will need a [Silicon Labs USB Debug Adapter](https://www.silabs.com/development-tools/mcu/8-bit/8-bit-usb-debug-adapter?tab=overview) and to install [Simplicity Studio](https://www.silabs.com/developers/simplicity-studio). At the time of this writing Simplicity Studio is at version 5. I used version 4.1.14 and the pictures below are taken from that version. I think the ideas should translate to version 5 but you may have to do some reading and searching around. You may also be able to find the USB Debug Adapter for less money elsewhere. 12 | 13 | ![Silicon Labs USB Debug Adapter](pictures/usb_debug_adapter.png) 14 | 15 | #### Wiring the USB Debug Adapter to the board 16 | The board is designed to be programmed in a special test fixture with spring-loaded pogo-pins contacting pads on the bottom of the PCB. You will have to connect two wires between USB Debug Adapter connector and the bottom of the board and another two wires to the battery input on the charger (to power the board). 17 | 18 | Use a light touch when soldering wires to the pads, and then removing them after programming. Use a Q-tip soaked with isopropyl alcohol to clean up any flux after you are done. The ubiquitous 28 AWG Dupont jumpers with male ends from the Arduino world are good to use. Chop the ends off of two of them, strip and tin 1/16" (1.5 mm) to solder to the C2D and C2CK pads. The male ends can go into the USB Debug Adapter header and the Battery terminal block on the charger PCB. 19 | 20 | ![Programming Pad Locations](pictures/programming_pads.png) 21 | 22 | | USB Debug Adapter | MPPT Solar Charger | 23 | | --- | --- | 24 | | 9 - GND | GND / (-) Battery Terminal | 25 | | 10 - USB Power (5V) | (+) Battery Terminal | 26 | | 4 - TCK / C2D | C2D pad on PCB Bottom | 27 | | 7 - TDI / C2CK | C2CK pad on PCB Bottom | 28 | 29 | See the USB Debug Adapter pinout shown below from a picture in its user guide. 30 | 31 | ![USB Debug Adapter Pins](pictures/usb_debug_adapter_pins.png) 32 | 33 | #### Configure Simplicity Studio 34 | Plug the USB Debug Adapter into your computer's USB port and start Simplicity Studio. Simplicity Studio should see the adapter and list it (maybe you'll have to perform additional downloads). 35 | 36 | ![Simplicity Studio](pictures/simplicity_studio_setup.png) 37 | 38 | You will need to left-click the USB Debug Adapter name and select Device Configuration to bring up a window that lets you configure it for the micro-controller used by the charger. 39 | 40 | ![Open Target Part Window](pictures/programmer_setup.png) 41 | 42 | Type "EFM8SB10F8A-A-QFN24" into the Target Part Window and then select it from the list that pops up and click OK. It's possible you'll have to download something into Simplicity Studio before it knows about the EFM8 micros. 43 | 44 | ![Selecting Micro](pictures/selecting_part.png) 45 | 46 | #### Program the new firmware 47 | 48 | Click the Programmer icon in the Simplicity Studio toolbar (shown above). This should bring up the Flash Programmer window. It should show the proper device and programmer but you can Change Device to select the USB Debug Adapter if it doesn't show up right away. 49 | 50 | ![Programming Window](pictures/programming_steps.png) 51 | 52 | Click Browse and select the ```SolarMpptCharger.hex``` file in the ```SolarMpptCharger/Keil 8051 v9.53 - Release/``` directory. 53 | 54 | Then click Program to load the new firmware into the attached charger. 55 | -------------------------------------------------------------------------------- /hardware/connection_diagrams.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/hardware/connection_diagrams.pdf -------------------------------------------------------------------------------- /hardware/makerPower_doc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/hardware/makerPower_doc.pdf -------------------------------------------------------------------------------- /hardware/makerPower_user_manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/hardware/makerPower_user_manual.pdf -------------------------------------------------------------------------------- /hardware/mppt_charger_schem_02.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/hardware/mppt_charger_schem_02.pdf -------------------------------------------------------------------------------- /hardware/pictures/35_00082_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/hardware/pictures/35_00082_02.png -------------------------------------------------------------------------------- /hardware/pictures/LiFePO4_jumper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/hardware/pictures/LiFePO4_jumper.png -------------------------------------------------------------------------------- /hardware/pictures/board_conn_dim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/hardware/pictures/board_conn_dim.png -------------------------------------------------------------------------------- /hardware/pictures/connection_diagrams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/hardware/pictures/connection_diagrams.png -------------------------------------------------------------------------------- /hardware/readme.md: -------------------------------------------------------------------------------- 1 | ## makerPower™ MPPT Solar Charger 2 | 3 | ![MPPT Solar Charger](pictures/35_00082_02.png) 4 | 5 | This directory contains documentation and the schematic for the current 35-00082-02 PCB Assembly. 6 | 7 | ![Dimensions](pictures/board_conn_dim.png) 8 | 9 | "makerPower\_user\_manual.pdf" contains a detailed description and operation of the charger. "makerPower\_doc.pdf" is an older, quick-start type of guide (although still up-to-date). 10 | 11 | 12 | ![Connection Diagrams](pictures/connection_diagrams.png) -------------------------------------------------------------------------------- /mpptChgD/libwiringPi.so.2.46: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mpptChgD/libwiringPi.so.2.46 -------------------------------------------------------------------------------- /mpptChgD/m: -------------------------------------------------------------------------------- 1 | gcc -o mpptChgD mpptChgD.c ini.c -I /usr/include -I ./ -I /usr/local/include -l wiringPi 2 | -------------------------------------------------------------------------------- /mpptChgD/mpptChgD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mpptChgD/mpptChgD -------------------------------------------------------------------------------- /mpptChgD/mpptChgDconfig.txt: -------------------------------------------------------------------------------- 1 | # mpptChgD configuration file 2 | # 3 | # Configure the following optional functions: 4 | # 1. Auto shutdown enable 5 | # 2. TCP Access 6 | # 3. Charger register value Logging 7 | # 4. Charger configuration parameters 8 | # 5. Watchdog enable 9 | # 10 | # All options shown below. Uncomment to enable. Configuration items have the form 11 | # = where may be an integer or string value. Items that are 12 | # used to enable functionality (such as SHUTDOWN below) may either be commented out 13 | # or set to 0 to disable. Uncomment them and set the value to 1 to enable. 14 | # 15 | # Comments are indicated by a '#' or ';' character in the first position. 16 | # 17 | 18 | # Automatic Low Battery shutdown. Uncomment the following line to enable a controlled 19 | # OS shutdown upon detection of an imminent power down due to low battery. 20 | SHUTDOWN=1 21 | 22 | # Remote TCP access. Uncomment and set the TCP_PORT to a non-zero number to enable 23 | # TCP access to the daemon. 24 | TCP_PORT=23000 25 | # Maximum number of simultaneous TCP connections (default is 1 connection, maximum 4) 26 | TCP_MAX=4 27 | 28 | # Logging parameters 29 | # 30 | # Configure the logfile 31 | LOG_FILE=/home/pi/mpptChgDlog.txt 32 | # 33 | # Number of seconds between log entries 34 | LOG_DELAY=60 35 | # 36 | # Log items. Uncomment charger register values you wish to log. Important to note that items 37 | # are logged in the following order, even if the actual enable lines in this file are re-ordered. 38 | # Items that are not enabled are skipped. See the user manual for an explanation of each register. No log file is generated if all LOG items are commented out. 39 | # Values are logged as base-10 decimal numbers separated by a space character. 40 | # ID, STATUS, BUCK, VS, IS, VB, IB, IC, IT, ET, VM, TH, BULKV, FLOATV, PWROFFV, PWRONV, WDEN, WDCNT 41 | # 42 | # ID Register 43 | #LOG=ID 44 | # 45 | # STATUS Register 46 | LOG=STATUS 47 | # 48 | # BUCK Status Register 49 | LOG=BUCK 50 | # 51 | # Solar Panel Voltage in mV (VS) 52 | LOG=VS 53 | # 54 | # Solar Panel Current in mA (IS) 55 | LOG=IS 56 | # 57 | # Battery Voltage in mV (VB) 58 | LOG=VB 59 | # 60 | # Battery Load Current in mA (IB) 61 | LOG=IB 62 | # 63 | # Battery Charge Current in mA (IC) 64 | LOG=IC 65 | # 66 | # Internal Temperature Sensor temperature in degrees C x 10 (IT) - (25C will show up as 250) 67 | LOG=IT 68 | # 69 | # External Temperature Sensor temperature in degrees C x 10 (ET) 70 | LOG=ET 71 | # 72 | # Current calculated solar panel maximum power point voltage in mV (VM) 73 | LOG=VM 74 | # 75 | # Current temperature compensated battery charge voltage in mV (TH) 76 | LOG=TH 77 | # 78 | # Battery BULK/ABSORPTION charge voltage threshold for 25C in mV (BULKV) 79 | #LOG=BULKV 80 | # 81 | # Battery FLOAT charge voltage threshold for 25C in mV (FLOATV) 82 | #LOG=FLOATV 83 | # 84 | # Low Battery power-off threshold in mV (PWROFFV) 85 | #LOG=PWROFFV 86 | # 87 | # Battery power-on restart threshold in mV (PWRONV) 88 | #LOG=PWRONV 89 | # 90 | # Watchdog enable Register (0=disabled, 1=enabled)(WDEN) 91 | #LOG=WDEN 92 | # 93 | # Watchdog timeout count Register in seconds (WDCNT) 94 | #LOG=WDCNT 95 | 96 | # Charger parameters. Uncomment the following lines to configure non-default charger configuration 97 | # parameters. 98 | # 99 | # Battery BULK/ABSORPTION charge voltage threshold for 25C in mV - must be within 14000 - 15000 mV (BULKV) 100 | #BULKV=14700 101 | # 102 | # Battery FLOAT charge voltage threshold for 25C in mV - must be within 13000 - 14000 mV (FLOATV) 103 | #FLOATV=13650 104 | # 105 | # Low Battery power-off threshold in mV - must be within 11000 - 12000 mV (PWROFF) 106 | #PWROFFV=11500 107 | # 108 | # Battery power-on restart threshold in mV - must be within 12000 - 13000 mV (PWRONV) 109 | #PWRONV=12500 110 | 111 | # Watchdog Enable. Uncomment the following line to enable the daemon to control the charger's 112 | # watchdog mechanism. It will enable the watchdog functionality and make sure that it is 113 | # updated in order to not cycle power. The daemon will catch most terminal signals and 114 | # automatically disable the watchdog before exiting. However a hard kill of the daemon will 115 | # leave the watchdog running and unless it is disabled via another facility, the charger will 116 | # power cycle the system within 120 - 180 seconds. 117 | #WATCHDOG=1 118 | 119 | -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/XojoGUIFramework64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/XojoGUIFramework64.so -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libGZip64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libGZip64.so -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libRBAppearancePak64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libRBAppearancePak64.so -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libRBCrypto64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libRBCrypto64.so -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libRBInternetEncodings64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libRBInternetEncodings64.so -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libRBRegEx64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libRBRegEx64.so -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libRBShell64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libRBShell64.so -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libc++.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Libs/libc++.so.1 -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/appicon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/appicon_128.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/appicon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/appicon_32.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/appicon_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/appicon_48.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_check_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_check_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_excl_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_excl_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/graph_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/graph_256.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/mag_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/mag_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/open_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/open_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/save_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/save_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/tool_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/tool_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/trash_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Linux 64 bit/mppt_dashboard/mppt_dashboard Resources/trash_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/XojoGUIFramework64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/XojoGUIFramework64.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/icudt65.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/icudt65.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/icuin65.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/icuin65.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/icuuc65.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/icuuc65.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Libs/Appearance Pakx64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Libs/Appearance Pakx64.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Libs/Cryptox64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Libs/Cryptox64.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Libs/GZipx64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Libs/GZipx64.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Libs/Internet Encodingsx64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Libs/Internet Encodingsx64.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Libs/RegExx64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Libs/RegExx64.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_check_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_check_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_excl_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_excl_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/connect_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/graph_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/graph_256.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/mag_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/mag_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/open_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/open_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/save_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/save_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/tool_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/tool_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/trash_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard Resources/trash_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/mppt_dashboard.exe -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/msvcp120.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/msvcp120.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/msvcp140.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/msvcp140.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/msvcr120.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/msvcr120.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/vccorlib140.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/vccorlib140.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/vcruntime140.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/vcruntime140.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/vcruntime140_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/Windows 64 bit/mppt_dashboard/vcruntime140_1.dll -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/AppearancePakCocoa.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/AppearancePakCocoa.dylib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/Crypto.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/Crypto.dylib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/InternetEncodings.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/InternetEncodings.dylib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/RegEx.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/RegEx.dylib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/AllDirectionsCursor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/AllDirectionsCursor.pdf -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ControllerBackgroundLeft.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ControllerBackgroundLeft.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ControllerBackgroundMiddle.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ControllerBackgroundMiddle.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ControllerBackgroundRight.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ControllerBackgroundRight.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/Cursors.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AllDirectionsCursor 6 | {7, 7} 7 | EastWestCursor 8 | {7, 7} 9 | MacWaitCursor 10 | {8, 8} 11 | MagnifyLargerCursor 12 | {5, 5} 13 | MagnifySmallerCursor 14 | {5, 5} 15 | NorthEastSouthWestCursor 16 | {7, 7} 17 | NorthSouthCursor 18 | {7, 7} 19 | InvisibleCursor 20 | {0, 0} 21 | NorthWestSouthEastCursor 22 | {7, 7} 23 | 24 | 25 | -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/EastWestCursor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/EastWestCursor.pdf -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/FileTypeChooser.nib/keyedobjects-101300.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/FileTypeChooser.nib/keyedobjects-101300.nib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/FileTypeChooser.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/FileTypeChooser.nib/keyedobjects.nib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 21G217 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleExecutable 10 | XojoFramework 11 | CFBundleIdentifier 12 | com.xojo.XojoFramework 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | XojoFramework 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleSupportedPlatforms 24 | 25 | MacOSX 26 | 27 | CFBundleVersion 28 | 2 29 | DTCompiler 30 | com.apple.compilers.llvm.clang.1_0 31 | DTPlatformBuild 32 | 13F100 33 | DTPlatformName 34 | macosx 35 | DTPlatformVersion 36 | 12.3 37 | DTSDKBuild 38 | 21E226 39 | DTSDKName 40 | macosx12.3 41 | DTXcode 42 | 1341 43 | DTXcodeBuild 44 | 13F100 45 | LSMinimumSystemVersion 46 | 10.9 47 | NSHumanReadableCopyright 48 | Copyright © 2015 Xojo, Inc. All rights reserved. 49 | 50 | 51 | -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/InvisibleCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/InvisibleCursor.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/MacWaitCursor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/MacWaitCursor.pdf -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/MagnifyLargerCursor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/MagnifyLargerCursor.pdf -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/MagnifySmallerCursor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/MagnifySmallerCursor.pdf -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/NorthEastSouthWestCursor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/NorthEastSouthWestCursor.pdf -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/NorthSouthCursor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/NorthSouthCursor.pdf -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/NorthWestSouthEastCursor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/NorthWestSouthEastCursor.pdf -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/Pause.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/Pause.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/Play.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/Play.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberKnob.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberKnob.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackLoadedLeft.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackLoadedLeft.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackLoadedMiddle.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackLoadedMiddle.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackLoadedRight.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackLoadedRight.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackUnloadedLeft.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackUnloadedLeft.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackUnloadedMiddle.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackUnloadedMiddle.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackUnloadedRight.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ScrubberTrackUnloadedRight.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/StepBackward.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/StepBackward.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/StepForward.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/StepForward.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeHigh.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeHigh.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeLow.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeLow.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeMedium.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeMedium.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeMuted.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeMuted.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeOff.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeOff.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeSliderKnob.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeSliderKnob.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeSliderTrack.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeSliderTrack.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeWindow.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/VolumeWindow.tiff -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/XOJPrintProgressDialog.nib/keyedobjects-101300.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/XOJPrintProgressDialog.nib/keyedobjects-101300.nib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/XOJPrintProgressDialog.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/XOJPrintProgressDialog.nib/keyedobjects.nib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/XOJTooltipController.nib/keyedobjects-101300.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/XOJTooltipController.nib/keyedobjects-101300.nib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/XOJTooltipController.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/XOJTooltipController.nib/keyedobjects.nib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ar.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ar.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ca.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ca.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/cs.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/cs.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/da.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/da.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/de.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/de.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/el.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/el.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/en.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/es.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/es.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/fi.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/fi.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/fr.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/fr.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/he.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/he.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/hr.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/hr.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/hu.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/hu.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/it.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/it.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ja.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ja.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ko.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/nl.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/nl.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/no.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/no.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/pl.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/pl.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/pt-BR.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/pt-BR.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/pt-PT.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/pt-PT.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ro.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ro.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ru.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/ru.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/sk.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/sk.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/sv.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/sv.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/th.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/th.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/tr.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/tr.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/uk.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/uk.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/zh-CN.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/zh-CN.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/zh-TW.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/Resources/zh-TW.lproj/Localizable.strings -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/XojoFramework: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/A/XojoFramework -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/XojoFramework.framework/XojoFramework: -------------------------------------------------------------------------------- 1 | Versions/Current/XojoFramework -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/libGzip.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Frameworks/libGzip.dylib -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleExecutable 6 | mppt_dashboard 7 | CFBundleName 8 | mppt_dashboard 9 | CFBundleIdentifier 10 | com.danjuliodesignsllc.mpptdashboard 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleVersion 14 | 1.0.0.0.0 15 | CFBundleDevelopmentRegion 16 | en 17 | CFBundlePackageType 18 | APPL 19 | CFBundleSignature 20 | ???? 21 | NSHumanReadableCopyright 22 | danjuliodesigns, LLC 23 | CFBundleShortVersionString 24 | 1.0.0 25 | CFBundleIconFile 26 | App 27 | LSMinimumSystemVersion 28 | 10.14 29 | NSHighResolutionCapable 30 | NSRequiresAquaSystemAppearance 31 | CFBundleSupportedPlatformsMacOSX 32 | 33 | -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/MacOS/mppt_dashboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/MacOS/mppt_dashboard -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/App.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/App.icns -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/TextPlain.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/TextPlain.icns -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/connect_check_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/connect_check_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/connect_excl_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/connect_excl_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/connect_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/connect_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/graph_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/graph_256.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/mag_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/mag_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/open_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/open_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/save_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/save_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/tool_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/tool_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/trash_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/Builds - mppt_dashboard.xojo_binary_project/macOS Universal/mppt_dashboard.app/Contents/Resources/trash_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/DataPlotClasses_UG.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/DataPlotClasses_UG.pdf -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/DataPlot Demo.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/DataPlot Demo.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Add,Drag,Delete Points with Mouse.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Add,Drag,Delete Points with Mouse.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Adding Traces, Initializing.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Adding Traces, Initializing.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Animate Data.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Animate Data.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Custom Tickmarks 2.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Custom Tickmarks 2.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Custom Tickmarks.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Custom Tickmarks.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Data Logging.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Data Logging.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Getting Started.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Getting Started.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Linear and Logarithmic Scales.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Linear and Logarithmic Scales.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Sound Waveform Viewer.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Sound Waveform Viewer.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Using DataPlotClasses from a Thread.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Using DataPlotClasses from a Thread.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/Example - Zoom and Scroll.rbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/Example - Zoom and Scroll.rbp -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/WAV Files/1kHz_Sine.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/WAV Files/1kHz_Sine.wav -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/WAV Files/1kHz_Square.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/WAV Files/1kHz_Square.wav -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/WAV Files/Noise.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/WAV Files/Noise.wav -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/WAV Files/mono example.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/WAV Files/mono example.wav -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/WAV Files/stereo example.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/WAV Files/stereo example.wav -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Examples/WAV Files/vssver.scc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Examples/WAV Files/vssver.scc -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Figure.rbo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Figure.rbo -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Graph.rbo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Graph.rbo -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Legend.rbo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Legend.rbo -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/TextLabel.rbo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/TextLabel.rbo -------------------------------------------------------------------------------- /mppt_dashboard/DataPlotClasses/Trace.rbo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/DataPlotClasses/Trace.rbo -------------------------------------------------------------------------------- /mppt_dashboard/icons/connect_check_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/connect_check_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/connect_excl_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/connect_excl_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/connect_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/connect_icon.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/graph_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/graph_256.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/graph_icon_set_Icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/graph_icon_set_Icon_128x128.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/graph_icon_set_Icon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/graph_icon_set_Icon_16x16.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/graph_icon_set_Icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/graph_icon_set_Icon_256x256.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/graph_icon_set_Icon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/graph_icon_set_Icon_32x32.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/graph_icon_set_Icon_48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/graph_icon_set_Icon_48x48.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/graph_icon_set_Icon_64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/graph_icon_set_Icon_64x64.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/graph_icon_set_Icon_8bit_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/graph_icon_set_Icon_8bit_16x16.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/graph_icon_set_Icon_8bit_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/graph_icon_set_Icon_8bit_32x32.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/graph_icon_set_Icon_8bit_48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/graph_icon_set_Icon_8bit_48x48.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/mag_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/mag_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/open_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/open_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/save_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/save_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/tool_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/tool_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/icons/trash_icon30x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/icons/trash_icon30x30.png -------------------------------------------------------------------------------- /mppt_dashboard/mppt_dashboard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/mppt_dashboard.pdf -------------------------------------------------------------------------------- /mppt_dashboard/mppt_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/mppt_dashboard.png -------------------------------------------------------------------------------- /mppt_dashboard/mppt_dashboard.xojo_binary_project: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danjulio/MPPT-Solar-Charger/00ec7fedba87b5048028d2089392f07500e0e23b/mppt_dashboard/mppt_dashboard.xojo_binary_project -------------------------------------------------------------------------------- /mppt_dashboard/readme.md: -------------------------------------------------------------------------------- 1 | ## mppt_dashboard Application 2 | 3 | ![mppt_dashboard](mppt_dashboard.png) 4 | 5 | This directory contains the mppt_dashboard xojo project, built binaries for Windows, Linux and Mac OS X, and a user manual. [Xojo](https://www.xojo.com) is a commercial cross-platform development tool I use for rapid application development. It requires a license in order to spit out compiled binaries but it has a demo mode that allows you to build and run an application from within the IDE without a license. 6 | 7 | ### Installing and running pre-built binaries 8 | The ```Builds``` directory contains the pre-compiled binaries for x86-64 Linux, OS X and Windows. The easiest way to install the application is to copy the architecture-specific sub-directory into the install location. Running it is slightly platform-specific. 9 | 10 | ### Linux 11 | The application is compiled for 64-bit systems supporting a graphic user interface such as Mint, Ubuntu or Debian. 12 | 13 | You may have to make sure the binary, ```mppt_dashboard```, is executable with the appropriate permissions for the logged in user. 14 | 15 | ```chmod 755 mppt_dashboard``` 16 | 17 | Then the program may be started, either from a command line in a terminal or usually by double-clicking it from a file viewer. 18 | 19 | ### Mac OS X 20 | The 64-bit application should appear as a proper Macintosh application bundle that can be started by double-clicking the bundle icon. 21 | 22 | ### Windows 23 | The application is compiled as a 64-bit version. 24 | 25 | Use the file viewer to descend into the ```mppt_dashboard``` folder and then double-click the ```mppt_dashboard.exe``` file to start the application. --------------------------------------------------------------------------------