
LogicAnalyzer
gusmanb/logicanalyzer
24 channel, 100Msps logic analyzer hardware and software

A wireless battery powered pendant for FluidNC based on esp32
Pendant v2 is an open-source printed circuit board by gjkrediet, from the gjkrediet/Fluid-controller repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 69.5 × 40.5 mm with 10 parts on 24 nets, routed with 58 tracks and 0 vias.
Its parts include 2 connectors and 1 switch. It belongs with the radio and wireless boards of this library.
A wireless battery powered pendant for FluidNC based on esp32

This controller uses bluetooth for communication. Be aware that bluetooth and wifi can not be used at the same time and, in fact, need different fluid-nc firmwares. Sardar Azari seems to have adapted the controller to communicate via tcp. Take a look at https://github.com/AC8L/FluidNC-Pendant
Display shows: Machine coördinates, Work coördinates, Spindle speed and state, Set speed and step size when using joystick and rotation encoder, Overrides (Speed, Feed, Rapid), Machine state, Battery state, Current buttons functions
Main functions buttons, joystick and dial: Wake up, Jog gantry and spindle via joystick and/or dial, Set Jog step size and speed via dial, Set spindle speed and switch on/off, Set overrides (Speed, Feed, Rapid), Cancel/abort job.
Main functions menu: Home machine, Zero workcoördinates, Go to zero, Probe.
The pcb only holds the TTGO developmentboard and the rotary-encoder. The other components are mounted on the lid and wired to the pcb. The schematic of the pcb (in Kicad) is therefore very simple. The isolation-routing of the PCB was done with the very same CNC-router I made this controller for. To fit in the joystick, a corner of the PCB had to be sawed of (Later I updated the edge-cuts in Kicad so now the design should be OK).
The three buttons are at one side connected to the ground (all to J1.1) and are connected tot J1.2, J1.3 and J1.4 respectively. The joystick is connected tot J2 with J2.2 unconnected (Because I later decided to wire the VCC of the joystick to an output-pin).
Programming is done in Arduino IDE. All code exists in one single file. Most constants are enumerated or set with defines at the beginning. I hope it will explain itself to some extent.
Compile with partition scheme minimal SPIFFS or it will not fit.
Schematic drawing of the lid with positioning of the components (excl. battery).

Female headers and the rotary encoder are soldered on the pcb. The other components are connected to the PCB with wires. Plus and minus wires are directly soldered to the battery and connected to the TTGO with a JST-connector.

To further reduce the powerconsumption I decided to feed the joystick via an outputpin of the esp32, which is why you see the red wire soldered on later.

The battery is wired to the JST-connector on the TTGO
The functions of the pendant were tailored to my needs. Below an oversight of the functions of the various buttons and button-combinations and the menu-options. It might be somewhat cryptic but I hope it may help.
JS=Joystick, BD=dial, BR=red button, BG=green button, BY=yellow button
Switch the pendant on: press JS
Reset the pendant: press JS
The pendant powers off after some time when idle or via the appropriate menu-option.
The pendant can either be in home-state (PH) or menu-state (PM).
Function of the dial-knob can be changed by rotating the dial while pressing BG.
Functions can be (default is DJ; function is indicated on the display with a blue circle):
The function of the buttons depend on the machine-state (MS, shown in the middle of the display of the pendant; function of BR, BG, BY shown on the bottom line of the display). They are as follows.
PH:
PM:
Powering on the pendant while keeping the the red button pressed will start Wifi and activate OTA (Over The Air programming from within the Arduino IDE).
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | Conn_01x04_Male | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J1 |
| 1 | Conn_01x05_Male | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J2 |
| 1 | RotaryEncoder_Switch | Rotary_Encoder:RotaryEncoder_Alps_EC12E-Switch_Vertical_H20mm | SW1 |
| 1 | TTGO-T-Display | TTGO_T_Display:TTGO-T-Display | MCU1 |
The 4 most common of 10 parts.
It measures 69.5 × 40.5 mm and has 2 copper layers, 1.6 mm thick.
10 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the gjkrediet/Fluid-controller repository on GitHub, at the commit this page was made from: the board is pendant v2.kicad_pcb and its schematic pendant v2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

gusmanb/logicanalyzer
24 channel, 100Msps logic analyzer hardware and software

byrantech/laptop
anyon_e, a highly integrated, high end, open source laptop. Attempt the impossible.

joeycastillo/Sensor-Watch
A board replacement for the classic Casio F-91W wristwatch


OLIMEX/OLINUXINO
OLINUXINO is Open Source / Open Hardware, low cost from EUR 24 Linux Industrial grade Single Board Computer capable to operate -25+85C

rusefi/rusefi
rusefi - GPL internal combustion engine control unit

VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group

hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI