Summary
This post follows the development of Bluetooth model rocket launcher hardware (open source) with an Android phone application. For those interested in already completed designs, there exists projects for wireless model rocket launchers on Instructables, Model Rocket Forum, MakeZine or crowd funded sites such as Indiegogo. To paraphrase David Papp from his 2014 Indiegogo campaign, there is undoubtedly a requirement for model rocketry control and launching to be technologically brought out of the dark ages.To expedite development of the prototype, the launcher project was based on an existing Cypress Bluetooth Robot design. The hardware component of the design was based on a Cypress BLE module and the Android application was derived from the Robot application. As pictured below, minimal changes were made to the Android Studio app. All credit to Cypress for the original design.
Example of Rocket Launcher Application |
The list below details several designs features of the prototype build.
- Fully isolated igniter. No power rails are connected to the igniter with a view to minimising incorrect ignitions
- Reverse bias battery protection. Diode protection to prevent false ignitions from incorrectly connected batteries with single FET designs
- Electronic switching with Smart Switches for igniter control
- Electronic switches with inbuilt overcurrent protection, voltage and current monitoring
- Optional monitor to check and or log launch current
- Optional OLED display for user feedback providing better full sun contrast
- Option to use a UHF module instead of Bluetooth
- Option to use a pushbutton for launching and no wireless communications
Whilst looking for a Bluetooth module the range of parts was vast. From Microchip to Expresssif with digital to serial interfaces most were fit for purpose. Only after stumbling across the Cypress Robot with BLE App by Alan Hawse, which details most of the steps in building an application with Android Studio, was the Cypress BLE part chosen.
Bluetooth Module
The Cypress BLE module (CY8CKIT-143A) was selected for the launcher. For the PCB design software the schematic and PCB parts were drawn. Below are the schematic connections to the BLE Module. As usual the connections were allocated in conjunction with Cypress' PSoC Creator.
CY8CKIT-143 Rocket Launcher Schematic Connections |
Altium Imported CY8CKIT-143A DXF |
CY8CKIT-143A PCB Library Part |
CY8CKIT-143 Rocket Launcher IO Connections |
CY8CKIT-143 Rocket Launcher External Power Supply Rails |
The Bluetooth module has an operating voltage from 1.9V to 5.0V although for the prototype system the voltage was set to 5.0V. For those interested in power savings, the system voltage could theoretically be reduced to 2.5V; the caveat being the control voltage for the high-side driver which is listed as 2.1V.
CY8CKIT-143 Rocket Launcher 5V Power Supply |
Igniter Activation
Igniter activation is achieved using a pair of high and low side switches. The design of the circuit would facilitate removal of one of the switches although having a pair was considered the safest solution. Certainly a similar solution could be achieved with a half-bridge or similar device.
Rocket Launcher Igniter Activation Circuit |
Igniter Current Sensing
Current sensing can be achieved using the high side switch, if the measurement is intended for high currents. It should be noted that the current sense ratio drift for the VN7040AS is + 5% for currents at 4.5A or + 30% for currents between 0.01A and 0.03A.
Rocket Launcher Igniter Current Sensing Circuit |
Display (OLED)
An OLED was chosen over an LCD because of the high contrast required in sunlight readable applications. Other factors which were considered include the operating temperature which for an OLED appears a standard -40 to +80C and that no external contrast setting is required for an OLED.
Rocket Launcher OLED (Optional) Circuit |
To provide audible feedback before activation of the igniter, a buzzer was included. Also shown in the image below were two LEDs, one for the Bluetooth status and the other for general operational status.
Rocket Launcher Buzzer and LED |
On a prior rocket launcher design, a straightforward 433MHz UHF remote transmitter and receiver module was used for controlling the rocket launch. The same UHF module was retained as an option in the Bluetooth design.
Rocket Launcher RF Module (Optional) |
For those requiring no remote control but the safety of high and low side switches, a manual push button launch switch was added to the design.
Rocket Launcher Manual Launch Push Button (Optional) |
A number of options were included in the hardware and to manage these four version resistors were made available to the CY8CKIT-143A module.
Rocket Launcher Option Management |
For the PSoC microcontroller, the hardware and firmware were developed in unison. This process ensured systems such as the ADC were mapped to the most appropriate pins of the microcontroller.
PSoC Launcher Misc Components |
PSoC Launcher Timer Components |
PSoC Launcher ADC Component |
PSoC Launcher Inputs and Outputs |
Tick Timer Configuration
A tick 'system' timer was included in the design with a view to controlling the launching process.
PSoC Launcher Tick Timer |
To modulate the buzzer, a 3.9khz PWM was established.
PSoC Buzzer Timer |
To indicate the status of the launcher Bluetooth connection, an LED was driven by a timer using a slow PWM.
PSoC LED Timer |
UART Configuration
For debug a UART was configured at 921600, 8, N, 1.
PSoC UART (Debug) |
The ADC was configured for an unsigned result and an 8 bit resolution. This resulted in a quick sample rate and a step size of around 50mV.
ADC Configuration |
The setup of the Bluetooth in the Launcher PSoC application closely followed the Cypress Robot project which was covered in the post "How to Create a PSoC BLE App: Lesson 3 Configure the BLE Component". The capture below shows that a custom GATT server was configured.
Launcher BLE General |
BLE Launch Service |
BLE Battery Voltage Service |
Software
For testing and to limit the number of changes in Android Studio, the primary user interface (activity page) was updated. Corresponding changes were made in the associated Java files, MainActivity and PSoCCapSenseLedService. Shown below are the changes between the original Cypress BLE101 application and the updated application activity page.
Original Cypress BLE101 Activity Page |
Updated Cypress BLE101 Activity Page |
To confirm that the Android Studio application was able to connect with the Cypress BLE module, a straightforward test was made. A compatible phone was loaded with the updated Android Studio application and the BLE module, powered by the MiniProg programme, was loaded with the Cypress BLE application.
Cypress BLE Module MiniProg Powered |
PCB Layout
Before starting the PCB layout, an enclosure was required to house the control printed circuit board (PCB) and battery. An ABS case with a clear cover was available from a local supplier, Jaycar, which comfortably fit the battery.
HB6412 Enclosure - Courtesy Jaycar |
Bluetooth Control PCB Dimensions |
Bluetooth Control PCB Parts Placement |
Bluetooth Control PCB Routed |
Bluetooth Control PCB Top 3D |
Bluetooth Control PCB Bottom 3D |
Manufacture of the PCB was performed by Chinese company PCBWay.
Bluetooth Control PCB Top Layer |
Bluetooth Control PCB Bottom Layer |
Control PCB Populated Power Supply and Drivers |
Control PCB Populated BLE Headers |
Control PCB Driver Load Testing Setup |
Load Measurements |
As this project was inspired by the Cypress BLE Robot design, the original PSoC application was used as a template. Minor modifications were made to the BLE Callback and a state machine for the launch control. To test the code changes the BLE Module was plugged into the control PCB then the Bluetooth and Status LEDs fitted. These LEDs are indicated by the yellow box in the image below.
Control PCB with Cypress BLE Module Fitted |
OLED Testing
A community submitted PSoC Creator component was used for the OLED. All credit to Thanasis Georgiou for the component.
WS0010 PSoC Creator Component |
A Winstar WEH1602 OLED was used for the project.
Winstar WEH1602 OLED |
Powered OLED on Control PCB |
OLED 12mm Standoffs |
Enclosure
The plastic enclosure was supplied with an internal metal mounting plate which was used as the base the control PCB. Metal standoffs, M3 x 25mm, were required to space the control PCB from the metal mounting plate due to the height of the DIN connector.
Control PCB Mounting Plate |
DIN Launch Connector |
Control PCB Mounted |
Assembled Launcher |
Launch Cable
To connect between the launch controller and the igniter, an IEC mains cable was repurposed. An XLR connector was fitted for the launcher interface and crocodile clips were soldered on the opposite end.
XLR Launch Cable |
Field testing was performed with a range of Estes igniters. The clips below show some of the launches performed.
Project Files
Listed below are the schematics, Gerber files, PSoC Creator 4.3 project archive and the Android application. Android source can be supplied.
Launcher Schematics |
Launcher Gerber Files |
PSoC Creator 4.3 Archive |
Android Application |
Final Thoughts
There are a number of updates and additional features to add to the project. Some of these features include monitoring the battery voltage and current during a launch. These will be investigated in a subsequent blog!
No comments:
Post a Comment