Brainstorming, CAD, CAM, simulation, wood, machining, gluing, sanding, HIPS … the control panel is almost ready!
The structure of the control panel is made of 5mm plywood. The red color is coming from a 1mm sheet of HIPS. Everything machined on my CNC-6040 router with 3.17mm carbide endmill.
The touchscreen is a Beetronics 12″ model. Connected through HDMI to the BeagleBone Black board. Easy configuration: there is native support for the touchscreen USB pointing device in the Machinekit Linux image!
My new project is the retrofit of an Emco Turn 120P CNC lathe.
For the motion controller, I have chosen Machinekit running on a Beaglebone Black board. 12″ touchscreen with Gmoccapy GUI. A Controllino PLC to manage all non-realtime I/O such as the pneumatic chuck, the tailstock, the pumps, etc …
The original 5-phases stepper motors has been kept. They are driven by two Vexa UDK5128N drivers. Need 110V AC source for them, coming from an auto-transformer.
The original spindle DC motor has been replaced by a 3 kW AC motor driven by an Hitachi NE-S1-022 VFD. This VFD is controlled over MODBUS by the Machinekit controller through the PLC. I have patched the standard MODBUS over TCP stack to have a gateway to the RS485 bus.
Here is the global schematic diagram of the electronics.
Next step is the modification of the Probotix PBX-BB cape to give access to the eQEP2 quadrature encoder for the spindle position sensor.
The Wino-board is very interesting for IoT home projects. It is an Arduino tiny board including Wifi interface.
The pitch of the connectors is 2mm to optimize the footprint. But this is not so easy to use with 2.54mm pitch common breadboards. So, I have designed a small adapter to convert from 2mm to 2.54mm pitch.
Here is the PCB machined on my CNC-6040. The label is not finished because the mill broke during the engraving.
The fully assembled adapter board with the Wino-board device soldered on the top.
After trying to implement auto bed leveling feature with a retractable switch, I decided to use a small induction sensor. I experienced poor mechanical reliability with the retractable switch mostly because the PLA bracket was melting when the 2 extruders were hot.
I have modified the original hot end holder design by Ultimaker so that a support plate for the induction sensor can be tightly screwed.
Here is the original design compared to the new one
The induction sensor is a TL-Q5MC1-Z from Omron. Even it is rated for 10 to 30 VDC power supply, it works very well down to 2.5V, including the embedded red LED indicator. The detection distance of the aluminum plate is about 2mm. So I have replaced the 3mm glass plate by kapton tape to accommodate this short detection range.
The sensor is connected to GND, +5V and Pin13 of the Ultimaker controller board so that the ZMIN endstop switch is still active. Keeping the ZMIN endstop is useful for security reason in situation where the induction sensor does not work anymore, or the aluminum bed is not present.
TL-Q5MC1-Z connection (brown, blue, black wires)
I have modified the Marlin firmware as below:
Activation of the 3 points bed leveling feature
Optimization of G28 and G29 sequences
Support of a sensor connected to the Pin 13 of the controller board
BobCAD-CAM is able to manage multiple machine setups in the same project. This is a very useful feature when the workpiece should be cut in several phases with a different fixture for each of them. Below an example with 3 machine setups.
The generated G-Code file contains all operations in the same file, except if you enable manually only one fixture. So, saving one different G-Code file for each machine setup is possible, but quite painful and risky.
To solve this issue, I have designed a custom BobCAD-CAM postprocessor and a dedicated LinuxCNC/Gmoccapy panel to select from one single G-Code file the operations to be executed for a given machine setup. Also, the Gremlin preview is automatically updated according to the selected machine setup. Here is a video showing how it works:
In the BobCAD-CAM generated G-Code file, the section associated to each machine setup is surrounded by if / elseif / endif statements for dynamic selection.
The #<_selected_setup> is a custom named parameter linked to a Gmoccapy panel where the setup number can be selected from 1 to 6.
For those who are not using Gmoccapy or LinuxCNC, another option is to get the chosen machine setup by reading an analog input with a M66 statement.
I have spent some hours to configure properly my BobCAD-CAM postprocessor for good result. One tricky aspect is the tools management: if the tool does not change from one machine setup to the next one, the original postprocessor does not include any further tool change statements in the G-Code file. This is not compatible with my O100 if/elseif/endif hack because, the tool change sequence would be issued only for first machine setup. So, I have added a systematic tool change in the following section of the posprocessor:
The original CNC-Shop control box uses a 0-10V board to drive the VFD spindle speed. This is fully supported by LinuxCNC. However, it needs some tuning of the analog levels for proper operation and there is no feedback on the … Continue reading →
This lighting ring is designed for 18 white LEDs. To be mounted on a 2200W VFD spindle for a milling machine (80 mm overall diameter and 63 mm mounting location). With 12V power supply, group LEDs by 3 units in … Continue reading →