20 KiB
title | author | date | categories | tags | toc | |||
---|---|---|---|---|---|---|---|---|
UWAA project briefs 2024 | peter | 2024-03-05 10:40:20 +0800 |
|
|
true |
Updating this as I add new projects this year.
Telemetrum ground station
The Telemetrum's Teledongle ground station is out of stock everywhere. We should make our own.
Success criteria
- Receive signals from the Telemetrum flight computer over a distance of at least 10 kft.
- Send data to a computer over USB virtual COM port in a format which can be interpreted in real time by the AltosUI flight monitoring software.
Scope
- Make a PCB which contains a cheap microcontroller with USB support and the CC12xx or CC11xx radio transceiver.
- Compare what options are in stock on JLCPCB, I think both families should be compatible with each other but double check.
- Make sure the PCB has mounting holes so it can fit into a case.
- Use an SMA connector.
- Create software to copy the data from the receiver to the computer over USB through an intermediate MCU.
- CHALLENGE: Use an ESP32 or some BLE enabled MCU so that we don't need USB cables to connect to this station, or maybe a phone application.
- CHALLENGE: Incorporate a planar inverted-F antenna (PIFA), meandering antenna on the PCB for Wi-Fi or BLE.
- CHALLENGE: Incorporate a single-cell 3.7V lithium polymer battery to allow it to operate without USB connection or powerbanks. Use the TP4057 or similar battery charger, which can be found on JLCPCB under their basic parts category.
- CHALLENGE: Design a 3d printed or laser cut case (or just ask someone in mech to make it)
Hints and notes
- You must read this protocol specification for the AltusMetrum devices. Luckily, the Teledongle does minimal processing of the raw data, it only encodes it into an ASCII format before transmitting it over serial.
- You should look at the schematics and PCB layout for the Teledongle for inspiration https://altusmetrum.org/TeleDongle/.
- I advise you don't use the NXP LPC11U14 since a cheaper microcontroller can do well
- [!] PRO TIP: Use JLCPCB's part library to save on money! It tends to be cheaper per unit than buying from distributors online since JLC buys the parts at wholesale prices.
- Looks like the ESP32-C3 is very reasonably priced, see the list of ESP32s here
- You should consider using the basic parts library to place passives (resistors, capacitors). On Altium, all components in this library will have a
JLC_PN
attribute. - Using extended parts outside the basic library list will incur a $3 USD fee per unique part, but when assembling 5 boards this still beats distributor prices. Of course, if a part is in the basic library it should be used if possible
- You may decide to use this alternative site to look up parts since JLC's parametric search isn't great https://yaqwsx.github.io/jlcparts/
- Try to place all/as many components on one side of the board only so you can use economic PCBA, which only places parts on one side.
- Feel free to ask me for Altium training, and I will probably need to talk about RF design considerations
Future development
- Make this a module card which can go into a standalone battery powered ground station which does not need a laptop to use. This can be helpful if our laptops run out of energy and there are no generators.
- Or just make it BLE enabled and use phones which should have good enough battery life anyways.
WiFi-based video transmitter
SAC now has a some award for the best live video downlink from a rocket. I think the best way in terms of quality would be to use WiFi equipment and transmit the video down using some directional antenna. This is a very ambitious project.
Success criteria
- Milestone 1: Receive data at a rate of 4000 kbit/s over a distance of 10kft, LOS.
- Milestone 2: ???
Scope
- Video transmitter on the rocket and receiver on the ground
Hints and notes
- You should check this project out wifibroadcast... looks exactly what we need, it's designed for FPV drone applications.
- Make a comparison of cost vs data rate?
- This project is very ambitious and we will probably have to keep this text updated
- Laptops have PCIe NIC cards, check if an SDIO-based NIC is available which can be used on a raspberry pi
- An option is to use a COTS laptop and temporarily bring out the coax to a big antenna?
E22-900T30S development board
E22-900T30S is a wireless serial port module (UART) based on SEMTECH's SX1262 RF chip. It has multiple transmission modes, LoRa spread spectrum technology, TTL level output, compatible with 3.3V and 5V IO port voltage
We have some of these E22-900T30S modules laying around, they would make for great long range telemetry modules since they have a power amplifier.
Goals
- Create a dev board which exposes all the useful pins on the E22-900T30S.
- Use an SMA connector to expose the RF port
- Put in a pi network on the RF output for impedance matching
- 2.54 mm headers
- If you can make this board under 5cm*5cm, you may opt to use JLC's 6-layer process (even if you aren't using all 6 layers, the free ENIG is a nice touch)
- Extra goal: integrate a USB-UART TTL interface and USB-C port so you can directly plug the dev board into a computer without needing an external USB-UART adapter.
Hints and notes
- The Altium already has the module created in the components library with a 3d model, all you need to do is place the headers and other supporting parts
- Datasheet for this module is here
HPIB/GPIB to USB adapter for HP8560A
We have an old spectrum analyzer which outputs data over IEEE-488, or GPIB/HPIB. We'd like to connect the spectrum analyzer to a laptop over USB.
Success criteria
- Create one plot on your PC connected to the spectrum analyzer over your GPIB adapter, use this software to receive the plot.
Hints and notes
- GPIB uses 5V so you may need to level shift depending on the maximum GPIO voltage of your chosen microcontroller
- You may choose to pick a microcontroller with USB transceiver built in, or a microcontroller combined with a UART-USB bridge IC.
- You are meant to use these bus transceivers, but some designs have gotten away with not using them for single-device applications. It is up to you whether you want your adapter to be compatible with GPIB and accept multiple devices, or only for adapting one device to one usb.
- Search up "GPIB to USB" for other existing designs floating around on GitHub.
- You'll probably need to watch a video on choosing components. I have recorded slides that I've presented last semester, but any video online will do.
Milestones
- Choose your parts (microcontroller mainly, and other major parts such as interface ICs or level translators)
- Create a schematic (Once you get to this stage let me know so I can give you Altium training)
- Create a PCB (Once you get to this stage let me know so I can give you Altium training)
- Request design review and get the PCB made
- Program the PCB (Should be simple since it's just adapting protocols, since this project is more about the PCB side than programming you can rip off some GPIB library code)
Flight Computer programming
While the hardware will be different, the concept of a flight computer doesn't really change. I will set you up with some breakout boards and you will program a flight computer on an STM32 microcontroller.
Success criteria
- Program a flight computer which can:
- Set off a pyrotechnic charge using a basic relay when apogee and a set alittude is released
- Log information from all sensors to an SD card
- Extension: Maintain a radio downlink
Hints and notes
- The standard IDE is STM32CubeIDE, but if you hate Eclipse-based IDEs like me you can use the "Embedded tools" VSCode extension
- To use this extension you should install STM32CubeMX, STM32CubeCLT and STM32CubeProgrammer.
- Use STM32CubeMX for configuring the GPIO pins/Alternate functions
- You can also use STM32CubeMX to include a real time operating system (RTOS), which will make your life easier since it allows you to have threads which can allow for some "concurrency" (actually multitasking).
- You may use C or C++, although I don't find many C++ features useful in this context.
- Look up libraries for your sensor part number to rip off. ST provides "platform independent drivers (PIDs)" which may be useful (you just need to implement the read/write function stubs by populating it with the appropriate code to call HAL functions)
- Please don't hesitate to ask me questions, programming microcontrollers are quite fiddly.
Squib driver demo board
Squib drivers are used in automotive applications to safely deploy airbags, which use e-matches just like in our avionics. The current avionics uses a current-sense amplifier and analog-to-digital converter. When an ADC interrupt is triggered, the microcontroller switches off the channel momentarily. This system is quite convoluted and failure prone, and having an automotive-certified part would remove this risk even if 10x more expensive.
Success criteria
- Create a board of "any" size (it can be larger than normal, up to
100 mm * 100 mm
) which can accomodate an automotive squib driver. Ensure you use terminal blocks or some high-current connector for the pins that connect the driver to the squib/e-match. - Make sure every other pin is accessible through a pin header
- Follow the application note/eval board design if one exists
- Look up parts on mouser or digikey, search squib driver
- Also see if any of these parts are available on JLCPCB directly for cheaper
- Put LEDs and stuff on the board to indicate visually!
- Some parameters to consider are the cost, how many channels are available per IC, the minimum voltage and firing current for example?
Milestones
- Choose your parts (Make a comparison table based on the parameters I suggested?)
- Create a schematic (Once you get to this stage let me know so I can give you Altium training)
- Create a PCB (Once you get to this stage let me know so I can give you Altium training)
- Request design review and get the PCB made
ESP32 development board
We typically use STM32 microcontrollers for flight computers, but ESP32 may be a good alternative since it has support for WiFi and BLE, which may simplify interfacing with the flight computer. One example of this is the Blue Raven flight computer, which has a mobile phone application.
Success criteria
- Make an ESP32 dev board with basics such as voltage regulator, USB connection. Also include a WiFi antenna on the board (either integrated into the PCB or using a pre-made sheet metal stamp antenna, ask me when you get to this stage)
- Make sure it has headers spaced correctly so we can use it on a standard breadboard
- Look at arduinos for design ideas.
Hints/notes
- I'm not too sure what the ESP32 ecosystem is like, I think it would be good to start off by doing a comparison of each of the parts (flash, ram, peripherals, pin count, cost...) and then we can decide which part to use.
- Ask me when you get to the antenna design stage which is in the PCB design phase (after schematics)
Milestones
- Choose your parts (Make a comparison table based on the parameters I suggested?)
- Create a schematic (Once you get to this stage let me know so I can give you Altium training)
- Create a PCB (Once you get to this stage let me know so I can give you Altium training)
- Request design review and get the PCB made
Active tracking antenna
Purpose
Antennas can be either directional or omnidirectional (Meaning the gain of the antenna is the same no matter how it is oriented). A directional antenna has high gain when oriented at the target, but poor gain if incorrectly oriented. This project will allow us to automatically orient an antenna so it has the maximum gain possible.
Success criteria
- Track a water bottle rocket (for the first test iteration of the system), then track an L1 rocket!
Scope
- Create a 2-axis gimbal system capable of supporting the YAGI-868/914A Yagi-Uda antenna. Mass and dimensions are in the linked datasheet. There is no CAD model but feel free to measure the MMOI and other physical properties from the real antenna in the office.
- You may power the system off any power source you choose, we have a lead acid car battery you can use for the ground station in the office.
- At minimum create a perfboard prototype of the system using modules, or if you are feeling confident make a PCB as well.
- You don't need to make the tripod, feel free to buy something cheap from Aliexpress.
Hints and other notes
- A video of an antenna tracking system for a drone. This uses an ardupilot flight computer, but the same principles can be applied to the custom solution you will be developing
- The gist of it is the target contains a GNSS receiver, and its position is transmitted to the ground station. The ground station has a GNSS receiver to get its location. From the two positions, you can find out where to point the antenna so it is facing the target.
- This is a wikipedia article on active tracking, although in the context of microwave links with satellites. Still, the same principle applies.
Build your own flight computer
Purpose
A minimum viable flight computer for a competition grade rocket has at minimum the following functions
- Tracking of the rocket using global navigation satellite system (GNSS) receiver
- Firing of pyrotechnic charges
- Barometric pressure sensor to get the current altitude, and thus fire charges are the correct altitude
- Radio transmitter to transmit position to the ground
- Regulator to create the logic voltage for the components on the board from a basic dry cell battery
- Switch input to arm the system
Optionally, a flight computer may provide other functionality such as
- Storage, to log data which is not transmitted to ground
- Inertial measurement unit (IMU) to get the orientation of the rocket throughout flight
- Battery management system (BMS) when using rechargeable lithium-ion batteries instead of basic dry cell batteries, to allow recharging and safe discharging.
- High-g accelerometer to characterize motor burn
- Able to be interfaced with through USB for configuration
- CAN bus transceiver to communicate with external modules
You will prototype a flight computer on a breadboard, create a perfboard prototype then make a PCB of your flight computer which we will launch in a rocket! (Either your own if you are doing the L1 program or one of our members).
Milestone 1: Perfboard flight computer
Create a flight computer on a perfboard using the following modules on a perfboard:
- A microcontroller breakout of your choice (in descending order of specs):
- Raspberry Pi Pico
- STM32F411 black pill
- Arduino Nano
- NOTE: We will use the platformio platform to program our microcontroller, so the programming process should be similar
- MPU6050 accelerometer
- Note: if you want a different accelerometer let me know and I'll purchase it for the club
- BME280 barometric pressure sensor
- Note: if you want a different accelerometer let me know and I'll purchase it for the club
- Memory device pick one
- Flash memory breakout
- Micro SD card breakout
- Linear regulator to step down voltage
- Relay board
Milestone 1b: Programming
We will program a basic flight computer using Arduino. Details to come, but it will include data logging and a way to deploy a parachute.
Milestone 2: Incorporate GNSS tracking
Since these modules are a bit more expensive, I'm going to share them around
- LoRa Sub-GHz radio
- U-blox GNSS receiver module