Monday, 30 March 2026

Drill Press Controller Update Part 5

Introduction 
This post details the validation of the remaining hardware item on the drill press controller and Printed Circuit Board (PCB) updates.

Debug Validation
A series resistor was fitted between the microcontroller (PSoC) and the debug (TTL RX, TX) connector to serve as a basic type of input protection. During testing, the serial communications (USB to TTL converter) were intermittent, so the series 100 R resistor was reduced to 10 R to ensure reliable operation.

Updated Serial Input Resistors
Updated Serial Input Resistors

PCB Update
As noted in the previous blog, the footprint of the input device (MAX22191) on the PCB required updating.

Updated Footprints on ESTOP PCB
Updated Footprints on ESTOP PCB

During the PCB update, the top-layer silk screen text near the input and output connectors was increased to 1.5 mm.

Updated Text at Inputs on PCB
Updated Text at Inputs on PCB
 
Updated Text at Outputs on PCB
Updated Text at Outputs on PCB

To allow for easier hand soldering, a selection of component pads was increased.

ESTOP Mains Input Capacitor Pad Sizes
ESTOP Mains Input Capacitor Pad Sizes

Updates were made to the power supply (AC-DC) and mains input capacitors.

ESTOP Mains Input Capacitor Pad Sizes Updated
ESTOP Mains Input Capacitor Pad Sizes Updated

The image below shows the updated board.

ESTOP PCB Update

ESTOP PCB Update

Next, building the updated PCB, reviewing the mounting of the solid-state relay in the original enclosure shown below, and testing with the existing drill press setup.

Existing ESTOP Electrical on Drill Press
Existing ESTOP Electrical on Drill Press

Saturday, 28 February 2026

TDR Pulse Generator (Microchip) with Housing

Introduction 
This post continues a previous post that used a Microchip microcontroller and a buffer chip to generate a fast-rising edge. In this edition, the design is updated to suit an aluminium housing.

Assembled Pulse Generator Unit
Assembled Pulse Generator Unit

Another Release
To cater to those requesting a USB-powered unit in a ready-made enclosure, the same Microchip microcontroller (ATmega16U2) and driver design from the previous blog were used. Some design changes were made to improve manufacturability, such as using a right-angle PCB-mount SMA connector.

For a small sample run of the new design, the rise time is comparable to the previous design, at 1.1 ns and faster than the original design at 658 ps.

Design Changes
The Microchip microcontroller (ATmega16U2) can be USB-powered (5 V) and operate at a logic voltage of 3.3 V. An external linear regulator was chosen instead of using the UCAP 3.3 V output supply from the ATmega, as the UCAP supply is intended for only low-current loads.

The self-powered connection example is shown in Section 20.3 USB Module Powering Options of the ATmega16U2 datasheet (doc7799.pdf).

ATmega16U2 Bus Powered Example (Courtesy Microchip)
ATmega16U2 Bus Powered Example (Courtesy Microchip)

With the power supply reduction to the ATmega I/O, the hex Schmitt-trigger power supply was also reduced to 3.3 V. The output performance was tested with Nexperia parts 74AHC04APW and 74LVC04APW.

To support DFM (Design for Manufacturing), the hand-soldered SMA connector from TE Connectivity (5-1814832-1) was replaced with a PCB-mount right-angle part from Molex (73391-0080).

Updated Pulse Generator PCB (2D)
Updated Pulse Generator PCB (2D)

Updated Pulse Generator PCB (3D)
Updated Pulse Generator PCB (3D)

Lastly, the board shape was resized to suit a metal case. A Hammond aluminium case (1455D602BK) was chosen for the PCB. This case was at the time less than USD 8 in quantities of 10 pieces and available at several online stores. A 3D-printed plastic case would also be an ideal, cost-effective alternative.

The plastic end caps supplied with the Hammond enclosure were replaced with PCBs. This change was aimed at a more turnkey solution, meaning the pulse generator PCB and end caps could come from the same PCB fabricator.

Pulse Generator PCB Assembly Modelled in Fusion 360
Pulse Generator PCB Assembly Modelled in Fusion 360

