This page is for the AV3 avionics and ground software. Here are the active software projects for L-10 (June 2013).
Admin
Flight computer
Atom-based flight computer, connected via Ethernet to Cortex M4-based sensor nodes. Wireless 802.11a telemetry to the ground during flight. (Other end of 2.4 GHz band for ATV.)
- PSAS GitHub repository: https://github.com/psas/elderberry
- TODO: Capstone gave us infrastructure. Now, write some avionics modules! In priority order:
- Roll control (ported by Dan; PWM, ADIS by Capstone team and Jamey and Kay)
- GPS USB reader
- telemetry downlink
- IMU reader
- Docs on how to write a module spec are here: https://github.com/psas/elderberry/tree/master/documentation
- TODO: Capstone gave us infrastructure. Now, write some avionics modules! In priority order:
- PSAS AV3 repository https://github.com/psas/av3-fc (GPS and some other working code)
- Event-driven flight computer simulator is for experimenting with control algorithms, like Bayesian Particle Filtering
- Personnel: Jamey Sharp, Theo Hill, Ian Osgood, elderberry Capstone team
Our previous avionics experiments were with CAN (not developer-friendly) and USB (bad latency).
Launch tower computer
Launch tower computer uses Phidgets for sensor nodes and a Beagle board to serve them. Unlike previously, there will be direct ethernet connection between the launch tower computer and rocket while on the pad, used for bringing up and controlling the avionics pre-flight. Wireless 802.11n/g between launch tower computer and telemetry consoles and launch control consoles.
- Repository: https://github.com/psas/launch-tower
- TODO: only has schematics. Needs source for its Windows launch controller, documentation of protocols.
- Personnel: Richard Witherspoon, Nathan Bergey
Launch control
Console software written in Python 2.7 with Kivy UI framework http://kivy.org. Phidgets python drivers also required. Linux recommended.
- Repository: http://git.psas.pdx.edu/launch-tower-comm.git
- discarded mock Phidget server idea
- TODO: move away from dictionary to separate object per Phidget sensor, each maintaining its own connection.
- Kivy framework: http://kivy.org/#download
- Kivy documentation: old, and new
- Phidgets Python support: http://www.phidgets.com/docs/Language_-_Python#Quick_Downloads
- Previous UI spec: RocketViewLaunchPanel, LaunchControl (Java, CAN-over-sockets)
- Personnel: John Boyle
Telemetry viewing
- PSAS AV3 repository https://github.com/psas/av3-fc/tree/master/ground contains a Python telemetry viewer (mcc.py)
- TODO: make sure it still works with the elderberry Capstone team's telemetry format
- TODO: "make pretty"
- Another task: a toolchain to process the NTSC ATV signal and broadcast it on the ground network, to run on the Raspberry Pi mounted on the Trackmaster
- Previous UI spec: RocketView (Java, CAN-over-sockets)
- Personnel: Nathan Bergey
Pretty much everything below is obsolete. The previous requirements, communications protocols, and UI designs could be instructive for current projects.
This page is for the LV2c software development project, which overlaps with the Avionics. You may be interested in the old LV2SoftwareTeamHome or GroundTeamHome. Discussion occurs on our mailing list; see http://lists.psas.pdx.edu/mailman/listinfo/psas-software.
Projects
Testing infrastructure
Not yet established, but may include
- qemu
- CruiseControl
- Trac
Avionics software
Tower software
This may remain unchanged from the LV2 avionics system.
Ground software
- Visualizer
- RocketView
- LaunchControl
- ?TerrainModeling
Analysis and other tools
Tool Notes
- DebianCrossCompilerHowto
- GentooCrossCompilerHowto
- PowerPCKernelBuilding
- FlightComputerNotes
- SudoSetup
- Git repository for new work
- Web interface to our previous Subversion repository Currently broken
- AvionicsSVNAccess
- Eventually our archived work on LV2b and prior projects will be migrated to Git repositories
Notes on the LPC 2368 / LPC 2378
Languages and Methodologies
- EmbeddedExtremeProgramming: XP and Mach 2; extreme methods for extreme environments?
- HaskellProgramming: functional, lazy, provably-correct rocket software?
- EsterelProgramming: state machines are your friends