About jontas

I like to make things that people find useful.

Finished assembling the X-Stage

Tips for others:

  • I thought I was smart when I got a shorter M5 for the idler pulley (I had a M5x40 that I tried to use instead of cutting the M5x45) screw (instead of cutting it down) – however it was not threaded as long as the longer screw so it didn’t fit under the X cap. If you think of using a shorter screw, verify that it will fit under the X cap.

The only problem I ran into (apart for the screw) was that when I made sure there was 1 mm clearance between the drive pulley and the motor the timing belt was not level with neither the Y-stage nor the idler pulley. I moved the drive pulley several mm’s up until it was level with the rest.
That was not a major problem as it was easy to reposition it, but it was time consuming to get the drive pulley to be 1 mm above the motor.

The parts laid out:

x-stage parts

The parts for the X-Stage laid out.
The big screw is not the right one, the small image is with the right screw (before it was cut down to size)

Some construction images:
X-Stage construction
X-Stage idler pulley

x-stage construction

The drive pulley on the motor shaft.

And the completed assembly:
x-stage complete

Finished building the Y-stage

This part was very simple and straight forward.

The only two problems I ran into while making the Y-stage was

  • That I did not know what “Flanged bearings” were – and it took me a while to find the <a href="part lists in the subversion archive. Once I had that it was simple to find a data sheet with a drawing on it.
  • [not MakerBot related] The lid for the superglue bottle had been glued to the plastic below. Had to find a Tongue-and-groove pliers to get it unstuck

Tips for other builders:

  • Try to insert the magnets from both sides before finding a small file to make the holes larger
  • If you are unsure what the part you are looking for should look like, consult the part list and the try to find a drawing of it – if you live in a country that isn’t native English speaking there is little point trying to ask others; unless they have made a MakerBot or similar before.
  • When adding the acrylic build surface to the wood start with the two screws that are diagonally to each other (if you would start with one side there is a rather large chance that the last screws won’t line up correctly) [see construction picture 3]
  • When putting in the last magnets, using a plastic plier (or some other non magnetic item) is easier than using a hex key 😉

Some images from the process:
All parts laid out before:

y-stage_parts

The flanged bearings are the white "tubes with a lip on"

Construction images:
y-stage_construction_1
y-stage_construction_2
y-stage_construction_3

Final result:
y-stage_construction_completed

Arrival of MakerBot

Got my MakerBot in the mail.
It is made in batch XVI (hint the batch number is etched into the wooden parts, unlike the serial number it is not printed on a label)

Decided I should name it Fermat (in honor of Pierre de Fermat)
Also stared reading the build instructions and consider if I should paint it or not … the decision is to not paint it for now, maybe try to give it some protective lacquerer later on (not a optimal plan – if you know you want to paint your – do it before starting assembly).

Important: If you have gotten a kit that includes a power supply. Make sure you verify that it is set for the correct operating voltage – if not you will release the magical blue smoke from it.

All parts of the MakerBot (deluxe kit, no plastics plus a heated build platform and a extra Plastruder MK 5 gear upgrade kit) laid out on my bed:
fermat_parts_unpacked

Linux send a log (or output from a command) as a mail from the linux console

Sometimes it is nice to send a log or some other file as a email to someone (or a part of a file)

cat myfile.txt | mail -s 'SUBJECT' example@mail.com;

Change myfile.txt, SUBJECT and example@mail.com to something useful.

It is also possible to send the output of a command to someone

ps -ef|mail -s 'SUBJET' example@mail.com;

MySQL execute statements directly from the (linux) console

Executing a query quickly from the console is nice to be able to do (without having to enter the MySQL console).

  • This will simply output the result to the console where you are.
     user@server:~$ mysql -uUSERNAME -p DATABASENAME --execute "REPAIR TABLE position";

    Replace USERNAME and DATABASENAME with your vars

  • If you would like the output to a file
     mysql -uUSERNAME -p DATABASENAME --execute "SELECT * FROM test" > test.sql;

    Replace USERNAME and DATABASENAME with your vars

  • If you would like the output to be sent as a email
     mysql -uUSERNAME -p DATABASENAME --execute "SELECT * FROM test" | mail -s 'SUBJECT' example@mail.com

    Replace USERNAME, DATABASENAME , SUBJECT and example@mail.com with your vars

Keep ie6 installed (don’t update ie to newer versions)

