Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 34 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# OpenSCAD Arduino Mounting library

The library has a variety of modules for creating Arduinos and Arduino mounts. Here is a basic description of the included modules. It includes all official boards through the Due. For examples see the included example SCAD.
The library has a variety of modules for creating Arduinos and Arduino mounts. Here is a basic description of the included modules. It includes all official boards through the Due, plus the MKR WIFI 1010. For examples see the included example SCAD.

![openscadarduinomounting](https://cloud.githubusercontent.com/assets/492003/9833469/f1cbe2dc-5965-11e5-8357-0297916c8885.jpg)
![openscadarduinomounting](example.jpg)

##Dependencies
## Dependencies

Using the [library location instructions](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Libraries),
checkout the `pin_connectors` library in the `libraries` folder, e.g on OSX this is done as follows:
Expand All @@ -27,19 +27,19 @@ platform.
## Arduino Mounting Library Functions

### arduino(boardType)
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET, NANO, MKR_WIFI_1010

*This module creates an Arduino board with USB connector, power supply and headers.*

### bumper(boardType, mountingHoles)
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET, NANO, MKR_WIFI_1010

**mountingHoles** - (OPTIONAL) True or false for external mounting holes for bumper.

*Create a simple bumper style encloser for a particular board*

### enclosure(boardType, wall, offset, heightExtension, cornerRadius, mountType)
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET
### enclosure(boardType, wall, offset, heightExtension, cornerRadius, mountType, standOffHeight)
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET, NANO, MKR_WIFI_1010

**wall** - Thickness of enclosure walls. Default is 3.

Expand All @@ -51,10 +51,12 @@ platform.

**mountType** - TAPHOLE, PIN - How the standoffs attach to the board either using tap holes for screws or pins.

**standOffHeight** - The spacing between the enclosure bottom and the board. MKR_WIFI_1010 needs abot 10mm.

*Creates a box enclosure with a snap-on lid for a particular board*

### enclosureLid(boardType, wall, offset, cornerRadius, ventHoles)
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET, NANO, MKR_WIFI_1010

**wall** - Thickness of enclosure walls. Default is 3.

Expand All @@ -68,7 +70,7 @@ platform.

### standoffs(boardType, height, topRadius, bottomRadius, holeRadius, mountType)

**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET, NANO, MKR_WIFI_1010

**height** - height of standoffs

Expand All @@ -78,12 +80,12 @@ platform.

**holeRadius** - Radius of tap hole in the standoff.

**mountType** - TAPHOLE, PIN
**mountType** - TAPHOLE, PIN, NOTCH recommended for FDM printing for small holes like on NANO and MKR_WIFI_1010

*This creates standoffs for mounting holes. These are simple cylinders that can be tapered. For custom standoffs use the holePlacement() module.*

### boardShape( boardType, offset, height )
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET, NANO, MKR_WIFI_1010

**offset** - creates the shape offset from actual board size. Negative values create an inset shape.

Expand All @@ -92,7 +94,7 @@ platform.
*This creates the shape of the PCB with no holes. The default create a basic Uno PCB.*

### boundingBox(boardType, offset, height, cornerRadius, include)
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET, NANO, MKR_WIFI_1010

**offset** - creates the shape offset from actual board size. Negative values create an inset shape.

Expand All @@ -105,19 +107,36 @@ platform.
*This creates a box whos dimensions are the extremes of the board.*

### holePlacement(boardType)
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET, NANO, MKR_WIFI_1010

*This is used for placing holes and is the basis of the standoff module. holePlacement takes a child element and places it at each of the mounting hole centers for a given board.*



### components(boardType, component, extension, offset)
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET
**boardType** - UNO, LEONARDO, DUEMILANOVE, DIECIMILA, DUE, MEGA, MEGA 2560, ETHERNET, NANO, MKR_WIFI_1010

**component** - ALL, HEADER\_F, HEADER\_M, USB, POWER, RJ45
**component** - ALL, HEADER\_F, HEADER\_M, USB, POWER, RJ45, HEADER\_BI

**extension** - Extention off the board in direction of connector. The default is the standard dimension of the connector, but can be set to an arbitrary value.

**offset** - Offsets the connector cube in the other two dimensions.

*Creates the components( headers, power and usb jacks) for a given board. Also used for creating punchout, by using the extension and offset values.*

## Examples

This creates a simple standoff for an Arduino MKR WIFI 1010.
```
standoffs(MKR_WIFI_1010, height = 10, mountType=NOTCH);
difference() {
boardShape(MKR_WIFI_1010, offset = 3);
translate([0,0,-0.005]) scale(1.01) boardShape(MKR_WIFI_1010);
}

```

The notches might be difficult to clip in, use pliers to carefully apply force without damaging the board.
If the print is perfect, there should be a notable 'click', and the board should fit on without tension,
movable by a few microns.
![FDM printed standoff](mkr_wifi_1010.webp)
Loading