News:

To visit MidNite Solar click this link www.midnitesolar.com

Main Menu

Recent posts

#41
Nice graphic on the github.
Hope you get it all working well with the generator.
Larry
#42
MidNite Monitoring FAQ'S / Re: MyMidNite registration not...
Last post by ClassicCrazy - July 05, 2026, 08:03:09 PM
there are other options to monitor your Classic.
Do you want remote access ? Or just local.
For local you can't beat using Home Assistant and the Classic integration .
https://github.com/qcda1/ha_midnite_classic
Also there is a local android app
https://github.com/ClassicDIY/ClassicMonitor
Also on the ClassicDIY github there are some other options.
I haven't set up the MyMidnite in a long time or checked into it.
There were some stripped down Midnite Classic 200's out there in the past 10 years that were sold at an auction and on solar trailers.
Those didn't have all the features of full equipped Classic . I just mention it in case you have one of those models. There is info about those on the forum here somewhere.
Larry
#43
MidNite Monitoring FAQ'S / MyMidNite registration not wor...
Last post by marioluomo - July 05, 2026, 06:04:41 PM
Hi everyone,

I'm new to MidNite Solar. I recently bought a property that already has a MidNite Solar Classic 200 installed. I've connected it to the internet and would like to view its data and statistics.

Is https://mymidnite2.com/ still the correct place to register and monitor the controller?

When I try to create an account, I receive the error:

"Unable to send e-mail. Contact the site administrator if the problem persists."

I also never receive the confirmation email, so I can't complete the registration.

Has anyone else run into this issue recently? Is there a different way to access the data or another portal I should be using?

Any guidance would be greatly appreciated. Thanks!

#44
The "Classic" charge controller / Re: Generator control with AUX...
Last post by qcda1 - July 05, 2026, 01:34:25 PM
So the setup seem to work. I hooked the Aux1 contact to a ESP32/Esphome to monitor Aux1's state. With the SOC%low at 93% and SOC%High at 95%, I got the following:

Image in GitHub

We can see that the Aux1 state will close when the SOC will go below the lower limit of 93% and open when the SOC will go beyond the upper limit of 95%.

Next week, I'll connect the generator autostart to Aux1. :)
#45
The "Classic" charge controller / Re: Generator control with AUX...
Last post by qcda1 - July 05, 2026, 08:17:56 AM
Oh WOW! Thanks a lot!!!
I will update my program with this information.

I'm setting up a new program to help me find the register that contain the state of the AUX1 relay. If not to hard, I'll do the same for AUX2.

Best regards,