For testing I like to keep older versions of Internet Explorer installed, here are some notes on how to disable the updating of Internet Explorer to newer versions.
I only recommend doing this on a machine that should keep Internet Explorer 6 in order to do development testing.

  • Disable Internet Explorer 7 Open up a registry editor and check if the key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Setup\7.0” exists, otherwise create it (the key is the tree structure in regedit).
    Now enter a Key name “DoNotAllowIE70” as a DWORD and give it the value “1”.
    This will keep Internet Explorer 8 from installing on this computer.
  • Disable Internet Explorer 8 Open up a registry editor and check if the key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Setup\8.0” exists, otherwise create it (the key is the tree structure in regedit).
    Now enter a Key name “DoNotAllowIE80” as a DWORD and give it the value “1”.
    This will keep Internet Explorer 8 from installing on this computer.
  • Disable Internet Explorer 9 Open up a registry editor and check if the key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Setup\9.0” exists, otherwise create it (the key is the tree structure in regedit).
    Now enter a Key name “DoNotAllowIE90” as a DWORD and give it the value “1”.
    This will keep Internet Explorer 9 from installing on this computer.
  • Disable Internet Explorer 10 Open up a registry editor and check if the key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Setup\10.0” exists, otherwise create it (the key is the tree structure in regedit).
    Now enter a Key name “DoNotAllowIE10” as a DWORD and give it the value “1”.
    This will keep Internet Explorer 10 from installing on this computer.
  • Disable Internet Explorer 11 Open up a registry editor and check if the key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Setup\11.0” exists, otherwise create it (the key is the tree structure in regedit).
    Now enter a Key name “DoNotAllowIE11” as a DWORD and give it the value “1”.
    This will keep Internet Explorer 11 from installing on this computer.
  • The values mean the following:

    • When the key value name is not defined, distribution is not blocked.
    • When the key value name is set to 0, distribution is not blocked.
    • When the key value name is set to 1, distribution is blocked.

    note This article is updated as new versions are released.

    If you need to do this on several computers then you can download Toolkits to do this from Microsoft (warning: read the instructions and verify that you ran it correctly on the first computer you run it on):

    Apache2 unseting AddDefaultCharset (via .htaccess)

    Setting a default charset using .htaccess is a simple thing to do

    However sometimes there is a need to unset default charset as well (for instance if the AddDefaultCharset is set in the apache config and this is causing problems).

    This is very easy to do just edit the .htaccess file and add a line that says

    AddDefaultCharset OFF

    Linux: Finding the serial number of a hard drive

    Finding the serial number of a hard drive on a Linux console (as root) is simple with the right tool.
    The right tool in this case is hdparm (using the -i option).
    -i will query the device directly for the details.

    Example:

    themachine:/proc# hdparm -i /dev/sda
     
    /dev/sda:
     
     Model=ST31500341AS                            , FwRev=CC1H    , SerialNo=            9VS21ZXM
     Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
     RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
     BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=?16?
     CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=18446744072344861488
     IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
     PIO modes:  pio0 pio1 pio2 pio3 pio4 
     DMA modes:  mdma0 mdma1 mdma2 
     UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
     AdvancedPM=no WriteCache=enabled
     Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7
     
     * signifies the current active mode

    Using the option -I instead gives even more information:

    themachine:/proc# hdparm -I /dev/sda
     
    /dev/sda:
     
    ATA device, with non-removable media
            Model Number:       ST31500341AS                            
            Serial Number:      9VS21ZXM
            Firmware Revision:  CC1H    
            Transport:          Serial
    Standards:
            Used: unknown (minor revision code 0x0029) 
            Supported: 8 7 6 5 
            Likely used: 8
    Configuration:
            Logical         max     current
            cylinders       16383   16383
            heads           16      16
            sectors/track   63      63
            --
            CHS current addressable sectors:   16514064
            LBA    user addressable sectors:  268435455
            LBA48  user addressable sectors: 2930277168
            device size with M = 1024*1024:     1430799 MBytes
            device size with M = 1000*1000:     1500301 MBytes (1500 GB)
    Capabilities:
            LBA, IORDY(can be disabled)
            Queue depth: 32
            Standby timer values: spec'd by Standard, no device specific minimum
            R/W multiple sector transfer: Max = 16  Current = ?
            Recommended acoustic management value: 254, current value: 0
            DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
                 Cycle time: min=120ns recommended=120ns
            PIO: pio0 pio1 pio2 pio3 pio4 
                 Cycle time: no flow control=120ns  IORDY flow control=120ns
    Commands/features:
            Enabled Supported:
               *    SMART feature set
                    Security Mode feature set
               *    Power Management feature set
               *    Write cache
               *    Look-ahead
               *    Host Protected Area feature set
               *    WRITE_BUFFER command
               *    READ_BUFFER command
               *    DOWNLOAD_MICROCODE
                    SET_MAX security extension
               *    Automatic Acoustic Management feature set
               *    48-bit Address feature set
               *    Device Configuration Overlay feature set
               *    Mandatory FLUSH_CACHE
               *    FLUSH_CACHE_EXT
               *    SMART error logging
               *    SMART self-test
               *    General Purpose Logging feature set
               *    WRITE_{DMA|MULTIPLE}_FUA_EXT
               *    64-bit World wide name
                    Write-Read-Verify feature set
               *    WRITE_UNCORRECTABLE_EXT command
               *    {READ,WRITE}_DMA_EXT_GPL commands
               *    Segmented DOWNLOAD_MICROCODE
               *    SATA-I signaling speed (1.5Gb/s)
               *    SATA-II signaling speed (3.0Gb/s)
               *    Native Command Queueing (NCQ)
               *    Phy event counters
                    Device-initiated interface power management
               *    Software settings preservation
               *    SMART Command Transport (SCT) feature set
               *    SCT Long Sector Access (AC1)
               *    SCT LBA Segment Access (AC2)
               *    SCT Error Recovery Control (AC3)
               *    SCT Features Control (AC4)
               *    SCT Data Tables (AC5)
                    unknown 206[12] (vendor specific)
    Security: 
            Master password revision code = 65534
                    supported
            not     enabled
            not     locked
            not     frozen
            not     expired: security count
                    supported: enhanced erase
            240min for SECURITY ERASE UNIT. 240min for ENHANCED SECURITY ERASE UNIT.
    Logical Unit WWN Device Identifier: 5000c50014ec1f60
            NAA             : 5
            IEEE OUI        : c50
            Unique ID       : 014ec1f60
    Checksum: correct