Tick, tick, tick…
Apr 11, 2014 Computers, Electronic Projects, Home Projects, Linux, MythTV, Programming, Rain Barrel
My, how time flies.
I need to catch up on a bunch of stuff soon.
- First, I have started building custom K-Cup holders called the Kupousel. Please check them out.
- I have spent a lot of time with my “new” CNC’ed X2 Mini-Mill. Lots of mods and stuff I hope to post about.
- Sill making Tonal Insanity effects pedals. The mill is helping with them. Started using surface mounted components.
- Got my hands on some Arduino knock-offs and been using them to develop other AVR stuff.
- Built an SMD reflow oven from a toaster oven and a ATmega for a PID control.
- Built (cobbled together) a new spindle for my old router when the Roto-Zip started to give out. It also has less run out so I can route PC board directly now, even SMD stuff.
- Completely re-written my Board Tools program with even more options, partly to take advantage of the new spindle and mill.
- Will be re-re-re-building the rain barrel yet again this year. Last year I tested a control using a pico-power ATtiny13a AVR. Worked well, needs a bit of fine tuning. Main reason for rebuild is the barrel cracked, I moved the garden, and I dropped the solar panel at the end of last year and broke it.
- Building my daughter a loft bed – out of an old desk.
- Rebuilt my MythTV system and got in a fight with the stupid cable box that uses XMP IR protocol. (on going)
- Oh! It has been so long I never mentioned my new main computer: 8-core! AMD “Bulldozer” FX-8120, liquid cooled, msi 970A-G46, 16GB RAM, 1TB HD, Bu-ray burner, 23″ wide screen monitor, running Fedora 19 (20 soon). It F…’IN SCREAMS! Built Android (for A10) complete from source in a few hours! That was why I got it thrown in on a job to modify a Mele A2000 STB into a network/web based, Scent Palette controller. Builds MythTV in about 10 minutes.
Hopefully I will add more info in less than the next 2 years!
Number of View :8116Testing a New Blog! – WordPress
May 1, 2012 Programming, Web
Testing out a new blog.
Number of View :6692PC Board Tools
Mar 23, 2012 Electronic Projects, Programming
Here are the scripts I use to convert PC boards from Kicad to G-code.
http://www.lwill.net/downloads/boardtools-01.tar.gz
This is the README included for information.
README 03/28/20012 Tested with LinuxCNC 2.6.0~pre and KiCad (2012-01-19 BZR3256)-stable and pcb2gcode 1.1.4 ### DISCLAIMER ### CNC MACHINES CAN BE DANGEROUS!!! THOROUGHLY CHECK AND TEST ANY CODE BEFORE RUNNING!!! Files included in boardtools directory: doall.py GUI front end for pcbbatch pcbbatch.py Batch file to run all programs using config file boardcfgdef.py Default config file Etch_Z_adjust.2.2.cl.py Modified command line version gerber2emc2cl.py Modified command line version p2gdrillopt.py For optimizing drill files p2gpathopt.py For optimizing paths demo Directory with sample Kicad layout, gerbers, and sample boardcfg.py for testing REQUIRED: python-argparse pcb2gcode installed on system EMC2/LinuxCNC 2.5+ KiCad Optional: opti (from Etch_Z_adjust) Untested, I have not used it, not included -Quick and dirty: Extract. For GUI, from boardtools directory run: $python doall.py You will probably need to run doall.py at least once to verify default file paths. Save defaults to boardcfgdef.py in installed directory. To try demo: Click "Load boardcfg" Open the demo directory and choose boardcfg.py Click "Default Paths" and set to the correct locations. Click on "Browse" under "Board back" and reselect "demo-Back.gbl" to make sure the path is working directory is correct. This will automatically set the other files correctly. Click "Run boardcfg" (it will automatically ask you to save) Check out the generated files! To run a config file from a project directory: $python boardcfg.py -The idea: Generate ready to run g-code files from KiCad for LinuxCNC using one interface. -The method (how I do it): Schematic and board layout with KiCad. I use the Comment layer for text and draw board outline using actual tool path based on the bit I will be using so I can leave gaps to keep boards paneled together. (there is an option to use pcb2gcode for outline instead) Generate gerbers and drill files (4). *Back.gbl, *PCB_Edges.gbr, *Comments.gbr, and *.drl Use pcb2gcode to generate back and drill g-code files. * the paths are very "stair-steppy" which I did not like Use gerber2emc2cl to generate text and outline g-code files. Join the paths and text together in one file. Use p2gpathopt to reduce "stair-step", smooth paths, and reduce moves. Due crude optimizing. Use p2gdrillopt to due crude optimizing and optionally use only one drill bit. Use Etch_Z_adjust (*modified) to do auto-leveling. -The Solution: Have a config / batch script to do all this automatically. In reality there is a script that is placed in the drawing directory that holds the configs (boardcfg.py) and calls another script (pcbbatch) that does all the hard work. This way boardcfg can be run in place when a board is modified without copying main script to each drawing directory. All needed settings needed to run are saved in the boardcfg.py file. A GUI to select all the various setting and generate the config file and optionally run it. Config file default name is boardcfg.py This can be modified by hand "at own risk" if desired, but may break compatibility with GUI. Undocumented. -What does the work: pcb2gcode Etch_Z_adjust.2.2.cl.py Modified command line version. Added ability to re-run file without re-probing. Modified to use a separate probe instead of tool bit, and to set tool height automatically.(Must use EMC2/LinuxCNC 2.5+!!!!!! uses G10) gerber2emc2cl.py Modified command line version. Added ability to mirror and offset. p2gdrillopt.py For optimizing drill files. Allows using only one drill and does crude optimizing using Morton number. p2gpathopt.py For optimizing paths. Smooths out pcb2gcode paths by finding the midpoint of each stair-step, eliminates redundant points creating straight lines within a set tolerance. (difference in slope < .001 or about .057 degrees) Adds very slight deviations from original, but gives much smoother result. You decide. Also optimizes based on Morton number. -Credit where credit is due: While thoroughly hacked and mangled, my work is based on these previous works. Both have no copyright/left restrictions in the files. I likewise put no restrictions other than ask for credit if you use it. (Please visit lwill.net) Etch_Z_adjust from michael_m at cnczone.com http://www.cnczone.com/forums/pcb_milling/82628-cheap_simple_height-probing-11.html#post843483 gerber2emc2 from SAMMEL Lothar on the LinuxCNC wiki http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Converting_Tools -Other software: KiCad http://kicad.sourceforge.net/wiki/Main_Page LinuxCNC http://www.linuxcnc.org pcb2gcode http://sourceforge.net/apps/mediawiki/pcb2gcode/index.php?title=Main_Page -Why my settings / method seems weird: I actually use a coated board and a drag bit to scribe the coating, then drill it without removing it from the machine, then etch in FeCl. The scribe only needs to be offset .001. The scribe and probe mount off to the side of my spindle, that is the reason for the offsets. I also use Etch_Z_adjust for engraving other things using a normal engraving bit and separate probe which was the original reason for modifying it. I used the Morton number optimizing method because it was fast and simple and better than nothing. I may rewrite the optimizing method later. This is my first major attempt at Python programming, so it is ugly. It started simple, and 1100+ lines of code later.... So don't ask why I did something the way I did, the answer you will likely get is "Because it worked!" More info on this and other stuff at lwill.net/blog All comments are welcome, but I reserve the right to ignore them! I can be contacted though lwill.netNumber of View :22417
Tags: electronics, pc boards, programming