Daniel.
#46
Here is a list of registers (address) around the area of the WB Jr.
3:53 PM
(unsigned short*) &DabtU32Debug04,    // Low  spsr 0000
        // (unsigned short*) &SchedTimer15,
        //4347
        (uint16_t*) (((uint8_t*) &DabtU32Debug04) + 2), //High half  spsr E10F
        // (unsigned short*) &SchedTimer16,
        //4348    UpTimeI
        (unsigned short*) &UpTimeI,    // WAS SchedTimer17 UpTimeI
        //4349    UpTimeI high half
        (uint16_t*) (((uint8_t*) &UpTimeI) + 2),  // WAS SchedTimer18 UpTimeI
        //4350
        (unsigned short*) &SchedTimer19,
        //4351
        (unsigned short*) &CrcNetWrkg,  //crc16( (char *) 0x8000, 32768);    //all of networking
        //4352
        (unsigned short*) &CrcApp,  //crc16( (char *) 0x10000, 150000);  //all of the app
        //4353
        (unsigned short*) &ClearLogsCat,  //ClearLogsCat 3-28-2013 (WAS SchedTimer22)
        //4354
        (unsigned short*) &ClearLogsCounter10ms,  //WAS SchedTimer23 TEMP ClearLogsCounterms
        //4355    SchedTimer23
        (unsigned short*) &SchedTimer23,    //SchedTimer23PeakLast
        //4356  WizBangRxBufferTempSh1
        (unsigned short*) &WizBangRxBufferTempSh1,
        //4357
        (unsigned short*) &WizBangRxBufferTempSh2,
        //4358
        (unsigned short*) &WizBangRxBufferTempSh3,
        //4359
        (unsigned short*) &WizBangRxBufferTempSh4,    // WbJrCalcCRC8
        //4360  WbangJrCmdS
        (unsigned short*) &WbangJrCmdS,      // UNIT_Reserved WbangJrCmdS ( | WbJrCalcCRC8 << 8) ?
        //4361  WizBangJrRawCurrent
        (unsigned short*) &WizBangJrRawCurrent, //temporarily here 9-9-2013 Raw is negated
        //4362    WbJrNumeratorSS
        (unsigned short*) &WbJrNumeratorSS,     // zero 0 normally
        //4363  EqCallTrak
        (unsigned short*) &EqCallTrak,       //wAS UNIT_Reserved TomC. 0x01DC (200) 72.253.151.23:3900
        //4364 4365 WbJrAmpHourPAadj
        (unsigned short*) &WbJrAmpHourPAadj,               //WbJrAmpHourPAadj 9-20-2013
        (uint16_t*) (((uint8_t*) &WbJrAmpHourPAadj) + 2),  //INT 32 POSitive WB Jr. Amp-Hours
        //4366 4367 WbJrAmpHourNAadj
        (unsigned short*) &WbJrAmpHourNAadj,               //WbJrAmpHourNAadj 9-20-2013
        (uint16_t*) (((uint8_t*) &WbJrAmpHourNAadj) + 2),  //INT 32  NEGative WB Jr. Amp-Hours
        //4368 4369 WbJrAmpHourAadj
        (unsigned short*) &WbJrAmpHourAadj,               // WbangJrAmpHours32 9-9-2013
        (uint16_t*) (((uint8_t*) &WbJrAmpHourAadj) + 2),  // NET WB Amp-Hours (resettable at night if selected)
        //4370  WzBangJrCrntSignedModbus  WzBangJrCurrent32Signed (Displayed Current)
        (uint16_t*) &WzBangJrCrntSignedModbus,      //WAS WzBangJrCurrent32Signed Clone of 4103
        //4371  WizBangJrRawCrcAndtemp
        (uint16_t*) &WizBangJrRawCrcAndtemp,       // (CRC << 8) | Temp  Clone of 4104
        //4372  BattMonSOC                          (Dupe of InfoFlagsBits3 momentarily)
        (unsigned short*) &BattMonSOC,     //WAS WzBangJrCrcTime for test  4250
        //4373  WbJrAmpHourChrg
        (unsigned short*) &UNIT_Reserved,  //WAS WbJrAmpHourChrg (Moving for Karl 11-9-2015)
        //4374   WbJrAmpHourChrgadj
        (unsigned short*) &UNIT_Reserved,     //AH remaining 331 WAS WbJrAmpHourChrgadj (Karl)
        //4375  WbJrAmpHourDisChrgadj
        (unsigned short*) &WbJrAmpHourDisChrgadj,  //WAS WbJrAmpHourDisChrgadj (Karl move)
        //4376  WbJrAmpHourRemaing
        (unsigned short*) &WbJrAmpHourRemaing,     //NET Chrg-Dischrg  237, now 238 ah for Ryan's 220AH
        //4377  WbJrAmpHourDisChrg
        (unsigned short*) &WbJrAmpHourDisChrg,    //WAS WbJrAmpHourDisChrg (Karl move)
        //4378  BatCapacityTrefMBus
        (unsigned short*) &BatCapacityTrefMBus,   // BatCapacityTrefMBus
        //4379    WbJrBatAhrCompPcntMBus
        (unsigned short*) &WbJrBatAhrCompPcntMBus,  //WAS WbJrBatAhourCompMBus
        //4380  BattCapacityAhrs
        (unsigned short*) &BattCapacityAhrs,      //Temp Compensated Capacity (output)
        //4381    DeltaBatTempC
        (unsigned short*) &DeltaBatTempC,       //UNIT_Reserved   Temp debug
        //4382    dispAvgWbJrAModbus
        (unsigned short*) &dispAvgWbJrAModbus,   //always positive.
