Updates from July, 2015 Toggle Comment Threads | Keyboard Shortcuts

  • charliex 3:07 pm on July 30, 2015 Permalink | Reply  

    KB3045324 failed to install 


    I had a MSSQL Express security update always fail in windows update, so I downloaded the download center version, that didn’t work but it pointed me to a log

    Instance SQLEXPRESS overall summary:
      Final result:                  The patch installer has failed to update the shared features. To determine the reason for failure, review the log files.
      Exit code (Decimal):           -2054422498
      Exit facility code:            1420
      Exit error code:               30
      Exit message:                  The specified directory, "C:\Program Files (x86)\Microsoft SQL Server\", for the INSTALLSHAREDWOWDIR parameter is not valid because this directory is compressed or is in a compressed directory. Specify a directory that is not compressed.
      Start time:                    2015-07-30 07:57:55
      End time:                      2015-07-30 07:58:12
      Requested action:              Patch


    So it was just that, I’d compressed the c:\program files (x86) folder and it doesn’t support it, I changed the compression on the Microsoft SQL Server folder and it installed fine.

    Some reasoning behind it


    Also probably the most specific and helpful error message I’ve ever seen.

  • charliex 5:28 pm on July 5, 2015 Permalink | Reply  

    Setting up SmoothieBoard on Windows 7. 

    First out I use jpsofts take command, instead of cmd shell, http://jpsoft.com there is a LE version that’s free and fine, cmd might work but it might not. it’s a much better shell than cmd and its been around forever.

    clone the git repo, I use https://tortoisegit.org


    open a shell inside the folder you checked out too, in my case f:\code\smoothie\

    use this


    stop after win_install.cmd, I used this just fine from the shell.

    edit the file


    mine said

    SET PATH=F:\code\Smoothie\;F:\code\Smoothie\..\..\build\win32;F:\code\Smoothie\gcc-arm-none-eabi\bin\;%PATH%

    I changed it too

    SET PATH=F:\code\Smoothie\;F:\code\Smoothie\build\win32;F:\code\Smoothie\gcc-arm-none-eabi\bin\;%PATH%

    then I ran

    make clean all

    This generated the elf. It wants a git.exe in the path as well.

    [F:\code\Smoothie]dir *.elf/s

    Volume in drive F is data           Serial number is 7275:a00c

    Directory of  F:\code\Smoothie\bootloader\*.elf

    7/05/2015  10:00         242,061  DFU-Bootloader.elf
               242,061 bytes in 1 file and 0 dirs    245,760 bytes allocated

        Total for:  F:\code\Smoothie\bootloader\*.elf
               242,061 bytes in 1 file and 0 dirs    245,760 bytes allocated

    Directory of  F:\code\Smoothie\LPC1768\*.elf

    7/05/2015  10:30       7,509,384  main.elf
             7,509,384 bytes in 1 file and 0 dirs    7,512,064 bytes allocated

        Total for:  F:\code\Smoothie\LPC1768\*.elf
             7,509,384 bytes in 1 file and 0 dirs    7,512,064 bytes allocated

        Total for:  F:\code\Smoothie\*.elf
             7,751,445 bytes in 2 files and 0 dirs    7,757,824 bytes allocated
       892,891,717,632 bytes free

  • charliex 6:18 pm on October 27, 2014 Permalink | Reply
    Tags: , esp8266, , psoc4, rgb led strip, wifi, ws2811   


  • charliex 7:05 pm on May 12, 2014 Permalink | Reply  

    Replacing an amerilite/pentair pool light, short version. 

    I had to swap out the pool light at home, the wire runs under ground in a tube. I didn’t take pictures of it unfortunately, mostly because i had to get in the pool to change it.

    Remove the old fixture, its usually one screw at the top, the light should have the wire coiled up behind it.

    This is an old amerilite, from before when pentair bought them out, they’re still going. Initially i changed out the gasket but even though i found the original OEM part, it was too thick and it leaked even worse, but even though i could have fixed that the rear side was leaking and its filled with an amber epoxy that you could somehow dig out and replace, but i deemed it not worth it. I pulled it apart and scrubbed it clean, replaced the gasket and sank it to the bottom of the pool with a weight, it didn’t leak, as soon as i raised it to the top to check, a stream of bubbles came out the front and back so time to replace it.

    The niche is the hole it fits into, luckily for me the amerilite/pentair is the standard fitting so i swapped it out for a hayward which is what the local pool place had, about $290 but it foes come with a 50 foot cable, which if you look at pentair/amerilite how much they charge for a longer cable its ridiculous, the shortest one looked around 15 feet, which is usually enough.

    Anyway these are generally installed in an open pipe that runs from the niche up to ground level or higher and a GFCI if you do not have a GFCI, add one or something equivalent for a 120V fitting. 12V is different. The water will sit at the natural level.

    I picked up wire lube, instead of electricians grease but don’t get the yellow stuff since it might react, i got http://www.lowes.com/pd_146594-12704-31-388-6_0__?productId=1017915 which is more than enough for this project, and it cleans up well and doesn’t react with most things, the yellow stuff does react to certain plastics etc.

    After disconnecting and checking all the power was cut off, I filled up the bottom of the box at the power side of the cable, then pulled the cable back from the light side, added more of the lube pulled it back on the power side, and repeated that a dozen or so times til it moved freely , ours has been in there at least a decade and freed up quickly, its best to go into the pool and have two people, the cable gets snagged if it enters the niche at the top so feeding it by hand makes all the difference.

    Once it was moving back and forth freely i took the light to the surface and cut the wire off at the the entry way to the lamp. Then i soldered the new wires to the old wires and covered it with a heat shrink to make it smooth.

    Next i pull tested the connection to see if it’d be strong enough, you do no want this to break mid pull.  So don’t be afraid to try to break it during testing, you get one shot.

    Next i fed the new cable from the pool while the wife pulled it from the power side into the electrical box, she wore gloves since its goopy and lots of dirt and stuff. After that put the light back up onto the side of the pool so there is enough cable that you can later take the light out and change the bulb if needed, you’ll coil this extra cable around the lamp during install.

    I then cut the cable to size and wired it to the GFCI making sure you only test it when its in the water, a very short on/off is ok but these lights are cooled by the water.

    Then i coiled the cable around the lamp and reinstalled it into the niche, its tough to get it to sit in place and screw it back in but a pair of swim goggles and someone to hold you in place helps.

    I cleaned out all the lube from the electrical box, this stuff is conductive so do that, and check it again in a few days/week to see if any came out of the conduit/pipe.

    Incidentally the LED versions of these lamps were on sale at $699 (for the whole unit) this is insanity do not buy them at that price, they are having a laugh, you can find P40 replacement LED lamps on ebay for a lot cheaper. Most of them are made in China anyway.

    Maybe  a 12V LED lamp would be better, there’s no GFCI as such since its DC 9the ac/dc convertor will have one), but then there is also no transformer etc inside the LED lamp side in the water and its now lower voltage , but still a decent amount of current, but there should be some protection on the supply side. Also we have a 500W light, so the LED ones are way less, they’ll claim otherwise but the lumens/W tests for lights/ and LEDS are different. A 100W LED lamp equivalent likely does not give off as much as a 100W incandescent lamp especially for distance, and LED’s can get noticeably dimmer over time, also replacement costs, MTBF specs don’t mean your lamp will last that long. But they sure do look purty, and the man at the pool store assures me people swim more with a coloured pool light that is fancy colours and patterns, than a plan old white one.

  • charliex 11:00 pm on December 29, 2013 Permalink | Reply  

    Making PCB stencils with CadSoft Eagle and MoshiDraw 2013 

    This got me a useable stencil with the K40/ecpur style “40W” lasers


    Eagle DRC using ITEADs ( doesn’t really matter which )


    First shrink the tCream pads.



    2 or 3mil worked  in the  min//max cream settings, rectangles that are part of packages aren’t affected by this setting, only auto tCream from pads.


    Next switch off all layers except tCream or bCream.


    Print the layer as a PDF ( requires adobe’s driver /mill). Use solid, black scale of 1, bottom left



    Save that as a PDF

    Load it into Illustrator, then Save it as an AI format file Version 8



    Import the AI into MoshiDraw



    Output to Machine


    I use 10 10 speed for engrave and move. Cut just doesn’t work well, 16 speed will work, but I got the best results with a slower speed.

    I did my test cuts between 30 and 45 power, 45 worked fine but 30-35 is probably better, I used dura-lay uncoated mylar sheets 4 mil. I also used air assist from a silentaire supersilent compressor.



    Another way to do it, which does seem to generate a more accurate mask is to print it directly to the MoshiPrint driver, though it leaves a black bar at the bottom for me, so that has to be edited out, which you can set the page size, it seems to ignore it.

    Select the MoshiPrint, and have MoshiDraw running and it’ll print it directly to the software. You can also get it it to temporarily write to a file but it’ll delete it quickly.

    Printing to a BMP then editing it with a bitmap editor like Cosmigo’s ProMotion lets you go in and touch up pads that you can’t control easily in Eagle. You then import that BMP into MoshiDraw, MoshiDraw doesn’t use the same pixel to mm conversion size on Import that it does for printer driver, so you have to fix it up afterwards, the default conversion is 600 DPI so do (pixels/600) [in->mm] then set that size in MoshiDraw after its imported. Change the Destination X and Y pixel width/height to the MM conversion you do.

    So for a image that’s 2000×1000 width/height at 600 DPI, you’d do

    Destination X = ( (2000/600) * 25.4 ) = 84.66mm
    Destination Y = ( (1000/600) * 25.4 ) = 42.33mm

    The lasers smallest step is 0.025mm but the kerf of the cut is probably  a lot bigger than that.


    This image has a different resolution.



    I believe the Chinese below “Overlay” is an aspect ratio lock

    You can also just print directly from the image software to MoshiDraw, but watch out for software that halftones or dithers when it prints.

    MoshiDraw does not work well with large images, above 600 DPI it really chokes.


    MoshiPrint tabs





    What we really need is a smart engrave mode where the laser travels either –X X+ or –Y Y+ direction depending on the length of the engrave, so a [___] shape would cut left to right but a || cut would be up/down. MoshiDraw has an option to change the direction of the cut, but it rotates the image too, what we want is same table orientation and position, but head travels in a different direction

  • charliex 7:11 pm on December 21, 2013 Permalink | Reply  

    Chinese 40W eBay engraving laser 

    I ended up trading some LTC/BTC for a 40W laser from china, even though I have a 100W laser at Null Space but I wanted something for making PCB stencils and so on. I fully expected to get back a hodge podge machine that would need work, since it was $599.


    They took just over a week from purchase on eBay to shipping via Fedex, it arrived in a few days, going from China, to Japan, to Hawaii, Oakland, to LA. The box just about made it, when I unpacked it, the box was being held together with the cling film outer wrapper.

    My phones SD card was corrupted, but this is the top of the box



    That blue box notes the first problem I noticed, its 220V/50hz and USA uses 110V/60Hz, the eBay listing wasn’t super clear but there was an image with the 220V shown on the label.

    Quick trip to Frys and I picked up the 2000W step up transformer, this will be plenty. 

    The left side is 110V, that’s plugged into the water pump (see later)

    Inspecting the machine is the first order of the day, and for good reason.


    This terminal block sends 220V to the rear panel for the water pump and squirrel fan. The two terminals on the left side in the middle are loose, they’re never been actually connected, so they didn’t come loose in shipping, how do I know? the screws on the terminal are screwed down tight. So first easy fix, but not a great start.


    I noticed the Y direction had a small plastic tube and o-ring as the hard stop



    But its not long enough, so the mirror adjustment screws hit the frame before this stop works, so add a short length of tube til it no longer hits the frame.

    One the back the pump and fan are connected, they won’t sit together, shave off some of the squirrels plastic and it’ll sit better, but they’re the wrong style plugs (also 220V) for a better fir they need to be the round style of metal pin not the flat blade type, they just fall out otherwise.



    water pump and air assist hookups



    laser tube, interesting mounts


    The water pump I got with the machine, couldn’t pump the water not sure if a problem with the Hz difference, or just a crap pump, luckily as with most hackers I had at least one water pump in the garage, and not only that the plastic fittings were exactly the same so I swapped it out, since it’s a 110V pump I didn’t use the rear panel. this pump is also very quiet and pumps a lot more water. Make sure you get all the air bubbles out of the laser, so as not to make hot spots.


    The squirrel fan didn’t boot either so, but it was just stuck so cleaned it out and it was fine, not the most powerful fan but its quiet.


    The transformer came with a small blade to pin adapter, it worked really well with the rear panel and fan.

    I have a spare laser tube in the background that I’d picked up a couple of years ago, I believe it should fit.


    Interestingly the wires for the LED crosshair runs through the tube, it limits the airflow I found, so I rerouted it to the outside. Also there is a hole,a nd a slice in the tube at the quick connects for the wire to get into, so the air leaks there too.




    runs back here


    unwrapped the spiral wrap


    mark the wires so you know which polarity is used.


    I undid them and unwound the orange pipe, this makes it easier to remove the ribbon cable from inside the tube



    hole in the tube


    I cut the tube to remove both holes and rewound, then reattached it so that it didn’t foul.


    the original tie wrap routed the tube so it limited air flow, so I moved it.



    Lightly tightened to allow it to move a little.


    This is how I mounted the cable, til I pick up some new wiring, I’m planning to change out all the wiring since most of it seems to low a gauge for the voltages used.



    rewrapped and tied back


    the air flow is much better now, but the end needs a new nozzle to help jet the air


    The mirror adjustment is interesting


    jumping around a bit, i ‘d engraved some plastic sheet


    interesting clip art that moshidraw is supplied with.


    I’ll add more to this as I go along, there are a few blogs already about these styles of laser cutters , most people replace the moshi electronics, as moshidraw is probably some of the worst  software you’ll use. Though I’ve never had software that’s had a specific icon for Mongolian text.


    I downloaded and installed MoshiDraw 2012, that works a lot better there are some warnings about MoshiDraw 2013 bricking controllers or USB drivers, my interface board is v4.6 so it seems to be earlier versions that are affected, there’s a debricker for the 2013 version too. I’ll try the 2013 version later today.




    I haven’t had to use it yet. MoshiDraw 2012 stopped once during an engrave, but only once so far. The software writers though have used the wrong windows message handler for the numerical input boxes though, so every time you type a character into the move control, it sends it to the machine instead of waiting for the input box to be moved away from or enter press, it’s a common windows GUI newbie mistake that affects a lot of software though you may never notice, but its critical for CNC stuff, you can change 80.000 to 80000 by mistake, and the machine will try to move to 80000mm. A side effect is if you type 8 0 , it’ll move to 8, then 80 but since it’s a quick move, the machine wont respond correctly and you get an error. I’m going to see if I can change the message handler code.

    No need to change it, moshidraw 2013 fixes that problem, but it introduces another one, I’ve done two engraves and its only made it through about 20% of the task. I reset the machine on one of the crashes tasks, and the laser immediately came on and cut a diagonal line from home til I turned it off again… One of the reasons I’m going to add a defeat switch on the main panel lid and laser tube access panels. 

    Yep tried a few times, only makes it part way through the job before stopping and homing or just stopping altogether., might be a buffer size issue?

    With MoshiDraw 2012 you can use the machine as laser cutter, and not just a laser engraver though, the MoshiDraw 6/7 that comes with it will really only engrave, if you draw a line, it’ll draw around it, if you draw a circle it rasterises it so you get the draw left, move , draw right, move back, down, draw left, move, draw right.


    Air assist as you’d expect, really helps keeps the flames down and improves the cuts no end. I just have to change out from my supersilent aire airbrush compressor which can’t keep up the air demand, to a cheap diaphragm compressor which can, just make the tubes long enough so it acts as a reservoir and stops the putt putt airflow.


    I pulled the 8051 and tried to read it back in an eprom programmer. its likely locked or not the atmel/win AT89 but its definitely a variant, schematics match up , it has a serial 4 pin isp port on the board too..


    So far it cuts just fine. Engraves nice too.


    Primarily I wanted to use this for eagle solder stencils.


    I used cream-dxf.ulp which outputs two dxf’s of tcream and bcream. Since its primarily designed for vinyl cutters , I click off the cut two times, and set shrink to 0.1mm ( None of the other DXF outputters I used could import properly)



    After that I open it into Illustrator, set the scale to 1:1 millimeters, watch out when you select mm, it’ll change the Units(s) number



    My board is centered at 0,0, so I move the artwork to the bottom left, which is where AI has its coordinate system.

    Then “Save As”  .AI format, version 8



    Then I import it into MoshiDraw 2013, File/Import




    For the 40W I set speed 20-30 and power 25.0 to 20.0 (on the cutters control) 25 I find scorches and melts the plastic sheet, you want the fastest with the least amount of power.


    I’m still fine tuning the power/speed and reduction settings, on the TQFP64 its removing too much I need an inner cut of the pad..  But its real close.


    Oh and if you just output HPGL directly from an Eagle CAM job, you’ll get this…

    The HPGL is one contiguous line.So the laser never turns off, Etch-A-Sketch style


    mmca suggested not using air assist.

    Straight off the cutter. Like I said needs some tuning. I do these stencils on our bigger GWeike 100W laser no problem.

    • James Scott 2:13 pm on December 27, 2013 Permalink | Reply

      Maybe a bottle of some form of shielding gas rather than air will do a better job of eliminating flames and making cleaner cuts/etches? Straight up CO2 would work, Nitrogen is also pretty cheap. Doubt anything extreme like actual full on welding gas ie Argon would be any better. You wouldn’t even need a pump since the gas is regulated out of a compressed container.

      • charliex 12:02 am on December 29, 2013 Permalink | Reply

        yeah we tried o2 assists on our other laser, i think this one is just a crappy nozzle design and not enough air, also the plastic sheets weren’t that great. i just picked up some duralar 4mil uncoated sheets, gonna give that atry

    • John Wasser 2:37 pm on March 17, 2014 Permalink | Reply

      On the side of the internal power supply you should find the 220/110 switch.

    • Cesar 3:45 pm on June 5, 2014 Permalink | Reply

      Have you tried CAMBAM? Here is my workflow. CAD to DXF to CAMBAM to DXF to Moshidraw.
      For some reason, the rest of the softwares out there export DXF differently compared to CAMBAM. From CAMBAM there are no issues importing.

      Also, image 4th from below, where it show the preview of your image. You noticed that you have a lot of white space?, you have to ungroup the layers first. all of it. And try it again, this will show you the the max view of what you are plotting and without the white space.

      Hope this works for you.

      I will try your AI ver 8 approach.

      • charliex 7:56 pm on June 5, 2014 Permalink | Reply

        I haven’t, the mosihiprint has been working the best so far, since DXF is such a poor format and so many pieces of software have different abilities with it.

        I literally go straight from eagle into moshidraw now, what i want though is laser driver software that can do the passes left to right for cut outs that are wider than they are longer, and then up down cuts for objects that are longer than they are wider, it’ll generate much better output that way, even our big laser suffers from that too.

        The only issue i have with moshidraw is the black bar it generates on the print, its doing it on 2014 too.

        The whitespace you can get rid of by just changing the worksize on the top, it doesn’t really affect anything.


  • charliex 11:54 pm on November 23, 2013 Permalink | Reply  

    Power Toy Calculator in windows 7 x64 

    .text:01001FD3 55                                      push    ebp
    .text:01001FD4 8B EC                                   mov     ebp, esp
    .text:01001FD6 83 EC 24                                sub     esp, 24h
    .text:01001FD9 56                                      push    esi
    .text:01001FDA E8 81 FF FF FF                          call    sub_1001F60
    .text:01001FDF 85 C0                                   test    eax, eax

    .text:01001FE1 0F 84 B9 00 00 00                       jz      loc_10020A0

    .text:01001FE7 83 65 DC 00                             and     [ebp+Msg.hwnd], 0
    .text:01001FEB 8B 75 08                                mov     esi, [ebp+hInstance]
    .text:01001FEE 57                                      push    edi


    nop out the bolded instruction.


    0x13e1 9F 84 B9 00 00 00

    change to

    0x13e1 90 90 90 90 90 90


    that’s it.


    All it does is ignore the results of sub_1001f60 which is a windows version check.

    You can install the msi using XP sp3 compatibility mode.

  • charliex 7:41 pm on November 23, 2013 Permalink | Reply  

    USB Hub vid 0409 pid 005a windows, not showing up/ multiple Kinects 


    Since kinects need all the things, I had to separate them to different USB ports , somehow my device manager showed an unknown device, which was 0409 005a USB NEC, I kept finding renesas usb 3.0 drivers on Google but that’s a red herring. Anyway after realising it was a hub and not a controller, I figured out the deal

    go here and find the USB stock drivers


    mine were



    copy the contents of that folder to




    now rescan in device manager and it the driver should appear.


    So almost have two kinects connected now, one shows the camera isn’t working, this might be because its still on the same root usb, which the kinect needs all the usage of, or there’s another usb camera/streaming device installed.


    Which it was, moved it to another USB Root Hub, not just a different HUB,



    Ok so two kinects, connected, now for the third….


    I couldn’t start the second kinect, running the kineck SDK and then opening the kinect info panel tells you that its not powered, though usb will show ok, I swapped the kinect with my third and it worked, so seems like one of my kinects might be bad.

  • charliex 9:33 pm on November 14, 2013 Permalink | Reply
    Tags: hayward pool heater h250 ed1   

    Hayward H250 ED1 Pool Heater Electronic Ignition 

    When we bought out house, I wanted a pool, even though I can’t swim. It came with a pool heater, so I was happy about that.. But as fate would have it the only thing that didn’t work, was the pool heater (and the fire pit ) . Before we bought the house, I turned it on and it turned off immediately.


    The gas line was disconnected at the main with a big warning sign.  After we bought the house, I laid new pipe from the pool heater to the fire pit , cleaned and pressure tested the 1 1/2” line that wasn’t damaged by the trees, the trees paid the price since the leaking gas had killed three of them, which we replaced, the story all came together as we tracked the history, the owners at the time had massive gas bills which is when the leak was discovered., but they just opted to disconnect it. Took me a couple of days to lay the 1/2” pipe for the fire pit.

    So once the line was all replaced, time to test the heater again. fire it up, hope shuts off again. The burners weren’t firing up, a few years of disuse and it was filthy..  The nozzles that fire the gas into the heater were blocked, so I got some wire, and cleaned out the nozzles, and cleaned up the dirt elsewhere, still didn’t start, probably air in the gas lines, so a few dozen tries and it started up fine.

    It seems unlikely its gas flow, the main pipe is 1 1/2” and gas is only about 6 pressure, so should be plenty and gas pressure is harder to measure, the bigger heaters need at least 1 1/2” all the way to the heater.

    When the gas igniter fails a few times, it’ll lock you out for a while.

    This is the gas valve and sensor , you could bypass this if you think there is a gas flow issue but only for testing.  TH is marked on the top left, the manual says jump TH –TH , I believe its saying jumper TH on the left, to the bottom left orange. But I am not sure, so I haven’t done this test ( which as it turns out, I now need to do.. )

    I’m not sure if my Gas valve is aftermarket or not, I don’t see a similar one anywhere on the Hayward’s parts lists. its marked like a robertshaw.. Aha, I’m pretty sure it’s a White-Rodgers, they use  TH  TH-TR   TR markings.

    Yep verified it as being very similar to the  “White Rodgers 36D27 Gas Valve, Type 201” the trim screw is different






    Here is a useful PDF on how the detection works on the pilot.




    One of the gas nozzles, you can remove this to clean it, if its really dirty you should but it’s a hassle Spiders love this thing, they get in everywhere and our trees shed like crazy so its always dirty..


    its easy to remove the whole heater setup


    The individual nozzles are removable too, for easier cleaning

    Retested then it shut down again… .. What next, bypass the flow meter, and it works fine, you can tell if it’s the flow meter usually coz it the system light flickers on and off rapidly.. Turn to the pool filtering system, yep hasn’t been cleaned out in ages, did that waters flowing and the flow meter works again. It’s a really really bad idea to bypass any of these sensors for anything more than troubleshooting.

    This is the water flow meter, disconnect the two wires and join them together to bypass it for testing (turn off the system first)


    This just keeps the microswitch depressed when there is enough flow, you should hear it audibly click at system startup, might take a few seconds to get flow. this can also be adjusted for different flow rates.

    So great a few months of the wife enjoying 90o degree pool, then the gas bill came, so it got turned off cept for weekends, a few weeks later. It’d start for 10 minutes, shut off, , turning it off it, shut off immediately, . To me that strikes of a heat issue, this time I called out a pool heater guy recommended by hayward, since I figured maybe it just needs a service.

    He comes out , cleans it, tests it, same issue, says its likely the control panel.. My thought is that if it’s a control panel its really repeatable problem, and its part of how the system should work, if not enough heat gets exchanged the  thermistor high/low heat sensors will kick and shut it down, let it cool and it’ll work again, but we’ll see.

    Though now after he visited, its no longer booting up for 10 minutes before, its only doing a few seconds again… sigh…

    Disconnect the control panel via this connector, the other two wires are the remote thermostats. don’t disconnect them, and don’t fold or bend them too much, they’ll snap


     this says its the ED1


    You can bypass all the tests here, jumper the bottom and top connector and it’ll bypass all the sensors, this is just a rough test since it wont tell you which one isn’t working, but it will tell you if the heater is working, but be careful


    Igniter The rusty screw there holds the ignite mechanism inside. Remove that screw and the wingnut above it ( obscured by the black tube )

    I haven’t pulled this part yet, the flame is a bit yellow so maybe a dirty pilot. I did just find another persons (frank lopez/doityouself.com forums) image of it. You can remove it with the one screw at the front, then there is an alignment wingnut on the top side.



    This image is of a millivolt pilot setup, I have the electronic ignition version.


    The electronic igniter, is much simpler.

    the spark gap is meant to be about 3.5mm or 9/64” in ye olde measurements


    The insulation on this has worn away, and when I removed it to check the gap the wire fell out, so I’ll replace it too, but If the spark is failing to ignite, you’ll hear it constantly firing for a few seconds, (or not at all if the wire isn’t making good contact) the wire was pretty corroded internally so worth changing. I’ve read that when it fails, the heater will try to ignite three times then shut down.

    Update: Replacing the ignitor fixed it, the bad wire was making the flame detector think the flame was off.

    HAXIGN1931 is the part number for my heater

    Clean out the burners with a wire brush too.


    Correct Flame  ==== Tip of thermocouple or thermopile is 3/8” to 1/2” into pilot flame
    Noisy, Lifting, Blowing Flame === High gas pressure or Wrong Pilot Orifice
    Lazy Yellow Flame == Clogged primary air opening
    Low gas pressure   === Clogged pilot orifice
    Wavy Blue Flame ===Draft condition as pilot
    Hard Sharp Flame === High gas pressure or Pilot orifice too small
    Small Blue Flame == Wrong pilot orifice size or Low gas pressure or Clogged pilot tube



    Remote control instructions


    This is the United Technologies electronic Controls control panel, its about $125-$180 ish, I’ve seen it on amazon and ebay., the direct spark is the big insulated wire. It’s a 1016-405 Series Direct Spark Igniter, but you need to pay attention to the part number on the white paper sticker, it is a 1016-458 variant. They have different connections for the igniter wire, some are spades, and the terminals are different sizes, also the chip inside is different, The PCB’s are mostly the same , just a few resistors and such inside.

    There isn’t a whole lot to go wrong inside, a  couple of high wattage resistors could potentially get bad solder joints,  a relay, but they’re made pretty well. the box just unclips apart.



    Supposedly the LED (left of the orange wire) is , I’ve only seen it RED since it seems if anything trips the whole system shuts down.

    • On – Steady Control operation normal
    • 1 Flash Open Pressure switch, limit switch or flame rollout switch
    • 2 Flashes Pressure switch stuck closed
    • 3 Flashes Ignition / flame sense failure
    • 4 Flashes Repeated flame losses
    • 5 Flashes Internal control fault

    Transformer notes for 240V vs 110V systems



    temperature limiter switch, automatic reset


    Temperature limiter switch, requires a manual reset, part of the kit HAXTLK1930, the replacements seem to be 36TX16s , the L is the temperature  in Fahrenheit


    high limit thermostat safety, if this trips then filter is clogged, or not enough water flow. rear header, part number HMXHLI2932, its under the rubber boot, there is a drain plug underneath the header. this is the 160F degree limiter. If you mix the rear and front sensors up since they look the same, they’re stamped around the edge, L160F and L135F respectively.


    The front header hi limit, that ones a 135F trip, HAXHLI1930 its behind the left side access panel.


    The flow meter tube is on the right side of the front header, this goes to the flow sensor/microswitch sensor


    Cleaned out underneath the heaters too, a lot of rust and stuff gets down here. I used a shop vacuum, alternating between blow and vacuum.



    The top gets messy too, these metal bits are loose on this heater.


    Back panel instructions.




    Wiring diagram.


    you can see the in-series fault sensors at the top, limit/, imit. pressure and two temperatures sensors.


    • RC 3:26 pm on June 9, 2014 Permalink | Reply

      How did you get the burner tubes out? I can get as far as where you have noted: “its easy to remove the whole heater setup” but cant seem to get the black gas tube out of the way enough to make room for the tube to be pulled out. Do I just spin it up and out of the way? Do you have any pictures of that process?

      • charliex 3:34 pm on June 9, 2014 Permalink | Reply

        I just undid the screws at the sides and spun it out of the way , the whole thing slid out after that. I didn’t get any pics of that step i don’t believe i’ll double check.

        • charliex 9:04 pm on June 9, 2014 Permalink

          Unfortunately i didn’t get a picture of the part where i moved it out the way, though thinking back i think i disconnected the gas line input to the heater so i could get it to move a bit more. i have a cut off and elbow right at the heater

        • RC 2:53 pm on June 11, 2014 Permalink

          Awesome…I’ll give that a go, thank you for the detailed reply (and for this post as a whole).

          I have the exact same heater as you (but the 400k BTU version) and it just wont fire up. It tries…I can hear the ignition going and the gas flowing, and then after about 5-7 seconds there is a HUGE explosion and everything starts over. I’m hoping that cleaning the burner and/or replacing the ignitor will help.

      • charliex 4:48 pm on June 11, 2014 Permalink | Reply

        yep sounds similar to what i had, its a pain to keep this thing going though :)

        if the flame detect doesn’t see a flame, it’ll shut it off after a few seconds.

        similar problems, it’d fill with gas which seemed like it was blowing the flame out, cleaned the nozzles replaced that ignition piece and it worked.

        but seems like i can make it work for three months or so and then something else happens!

        • RC 3:21 am on June 23, 2014 Permalink

          Thanks again for this writeup and the tips. I got everything apart and cleaned out a ton of spider webs. Heater works like a charm now.

        • charliex 6:10 am on June 23, 2014 Permalink


  • charliex 12:46 am on October 27, 2013 Permalink | Reply  

    Windows installer cannot be found 

    The Windows Installer service could not be accessed

    I’ve had this on and off windows service installer message from time to time, and mostly gotten around it.


    If you’re tried the usual MVP advice of “sfc ‘/scannow” , the unreg/regserver stuff as well with msiexe.exe, no difference. and so on, read on for MFP advice..

    First (or last) check in the registry



    on my machine points to, ok so first issue…


    Mine was pointing to an msiexec in the download folder, I believe that’s how I got past it once before.. Anyway that reset and still same error.



    So I did what any normal person would do.. Since I  wanted to try CNC’ing a stencil on my modified CNC that I’d been working on this morning, for a mylar stencil for the layerone badge 2014 prototype and none of the eagle DXF’s would import into the GCODE generator software I was testing, I installed Adobe Illustrator from creative cloud ( since I killed my mac version last night by stupidly installing Mavericks, hint if it gets stuck at A minute remaining, go to the title bar and look at the logging, you’ll see a message repeated ( I left mine for 12 hours showing “less than a minute remaining ) , I forced a reboot and it started doing a fresh setup, put in my normal account, went through all that OSX baloney and it shut off, reboot, made a second account, logged out, logged in, then deleted the second account ( and my normal second account form 10.8 had also disappeared) then it deleted all the registry keys and apps for creative cloud and parallels, so I had to reinstall both those, after making sure I found my original parallels 7 key to use my parallels 8 key that I’d just bought,  then parallels “lost” all my existing VM setups, so I had to reimport all of those and reinstall all my adobe apps and re-regged them. SO ANYWAY

    Ahh yes, windows installer.

    Illustrator was failing with usual check the logs, and sure enough back to the msi installer logs missing.

    I loaded vc_redistx86.exe and traced it, it writes out an installer to a temp path


    That’s the one that actually has the error message generated.

    So loaded that into IDA32 via windbg, and it fails here.

    cmp     [ebp+VersionInformation.dwMajorVersion], 5
    jnz     short loc_CB2675

    text:00CB2675 loc_CB2675:                             ; CODE XREF: CMsiWrapper::CheckDarwin(ulong,ulong,ulong)+64j

    jbe     short check_darwin

    .text:00CB267E call    ?LoadDarwinLibrary@C


    MsiWrapper@@CGPAUHINSTANCE__@@XZ ; CMsiWrapper::LoadDarwinLibrary(void)
    .text:00CB2683 mov     ecx, ?g_Logger@@3AAVCLogging@@A ; CLogging & g_Logger
    .text:00CB2689 mov     [ebp+hLibModule], eax
    .text:00CB268F test    eax, eax
    .text:00CB2691 jz      cannot_find_windows_installer

    text:00CB279C cannot_find_windows_installer:          ; CODE XREF: CMsiWrapper::CheckDarwin(ulong,ulong,ulong)+92j
    .text:00CB279C push    offset aCannotFindWind          ; "Cannot find Windows Installer."
    .text:00CB27A1 call    ?LogEvent@CLogging@@QAEXPBG@Z   ; CLogging::LogEvent(ushort const *)

    Ok so what does that do ? Ok down the rabbit hole…..


    HMODULE __cdecl CMsiWrapper::LoadDarwinLibrary()

      DWORD cbData; // [sp+4h] [bp-214h]@1
      HKEY hKey; // [sp+8h] [bp-210h]@1
      BYTE Dst[2]; // [sp+Ch] [bp-20Ch]@1
      char v6; // [sp+Eh] [bp-20Ah]@1
      unsigned int v7; // [sp+214h] [bp-4h]@1
      int v8; // [sp+218h] [bp+0h]@1

    v7 = (unsigned int)&v8 ^ __security_cookie;
      *(_WORD *)Dst = 0;
      hKey = 0;
      memset(&v6, 0, 0x206u);
      cbData = 520;
      if ( RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer", 0, 0x20019u, &hKey) )
        v1 = Dst;
        goto LABEL_5;
      v0 = RegQueryValueExW(hKey, L"InstallerLocation", 0, 0, Dst, &cbData);
      v1 = Dst;
      if ( v0 )
        wcscpy<260>((wchar_t *)v1);
        return LoadLibraryW((LPCWSTR)Dst);
      wcscat_s((wchar_t *)Dst, 0x104u, L"\\msi.dll");
      return LoadLibraryW((LPCWSTR)Dst);



    Tracing this it gets into LoadLibrary, but already I see the issue  (well at least the next one)



    Sigh… (I’d run SysSoop on this first, but a simple FileMon would have likely done it )

    So lets check


    Hmm  (I’m actually writing this blog as I do these steps and make the discovery’s.


    That’s odd, HKEY_LOCAL_MACHINE and that path show a different path…

    trace into kernel..

    kernel32.dll:75741EEE kernel32_RegQueryValueExW:              ; DATA XREF: advapi32.dll:off_75041484o
    kernel32.dll:75741EEE push    2Ch
    kernel32.dll:75741EF0 push    offset unk_75742000
    kernel32.dll:75741EF5 call    sub_757415C0
    kernel32.dll:75741EFA xor     esi, esi
    kernel32.dll:75741EFC mov     [ebp-24h], esi
    kernel32.dll:75741EFF mov     [ebp-30h], esi
    kernel32.dll:75741F02 mov     [ebp-2Ch], esi
    kernel32.dll:75741F05 call    kernel32_RegKrnGetGlobalState


    ahh yeah,so WOW64

    back to regedit


    And there we have it….

    InstallerLocation = C:\Users\charlie\Downloads

    which on my system should be


    ok changing that lets retry….. and yep that worked..

    So simple thing would have been to run procmon and see it looking for the wrong string in the registry key for the msi.dll


    Ok back to installing Illustrator….


    Hopefully it helps someone to just check these settings




    sigh ERROR: DF024: Unable to restore file at "C:\Windows\Fonts\ChaparralPro-Bold.otf" from backup at "C:\adobeTemp\backup\adobetmp081529265" Error 5 Access is denied.. Try setting correct permissions etc etc


    quick flip to



    run setup-up.exe from illustrator folder instead.. complains about a pending restart. ignoring that…oh you… installs, but does it run under adobe cloud mgmt?


    quit cloud, reload and yep it works (and my blog writer froze up as I hit this point, but it came back phew..)

    now can I export a DXF from eagle without polylines and shapes instead… hmmm , nsl halloween party tonight, or actual hacking…..



Compose new post
Next post/Next comment
Previous post/Previous comment
Show/Hide comments
Go to top
Go to login
Show/Hide help
shift + esc

Get every new post delivered to your Inbox.