OptiMill BF20 Setup - nortd/driveboard GitHub Wiki
The Optimum BF20 is an entry level milling machine which can be converted for CNC tasks. This requires a retrofit kit and a CNC controller. The following describes how to set on of these up with a Driveboard Element. The Driveboard-specfic part is fairly straight forward and involves wiring and configuring the board.
Hardware
- Optimum BF20L
- CNC conversion kit for BF20L
- TeknoMotor C414/DVDBPLER25
- TechnoMotor mounting plate
- Delta VFD022E21A
Links
Delta VFD Configuration
The Delta VFD has to be configured for the TeknoMotor. Based on the this configuration guide the relevant settings are:
- Spindel top speed 01.00:300; 01.01:300 (18k RPMs)
- Spindel accel/decel 01.09:2.0; 01.10:2.0
- Spindel setting 02.00:1; 04.13:5.0
- 0-5V -> 0-300Hz via analog signal on AVI
- Spindel setting 02.01:1 02.05:2 and 04.04:1
aux_off
: fwd;aux_on
: rev (M2)WP (HIGH, triggered)
:STOP;WP (LOW, normal)
:RUN (M1)
Wiring
The board has 1x USB type-B, 3x barrel 5.5/2.1mm, 15x RJ45, 3x 12-pin headers.
USB
Port for connecting to the computer running DriveboardApp.
- USB, type-B
Power
For milling operation, the board runs on three power sources and keeps them opto-isolated from each other: 24V for the stepper drivers, 5V for the sensor wiring, and 5V from the USB line for the MCU and core logic.
Alternative power setups require certain jumper default traces to be cut. This allows for a different voltage between steppers and coolant.
- Stepper power - 24V - barrel 5.5/2.1mm, 3A (or 75% of summed stepper motor setting)
- Sensor power - 5V - barrel 5.5/2.1mm, 100mA
- Coolant power - barrel 5.5/2.1mm, 100mA (optional, do not connect without cutting trace)
Stepper Drivers
The board comes with three M542H stepper drivers. Make sure to double-check the correct current setting (dip switches between terminals) to match the stepper motors you have.
- DRIVER_X, 12-pin header (top)
- DRIVER_Y, 12-pin header (middle)
- DRIVER_Z, 12-pin header (bottom)
Interlocks
These are the inputs for the axis limit switches. Switches are expected to be normally closed (NC). When triggered they should disconnect the loop. The point of the RJ45 jacks is to use ethernet patch cables for external wiring: Flexible Cat5 or Cat6 shielded (FTP, STP, or SFTP) patch cables with 26 AWG. Polarity does not matter.
- X1 - RJ45
- X2 - RJ45
- Y1 - RJ45
- Y2 - RJ45
- Z1 - RJ45
- Z2 - RJ45
pin# | color | interlock |
---|---|---|
pin-1 | orange-white | pin-1 |
pin-2 | orange | pin-2 |
pin-3 | green-white | pin-1 |
pin-4 | blue | - |
pin-5 | blue-white | - |
pin-6 | green | pin-2 |
pin-7 | brown-white | - |
pin-8 | brown | - |
Spindle Control
The control wire connects to the VFD of the spindle motor.
- SPINDLE, RJ45
pin# | color | spindle VFD |
---|---|---|
pin-1 | orange-white | 5V |
pin-2 | orange | WP |
pin-3 | green-white | 5V |
pin-4 | blue | TL |
pin-5 | blue-white | IN |
pin-6 | green | WP |
pin-7 | brown-white | GND |
pin-8 | brown | GND |
Stepper Motors
Stepper motors are all driven by energizing two sets of coils. A and A' is one set and B and B' is the other set. This board assumes 2x 26 AWG for wiring and results in a maximum supported nominal current of about 3.5A. Make sure to configure the stepper drivers to match the motors.
- X, RJ45
- Y, RJ45
- Z, RJ45
pin# | color | motor |
---|---|---|
pin-1 | orange-white | A |
pin-2 | orange | A' |
pin-3 | green-white | A |
pin-4 | blue | B |
pin-5 | blue-white | B' |
pin-6 | green | A' |
pin-7 | brown-white | B' |
pin-8 | brown | B |
Coolant Control
The board can directly drive a load up to 48V and 1A.
- MIST, RJ45
- FLOOD, RJ45
pin# | color | valve |
---|---|---|
pin-1 | orange-white | pin-1 |
pin-2 | orange | pin-2 |
pin-3 | green-white | pin-1 |
pin-4 | blue | - |
pin-5 | blue-white | - |
pin-6 | green | pin-2 |
pin-7 | brown-white | - |
pin-8 | brown | - |
Workflow
- generate g-code
- model in Fusion 360
- generate g-code with this post-processor: driveboard.cps
- run on job
- power up mill, open DriveboardApp (in mill mode)
- open g-code in DriveboardApp
- homing
- setup work piece zero
- retract
- run tool by tool
Development Notes
Enable swap if running on BBB
- /load with bigger files fails without swap (6MB)
- unquote in urllib uses up 512MB easily
- dd if=/dev/zero of=swapfile bs=1M count=52
- mkswap swapfile
- chown root:root swapfile
- chmod 0600 swapfile
- swapon swapfile
- enable permanently in /etc/fstab with:
- swapfile swap swap defaults 0 0
Open Issues
- next
- split tools into passes, info (tool, feedrate, rpms, bbox)
- retract should stop at machine origin
- eventually
- coolant pump control
- spindle control with TL line
- jogs need a pause in between (or plenty of overlap)
- gcode_reader: segmentize long lines so pause works well
- model machine base
- perfectly calibrate steps
- spindle overwrite
- feedrate overwrite