Designing the end caps was performed after the pulse generator PCB was completed, with some adjustments.

PCB End Cap (SMA End) in Fusion 360
PCB End Cap (SMA End) in Fusion 360
 
PCB End Cap (USB End) in Fusion 360
PCB End Cap (USB End) in Fusion 360

After the pulse generator PCB was loaded into Fusion 360 and the end cap dimensioned, the PCB end caps were created in the PCB tool.

PCB End Cap (SMA End)
PCB End Cap (SMA End)
 
PCB End Cap (USB End)
PCB End Cap (USB End)


Modelling in Fusion 360
The pulse generator PCB dimensions were chosen after making physical measurements of a Hammond aluminium case.

Pulse Generator PCB with Hammond Enclosure
Pulse Generator PCB with Hammond Enclosure

Hammond provides a CAD file for the aluminium case; however, a physical measurement for the PCB width was performed because of the powder coating.

Assembly and Tests
The pulse generator PCB Rev 3 and end caps were sent for manufacture. For the 50 Ω controlled impedance on the pulse generator PCB, a predefined layer stackup was selected from the PCB manufacturer's options.

Pulse Generator Blank PCB
Pulse Generator Blank PCB

After assembling the pulse generator, programming and performing validation checks, the pulse generator PCA was slid into the Hammond case – almost. Checking another case, the PCA slid in very tightly. To make the PCA fit in all the aluminium cases, light sanding was required on the long edge of the PCB – tolerances and case anodising were possibly the culprit.

To fit the PCB end caps, the Hammond-supplied thread rolling steel screws #6 x 3/8" were changed to a set of salvaged pan head Philips screw. Using this type of screw is not ideal, and it should be replaced with a thread-cutting type to suit the C-shaped screw port in the Hammond case.

Pulse Generator SMA End View
Pulse Generator SMA End View

Changing the straight SMA to a right-angle SMA connector had a negligible effect on the rising edge.

With a 74AHC04PW fitted, the rise time (20-80 %) was 1.18 ns. Using a 74LVC04PW, the rise time (20-80 %) was 759 ps.

Pulse Generator Output Rise Time (74AHC04)

Pulse Generator Output Rise Time (74AHC04)

Pulse Generator Output Rise Time (74LVC04)
Pulse Generator Output Rise Time (74LVC04)

Summary and Future Updates
As noted by readers, this design is slower than other designs offered on the market. However, as readers continue to use this design, write their own USB interfaces and highlight the need for faster solutions, new posts on this subject will be made available.

Engineering Files
The same Atmel Studio project applies to this project. Below is the updated revision 4 schematic, PCB Gerbers and PCB BOM for download. The Rev 4 includes only a minor top-layer change near the SMA connector.

In addition to the PCBs, the Hammond case 1455D602BK and suitable screws are required, for example, M3 x 8 mm thread cutting.

Pulse Generator Microchip Studio Project

Pulse Generator Schematic Rev4









Pulse Generator Bill of Materials Rev4






















Saturday, 31 January 2026

Model Rocket Engine Test Stands

 Introduction 
This blog provides ideas and an example for 3D-printed metal rocket test stands designed to accommodate the popular Estes-sized model rocket engines.

Rocket Engine Holders
Rocket Engine Holders

Why an Engine Test Stand?
To conduct rocket engine tests and measurements, a model rocket engine test stand was required. The stand was designed to serve as a motor anchor and mount on the horizontal axis. Since pricing from 3D metal printing companies has become more cost-effective, two stand designs were tried. Cost-reducing changes were implemented in the first revision test stands with a focus on reducing the printed weight.

Development and Manufacture
Autodesk’s tool, Fusion 360, was used in the development of the rocket engine holders. JLC3DP performed the 3D printing in stainless steel (BJ-316L). 

What Changes?
Since 3D printing can be charged by weight (or volume), and because the thrust axis of the rocket engine is well established, the side walls of the rocket engine stand were partially excluded. The exclusion (cutout) in the stand body, as depicted in the images below, reduced the weight by approximately half. Additional changes could be made to reduce the weight if the focus were on cost-effectiveness, and with that in mind, the CAD files are provided at the end of this post for download.

3D Printed Test Stand
The first test stand was a simple prototype for Estes A-C engines. Some engines did not fit entirely into the 3D-printed metal holder, while others were easily inserted. This was because there are variations in the diameter of rocket engines, and older engines may have expanded with age.

Model of Model Rocket D Engine Holder
Model of Model Rocket D Engine Holder

Model of Model Rocket C Engine Holder
Model of Model Rocket C Engine Holder

Some videos below show how the motor was mounted. As a side note, the exhaust temperature was measured at almost 600 C, 100 mm from the engine nozzle.

 
 

 


Downloads

Files are exported from Fusion 360.

Fusion 360 C Engine Holder Model

C Engine STL File

The D engine holder model below has a 0.5 mm larger bore than the model in the above videos.

Fusion 360 D Engine Holder Model

D Engine STL File

 

Tuesday, 16 December 2025

Drill Press Controller Update Part 4

Introduction 
This blog 
details the fitting of the drill press controller's input circuitry and simple validation testing of the updated input circuitry.

Input Device Validation
In the earlier drill press post describing updates to the controller, the input circuitry (24 V) was changed from using discrete components to the PLC (Programmable Logic Controller) input device, the MAX22191, from Analog Devices.

The PLC input devices were soldered to the prototype board along with the input connector. It should be noted that the footprint for the MAX22191 on the board was found to be incorrect; however, testing was still possible.

Controller and Sensor Test Setup

Controller and Sensor Test Setup 

The output of a power supply was connected to one of the PLC inputs, and the ON/OFF thresholds were measured by varying the voltage to the MAX22191 in 100 mV increments. The approximate threshold voltages were measured for an ON at 8.9 V, and the OFF voltage was 7.8 V. These voltages fall within the range specified by the ‘IN Voltage Upper Threshold’ and ‘IN Voltage Lower Threshold’ as stated in the MAX22191 datasheet.

Connecting a Proximity Sensor
The drill press controller utilises a proximity sensor to detect the spindle speed, with the output signal from the sensor resembling a square wave. The proximity sensor was connected to one of the MAX22191 inputs for testing. The output of the MAX22191 connects directly to the microcontroller (PSoC), so a pass-through connection was made in the PSoC for testing purposes. Using the PSoC fabric, the sensor input was routed to a test pin, which had a test pad.

PSoC Creator Spindle Pass-Through Connection
PSoC Creator Spindle Pass-Through Connection

Shown below is a pulse from a magnetic sensor and the PSoC test pin, as measured by an oscilloscope. Oscilloscope channel 1 represents the input to the MAX22191, and channel 2 represents the PSoC test pin output. Upon reviewing the input and output signals, there is little difference in the timing of the signals, which is ideal for ensuring no change to the spindle 
speed measurement.

Sensor Test Pulse Measurement
Sensor Test Pulse Measurement

As an additional check, the delay from the proximity sensor to the rising edge of the output signal was also captured, as shown in the image below.

Sensor Test Pulse Rising Edge Measurement
Sensor Test Pulse Rising Edge Measurement

In the next post, the final check will be performed on the debug channel, which is a TTL signal, and the circuit board will be updated with any changes.

Tuesday, 11 November 2025

WS2812 PSoC5 Creator Project

Introduction 
This short blog continues a previous post about a WS2812 addressable LED for an Infineon (Cypress) PSoC 4 microcontroller. This blog focuses on the project for the PSoC 5 with testing performed on a CY8CKIT-059 development board.

Rebuilding the Project
The PSoC5 project, ‘ws2812_test’, was downloaded from a post on the Infineon Community site.

Upon opening the PSoC5 project, the same issue noted in the previous blog with the PSoC4 was observed. The missing component is evident in the top-level design of the PSoC project.

Missing Components in PSoC Top Design
Missing Components in PSoC Top Design

Unlike the previous post, where the WS2812 library was not included in the compressed project, the WS2812 library is included in the compressed project.

WS281xLib in PSoC Project Folder
WS281xLib in PSoC Project Folder

The issue with the missing component was resolved by updating the project Dependencies in PSoC Creator.

PSoC Creator Dependencies - StripLightLib Error
PSoC Creator Dependencies - StripLightLib Error

The dependency for the existing WS2812 library was deleted. Next, the dependency for WS281xLib was added again to the project. The WS2812 folder in the local ws2812_test project was chosen.

PSoC Creator Dependencies - WS281xLib
PSoC Creator Dependencies - WS281xLib

After exiting the project Dependencies window, the Top Design sheet in the project displays the previously missing WS2812 component.

Updated Components in PSoC Top Design
Updated Components in PSoC Top Design

Before rebuilding the project, a resistive pull-up was added to the SW button to suit a PSoC development board.

Switch Input Pin Configured with Resistive Pull-Up
Switch Input Pin Configured with Resistive Pull-Up

The CY8CKIT-059 development board does not appear to have a resistive pull-up connected to the pushbutton switch ‘SW’ on the development board.

CY8CKIT-059 User Push Button Connection
CY8CKIT-059 User Push Button Connection

This information is noted in Section 3.1 Theory of Operation, in the User Manual. With the default code implementation, the WS2812 will be driven by the development board as soon as the board is powered via the USB KitProg or PSoC connector.

Note from CY8CKIT-059 User Manual
Note from CY8CKIT-059 User Manual


Testing
A WS2812 module with eight LEDs was tested using the CY8CKIT-059 development board. The default code is configured for a single LED in blue, as shown below.


A modification is shown below for festive celebrations!


The LED colours for the above example were extracted from Line 117 in the PSoC project StripLights.c file. Setting of the two LED colours used with the Modulo operator, as shown below in main.c

Updated Code in Main.c from Line 54
Updated Code in Main.c from Line 54

Downloads
Linked below is an updated release of the PSoC project with the corrected dependencies to suit the CY8CKIT-059.

Updated Original PSoC5 Application - WS2812_test


Monday, 27 October 2025

PSU Characterisation with Rigol Equipment using SCPI

Introduction 
This brief blog provides a hobbyist solution for characterising the performance of devices such as DC supply modules using measurements from SCPI-capable test equipment.

Set up for Power Supply Test Fixture
Set up for Power Supply Test Fixture

Datasheets and Measurements
In most cases, the datasheet for a piece of hardware, be it a component or a printed circuit assembly (PCA), will provide sufficient information. For other cases, the performance or characterisation of the hardware requires a specific test or behaviour to be verified or quantified.

DC Supply Module Test (Example)
In this blog, the power-up voltage of an off-the-shelf power supply module was logged for different temperatures. The Device Under Test (DUT) was the STS1024S05 from XP Power.

A small test fixture was created to test multiple XP Power modules. In this example blog, the schematic shows connections to the supply.

Schematic for Test Fixture
Schematic for Test Fixture

The test fixture used pogo pins to connect to the castellated power module pads and banana sockets to interface with the test equipment.

Assembled Test Fixture with Device Under Test (DUT)
Assembled Test Fixture with Device Under Test (DUT)

Test Software
The project's test software was originally started with Lab Windows. However, with many PyVISA Python examples available, Python in VS Code was selected instead. A Python script from Core Electronics was almost identical to the script required test setup, so the script was modified for this example. All credits to the team at Core Electronics for the original Python script.

Changes were made to the original script to suit the test setup. In the updated script, the test equipment type, the voltage step size of 100 mV, and the reported and logged voltages were updated as published here.

Measurements
The temperature was verified with a PC210 thermal camera for the duration of the measurement. The temperature variation was around 5 °C, which was attributed to the heating and cooling equipment. 

A full listing of the measurements is available in a combined Excel file here

Plotted below are measurements for the voltage range between DC 5.0 V and 6.0 V, where the DUT output was activated. The plot indicates differences in the DUT turn-on voltage for the temperature range sampled.

Measurement Results with STS1024S05
Measurement Results with STS1024S05