3:54 PM
See if you can make sense by reading any of these registers by address  (Address is the number right after the //
3:54 PM
like //4381 DeltaBatTempC
3:54 PM
for instance
#47
        //4371  WizBangJrRawCrcAndtemp
        (uint16_t*) &WizBangJrRawCrcAndtemp,       // (CRC << 8) | Temp  Clone of 4104

        //4372  BattMonSOC                          (Dupe of InfoFlagsBits3 momentarily)
        (unsigned short*) &BattMonSOC,     //WAS WzBangJrCrcTime for test  4250

        //4373  WbJrAmpHourChrg
        (unsigned short*) &UNIT_Reserved,  //WAS WbJrAmpHourChrg (Moving for Karl 11-9-2015)

        //4374   WbJrAmpHourChrgadj
        (unsigned short*) &UNIT_Reserved,     //AH remaining 331 WAS WbJrAmpHourChrgadj (Karl)

        //4375  WbJrAmpHourDisChrgadj
        (unsigned short*) &WbJrAmpHourDisChrgadj,  //WAS WbJrAmpHourDisChrgadj (Karl move)

        //4376  WbJrAmpHourRemaing
        (unsigned short*) &WbJrAmpHourRemaing,     //NET Chrg-Dischrg  237, now 238 ah for Ryan's 220AH

        //4377  WbJrAmpHourDisChrg
        (unsigned short*) &WbJrAmpHourDisChrg,    //WAS WbJrAmpHourDisChrg (Karl move)

        //4378  BatCapacityTrefMBus
        (unsigned short*) &BatCapacityTrefMBus,   // BatCapacityTrefMBus

        //4379    WbJrBatAhrCompPcntMBus
        (unsigned short*) &WbJrBatAhrCompPcntMBus,  //WAS WbJrBatAhourCompMBus

        //4380  BattCapacityAhrs
        (unsigned short*) &BattCapacityAhrs,      //Temp Compensated Capacity (output)

        //4381    DeltaBatTempC
        (unsigned short*) &DeltaBatTempC,       //UNIT_Reserved   Temp debug

        //4382    dispAvgWbJrAModbus
        (unsigned short*) &dispAvgWbJrAModbus,   //always positive.

        //4383
        (unsigned short*) &UNIT_Reserved,  // 7-16-2014  (avgWbJrADenom ?) WAS FactoryEnableFlags

        //4384     LAST MNGP data register sent as of  10-21-2022
        (unsigned short*) &dispAvgBattemp,       //UNIT_Reserved   Temp debug = 1023 when unplugged dispAvgBattemp
        //4385
        (unsigned short*) &BATTtemperature,       //UNIT_Reserved   Temp debug


        /* AZT -- added these WDT_LR debug registers (Moved by boB) */
        //4386    DabtU32Debug05
        (unsigned short*) &DabtU32Debug05,    // Low  WDT_LR           (5D2C) (927F)

        //4387    DabtU32Debug05
        (uint16_t*) (((uint8_t*) &DabtU32Debug05) + 2), //High WDT_LR  (9138)  (CA7F)

        //4388    UNIT_Reserved              4388 was last address sent from MNGP as of 10-21-2022
        (unsigned short*) &UNIT_Reserved,   //WAS avgWbJrADivShift 4388 Can MNGP stop sending this?

        //4389  WzBangJrCurrent32Signed
        (unsigned short*) &WzBangJrCurrent32Signed,   //UNIT_Reserved
        //4390
        (unsigned short*) &lpOutReduced,
        //4391
        (unsigned short*) &lpOut,

        //4392
        (unsigned short*) &WzBngJrCrntSignedModbusIntrnl, //   Temp debug

        //4393  FactoryEnableFlags
        (unsigned short*) &FactoryEnableFlags,    //Moved from 4383

        //4394  VabsUnderShootCalcDenom
        (unsigned short*) &VabsUnderShootCalcDenom,   //This is all @ 1-30-2014 CalcDenom 11-1-2022

        //4395
        (unsigned short*) &SchedTimer23,  // SchedTimer23,    //SchedTimer23PeakLast

        //4396  SchedTimer23Peak
        (unsigned short*) &SchedTimer23Peak,
        //4397
        (unsigned short*) &SchedTimer23PeakTIME,

        //4398  FactoryVpvOffset
        (unsigned short*) &FactoryVpvOffset,   // 6-27-2014

        //4399
        (unsigned short*) &Init_app_rev_ROM,   //This is all @ 2-15-2014  UNIT_Reserved 1700
        //4400
        (unsigned short*) (uint16_t*) (((uint8_t*) &Init_app_rev_ROM) + 2),

        //4401
        (unsigned short*) &Init_app_rev_EErd,         //temporary test ?  1890
        //4402
        (unsigned short*) (uint16_t*) (((uint8_t*) &Init_app_rev_EErd) + 2),

        //4403
        (unsigned short*) &WbJrSaveCnt,    //UNIT_Reserved TEST
        //4404
        (unsigned short*) &SanityPwrChkCnt,      //UNIT_Reserved TEST WAS SanityPwrChkCnt

        //4405  WbJrGlobalLimitIRef
        (unsigned short*) &WbJrGlobalLimitIRef,   //This is all 4405 @ 8-18-2014

        //4406
        (unsigned short*) &UNIT_Reserved, //This is all 4406 @ 12-17-2014


        //4407  WbJrAmpHourChrg       (Moving for Karl 11-9-2015) Adding 6 regs +2Rsrvd
        (unsigned short*) &WbJrAmpHourChrg,
        //4408
        (unsigned short*) (uint16_t*) (((uint8_t*) &WbJrAmpHourChrg) + 2),


        //4409  WbJrAmpHourDisChrgadj (Moving for Karl 11-9-2015)
        (unsigned short*) &WbJrAmpHourDisChrgadj,
        //4410
        (unsigned short*) (uint16_t*) (((uint8_t*) &WbJrAmpHourDisChrgadj) + 2),


        //4411    WbJrAmpHourChrgadj    (Moving for Karl 11-9-2015)
        (unsigned short*) &WbJrAmpHourChrgadj,
        //4412
        (unsigned short*) (uint16_t*) (((uint8_t*) &WbJrAmpHourChrgadj) + 2),

        //TEST REGS BELOW HERE  2-14-2016  Duplicate of  4147
        //4413 BulkLimitI
        (unsigned short*) &BulkLimitI,    //Line6675Mbus4413 Test 4 Karl 11-10-2015

        //4414  WbJrGlblIlimitCnt100ms
        (unsigned short*) &WbJrGlblIlimitCnt100ms,    //Line6693Mbus4414

        //4415  IbattDisplayOverRide
        (unsigned short*) &IbattDisplayOverRide,  //Line610Intbus4415

        //4416  WbJrCurrentOverRide
        (unsigned short*) &WbJrCurrentOverRide,  //Line624Intbus4416  WzBangJrCrntSignedModbus

        //4417  SlidingILimitRD
        (unsigned short*) &SlidingILimitRD,    //Line6801Mbus4417 Dup SlidingILimitRD for test

        //4418  WzBangJrCrntSignedModbus
        (unsigned short*) &WzBangJrCrntSignedModbus,    //Line6781Mbus4418 Dup WzBangJrCrntSignedModbus for test

        //4419  WbJrGlobalLimitIRef MOVED to 4405
        (unsigned short*) &WbJrGlobalLimitIRef, //WbJrGlobalLimitIRef 2-1-2016

        //4420  IbattDisplaySi_mbus
        (unsigned short*) &IbattDisplaySi_mbus, // WbJrGlblIlimitCnt100ms

        //4421  UNIT_Reserved
        (unsigned short*) &InfoFlagsBits3,       //UNIT_Reserved

        //4422  FetTemp5AmpDerateCount
        (unsigned short*) &UNIT_Reserved,  //2-13-2016 DerateCount

        //4423  FetTempOverRide
        (unsigned short*) &FetTempOverRide,       //UNIT_Reserved Degrees C

        //4424  LastDerateAmp
        (unsigned short*) &LastDerateAmp,       //UNIT_Reserved

        //4425  LegacySweepFaster  Added 5-28-2019 for Ryan and Sunspec SPD cuz SPD works in Legacy
        (unsigned short*) &LegacySwpFaster,       //If 0, normal. If not, boost speed


        //4426  DailyLoVbatt  Added 6-3-2019 for me for testing
        (unsigned short*) &DailyLoVbatt,


        //4427  DailyLoVbattTimeS  Added 6-3-2019 for me for testing
        (unsigned short*) &DailyLoVbattTimeS,

        //4428  WbJrEndingAmpsXeededTimerSec  WAS  Low battery temperature limit  8-19-2022
        (unsigned short*)  &WbJrEndingAmpsXeededTimerSec,  //For debugging 11-1-2022

        //4429
        (unsigned short*)  &UNIT_Reserved,

        #if 0 // No more trying VbattCalTabl in or out as of 10-24-2022
              //  4430 through 4441  will be Vbatt calibration    8-25-2022  VbattCalTableOut
                (unsigned short*)  &VbattCalTableIn +0,    //4430
                (unsigned short*)  &VbattCalTableIn +1,    //4431
                (unsigned short*)  &VbattCalTableIn +2,    //4432
                (unsigned short*)  &VbattCalTableIn +3,    //4433
                (unsigned short*)  &VbattCalTableIn +4,    //4434
                (unsigned short*)  &VbattCalTableIn +5,    //4435

                (unsigned short*)  &VbattCalTableOut +0,     //4436
                (unsigned short*)  &VbattCalTableOut +1,     //4437
                (unsigned short*)  &VbattCalTableOut +2,     //4438
                (unsigned short*)  &VbattCalTableOut +3,     //4439
                (unsigned short*)  &VbattCalTableOut +4,     //4440
                (unsigned short*)  &VbattCalTableOut +5,     //4441
        #endif

        //4430                                  Re-Numbering MB addresses  10-24-2022
        (unsigned short*)  &BattChemType4Vmm,   //1,2,3,4 BattChemType4Vmm move to

        //4431
        (unsigned short*)  &VbattForTableIn,

        //4432
        (unsigned short*)  &VbatCalOut,

        //4433
        (unsigned short*)  &UNIT_Reserved,    //Last one 8-30-2022  WAS 4445 10-24-2022



--
??boB??
#48
The "Classic" charge controller / Re: Fan spin in Classic (and l...
Last post by binkino - July 04, 2026, 05:23:35 PM
I rebooted both Classic. The South Classic did well, all fans spon.
In the East Classic only the turbo fan spon, the both inside not.
So I guess the controller is gone ... I wired these fans to the AUX1 and set this AUX to "Daylight". manually turned on, fans spinning.
In my opiniont it doesn't hurt, if they run the whole day.
Later this year in wintertime when I clean them I will have a closer look to the boards if there is something visible and I can compare both Classics boards.
#49
The "Classic" charge controller / Re: Fan spin in Classic (and l...
Last post by binkino - July 04, 2026, 08:45:20 AM
Yes, that's the downside of having to route the cables through pipes; unfortunately, it blocks the openings.
The new fans arrived today (https://www.ebay.de/itm/271649506635 and https://www.ebay.de/itm/312202792195)—I ordered four of each. I know Murphy ('s Law) all too well, and I needed the fans ASAP. They have good airflow. Even though the listings advertised different specs, I ended up receiving the exact same fans in both cases ;-)
I've installed them now before I had too leave for work. In the "South Classic" unit—where no fan was spinning before—they still aren't spinning, but the turbo fan.
I'll keep an eye on it and I'll perform a "reboot" on both Classic units tonight when I get home from work. The fans should all spin briefly during that process.
I tested the new fans on a lab power supply first; they're fine. As for the removed fans—aside from the one that was still working—the other three are dead.
In case the fan control in the "South Classic" unit is broken, I'll just wire the new fans to an unused AUX port and have them run whenever energy is being converted. (I need to review the options again; I can run them directly off that... 12 volts.)
Aaaand they're very dusty. But I'll deal with that in the winter when there's no energy to produce. I'll shut everything down, take the Classics apart, and give them a proper cleaning. They'll hold up until then.
#50
The "Classic" charge controller / Re: Generator control with AUX...
Last post by qcda1 - July 03, 2026, 09:16:24 PM
Oh nice! Thanks for the tip. I'm back to the cottage and will test tomorrow morning. Will use %SOC low of 93% and %SOC high of 95% to test the cycle. Aux1 drives a lamp for testing. We'll se how it goes.

BTW, I added a little tool that helps in understanding what are the contents of the Classic's registers.

You can find it at: https://github.com/qcda1/MidniteClassic/tree/main/tools

And happy 4th of July and 250th!!!

Regards,

Daniel.