# kicad_to_neoden for Neoden 3V Converter for automated PCB assembly from a KiCad POS file on the Neoden 3V pick-and-place machine This is a version of szczys's kicad-to-neoden, modified for use by the FemtoStar Project, so as to output the format expected by the Neoden 3V we use. We are unsure to what extent this differs from the Neoden 4, however a good few changes were needed to make it work on our 3V. We admit - it's kind of hackish, and remains a work in progress. **NOTE:** This currently expects your board to be in the +X/+Y or +X/-Y quadrant in the POS file. Most boards will be in +X/+Y in Pcbnew and +X/-Y in the POS file ## Usage: `k2n.py some-kicad-file-top.pos (will create some-kicad-file-top_neoden.csv)` ## Notes on coordinates: - In KiCad editor, 0,0 is the top left, down is +Y - In KiCad POS file, 0,0 is still the top left, but down is -Y and your board is in the +X, -Y quadrant if it was in +X/+Y in KiCAD - On Neoden, in machine space, 0,0 is the front left corner of the machine. - The Neoden does not allow negative coordinates, even in board space, and will not let you enter them in the UI. - In POS files and on the machine, but NOT in the editor, higher-value Y coordinates are further UP the board - no "flipping" from the pos file is needed ## Coordinate conversion to avoid negative Y involves: - Finding minimum Y value in input POS file - Taking the absolute value of this - Adding this to all Y coordinates ## When setting up the Neoden: - The "first chip" coordinate you're supposed to set is NOT a fiducial even though it lets you optically align it, unless a fid is your first component - It's literally the first component in order to be placed, and it has to be set to this in machine space - Most component footprints cannot be easily aligned to using the Mark Align feature of the machine - do this manually - It's okay if you're a little off - placement of your board is still based on your fiducials, this is only used to find the fiducials to begin with - The CSV file this generates is NOT the CSV you can import from the Neoden's file manager - that includes feeder information, etc, not just components - To import this CSV file, create or copy a file, then click Edit on it, and import the CSV into the last tab - ensure components are added. - You will need to set fiducial coordinates manually, and mark fiducials as "Skip - Yes" to avoid "placing" them. - Pay attention to component heights, which you set on the machine itself - don't want to slam your parts into the board too hard.