TeamAphelionCansat
Eric Hamber's 2024 Cansat Entry
Install / Use
/learn @flatypus/TeamAphelionCansatREADME
Team Aphelion CanSat | 🏆 1st Place in Canada 2024 | Represented Canada at European Space Agency
Project repo for Eric Hamber Secondary School from Vancouver, Canada.
Team Members:
- Jason Huang - Co-Captain and Lead Engineer
- Electrical Design Lead
- PCB Design and Assembly
- Mechanical Design and Fabrication
- CanSat Integration
- Tristan Yan-Klassen - Co-Captain and Mission Leader
- Mechanical Design and Fabrication Lead
- Drilling Apparatus Design and Assembly
- CanSat Body and Systems Integration
- Hinson Chan - Software Lead
- Ground Station Software
- Map Library Development
- Website Development
- John Xu - Hardware Lead
- Landing Apparatus
- Soil Sample Intake
- Ground Station Hardware
- Anthony Lu - External Communications
- Outreach
- Parachute Testing
- Mendel Rieseberg - Ground Control
- Radio Communications
Project abstract
The goal of CanSat is to design and build a small satellite that fits inside a 330mL soda can. The satellite will be launched to an altitude of 1km and will be deployed to land safely on the ground. We must equip the satellite with sensors to measure temperature, pressure, altitude, and location.
This Repository
The project is split into six subdirectories:
- 'backend': The backend server for the ground station
- 'mission-control': The frontend dashboard for the ground station
- 'landing': The landing page for the website
- 'embedded': The Arduino code for the CanSat microcontroller
- 'electrical': The electrical schematics and PCB manufacturing files
- 'mechanical': The CAD files of our CanSat
The embedded code consists of sensors detecting temperature, pressure, altitude, and location. The data is sent to the ground station via radio communication, which is relayed via socket communication to the frontend dashboard. The dashboard then visualizes that information in the form of graphs, a map showing the CanSat's location, and the live 3D rotation of the CanSat.
Project Presentation
This CanSat is designed to complete the primary mission, which is to send temperature and pressure data to the ground station live, at least once a second via radio. The CanSat also has a secondary mission, which is to drill into soil, take a soil sample, and test it with a ninhydrin chemical test within the CanSat's internal chamber. Using the CanSat's FPV live camera, we will determine the presence of amino acids in the soil if a change of color is shown in the ninhydrin.
To accomplish this, the CanSat will be first launched in a rocket to around 1km, then deployed with a parachute to descend at around 6m/s. When the CanSat lands, it will be on its side; we will send a command through our ground station to release the landing legs, which will spring the CanSat upright. We will then initiate the drill, which will drill a hole through our waterproof water chamber, releasing the water onto the soil to dampen it. The CanSat will then continue drilling into the soil, picking up a sample of wet soil, and then stop drilling and retracting up into the CanSat body. The ninhydrin chamber will swivel into place, where then the drill will lower into the chemical, allowing the soil to begin the chemical test. All of this will be remotely controlled from our dashboard.
Mechanical Design
- Designed in SolidWorks and 3D printed by Tristan, Jason, and John.
- Custom drill bit and other parts machined to fit inside the CanSat body.
- 4 motors used: GB 2208 Gimbal motor for drilling, 5g servo for testing chamber, N20 worm gear motor for leg release, and 2.5g servo for lead screw.
Custom Designed Printed Circuit Board
- Designed and hand-assembled by Jason on KiCad.
- Onboard sensors: GPS, 6 axis IMU, and 2 redundant barometers.
- Includes MOSFETs for motor control, 5V buck converter, and TVS diodes for ESD protection.
Software/Ground Control
- CanSat onboard programming written in Arduino
- Written for Teensy 4.0, so it supports 'multithreading' (with careful process jumping)
- Nextjs frontend + ExpressJS backend, written by Hinson
- Data path: Onboard sensors -> Arduino serial -> Radio -> WebSocket backend -> Nextjs graph
- Graphs showing live data updates (temperature, pressure, calculated altitude)
- Fully-functional offline (no WIFI) slippy map
- Gyrometer data 3D (threejs)
- Control motors live with Bidirectional communication
- Buttons send message via. data path in reverse:
- Websockets -> Radio -> Serial read -> parse as commands -> send power to pin
Cost Breakdown
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
