Planet Cnc Compatible Format Codedigishara



In this article, we’ll be talking about the core component of every CNC program – G-code. Serial communication interface in microprocessor. G-Code at a Glance. Manufacturers all around the world use CNC programming to control a machine’s tools to produce parts. At the heart of this automated manufacturing process is a set of instructions that tells a CNC machine where – and how – to. Last visit was: Tue Jan 19, 2021 11:47 am. It is currently Tue Jan 19, 2021 11:47 am.

Dear sirs ,

Planet Cnc Compatible Format Codedigishara Windows 10

  • Based on Mekanika's core philosophy, every tool or machine we develop is released under an open source license (CC BY-NC-SA 4.0). This project showcases our ergonomic CNC router, controlled using a Raspberry Pi and offering all the pro features and security that any good milling machine should ha.
  • The PlanetCNC series of CNC motion controllers are link between a personal computer and motor drivers supporting step/direction control. They are compatible with most drivers. The controllers use the USB or Ethernet port, available on all modern computers and laptops. They can serve as.
  • Planet excels at accurate predictive RF modeling so that mobile operators can reliably simulate mobile performance, and benefit from effective CAPEX budgeting, and optimal ROI in their real-world site deployments. Planet offers a range of accurate and unique propagation models, already validated for 5G, such as CRC-Predict, Planet 3D model (P3M.
Before a month , i bought a usb interface cnc controler from e-bay DIY .
As i am very new in hobby cnc, i try to use usb programs to see whitch is
the best for me and my computers 'with out serial ports'.
I purchase today for about 86eur the Planet Usb Software witch is the only
best i thing.I test it in Evaluation mode and is working good for XYZ but with
limits on about 25 commands g-code.
As i see TODAY in your first home page my board is the Last on FAKE boards
China photoes List ,Realy i didnt Know this.
Now What we can do (i didnt mean money back).
how i get the activation key from you?
here is what i see when i connect the driver board:
MUWB-xxxx-xxxx-CWJG SERIAL 030784
Here is what i see on start up first page box
software 2.10.1307.3101
hw 2013.03.31
sn 30784 DIY
regards
George Agiades Comp.Atomat. EngI plan to add this kind of chinese MPG ( wireless WHB03, WHB04 and wired HB04, HB03 ) to Planet CNC and reveal some technical details for other who want to use it where they want..
First of all both of this device ( include wireless version ) looks in system like a HID device ( really two HID device one for read data.. and another one for sending DRO through HID SetFeature request ).
Photos:
WHB03 HB03 ( it designed for NCStudio )
WHB04 HB04( it designed for Mach3 )
WHB04
whb04.jpeg (8.49 KiB) Viewed 33483 times

USB VID & PID
Code: Select all
WHB03:
VID: 0x10CE
PID: 0xEB6E
WHB04:
VID: 0x10CE
PID: 0xEB70

How can we know which of this two HID devices for read and which write ?
To select correct hid device you need check input report length field. if this field is 6 it is our READ hid.. and if feature report length is 8 it is our WRITE device.. this is correct for BOTH device..
How to read device data ?
When you push the button.. or spin the wheel.. device send data to READ hid.. and data format is:
Code: Select all
#pragma pack( push, 1 )
struct whb0x_in_data
{
uint8_t rep_id;
uint8_t btn_1;
uint8_t btn_2;
uint8_t wheel_mode;
int8_t wheel;
uint8_t xor_day;
};
#pragma pack( pop )

rep_id - it is our report ID ( value is 4 for both device )
btn_1 & btn_2 - button code.. you can push TWO simultaneously..
wheel_mode - mode of handwheel ( you can choose it with positional switcher near to wheel )
Code: Select all
0x00 - position switch to off state
0x11 - position switch to X state
0x12 - position switch to Y state
0x13 - position switch to Z state
0x15 - position switch to Spindle speed state
0x14 - position switch to Feedrate speed state
0x18 - position switch to Processing speed state ( A-axis for HB04 )

wheel - it is direction and speed of wheel.. when we spin wheel to CW dir it will be positive from 1 to 10 ( maybe little more.. and this value based on current spin speed ) and when spin wheel to CCW value be negative from -1 to -10 ( based on spin speed too )
xor_day - very intersting value.. it is a crypted DAY OF THE MONTH this value settable with HID Set Feature and used as key for simple XOR crypt what used for very easy protection of they protocol..
how to resolve real day value ?
Code: Select all
day_value = btn_1 ^ xor_day;

Thats all i think..
How to write device data ?
All data writen to writable HID with HID Set Feature request.. all data divided in 8 byte blocks and sent to device..
Data structure for both model's ( little difference in postition but all other is same )
Code: Select all
#pragma pack( push, 1 )
struct whb03_out_data
{
/* header of our packet */
uint16_t magic;
/* day of the month . funny i know*/
uint8_t day;
/* work pos */
uint16_t x_wc_int;
uint8_t x_wc_frac;
uint16_t y_wc_int;
uint8_t y_wc_frac;
uint16_t z_wc_int;
uint8_t z_wc_frac;
/* machine pos */
uint16_t x_mc_int;
uint8_t x_mc_frac;
uint16_t y_mc_int;
uint8_t y_mc_frac;
uint16_t z_mc_int;
uint8_t z_mc_frac;
/* speed */
uint16_t feedrate_ovr;
uint16_t sspeed_ovr;
uint16_t feedrate;
uint16_t sspeed;
uint8_t step_mul;
uint8_t state;
};
struct whb04_out_data
{
/* header of our packet */
uint16_t magic;
/* day of the month . funny i know*/
uint8_t day;
/* work pos */
uint16_t x_wc_int;
uint16_t x_wc_frac;
uint16_t y_wc_int;
uint16_t y_wc_frac;
uint16_t z_wc_int;
uint16_t z_wc_frac;
/* machine pos */
uint16_t x_mc_int;
uint16_t x_mc_frac;
uint16_t y_mc_int;
uint16_t y_mc_frac;
uint16_t z_mc_int;
uint16_t z_mc_frac;
/* speed */
uint16_t feedrate_ovr;
uint16_t sspeed_ovr;
uint16_t feedrate;
uint16_t sspeed;
uint8_t step_mul;
uint8_t state;
};
#pragma pack( pop )

About main fields:
magic - magic value indicate what it is a first packet and it is always 0xFDFE
day - day of the month .. it will read back from readable HID.. as we talk before.. you can use it for your own needs.
#_wc_int - it is integer part of position.. as example if position 135.17 we must fill it with value 135.. and if our position is -77.89 we must put value 77 to this var.. ( we always put POSITIVE value to this value )
#_wc_frac - it is 8bit for WHB03 and 16bit for WHB04 .. it is simple whan you look two display max frac part for WHB03 it is .99 and for WHB04 it is .9999 .. this value also have a SIGN bit if value is negarive you must set most significant bit to 1.. little example:
WHB03
Planet cnc compatible format codedigishara toolour X position is: -117.33
we put 117 to x_wc_int
we also put 33 to x_wc_frac
we have negative value.. we also need to set most significant bit of x_wc_frac to 1..
Code: Select all
x_wc_frac = x_wc_frac | 0x80;

WGB04
our X position is: -220.3345
we put 220 to x_wc_int
we also put 3345 to x_wc_frac
we have negative value.. we also need to set most significant bit of x_wc_frac to 1..
Code: Select all
x_wc_frac = x_wc_frac | 0x8000;

feedrate_ovr - our fedrate override value.. just put something
sspeed_ovr - display our speed override value..
feedrate - current feedrate
sspeed - current speed

Planet Cnc Compatible Format Codedigishara File


step_mul - it is step multiplier for our wheel.. if we change it in software we can show this value to user..
Code: Select all
low nibble
0x00 - 0*1x
0x01 - 1*1x
0x02 - 5*1x
0x03 - 10*1x
0x04 - 20*1x
0x05 - 30*1x
0x06 - 40*1x
0x07 - 50*1x
0x08 - 100*1x
0x09 - 500*1x
0x0A - 1000*x
hi nibble ( can be combined with low )
0x10 - back to original
0x20 - floating on the knife(?)
0x50 - back to mechanical origin
0x60 - fine adjastment

it does not change wheel value from readable HID.. it is just to notify user..
state - this is state value.. used to notify user of state of our machine or if you need something from user..
Code: Select all
0x01 - Run state blink
0x02 - Pause state blink
0x80 ( 0x40) - flash yes/no leds ( only for WHB03 ? )

To send data you need to split it in 7 bytes blocks ( if latest block less than 7 you need add padding to it ) add first byte to this block it be report ID ( value must be 6 ) and then send it trought set feature request.. Planet Cnc Compatible Format Codedigishara
as example:
Code: Select all
our data is
00 01 02 03 04 05 06 07 08 09
we send it as
[06] 00 01 02 03 04 05 06
[06] 07 08 09 [00] [00] [00] [00]

[] - it added data
Power saving
After 30 seconds, device go to sleep mode ( screen will not update! )..

Planet Cnc Compatible Format Codedigishara Tool


------------------------------------------------------------------------------------------------------

Planet Cnc Compatible Format Codedigishara Download


Planet Cnc Compatible Format Codedigishara Hp

I think this information will useful for anyone who want to use this MPG with your own project and so on..

Planet Cnc Compatible Format Codedigishara Software


I already create some demo project to use this MPG with PlanetCNC.. i will publish it soon as i make it more stable for testing.. thnax
p.s: if anyone have a (W)HB04 .. PM me please