PNG/JPEG Design Guide

For BotFactory Printers

Carlos Ospina (BF)

A hands-on guide to designing with images

For BotFactory Printers

The following guide will describe the steps needed to create and upload a circuit using an image editing tool, such as Microsoft Paint, Adobe Illustrator, GIMP or Inkscape. This guide has been written for Inkscape, but the concepts apply to any drawing tool.

Quick Links

This tutorial can be a bit long, but you can jump to the most important points using the following links:

Odoo image and text block

How does printing from JPEG/PNG work?

BotFactory's printers support printing from images by following a set of parameters. The formats currently supported are JPEG and PNG

Before you begin

You need the following:

  • Any image editing software (Paint, Illustrator, Inkscape etc)
  • An idea of the circuit you wish to design
Odoo text and image block

Creating a New Circuit

When you launch Inkscape, a new document should automatically be created. Before you start working on yoru circuit, you need to change the canvas size to fit BotFactory's specifications. 
  1. Navigate to File > Document Properties (Keyboard Shortcut: Ctrl+Shift+D)
  2. In the "Page" tab, look for the box labeled "Custom Size"
  3. Change the width to 2940, height to 3300 and units to pixels (px)
  4. Click on the box next to Background color, and in the Background color window that pops up, drag the opacity (last row) all the way to the right. Alternatively, enter 255 in the last field
The updated canvas is maximum size your circuit can be in order to be printed by a BotFactory printer. If your circuit cannot fit into the canvas, the printer will generate an erorr message when you try to upload the file. 
Odoo text and image block

The circuit trace layout

Drawing the orientation and position of all the components in your circuit

Working on different layers

Inkscape supports working on different layers, and this is helpful when you are working with complicated circuits that involves multiple layers and/or a lot of parts. To open or close the layers panel on the side bar, use the keyboard shortcut Ctrl+Shift+L.
  1. Open the layers panel
  2. Double click on Layer 1, and rename it to "background"
  3. Click on the plus sign, or use Ctrl+Shift+N to create a new layer. Name this new layer Outline, and set the position to "Above current"
  4. Using the same method, create a layer named "F-Cu"
  5. Left click on the F-Cu layer to make it active
Odoo text and image block

Understanding dimensions in pixels

BotFactory's printers operate at 600dpi, or dots per inch. This means that there are 600 dots/pixels per 1 inch of trace you wish to print. Due to differences in resolution scaling in different image editing software, it is best to work direclty in pixels. This ensures maximum compatibility when you upload your file to the printer. 
Quick conversion guide

1 inch = 600 pixels
1 mm = 1/25.4 inches = 23.62 pixels
1 mil = 0.001in = 0.6 pixels
10 mil = 0.01in = 6 pixels

Odoo text and image block


Understanding solder pads

BotFactory's printers support printing and placing Surface-Mount Devices (SMDs). These SMDs are connected to the circuit using solder pads, which are conductive pads that are interconnected via traces. 
There are different types of pad arrangements (known as footprints or landing patterns). The simpler pad arrangement are those corresponding to 2-leaded components. These 2-pad arrangement use 3 parameters that define a set of solder pads: Length(a), Width(b) and Gap(c).
Quick Reference Table for typical SMD sizes
​Size (Imperial) Length (a) (px) Width (b) (px) Gap (c) (px)
​0201 7 7 7
0402 14 12 12
0603 21 14 21
0805 31 17 28
1206 38 21 47
1218 114 21 47
2010 66 35 47
2512 84 38 90
If your component is not listed, refer to the data sheet for the recommended solder pad sizes and convert them to pixels
Odoo text and image block

Drawing your parts

Now you are ready to draw your parts. Do not include the routed tracks at this stage, we will deal with those later. Only consider the parts that will go onto your circuit.
In this tutorial, we are going to use a simple battery powered LED circuit as an example. It will contain a coin battery holder, a 1206 LED, and a 1206 resistor. We have chosen this battery holder for demonstration purpose.
  1. Refer to the table in the previous section. Find the Length, Width and Gap for a 1206 component. 
  2. In Inkscape, select the Rectangles and squares tool (keyboard shortcut: F4)
  3. Create a shape of any size. Do not worry about the position or dimension. 
  4. Select the rectangle, and change the size using the fields highlighted near the top. Change the Width to 21px, Height to 38px and the X and Y position to a whole number. We are going to place them at 800,1800.
  5. If the circuit is too small, zoom in and out with Ctrl+Mousewheel
  6. Duplicate the pad
  7. Calculate the new X position [original X (800px) + Width (21px) + Gap (47px)], and use the same Y position (1800px). This means that the new position should be (868,1800)
If you are going to have more than 1 copy of the same footprint, we recommend that you simply duplicate the pair of solder pads you have just created. To do this, select both pads by clicking and dragging over them, right click on a pad and select Group. Now you can duplicate the pads using the copy and paste feature to save some time. 
Odoo text and image block
Odoo text and image block
Odoo text and image block

Drawing odd shaped parts

Now that we have some 1206 solder pads, we need to draw the solder pads for the battery holder. The recommended footprint can be found in the datasheet, and it is also shown on the right. 
We are going to translate this footprint to graphical shapes in pixels. 
  1. Change the numbers in inches to pixels
  2. Draw 2 rectangles of size 60x120px
  3. Draw a circle of radius 210px
  4. Rearrange the parts to match the spacing specified in the datasheet. 
Odoo text and image block
Odoo text and image block

Creating the paste layer

Before routing your tracks, we need to create the layer for the printer to extrude epoxy onto. 
  1. Open the layers panel
  2. Right click on F-Cu layer, and select Duplicate current layer
  3. Rename the new layer to F-Paste
Odoo text and image block

Routing the tracks

Now we are ready to route the tracks on your circuit. 
  1. Select F-Cu layer to make it active
  2. Select the "Draw Beizier curves and straight lines" tool (keyboard shortcute: F6)
  3. Route the tracks according to your design 

  4. Double click on a track, and open the Fill and Stroke panel (keyboard shortcut: Ctrl+Shift+F)
  5. For a trace width of 10 mils, change the width to 6 pixels
Design Rules:
Min Clearance Min Track Width Min Via Diameter Min Via Drill
Squink 12mil 10mil 40mil 30mil
SV2 10mil 8mil 30mil 20mil

Odoo text and image block
Odoo text and image block

Creating an outline

Next, create an outline so the printer can recognize where your circuit is at. 
  1. Open the layers panel
  2. Click on the Outline layer previously created to make it the active layer
  3. Using the straight line tool, draw a border enclosing your circuit
Odoo text and image block

Creating Pick and Place files

This is the file used by BotFactory's printer to place your components

Creating the file

  1. Open Excel, or any other software capable of creating and editting a csv file (even notepad works)
  2. In the header row, input "Ref,Val,Package,PosX,PosY,Rot,Side"
  3. Select the outline in Inkscape, and make a note of the X and Y position. In this example, it is (800,1200)
  4. Select the battery holder, and make a note of the X and Y position, as well as the width and height. We need to look for the center of the part, and find the distance from the origin to the part. 
  5. The X coordinate of the center of the battery holder will be [X position (870.894) + Width*0.5 (600*0.5)] = 1170.894
  6. The Y coordinate of the center of the battery holder will be [Y position (1236.23) + Height*0.5 (420*0.5)] = 1446.23
  7. The distance between the origin and the center of the battery holder will be [(X_Part - X_Origin),(Y_Part - Y_Origin)] = [370.894, 246.23]
  8. This is in pixels, we need to convert it to mm. Refer to the conversion guide near the top of this document. 
  9. The final PosX and PosY of the battery holder is 15.701mm and 10.424mm. 
  10. If the part is rotated 90 degrees, change the Rot to 90
  11. Repeat this process for all other parts
  12. Save the file as <Project Name>-PNP.csv
Odoo text and image block

Generating Files for the printer

This is the file used by BotFactory's printer to print and paste your circuit

File Exporting

  1. In Inkscape, open the Layers panel
  2. Select the Outline layer
  3. Right click on the layer, and select Show/Hide other layers
  4. You should only see the outline at this point
  5. Open the Export panel (keyboard shortcut: Ctrl+Shift+E)
  6. Select "Drawing" under export area
  7. Name the file <Project Name>-Edge.png
  8. Click Export
  9. Select the F-Cu layer, and hide all other layers
  10. Export the F-Cu layer and name it <Project Name>-F-Cu.png
  11. Select the F-Paste layer, and hide all other layers
  12. Export the F-Paste layer and name it <Project Name>-F-Paste.png
Odoo text and image block

Final Check

Navigate to the output folder you previously selected, and verify that you have these files in the folder.

<Project Name>-PNP.csv
<Project Name>-Edge.png
<Project Name>-F.Cu.png
<Project Name>-F.Paste.png

Odoo text and image block

Uploading files to printer

Odoo CMS - a big picture
Navigate to the printer's URL, and select Single Layer print. Upload the files in the following order:
Layer​ File
Outline Edge.Cuts.png
Traces F.Cu.png
Glue F.Paste.png
Pick and Place PNP.csv
Follow on screen instructions to print and assemble your circuit!