Competition | 2023-2024 Aerial Evolution of Canada Student Competition |
---|---|
Team | Waterloo Aerial Robotics Group |
Technical Director | |
Version | Document Version V. 038 updated on . See changelog at end for details. |
On this page |
This page describes the top-level view of the 2024 competition airframe, and contains references to sub-pages with implementation specific details. This page will be finalized as of Nov 6, 2024. Any changes after that point must follow the formal RFC process. Ping Anni for more details.
Please make your RFC using the following link: tbd
Supporting Documents
🗂 References and documentation
🖇️ Standards
Standards section should only include standards that this system is abiding by and exclude other standards that aren’t relevant or necessary.
Please try and include a version of a the standard you’re referencing (e.g. “CAD Guidelines V. 17”).
📐 Architecture
This is the top-level document for the 2023-2024 AEAC competition aircraft “Pegasus”. These documents describe the purpose, function, and decisions made relevant to the design and use of the remotely piloted aircraft. It has been divided into sub-sections (in no particular order) which hope to offer a global overview of the design and implementation of all systems, as well as how they interface with each other.
Ultimately, this document serves as a “reference manual” for Pegasus, and should contain necessary information for the usage and support/maintenance of Pegasus. Engineering decisions and background knowledge should be provided as references, external links, or as subpages. We want to know how this drone works, and not necessarily why that decision was made.
If you are editing this document, please do your best to add in the changes made into the changelog and ID the version that you are on.
BOM
This lists all of the components that constitute the configuration of a drone that we wish to fly at competition in May 2024. Some parts may be listed as “Optional” (🔍), in which case they will bethey are not strictly necessary for flight but may be useful in improving system performance.
Here, “Quantity” refers to the number which is needed for a functional drone.
Airframe | ||||
Part Function | Manufacturer | Part Name & Link | Qty | Notes |
Propulsion | ||||
Part Function | Manufacturer | Part Name & Link | Qty | Notes |
Propellers | T-Motor | MF2211 | 4 Indiv 2 CW 2 CCW | |
Motors | T-Motor | Antigravity MN6007II | 4 Indiv | See Motor Selection Subpage |
ESC | Advanced Power Drives [APD] | 120F3[X]v2 | 4 | |
Power Distribution | ||||
Part Function | Manufacturer | Part Name & Link | Qty | Notes |
Batteries | Turnigy | Heavy Duty 5000mAh 6s 60C LiPo Pack w/XT90 | 4-6 | |
PDB | Advanced Power Drives [APD] | PDB500[X] | 1 | |
Power Monitor | Holybro | Holybro PM02D High Voltage | 1 | |
BEC | Mateksys | BEC12s-Pro | 1-2 | |
Flight Control System | ||||
Part Function | Manufacturer | Part Name & Link | Qty | Notes |
Autopilot | Holybro | Pixhawk 5/6x + SD Card (logging) | 1 | |
GPS | Holybro | Holybro M9/10N GPS | 1 Prim 1 Sec | |
Unknown | Future RTK system | |||
Rangefinder 🔍 | Benewake | TFMINI-S Micro LIDAR Module I2C | 1+ | |
Optical Flow Sensor (OFS) 🔍 | CubePilot | HereFlow | 1 | |
Compass 📉 | ||||
Barometer 📉 | ||||
Jetson TX2 | Fully documented with system requirements in Jetson | |||
Raspberry Pi | ||||
RF + Peripherals (grouped because it’s small bits of things) | ||||
Part Function | Manufacturer | Part Name & Link | Qty | Notes |
Control Link | TBD | ELRS Diversity RX | 1 | 1 of either |
WARG | ELRS Gemini | 1 | ||
Telemetry Link | 1 | 1 of Either Potentially double up 4 redundancy | ||
Abra Electronics | LTE Hat | |||
RF Design | RFD900x | |||
Video Transmitter | Mateksys | VTX 1G3SE | 1 of either | |
Foxeer | 1.2G 5W (Enhanced) 4ch | |||
FPV Cameras | Caddx | Baby Ratel 2 | 2 | |
OSD | Holybro | Holybro Micro OSD V2 | 1 | |
Video Mux | Lumenier | 3-Way Multi Camera Video Switcher Board | 1 | |
Lighting 🔍 | - | - | NAVLights | |
- | - | Landing Lights | ||
CV Camera | Hupuu | 200$ CV Camera | ||
Groundside | ||||
Part Function | Manufacturer | Part Name & Link | Qty | Notes |
Groundstation Laptop | Lenovo | Thinkpad T490? | 1 | |
1.3G Video RX | ReadyMade RC | 900-1.3 GHz Receiver w/Tuner | 1 | |
5.8G Video TX | AKK | TS832 5.8 GHz VTX | 1 | |
RC Control Link | WARG | ELRS Gemini | 1 | PREF GEMINI WHEN POSSIBLE |
RadioMaster | RadioMaster Ranger FCC | 1 | ||
Telemetry Link | WARG | ELRS Gemini | 1 | |
RFDesign | RFD900x | 1 | ||
❓ | LTE Hotspot | 1 | No manufacturer | |
Telemetry Relay | Xbee | XBEE Pro 5.8 | 2 | |
ELRS | ELRS Airport | |||
FPV Goggles | - | Pilot Preference | ||
RC Controller | RadioMaster | TX16s MkII ELRS Mode 2 HALL | 2 | |
Video Monitor | - | Generic 5.8 GHz Receiver | ||
List of user manuals & references
We maintain an active list of PDF revisions of user manuals, datasheets, and spec reference parts in the event that an externally hosted server goes down or a manufacturer discontinues a part.
Anni still needs to do this!
etc….
Pegasus Overview
Pegasus is a “heavy-lift” quadcopter designed to serve as a generic quad-rotor platform for AEAC 2024 as well as future competitions. It features standard mounting grids across the entire frame, as well as modular landing gear and easy disassembly of all components for transport or repair.
Below is a summary of system characteristics which are expected of Pegasus
Min | Recc/Avg | Max | |
---|---|---|---|
Propeller Diameter (in) | 20 | 22 | 24 |
Battery Voltage (v) | 36 | - | 50.4 |
Takeoff Weight | 4.5 | < | 8 |
Thrust (kg) | ~16 | ||
Flight time (min) | 30 | TBD (40?) | |
Wind Lim. (kt) | < 20 | TBD (< 60) | |
Altitude (m) | < 120 | 200 | |
Horizontal Pos Accuracy (cm) | +/- 2 | +/-30 | +/- 200 |
Vertical Pos Accuracy (cm) | +/- 2 | +/- 15 | +/- 30 |
Usable Range (km) | 1 | 10 | inf w/LTE |
Airframe
Pegasus is an X-frame configuration and motor arms attached directly to a straight aluminum block. Here are some of the key notes:
30x30mm mounting grid for peripheral and accessory mounting
Xmm thick mainplates
Xmm distance between mainplates
Xcm distance motor to motor
Xcm dimensions with props on
Xmm high spacer for the autopilot
Mech should probably fill this out a bit more
<pegasus rendering>
< more information & dimensioning if necessary >
Top & Bottom Plates
Mech should probably fill this out a bit more
Featuring 30x30 mm blocks, these plates provide torsional rigidity and protection for batteries within the drone. They are < more information here >. These are Xmm thick, and made with <material>. FILES.
Center Block & Inner area
Mech should probably fill this out a bit more
The center block is where all 4 arms connect, and how the arms remain rigid and centered on the drone frame. It is made of <material> and uses <screws> to disconnect. Shoulder bolts are used <somewhere> to improve <something>. It is designed for easy removal of the arms for transport, if necessary.
< Link to supporting documentation/CAD>
Interfacing
The center block and arms are designed to allow 3-phase motor wires to run through the arms and exit out the cube below the pixhawk or otherwise <drawings here would help>.
MT30’s are designed to fit within the cube and arms for quick-disconnect of the 3-phase leads. See connector standardization for more information.
Removing the arms
Instructions for how to remove the arms, diagrams if possible.
Arms & Landing gear
Mech should probably fill this out a bit more
The arms mount to the airframe at the center block, and also through the spacers located at each corner of the frame. The landing gear mounts directly to the arms.
Payload attachment points
Inofrmation about how exposed slots in the frame allows for payload attachment points and best practices for that
Motor Mounting
Mech should probably fill this out a bit more
Motors are mounted on 3d printed mounts with a <pattern> (insert a photo if you can).
Electrical Protection
Although not strictly airframe related, avionics covers and cabin covers will be an integral part of the airframe design, and must be well-integrated. The end goal of the system is simple:
Protect electronics from the elements
Allow easy (tool-less or one-tool) access to the components, without restricting someone from working on or replacing components
Allow for appropriate cooling for the components
Typically, when airflow but water ingress is required, the use of S ducts and foam can be employed. Internal fans may also be used to provide airflow to prevent system overheating while on the ground.
Most components will run ~ 20-30 degrees hotter than ambient, and will thermal limit around 80 degrees celcius. This means that on an average “warm” day, our compoments have around 20-30 degrees of headroom. Think about how much hotter a cabin may cause components to be, especially if black carbon fiber and in the air (exposed, not under shade).
Propulsion
Electrical, please insert a schematic & layout diagram with motors, connectors, esc’s with breaks to the rest of the HV distribution system
Pegasus uses 4 T-Motor Antigravity MN6007II kv160 motors. These motors are designed to run on 12s voltage and are wired to APD 120F3[x] v2 ESCs. The ESC’s are significantly overspecced and are designed to allow for continuous operation in high ambient heat environments and minimal passive cooling, although this is not a recommended mode of operation.
Motors
There are multiple alternative motors which we may use, and these interface to the carbon-fiber arms using 3d printed parts. The motor specifications change a bit depending on the propeller that we’re using. Review the following charts:
From that data, we can synthesize the fol
Recommended/Target | Maximum | |
---|---|---|
Takeoff Weight / Motor [kg] | 2 | 6* (depends on prop) |
Current Draw (hover) [A] | 3 | 25 |
Operating Temp | < 70 C | 90 C |
Interface
The motors mount to a 3d printed block which attaches to the ends of the arms. Multiple propeller mounting options are available!
3.5mm male bullet connectors will exist on the motor leads, and these will plug into 3.5mm female bullet connectors on 3-phase wires which run through the carbon fiber arms.
Propellers
The current propellers are T-Motor MF2211 props. These do not follow typical propeller naming convention. They are 22” in diameter, but 8” in pitch (not 11). The 11 at the end of the name refers to the maximum thrust which the prop may provide.
Mounting
These propellers do not need a prop-washer to be mounted, the following infographic from the T-Motor website explains proper mounting solution:
Vibration
With folding props, it is possible to have vibrations and harmonics. It is important to look at motor data from telemetry logs, as well as listen to pilot and operator feedback gained from visual and audio cues, especially if there is significant turbulent air or pressure differentials across the path of the propeller.
Balancing
Our props come balanced from T-motor, and may need to be balanced if they acquire nicks, scratches, chips, or other deformities. See <prop balancing link> for more information.
Safety & Storage
T-Motor Polymer folding props require particular storage and upkeep.
Please refer to <general prop storage> for storage information, and please refer to T-Motor instructions on tuning the friction of the joints to ensure safe operation.
Electronic Speed Controllers
For the most part, the choice of electronic speed controllers is fairly relaxed as there are many commercial and off-the-shelf hobby components that may do the job. Keep in mind when choosing your speed controllers the software, protocols, and current/volage ratings that it may have.
Interfacing
ESC’s will have 3.5mm female bullet connectors on 3-phase live side. This will attach to a short MT-30 extension, where the MT-30 on the block-side will be fe-male, while MT-30 on the arm-side will be male.
Our speed controllers often have through-hole solder pads and castellated pads. Refer to EE guidelines on how these should be soldered.
Telemetry and Signal wires should be soldered to the pdb.
This is done so that there is a common ground reference point (star topology). There exist solder pads in between the voltage pads for ground, signal, and telemetry on all APD esc’s and PDB’s. These should be used, with M1-4 connections on the PDB being taken to the pixhawk.
There are thru-holes on the ESC’s. These are not mounting holes.
ESC cases may be made of any material, but general guidelines are that they should be made of non-conductive and thermally resistant materials. 3D-printed TPU is often a good choice. The ESC cases must allow for the removal and replacement of ESC’s with only the disconnection of 3.5mm and xt60 connectors, and with no disruption to other parts of the drone. (I.e. ESC only replacement must be possible).
Heatsinks + Cases
ESC’s generate a lot of heat, and are prone to foreign objects shorting terminals or interfering with operation. ESC’s should be mounted in a way such that the possibility of foreign objects are minimized when in regular operations, and heatsinks shall be added as necessary to prevent thermal limiting or runaway.
Software Configuration
It is recommended to run the ESC’s using default firmware (BL_HELI, Bluejay, etc) at 48khz update loop. This offers the best blend of controllability and power efficiency.
Bidirectional dshot must be supported as this offers critical logging and flight performance data, as well as advanced filtering options for the autopilot. On Pegasus, it is recommended to run DShot 300, as 600 may introduce significant signal integrity issues, and DShot 150 may be too slow for accurate bidirectional data transfer.
Telemetry wires shall be connected to a uart port, in the case of a bidirectional dshot failure. This is significantly slower than bidirectional dshot but offers us a failsafe and backup.
Power Distribution
On Pegasus, “power distribution” refers to all elements that affect and interact with power before it is distributed to individual components. Typically, this includes:
Power distribution boards for ESC voltage
12v and 5v LV supply for peripherals
Power monitoring & Power backups for the flight control system
All power on pegasus runs to a common source (the PDB), with the exception of the pixhawk system power delivery which will be provided by the power monitor + BEC backup.
Battery Voltage
EE to fill in with more information
Battery voltage is around 50 volts for pegasus. All high voltage systems follow <EE to insert spec here>.
Interfacing
There exists 30x30mm mounting holes on the PDB. These may be used directly on the 30x30mm mounting holes on the drone. Electrical isolation must be provided between the contacts of the PDB and the carbon fiber, as voltage may arc across the carbon fiber starting (at worst) fires.
<photo>
A case shall be provided for the PDB that covers the terminals, but leaves sections exposed such that it is possible to attach wires to the LV and motor busses.
<EE to attach photo>
XT90’s will be used between battery and PDB
XT60’s will be used between PDB and ESC
Batteries & Harnessing
Pegasus officially supports 4, and 6 battery configurations. Physically 8 batteries will fit with a light enough payload.
These batteries are cross-connected from each other, meaning that the only difference between a 4 and 6 battery connection is the NC of one pair. These should be labelled or colour coded
Below shows the two different battery configurations we can fly. Pairs of 6S battery cells are connected in series and terminated with an XT90. The harnesses below show how the batteries are attached and how removing harness 3 and the cells with it bring the drone into its 4 cell configuration.
XT90 standard across the board, but the maximum peak current draw from all 4 motors is anticipated to be around 90Amps. Any individual motor will not draw more than 23 amps at a time, not including the path.
Errata
On certain long voltage runs, it may be necessary to “double up” on decoupling capacitors. <ee to fill in more>.
Low Voltage
< Insert schematic here >
Low voltage systems on Pegasus run at either 5 or 12v. Below are the voltage and current draws of each (potential) Noteworthy peripheral. Please refer to individual documentation for more information
EE to double check and verify my inane rambilngs
Jetson: 12v 4A
Raspberry Pi + LTE: 12V 2A
RFD900: 5V 1.5A
Pixhawk: 5V 3A
800mW vtx: 12V 1A
5W vtx: 12V 5A?
Gemini: ???
I may be missing multiple items. EE leads please double check from prev. years and compare
Power Monitoring
We use powering monitoring from a Holybro PM02D HV module. This uses I2C to communicate with our autopilot, meaning that we don’t need to do analog voltage or current calibration.
This is used in isolation, with no backup. There is only 1.5A continuous draw available ee leads fact check me, and this power monitor will continue to update current and voltage measurements even after LDO failure.
LDO failure should be mitigated by providing the pixhawk with a BEC that is capable of up to 5A continuous draw. fact check me 5 or 3a.
Pixhawk Errata
Note that the pixhawk telemetry ports only support 0.5A current; with the exception being “Telem1” which supports up to 3A.
The pixhawk also supports two concurrent power monitors. We are using 1 power monitor and 1 BEC with NC’s on the remaining pins for better redundancy under thermal limit.
Flight Control System
Pegasus will operate using an ardupilot software stack. As of Fall 2023 Pegasus runs software revision 4.4.0, as this brings necessary changes for digital power monitoring and bidirectional dshot.
Software Configuration
Anni to fill this out (this is less relevant ATM)
You should always do a ground spinup before you fly, no matter how confident you are of the system.
Sensors
Please refer to each sensors page under our operating manuals space in sysint.
Pegasus will use the following external sensors:
Two M9 or M10 sensors, using GPS blending for position; or 2 RTK sensors being blended.
one of these will be the “primary” gps, and must have an accessible safety switch.
1 Optical flow sensor, facing downwards and aligned with the drone
1 Lidar rangefinder, facing downwards
Anni to make mounting requirements pages for all of these (see sysint space most likely).
Particular Mounting constraints
When using blended GPS sensors, these shall be placed as far apart as possible, with no wiring nearby and with the sensors elevated above the plane of the drone.
A word about calibration
It is not necessary to re-calibrate the compass every time you fly, but it is strongly recommended to do so if you have moved more than 40km from your original location as you may have different magnetic interference.
Accelerometer calibration does not need to be done more than the first time you did setup, or if there is significant concern about the health of the system.
RF + Peripherals
There are a number of external devices on the drone. Autonomy is largely responsible for additional compute, while Electrical is largely responsible for RF
Frequency Distribution
Pegasus will support 2.4+900+433 interchangeable control links, as well as LTE+piggybacked telemetry, and dedicated 2.4 or 900 telemetry systems.
Pegasus will use 1.3 ghz as the primary airside video frequency.
Antenna Choice
2.4ghz antennas will be regular dipoles, potentially folded dipoles. Refer to https://docs.google.com/spreadsheets/d/1G2Ue9xrBFwbJbkzpw3Gx3-eZ3x3dWSVjVrP4fPepvcg/edit#gid=0 for the best selection.
1.3ghz antennas will be circularly polarized antennas provided by TrueRC. Airside antennas will be Singularity 1280’s.
900 MHz antennas tbd
433 MHz antennas tbd.
Antenna Placement
< EE TO ENTER MORE INFORMATION ABOUT RF STUFF >
Control Link
GEMINI GO BRR
Telemetry Link
GEMINI GO BRRR LTE GO BRRR
Video System
1.3 go brrr. System unchanged from previous year: 1 forward facing camera and 1 downward facing camera
The entire video system uses Analog video, including:
2 Caddx baby Ratel 2 cameras (or cameras of similar size)
1 PWM-based video mux
1 OSD using ardupilot telemetry
1 1.3ghz video transmitter, either 5W or 800mW depending on application.
Electrical team to insert schematic of Video transmission system including:
2 fpv cameras → MUX (with PWM from Autopliot) → OSD (with Telemetry from Autopilot) → VTX
FPV/Pilot Cameras
One FPV camera shall be mounted pointing downwards, with no obstructions from landing gear or payload systems, allowing the pilot to view the landing zone and safely guide the drone to the ground. The orientation of the downward camera shall be as if a typical camera were pointed forwards, and then rotated 90 degrees to face downwards. The angle of this camera should tied to the angle of the drone.
A different FPV camera shall be mounted pointing forwards, with +/- 20 degrees of adjustment from being level while the drone is in forward flight. This adjustment allows the pilot to fine-tune the field of view for their flying style. For design purposes, level flight will put the drone at around 30-45 degrees pitch. There should be no obstructions in the field of view of this camera, with the exception of propellers which may be in the field of view provided they do not obstruct vision such that the pilot can not see past them.
Wiring from the FPV/Pilot cameras is a pure analog signal, and should be shielded and kept away from sources of high EMI as much as possible.
Video Mux
Connectors will not be used directly on the video mux, and all input/outputs should be soldered with pigtails or extension leads, with locking connectors. This is done since connectors are easy to bump and come loose, especially when non locking.
The video mux & the OSD may share a case.
OSD
Similar to the video mux, only locking connectors or soldered pigtails shall be used on the OSD. OSD & VMUX may share a case.
Video Transmitter
The video transmitter will generate a lot of heat, and consideration must be made such that there is adequate thermal capacity (i.e: heatsink) on the video transmitter, and there must be passive airflow over the VTX while in flight. This may be achieved through the use of NACA ducts, large surface area heatsinks, or open-air components.
although it may be possible to test using open-air, highly recommend having a solution that allows for airflow through a series of ducting/gating/filtering that will help to reduce water ingest
Open Questions
https://discord.com/channels/776618956638388305/776618957138034690/1154963561563553793
Anni on stability of the drone
PIKACHU OBLIGATORY PIKACHU
ok thank you for listening
Change Log
Version | Date | Comment |
---|---|---|
Current Version (v. 39) | 2023-09-23 07:14 | Daniel Puratich |
v. 57 | 2024-01-24 13:58 | Anthony Luo |
v. 56 | 2024-01-24 13:56 | Anthony Luo |
v. 55 | 2024-01-23 14:53 |
Anthony Luo Addresses 2024-01-22 RFC's |
v. 54 | 2023-10-15 22:58 | Conall Kingshott |
v. 53 | 2023-10-09 03:37 | R D |
v. 52 | 2023-10-09 03:34 | R D |
v. 51 | 2023-10-09 02:53 |
Anthony Luo Small updates for correctness. |
v. 50 | 2023-10-08 19:37 | Mihir Gupta |
v. 49 | 2023-10-07 17:11 | Daniel Puratich |
v. 48 | 2023-10-06 02:08 | Conall Kingshott |
v. 47 | 2023-10-05 17:49 |
Alison Thompson Preliminary Cabin + Cargo section has been added |
v. 46 | 2023-09-30 17:30 | Daniel Puratich |
v. 45 | 2023-09-30 17:16 | Daniel Puratich |
v. 44 | 2023-09-30 14:55 | Daniel Puratich |
v. 43 | 2023-09-26 03:23 | Conall Kingshott |
v. 42 | 2023-09-26 03:20 | Conall Kingshott |
v. 41 | 2023-09-25 00:12 | Megan Spee |
v. 40 | 2023-09-24 00:38 |
Anthony Luo Added output configuration information to "Flight Control System > Wiring & Outputs" section |
v. 39 | 2023-09-23 07:14 | Daniel Puratich |
v. 38 | 2023-09-23 02:20 | Anthony Luo |
v. 37 | 2023-09-21 03:59 | Michael Botros |
v. 36 | 2023-09-21 03:59 | Michael Botros |
v. 35 | 2023-09-21 03:58 | Michael Botros |
v. 34 | 2023-09-21 02:12 | Daniel Puratich |
v. 33 | 2023-09-21 00:21 |
Anthony Luo Updates to better represent the nature of the document (as a reference manual) |
v. 32 | 2023-09-20 04:39 |
Anthony Luo V.032: Added burner/starter information for power distribution (HV & LV), as well as templates for FCS/RF/Periph information. formatting mid but will work on it slowly. |
v. 31 | 2023-09-20 03:52 | Anthony Luo |
v. 30 | 2023-09-20 03:27 | Daniel Puratich |
v. 29 | 2023-09-20 03:27 | Daniel Puratich |
v. 28 | 2023-09-20 03:02 | Daniel Puratich |
v. 27 | 2023-09-19 16:23 | Mena Azab |
v. 26 | 2023-09-19 14:47 | Daniel Puratich |
v. 25 | 2023-09-19 14:36 | Daniel Puratich |
v. 24 | 2023-09-19 01:01 | Daniel Puratich |
v. 23 | 2023-09-19 00:35 | Daniel Puratich |
v. 22 | 2023-09-17 20:38 | Anthony Luo |
v. 21 | 2023-09-17 20:38 |
Anthony Luo V.018 |
v. 20 | 2023-09-17 20:37 | Anthony Luo |
v. 19 | 2023-09-17 20:36 | Anthony Luo |
v. 18 | 2023-09-17 18:03 | Anthony Luo |
v. 17 | 2023-09-13 23:39 | Anthony Luo |
v. 16 | 2023-09-12 19:34 | Daniel Puratich |
v. 15 | 2023-09-09 20:12 | Daniel Puratich |
v. 14 | 2023-09-09 20:09 | Daniel Puratich |
v. 13 | 2023-09-04 16:22 | Daniel Puratich |
v. 12 | 2023-07-13 02:43 | Daniel Puratich |
v. 11 | 2023-07-13 02:40 | Daniel Puratich |
v. 10 | 2023-07-10 20:26 | Michael Botros |
v. 9 | 2023-07-04 21:03 | Michael Botros |
v. 8 | 2023-07-04 20:05 | Anthony Luo |
v. 7 | 2023-07-04 20:03 | Megan Spee |
v. 6 | 2023-06-14 12:43 | Nathan Green |
v. 5 | 2023-06-08 01:59 | Anthony Luo |
v. 4 | 2023-06-08 01:58 | Anthony Luo |
v. 3 | 2023-06-05 21:52 | Anthony Luo |
v. 2 | 2023-06-02 00:14 | Anthony Luo |
v. 1 | 2023-06-02 00:14 | Anthony Luo |