Updates from December, 2013 Toggle Comment Threads | Keyboard Shortcuts

  • 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.

  • 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.


  • 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…..



  • charliex 7:40 pm on September 5, 2011 Permalink | Reply  

    Pick and place So here we are with… 

    Pick and place;

    So here we are with part two of the build. We’ve figured out most of it, started the build of the arm board and so on, then on Friday night late I have one of those, hmmm, moments and say wait we have a lot of ADK mega arduino boards lying around (because we made a tonne of them for defcon 19). So a quick count of the IO pins needed vs the mega and we find it can be done. 

    We test fire the MOSFETs with our ADK arduino, using one of the ATC( tool changer) pneumatic switches. That works just fine, the modern MOSFETs are amazing even though we need no where near the level of current this thing can handle.


    We wired up a quick test.

    Breakout board for the TUMT6 MOSFET


    Just as ping is the ubiquitous test on the internet, blink.pde is on the arduino.

    Success, yes the tool did go flying off but that’s ok! We simply connected up pin 13 of the mega to the electro switches in the top left, the board is bypassed since it does a BCD decode and select.

    Blink does it’s thing.


    So time to build up the new interface card, a quick search through some of the old machines we find the right floppy pin cable for the board, and the old 50 pin scsi type.. thanks petty!..

    So  next step is to CNC up a header quick board, its an extremely simple board. Bust out eagle and start making the board, the Juki has one oddness that the connectors run 1-2-3-4-5-6… etc vs so I had to build a custom part in eagle..

    So I start off modifying our ARM board by sticking an arduino mega shield in the middle with the idea of wiring it upto all the mosfets etc.

    But then I think, wait a second why do that? Lets just leave the IO board and make a shield that plugs into the Juki’s existing IO connectors. So another project in eagle and its even simpler this time.

    Yeah that’s slightly less complicated. So  basically we’re just mapping each of the IO’s to the arduino, I’m not much of an arduino person myself I prefer ARM for embedded, but we had lots of parts lying around and it was super simple form factor which is the point of the arduino and we sold out of all our arm based arduinos at defcon. So I ended up using the tx/rx as  an that has to be rerouted later, but luckily I mapped it to the down switch for the teaching panel, which we no longer need. However that’s not how we do things at NSL so it’ll be remade and milled.

    Now add the headers, this is a real chore they’re simple to obtain, but so cheap but a bitch to solder onto a board that’s not plated…

    Also someone missed some pads..


    Whoohoo perfect, (well sort of)

    Now for a test fit onto the machines IO board.


    Check continuity etc. Make sure that GND is mapped…


    Getting ready to fire it up

    Plugged into into the ADK arduino


    Lets test fire one of the air lines…. Power up the compressor, write a quick bit of arduino code and !


    One of the lines we ‘repaired’ pops off and attacks KRS and mmca, But it works ! We haven’t replaced all the airlines yet and they’re hard to get locally it seems. We test the switches here too, things are looking good.

    We skipped a little ahead above, the test code required some simple though into it.

    First set all the pins to input
    Next set the individual output pins to output

    Which wasn’t enough to make anything read.. So a quick poke around and some head scratching and the answers simple, we have to make the pins  for input set to HIGH first, so a quick change and off it goes.

    All the defaults for out pins are set HIGH too.

    So now it’s a case of mapping all the IOs in arduino and writing bits of code.

    we decide to decode the ATC (toolchanger) first, it uses a select + 3 lines of BCD. 4 lines are assigned to the ardunio and then we figure out which bit controls which tool changer.

    Obviously the smart thing to do is make it do this :-

    with more gusto!

    this is more fun that the pnp itself

    So next the motors themselves , this is just a case of doing a train of pulses __–__–_–_– etc http://www.flickr.com/photos/krs_/6117717455/

    We have to determine the length of the pulses, its moving very slowly in the video because we’re at the +ms speed, eventually we move to microseconds.

    Adding the limit switches, and this is why i spent $600 on a compressor for airbrushing btw

    Now we’ve done a better job of finding a good speed for the motors, so a quick walk test. This is just doing a limit, change direction test.

    On the motor front now all we have to do is convert pulses to mm and then we can do a gotoxy() function! Which is pretty much all we need

    The X and Y home sensors still aren’t working yet, so while i’m writing this blog and uploading all of our videos to flickr ( since google+ doesn’t seem to have an easy way of embedding videos) I’m working out why the XY home doesn’t work. I’m adjusting the walk function to print out the XHM and YHM sensors after each pulse to see if it only does home when the rotary encoder hit and the home sensor are both on. And we just did a quick test and that indeed is the answer woo!!

    So now to write a quick home function, i’ll have the machine do a bottom left limit find,, move back a little bit up to the right and then slowly move back til it finds home..

    be right back!!

    and now krs is filming me,,, awkard…

    Ok so the home function is now working, the machine goes to top right/back quickly, then left,front quickly, steps back to the right 100 pulses, and back 100 pulses so its definitely not at home, then slowly scans left to find x home, then slowly scans hither to find y home.

    Next steps are to convert the pulses to actual distances so we can do x,y instead of pulses. I also want to do some repeatability tests, in other words go to home, go to position, go to home, go back to position and see if its always the same place. So lets home it, center it, switch on the spot light mark it, and repeat, or use a sharpie

    The spot light had a broken wire in the middle, it’d been poorly repaired once before so we stripped it off and resoldered it.

    We used a ruler to calculate the pulses to mm, using 100 and 500 pulses to see the distance travelled in each X and Y ( the same amount )

    Seeing how far it goes.


    I added the home switch, teach switch as the spot light toggle and the cursor pads to move the head. the down button is mapped to RX on the arduino mega so I cheated and used FAST button, we’ll remill a new board tonight with a different layout

    We’re pretty close to getting the full functionality of what we had before with the factory software. Just tool changer positions etc, which is all just finding the spots.

    The speed of the machine has been pedestrian so far, so looking at the original specs the pulses are ramped (since physics) and it moves much faster. So next lets try to match that.

    Scope/LabView looks like this for the original.


    The X and Y’s have different stepper controllers, so it has different max speeds. The idea is now to add ramps to the move functions, i threw together a quick ramp into the limit finder test code, of course this means it has a nasty bump as it stops for the limiter. Once we’ve got a good speed going, the new gotoxy() function will do a /~~~~~\ ramp, slow to fast to slow.


    Various speed tests

    Goes wrong! We can play a mean mario with this


    Yeah! we’ve got a decent speed now. Its hitting the limiter rather than slowing down as it should. The arduino starts off ramping up but since its looking for the limiter it bangs to a  stop, we’re going to calculate the number of pulses needed to get to just before the limits. That way the machine knows how far it can go, even though during most of its working life it’ll never go to the limits.


    [Null Space Labs] like most hackerspaces is very srs bizness indeed.


    So next I wrote a piece of test code that moves each of the axis slowly, limit to limit for  a few passes the Y result was this :-

    Found Y+ limit = 4202
    Found Y- limit = 10597
    Found Y+ limit = 10597
    Found Y+ limit = 0 (oddity!)
    Found Y- limit = 10597
    Found Y+ limit = 10597
    Found Y- limit = 10597
    Found Y+ limit = 10597

    At faster speeds in the X axis, it deviates but interestingly settles after a few :-

    Found x left limit = 7433
    Found X right limit = 7447
    Found x left limit = 7276
    Found X right limit = 7446
    Found x left limit = 7266
    Found X right limit = 7446
    Found x left limit = 7266
    Found X right limit = 7446
    Found x left limit = 7266
    Found X right limit = 7446
    Found x left limit = 7266
    Found X right limit = 7446
    Found x left limit = 7266
    Found X right limit = 7446

    Running the X at a slower speed gives us this :-

    Found X right limit = 7432
    Found x left limit = 7432
    Found X right limit = 7432
    Found x left limit = 7432
    Found X right limit = 7432
    Found x left limit = 7432
    Found X right limit = 7432

    Which is great, since as it should be its very consistent.

    Our ruler based figurin’ from before gave us the following info :-

    500 pulses = 25mm
    100 pulses = 5mm

    So using that info from above we get

    431 pulses X axis (left to right limit to limit) = 370mm
    10597 pulses for the Y axis(limit to limit ) = 529.85mm

    This is good since it means our speed is workable, and we can now write a function that can start off slow, speed up and slow down, as the machine knows how many pulses it can do before hitting a limit, but we first have to calculate the distance from home to limit for each X and Y axis.  Though most of the time the machine will not be attempting to get to the limit.

    The machines minimum step size is .05mm or 1.9mil’s but we are going to improve to .025mm or 0.984251969 mil! Which is 0.000984251969 inches.

    So now we have converted it to double the resolution of the original equipment we get

    Found x left limit = 14867
    Found X right limit = 14864
    Found x left limit = 14863
    Found X right limit = 14863

    Found Y- limit = 21174
    Found Y+ limit = 21173
    Found Y- limit = 21172
    Found Y+ limit = 21172
    Found Y- limit = 21172
    Found Y+ limit = 21172
    Found Y- limit = 21173

    It’s now 1000 steps per 25mm or 1 step is 0.025mm!

    Awwh yeah!!! Our machine is now able to do smaller parts and greater resolution  than the original!

    So far for this post, it is about 11:00PM west coast time and its been a busy few days, we’ve put about 6 nights work into this and progress has been pretty good. We’ve saved ourselves a lot of money, since a machine that’s not got as good specs would cost us nearly 20K. The machines minimum step size was .05mm or 1.9mil’s but we have improved it to .025mm or 0.984251969 mil! Which is 0.000984251969 inches..

    To recap

    Built arduino shield
    Wrote arduino code
    All pneumatics working
    Repaired reed switch
    Fixed all the broken mechanicals in the head.
    All input switches working on the panel (except down as it was wired to RX oops)
    Limit switches working
    Home sensor working, home written
    Figured out how to ramp up and down the speeds to get the the machine moving quickly
    Automatic Tool Changer all works
    Head down, head up
    Vacuum on and off
    Teach light repaired and working, controllable
    Rotation and centering arms working
    Reed sensor on head up
    Verified our code and board homes the machine to the exact place the original did.
    Calculated travel pulse speed and size of board, machine can gotoxy without a problem
    Doubled the resolution!

    We’ve still got to replace all the hoses as they’re really in bad shape but that’s easy. The next step is software to do the pick and placing, that’s easy too. I’ve already written a gui and added opencv.

    • bob 3:52 am on September 7, 2011 Permalink | Reply

      worked on some of the first Juki over 25 years ago, they are solid beasts.

      Just one thing to watch is the inertia of the cables where they enter the P&P head, if the cables swing back & forth, eventually they wear or break the internal conner strands, with the external covers still intact
      It can take months to track the problem down, because it results in random overshoots/undershoots of the mechanics.

    • charliex 4:14 am on September 7, 2011 Permalink | Reply

      yeah our machine arrived with a broken reed switch wire because of exactly that!

    • varun 1:30 pm on September 7, 2011 Permalink | Reply


      Guys heard you are doing the interface board from scratch is it open source if it is please help the guys at http://openpnp.org/wiki/index.php/Main_Page it would be helpfull. Great work guys waiting for the beast to get


      • charliex 4:41 pm on September 7, 2011 Permalink | Reply

        we are making our own, but we also just made a IO mapping interface for the arduino mega. Its pretty specific to the juki though.

    • Niels 10:03 am on June 25, 2013 Permalink | Reply

      Hi guys over there!

      Excellent job you have made!

      We are planning some similar job on a Juki360 machine.
      Would you like to share the Ardino code with us for the control of valves and stepper motors?

      Have a nice day
      Niels (Denmark)

  • charliex 4:57 am on August 1, 2011 Permalink | Reply  

    Its been a fun busy couple of weeks… 

    Its been a fun/busy couple of weeks at our hackerspace Null Space Labs http://032.la, from an idea to a finished dev kit.




    A couple of weeks ago we decided to redo the Android ADK board from Google and the Circuits@Home/Seeedstudio Arduino board, improving on some aspects of the design but mainly getting it ready for Defcon 19. After doing some rework in Eagle and CNC’ing the boards at Null Space Labs, we sent them off for manufacturing at Silver Circuits ( Who’re also doing a tutorial based on one of the techniques we used for the board, so that’s cool ).

    Oddly a project I’d been working/reworking in my last blog post was also from Circuits@Home, I had no idea til today that Oleg had been the originator of this project, he’s getting apparently not getting much love for it. http://www.circuitsathome.com/ I have a couple of his USB Isolators too.

    On the Demo board we added IR Send and Receive so we can make them into TV B Gone’s, changed out the RGB LED’s for better ones than Google used, made some of the parts bigger to make them easier to build, added the double header row 2×18 for the mega,  and changed the logo Smile for a ninja/pirate droid.

    We also gold plated the demo board, which turned out pretty nice!

    The Arduino board stayed mostly the same, just moving things around though after our first build we’re going to change a few small things that we’ve noticed are problematic in the process.

    A simple pan and tilt was built in Eagle to test the servos, milled out a few interlocking parts and attached a couple of servos.

    Mini pan and tilt

    The Google API uses their USB class software, but it only works on 2.3.4 onwards, and to be honest it doesn’t work on a lot of the 2.3.4 devices either, I couldn’t get my Atrix or Iconia A500 which is 3.1 ( even after I rewrote the code to use the new 3.1 API’s ) So today we took the baseline Seeedstudio APK test and extended it to work with the demo board, I ported all the functions, i2c joystick, RGB Leds and so on to work with MicroBridge instead.

    Most of the time was actually setting up eclipse and the ADK , there are some issues with the version I downloaded of the Google API 10 which wouldn’t let me compile the DemoBoard APK, it turned out that Rev-2 Was named 10-1 and the SDK was using 10 so the usb.jar was missing, renaming it worked. Eclipse is probably the worst IDE I’ve ever used, though its neck and neck with xTunes 4.

    Using the I2C joystick to control the pan/tilt, the temperature and light sensor is on the android tablet, and it also controls the relays from the phone.

    Testing different devices, being a hacker space we have a lot of android phones, not so much of the fruity ones. Here it’s a Samsung Galaxy S2 and an Acer Iconia A500.


    The Board running from a cheap Coby android 2.1 tablet thing from Frys Electronics, it was about $150 USD.2011-07-31_19-42-22_36.jpg

    Doing some things with the Coby, actually about the only thing, it doesn’t even play Angry Birds properly.



    KRS Splitting up resistors to kit for our mini production line.2011-07-31_20-39-13_205.jpg

    Arko is our manual pick and place, ours doesn’t get here for 6 weeks, so we did what most starting civilisations did and relied on ‘free’ labour as its called these days.2011-07-31_20-40-00_763.jpg


    Totally awesome NSL tShirt created by [NSL] top bloke and hacker, frank^2.2011-07-31_20-40-08_732.jpg

    Yes even child labour, tsk tsk those evil hacker types, get back to work.


    Part of the assembly line, even the food table isn’t sacred.2011-07-31_20-40-17_37.jpg

    Final assemble stage, CPU’s and chips are installed here2011-07-31_20-40-31_503.jpg

    Modified Arduino boards with a few of the jellybeans installed2011-07-31_20-39-51_222.jpg

    CNC’d version of the top demo board.


    Stack of boards we did in the last couple of days…. The pick and place can’t arrive soon enough!!!


    Some of the microscopes we didn’t use. These are on their way to the Defcon 19 HHV which we’re lending a hand in.


    The demo board running a pan/tilt servo setup.


    Walk thru of the solder paste application process. (sorry a bit quiet on the audio). I said 5mil for the brass sheet, the original one we tried was 5mil but was too thick, so it’s actually a 3mil sheet, we get them from ace hardware.

    Going from the solder paste to component layout, (Sorry low audio quality).

    mmca soldering in the headers.

    Hot Plating.

    Quick pan of Null Space labs, tis a mess.

    CNC room, low quality, short.

    All the code and changes are available on our wiki , and we’ll have a box of the boards at Defcon too.

    Some of the other things we did this last couple of weeks.

    Our remix of the RFID Arduino shield (PN532), made this into a mega shield, it’s the microbuilder.eu board.

    RFID Shield

    As well as our usual blinky toys.

    Cylon I
    Production version of [NSL] Cylon I

    Cylon II
    [NSL] Cylon II

    Our Logic analyser that fits in an egg
    NullSpace Logic Analyser Egg

    Getting the hot plates machined so we can bring them to defcon, ebay FTW.
    Making a hotplate

    Thermal epoxy
    Thermal epoxy

    Hot plate (before)

    New mic-6 tooling plate

    See you at Defcon 19 !!

    • daniel reetz 9:58 pm on August 1, 2011 Permalink | Reply

      These look great – I hope you plan to sell them after Defcon. I’d be glad to pick up a few.

    • markadamdean 12:27 am on August 2, 2011 Permalink | Reply

      Kudos to you blokes, friends, and scamps ! I am so amazed by your presentation, I will only wish you success and profits! Keep it up !

    • moldavia 2:41 am on August 2, 2011 Permalink | Reply

      I’ll be looking for you guys in the HHV!! Can’t wait to see what you have.

    • Paul Tanner 11:46 am on September 12, 2011 Permalink | Reply

      Any chance of getting hold of your new and improved demo board (with IR etc). We have a couple of seeduino ADK boards and would like to make a nice demo board to go with them. Like you did, I’m still struggling with SDK issues.

      • charliex 4:16 pm on September 12, 2011 Permalink | Reply

        everything is either on the wiki at 032.la or in our svn.

    • james rimmer 11:29 pm on November 27, 2011 Permalink | Reply

      are you planning on selling these online,if so how much

    • Martin 8:49 pm on April 8, 2012 Permalink | Reply

      Can you tell me ho to get one of these boards? The catalog link seems to be broken and the wiki has no entry of the projekt. I realy want to have one of these. Maybe i can have the shematics and the board data if you dont have any pcb left.
      thank you very much

      • charliex 10:08 pm on April 8, 2012 Permalink | Reply

        we’re in the process of updating the store. email krs AT nullspacelabs dot com and you can buy one from her.

    • Martin 10:10 pm on April 8, 2012 Permalink | Reply

      Thank you very much
      How much does one cost?

  • charliex 3:20 am on March 23, 2011 Permalink | Reply  

    Redbull marketing, what’s the latest craze we can attach too, campaign thing 




    Someone from redbull just dropped off a hacker thing at our space [ NSL ] in dtla. I put it together, just a couple of RCA’s, 3.5mm speaker and a NES controller port. The board is covered in flux so needs a good cleaning.

    It’s a NES controller, composite video/audio on an Atmel644  with some AD devices and a code on it

    This is written on it U2V0ZWMgQXN0cm9ub215 / Setec Astronomy / Sneakers / Too Many Secrets(frank^2)

    Chip is USB drive host, so plugging it in gives some files. Encrypted zip file and a bunch of MAC OSX resource forks, no shock there. There is a google gmail attachment url in the resource fork, but not much you can do with it probably Winking smile


    I pulled off the hex file etc,

    Pictures http://www.flickr.com/photos/51925658@N08/5552112502/



    Firmware, files from the usb drive etc.


    its basically this http://belogic.com/uzebox/


    WinstonChurchill –cnelson

    OK, that was an easy one… but you’re not there just yet.

    The riddle that ol’ Winston mentioned was Russia, but we’re talking about a different kind of puzzle altogether.

    Somewhere in this box there is another password, this time for a website.

    Poke, probe, and hack away at this circuit board… it’s an egg hunt.

    When you find the url and the password… go tell us what else you’ve found along the way.

    Good luck for real this time… you’ll need it!


    I’d pulled this apart earlier, then realised it was an uzebox and didn’t bother











    Rick rolling..


    flip it

    Reverse Rickroll

    box it came in


    Uhh yeah sure it is.

    redbull box



    Some overly masculine logo. I feel the need to drink energy drinks now




    Thanks for the pacman game redbull…



    hackers…..not makers….

    • Winston Churchill 3:35 am on March 23, 2011 Permalink | Reply

      It’s a riddle, wrapped in an enigma, wrapped in foam.

    • Jonathan Herr 6:32 pm on March 25, 2011 Permalink | Reply

      Anyone crack that password?

      • charliex 6:41 pm on March 25, 2011 Permalink | Reply

        which one? the zip one is WinstonChurchill, the other one is base64

  • charliex 9:19 pm on October 17, 2010 Permalink | Reply  

    Eagle class at [NSL] 

    There is always a lot of interest in learning Eagle, it cheap and popular. It is not the best PCB layout tool around but for most people it does what they need.

    Thusday, We decided to make a Evil Mad Science Lab’s Larson Scanner, but make it out of all surface mount and try to make it single sided PCB.



    Using Camtasia  I recorded the screen for each part of the class, at just under 1900×1200, whoops, lessons learnt there, most projectors can’t handle that and it makes massive files. The create a part video was 78GBytes.

    So lesson learned, check the native resolution of the projector and go from there! Most people probably don’t run 1900×1200 screens either.


    I grabbed the PDF schematic from EVMSL, then drew it into the Eagle layout, Windell uses gEDA for his schematic.

    The original schematic. Click for a bigger version.


    The layout



    So its always been difficult for me to source Atmel chips, I’m cursed. Digikey had the MLF package ATtiny2313, which is tiny and basically leadless. Since this is [NSL] that is how we do things.

    Next step was to order up enough to make 50 boards, 75 CPUs, 50 switches, 5000 resistors, 5000 capacitors and 500 LEDs. Total cost came into to around $200, not bad for that many boards and we’ve now got some spare components for the next project.

    A nice switch was found, and as a bonus it had no Eagle footprint I could find, so this was the perfect part to use for the ‘Make a Part’ video. Another lesson was about to be learnt, don’t concentrate too much on the video or what to say, and pay attention to the part you’re making, more on that later.

    Friday, I laid out the board, managed to get it all single sided, and cut the board. Found a new feature of my PCB CNC , Black lines means that the distance is too small to cut, and they don’t cut even in force mode, so the first three boards had missing pads… Oh well it was enough to verify the design and the parts hadn’t arrived yet.

    Without the GND polygon processed. you can see the trickiness employed to route the ICSP. But the VCC is missing, which I’d never have gotten in this way without a jumper


    Saturday, the parts arrive from Digikey. I re-laid out the board, had a chat with Chris over at AccurateCNC who’s knowledge about his product and PCB making never fails to amaze me, we chat a bit about the errors of the pads, its interesting that in Eagle if you make a part and it looks the same, the slight math errors that creep can make the difference between an 8mil and a 6mil gap. You’d never see it in eagle without looking at the actual numbers. I’ve seen this a few times on different parts. One pad of an SMD 0603 resistor CNC’d the other didn’t. This is probably due in some part to floating point numbers.

    The bad boards, notice the missing pad on the LED on the right, the 0603 resistor to the right of that and one of the ICSP is missing the isolation, which turns out to be the VCC(3V) too.


    I make the first board, and the MLF package turns out to be really easy to reflow, i basically tinned each of the traces and pad in the middle, placed the part and hot plated it, no problem, except when i test the CPU no go.. Ok add the 3V to the ICSP that i forgot, still no good. And yep the chips in 90o off…. Pull the chip and place another one, this one also drops in easily its almost as if the parts want to sit in the right place, it wasn’t hard to align it at all.

    After fiddling about with the AVR dragon a bit, setting the speed in ICSP mode I flash the chip with Wendell’s HEX file, flashes and verified !

    Next is the addition of the resistors and LEDs, I dab a drop of leaded solder paste on each pad and add the components with tweezers, throw it on the hotplate and everything’s tickety boo. Add 3V and all the LED’s start their dance.

    MMCA says hey try the switch, no go… hmm what up i think, bad joint. Investigate and that’s odd, the schematic said the switch part was lengthways right, nope, its the short side… and the PCB is cut in such a way that all three pads need to be modified. I use an exacto knife to cut the trace , then cut away at the ground plane to isolate all but one of the existing grounded switch pads. This is bringing me back to before I’d rotated the part design by 90o and so the schematic didn’t match the pads. Easily fixed but a pain. Of course I recorded the video and I’m watching myself create a schematic with an obvious short , but wasn’t paying attention to the diagram..

    After much late night not enough coffee stuff, its all together and patched. Here is it with a 3V CR2032 cell as comparison.


    The red wire is the patch to add 3V to the CPU.. which wasn’t routed in the original design… whoops. you can see the cutting of the copper around the switch to make it work too..

    By Saturday morning i have the first pass done, the PCB cut and a working prototype, the changes are back into the board.

    Sunday, I’m watching the video and thinking, have to redo the video in a lower resolution and write up a blog post about it, before i forgot half of what i did.  I’ve re-laid out the schematic, made it smaller, its now square, removed the second header, moved Opt1 and opt2 to opposite sides to allow chaining, added the 3V. Changed the ICSP 6 pin from 3×2 to 6×1 and also changed the order, since it was difficult to reroute the board single without  messy traces and 6mil widths. BatchPCB couldn’t cut the PCB as it was.

    Here’s a video of it in ‘action’

    And the switch works.


    Hopefully on the 29th, a lot of people will have made theirs and add them to pumpkins all over.

    Now to finish up work stuff and then cut the hopefully final PCB,  test a couple and then cut 50 PCB’s, i hope my new V90 bits last..


    No thermals, and i rushed the rubout cut, so didn’t set the depth , but its fine. Only one warning this time and sure enough it had an issue at that corner but right side of the cpu, so i just have to move that trace ever so slightly, I’ll put the polygon thermals back on , as i think it’ll make it hard for people to solder. about 28mm square now. Shame i rushed the rubout as the cut itself was perfect.


    After it’s made.


    Programming with the non standard connector and pogo pins


    Size compare with the previous revision



    Hackerspacing up the battery, superglued onto the FR4, loop a wire around the outside of the battery, then another wire under duct tape. Soldering to coin cells is bad, i didn’t do that other one.

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.