

Foxmox
A fox transmitter controller
- Size
- 50 × 50 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 25
- Nets
- 23
- Pads
- 69
- Tracks, vias
- 79, 3
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 7 Jul 2026
- Updated
- 10 Oct 2026
Overview
Foxmox is an open-source printed circuit board by k0swe, from the k0swe/foxmox repository on GitHub. It is a 2-layer board of 50 × 50 mm with 25 parts on 23 nets, routed with 79 tracks and 3 vias.
It is built around the PIC16F84-10/P and 2N2222A. Its parts include 5 resistors, 4 capacitors, 3 switches, 1 IC and 1 diode. It belongs with the radio and wireless boards and the PIC boards of this library.
Main components
2README
Hardware/README.mdFoxMox hardware
This directory contains the complete hardware design and its source references for Larry Benko W0QE's Low Power FoxMOX Controller V2.6 (December 2004), transcribed by Chris Keller K0SWE.
| Path | Purpose |
|---|---|
foxmox.kicad_pro | KiCad project entry point. |
foxmox.kicad_sch | Reconstructed schematic. |
foxmox.kicad_pcb | PCB layout. |
foxmox.pdf | PDF export of the reconstructed schematic. |
W0QE FoxMox scanned.pdf | Scan of Larry Benko W0QE's original schematic; source of truth for transcription. |
fp-lib-table, sym-lib-table | Project-local KiCad library tables. |
Libraries/ | Project-local symbols, footprints, and 3D models. |
Datasheets/ | Component datasheets. |
Open foxmox.kicad_pro from this directory. Library references use
${KIPRJMOD}/Libraries/..., so moving the project and Libraries/ together
preserves their relative paths.
The target radio in this build is the Alinco DJ-S11, connected through its 2.5 mm microphone jack.
How the controller keys the radio
The DJ-S11 microphone jack has ground, a bias rail, and audio, but no separate PTT contact. The microphone tip serves as both the audio input and PTT sense. The radio biases that contact to power an electret microphone and watches its DC level: pulling it toward ground through a resistor keys the transmitter; releasing it returns the radio to receive. Transmit audio is AC-coupled onto the same contact.
This resistive keying arrangement is common on Alinco, Icom, and Yaesu handheld microphone interfaces. It does not depend on a VOX setting in the radio; VOX accessories for these radios implement their own resistive pull-down. Kenwood accessory wiring is a notable exception because it commonly provides a separate PTT contact.
Audio path — PIC RA0, pin 17
RA0 ── R1 20k ── R2 5k pot ──(wiper)── C4 1 µF ── P1 tip
└── bottom ── GNDRA0 generates the square-wave tone. R1 and R2 attenuate it, while C4 blocks DC so the tone does not disturb the keying level.
W0QE annotated the original drawing:
Adjust for 20 to 40 mV peak to peak. Or set R2 for ~300 ohms from wiper to ground.
That setting is internally consistent: 3.0 V × 300 / 25000 ≈ 36 mV. Avoid
excessive drive; the source waveform is already square and harmonic-rich.
PTT path — PIC RA1, pin 18
RA1 ── R3 20k ── Q1 base (2N2222A, emitter → GND)
Q1 collector ── R4 2.7k ── P1 tipRA1 high saturates Q1 and pulls the microphone tip toward ground through R4. R4, 2.7 kΩ, is the radio's keying resistor. RA1 low turns Q1 off and allows the microphone contact to return to its bias voltage.
Both paths meet at the microphone tip. In the PCB netlist, Net-(C4-Pad2)
contains C4.2, P1.T, and R4.2.
Power source and current budget
The controller has no battery of its own. It is parasitically powered by the radio's microphone-bias rail:
P1 ring ── S3 (SPDT power switch) ── VDD ── U1.14, U1.4 (MCLR), C3, D1, TP1
P1 sleeve ── GNDW0QE recorded:
Measured current draw @ 3.0 V from Ring to Sleeve = 0.5 mA idle, 0.9 mA transmitting
This sub-milliamp supply is a binding design constraint. It explains the PIC16F84, resistively attenuated square-wave audio, and absence of more power-hungry circuitry. Before substituting another MCU, verify that its complete idle and transmit current does not collapse the microphone-bias rail or false-key the radio.
D1 is a 6.2 V zener used for overvoltage protection. It is not regulating the normal approximately 3 V supply.
R5 is the boot/service-mode strap
R5, 10 kΩ, is intentionally connected between RA2 (PIC pin 1) and RA3 (PIC pin 2). RA4/T0CKI (PIC pin 3) is unconnected. Do not move R5 to RA4.
The original scan is easy to misread:
-
The
R5 10ktext is printed below its resistor body, placing the label near the RA4 row even though the component itself connects RA2 to RA3. Component label placement in this drawing is not a reliable indication of connectivity. -
The X on the RA4 row is a printed no-connect mark. The pin stub ends at that mark; it is not a wire crossed out by hand. Pixel measurements support that reading: its darkness matches printed material rather than the lighter pencil handwriting elsewhere on the scan.
Scan feature Mean gray Printed wire 73 RA4 X mark 81 Printed text 89 Pencil handwriting at top margin 140
The reconstructed schematic has an explicit RA4 no-connect at (97.79, 105.41);
with U1 placed at (80.01, 110.49), that location resolves to PIC pin 3. The
PCB independently names the pad unconnected-(U1-TOCKI{slash}RA4-Pad3). The
reconstructed schematic and PCB therefore agree.
The firmware also proves R5's purpose: at reset RA3 is driven high while RA2 is an input, so R5 pulls RA2 high for normal startup. Holding RA2 low during startup enters the clock-calibration service mode; the firmware waits for RA2 to be released before continuing. Moving R5 to RA4 would break that boot test.
The service-mode procedure is documented in
../Firmware/README.md.
Bench checks with an Alinco DJ-S11
Before relying on a rebuilt controller in the field, check it with the actual radio and cable:
- Bias supply: measure approximately 3 V from ring to sleeve and confirm it can source at least 1 mA without excessive sag.
- PTT keying: confirm that the 2.7 kΩ pull-down keys reliably with both a fresh radio battery and a nearly discharged one. The microphone-bias voltage can move with battery condition.
- Audio level: begin with R2 adjusted to approximately 300 Ω from wiper to ground, then verify 20–40 mV peak-to-peak or check deviation on a service monitor or trusted receiver.
Verifying the transcription
The scanned schematic is lossy and its geometry is easy to misread. Use these sources in descending order of confidence:
-
Treat
W0QE FoxMox scanned.pdfas the source of truth for the original design. -
Use the resolved nets in
foxmox.kicad_pcbwhen checking the reconstructed connectivity. Footprint pad records carry their net names and avoid visual wire-tracing mistakes. -
Cross-check hardware-dependent behavior against
../Firmware/foxmox-v2.6.asm. -
For close inspection of the scan, render it at high resolution:
sh pdftoppm -r 300 -png "Hardware/W0QE FoxMox scanned.pdf" out
Hardware/.history/ and *.kicad_prl are intentionally ignored by the outer
repository. They are local KiCad state, not versioned design artifacts.
Parts
25| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole | MountingHole:MountingHole_2.5mm_Pad | H1, H2, H3, H4 |
| 2 | 20k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P15.24mm_Horizontal | R1, R3 |
| 2 | 27pF | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm | C1, C2 |
| 2 | MountingHole | MountingHole:MountingHole_2mm | H5, H6 |
| 2 | SW Hex-4 | RDS5_16S_1065_D_67:SW_RDS5-16S-1065-D-67 | S1, S2 |
| 1 | .1uF | Capacitor_THT:C_Disc_D7.5mm_W5.0mm_P7.50mm | C3 |
| 1 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P15.24mm_Horizontal | R5 |
| 1 | 1uF | Capacitor_THT:C_Disc_D7.5mm_W5.0mm_P7.50mm | C4 |
| 1 | 2.5mm plug | TerminalBlock:TerminalBlock_Xinya_XY308-2.54-3P_1x03_P2.54mm_Horizontal | P1 |
| 1 | 2.7k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P15.24mm_Horizontal | R4 |
| 1 | 2N2222A | Package_TO_SOT_THT:TO-92_Inline_Wide | Q1 |
| 1 | 3.579MHz | Crystal:Crystal_HC49-4H_Vertical | Y1 |
| 1 | 5k | Potentiometer_THT:Potentiometer_Bourns_3266W_Vertical | R2 |
| 1 | 6.2V | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1 |
| 1 | Logo_Open_Hardware_Small | Symbol:OSHW-Logo2_7.3x6mm_SilkScreen | SYM1 |
| 1 | PIC16F84 | Package_DIP:CERDIP-18_W7.62mm_SideBrazed | U1 |
| 1 | SPDT | EG1218:SW_1218_EWI | S3 |
| 1 | VDD | TestPoint:TestPoint_Pad_D2.0mm | TP1 |
Questions
How big is the Foxmox PCB?
It measures 50 × 50 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Foxmox use?
25 parts, built around the PIC16F84-10/P and 2N2222A. 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.
Where can I download the Foxmox KiCad files?
From the k0swe/foxmox repository on GitHub, at the commit this page was made from: the board is Hardware/foxmox.kicad_pcb and its schematic Hardware/foxmox.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Foxmox design in my own project?
Its repository states no licence, so its author keeps all rights: ask k0swe before reusing the design.
Similar boards
- 2 layers66.7 × 60.3 mm

- 2 layers101.5 × 83 mm

- 2 layers279.4 × 203.2 mm

Z180GDC
lynchaj/rhyophyre
Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller
249 parts12 - 2 layers99.1 × 99.1 mm

QL Qsound10x10
alvaroalea/QL_QsoundQprint_clone
A clone board of the Sound card for the Sinclair QL Computer.
23 parts11 - 2 layers156.5 × 67.5 mm

NixieScanDisplay
profdc9/NixieClock
A Nixie clock that uses IN-14 tubes and very generic components that can be easily sourced.
106 parts10 - 2 layers89.3 × 50 mm

MM58167-ISA RTC
jensma-de/MM58167-ISA-RTC
RTC module for the ISA slot. With schematics, project files in kicad and open source software to drive the clock.
29 parts9 - 2 layers97.6 × 76.8 mm

- 2 layers14.6 × 13.6 mm

Chip and transistor
gidim/e61-gauge
An analog temperature gauge for E61 espresso machines. A custom PCB drives a VID6606 stepper motor gauge needle, reading temperature from an NTC thermistor.
15 parts8