- ...
- Please let me know, if you have ideas or need improvements (open an issue)
Estelcam is a simple and powerful CNC Software with integrated CAM. You can control your homebuild CNC with Estelcam and different hardware. Especially if you use Arduino Uno or Arduino Nano, it is not possible to connect a jog wheel to the hardware. Instead you have to use the jog functions within Estelcam or keyboard/keypads.
To improve usability and get better a haptical feeling, I wanted to connect a simple joystick, rotary knobs and a linear slider directly to the PC as a simple jog. The following functions are implemented:
- joystick for X/Y
- buttons for Z up/down
- slider for speed of the axis
- rotary knobs for feed and spindle speed
The Teensy LC is emulating the keyboard. The firmware is a simple sketch written in the Arduino IDE.
- 1x Teensy LC or Teeny 3.2 or similar Link
- 2x rotary encoder KY-040 or similar Link
- 1x potentiometer 10k.... 100k Link
- 2x push button Link
- 1x joystick KY-023 Link
- the Firmware is written as a sketch in the Arduino IDE
- more information about Teensy LC Link
- download and update the Arduino IDE >2.0.x with Teensyduino to get hardware support and additional USB functionality Link
- open Arduino IDE
- open the sketch
- select Teensy LC as board
- select Tools > USB Type > Keyboard in Arduino IDE to enable Keyboard HID
- select Tools > Keyboard Layout < Germany
- use verify in the Arduino IDE to compile
- the Teensy Loader opens and requests a short push of the Reset button on the teensy board
In this chapter you find some recommendations how to get started and how to verify your project.
- connect the joystick as shown under wiring
- uncomment the #define _DebugJoystick in the sketch. This enables the debugging of the joystick in the serial monitor
- verify the sketch
- download the sketch with a short push of the reset button on the Teensy board
- pressing the joystick will switch on the onboard LED
- moving the joystick will send codes to the serial monitor inside the Arduino IDE (15200 baud)
- left should show 0x20 as POS
- right should show 0x10 as POS
- up should show 0x01 as POS
- down should show 0x02 as POS
- center should show 0x00 as POS
Trouble shooting:
- if you get no messages, check the wireing
- if you don't get these values at the positions, change the following defines
- #define Center 0x00
- #define Left 0x20
- #define Right 0x10
- #define Up 0x01
- #define Down 0x02
- connect the slider as shown under wiring
- uncomment the #define #define _DebugSlider in the sketch. This enables the debugging of the slider in the serial monitor
- verify the sketch
- download the sketch with a short push of the reset button on the Teensy board
- moving the slider will trigger a debug message in the serial monitor
- min should show 0x0 as POS
- 25% should show 0x1 as POS
- 50% should show 0x2 as POS
- 75% should show 0x3 as POS
- max should show 0x4 as POS
Trouble shooting:
- if you get no messages, check the wireing
- if you don't get these values at the positions, change the following defines
- #define Position1 0x0
- #define Position2 0x1
- #define Position3 0x2
- #define Position4 0x3
- #define Position5 0x4
- connect the buttons and rotary encoder as shown under wiring
- uncomment the #define #define _DebugButtons in the sketch. This enables the debugging in the serial monitor
- verify the sketch
- download the sketch with a short push of the reset button on the Teensy board
- pushing the buttons will send a debug message in the serial monitor
- turning the rotary knob for Feed and Speed will trigger a debug message in the serial monitor
Trouble shooting:
- if you get no messages, check the wireing
- if spinle and feed is mixed up, change wireing or position of the rotary encoders
- if the direction is not correct, enable/disable de defines below
- #define FeedDirection
- #define SpindleDirection
The Teensy acts as additional keyboard. So you can define the keys in Estelcam as shown below
Phushing the joystick will enter the jog mode. You can move the axis with the joystick and the buttons. Increase/decrease the jog speed with the slider. Feed and Spindle speed can be adjusted with the rotary knobs.
See Link
The slider emulates a key down. Move the slider to min at the end of jogging.


