CNC BF16 - Software

Home

CNC BF16
  • Specifications
  • Mechanics
  • Electronics
  • Controller
  • Software
    CNC Router
    CNC Links

    3D DLP Printer
    UM2+ Dual

    Laser_Show
    CO2_Laser

    Engineering

    Stirling

    Arduino

    VB.NET

    VB6 - 3D
    VB6 - Simulation
    VB6 - Games
    VB6 - Other
    VB6 - Outsourcing

    About

    Valide CSS!
  • This blog is describing the PC software, which is reading asci GCode and send this to the firmware on the controller. I'm sending binary GCode to the firmware on the arduino, so this will be less time consuming on translating text to numbers. Also here are some notes about the software functions, communication protocol & events.

    The G2 & G3 circular interpolation is currently only working in the XY-plane, the starting point of the arc/circle is the current position. The (binair) protocol that will be send to the Arduino is defined as follow:

    Position:1234812162022
    Type:ByteByteByteLongLongLongLongIntByte
    Meaning:G-codeLenX-end [steps]Y-end [steps]X-center [steps]Y-center [steps]Speed delay [ms]CheckSum
    Example:G21801000003000.

    All the units used, are 'absolute' machine coordinates.

    The current software is able to send G0 & G1 code to the Arduino.
    The G-codes are phrased in a series of bytes, which is send via the USB. The next 'protocol' is defined:

    Position:1234812162022
    Type (*:ByteByteByteLongLongLongLongIntByte
    Meaning:G-codeLen (**X [steps]Y [steps]Z [steps]A [steps]Speed delay [ms]CheckSum
    Example:G11820000003000.

    (* Types: Arduino variable types, which corresponds with the VB.Net variables: Long & Int16.
    (** Len: Length of message which will follow, excluded the 'CheckSum' byte, which will always follow. In this way, it's also possible to send different G-Code formats.

    Current program flow:

    • Start-up software & connect to the Arduino
    • Handheld: switch to 'PC' mode
      Now the software receives the current absolute machine positions.
    • Load or write G0 & G1 code
    • Press 'Reset'
    • Press 'Send to Arduino'
      Now one line of code is phrased
    • When the controller is done, it will send: 'C0:Idle'
    • Press 'Send' again for the next line. Of course this software is still under development.

      Screen dump current software: