PETI is a project to create a bespoke, retro-styled Virtual Pet running on the MSP430FR5994 microcontroller, along with a number of late-project goals to add functionality that is useful for demonstrating the sort of Hardware Hacking concepts useful in (i.e.) DEFCON Badge Challenges.
Full documentation is available as part of the "documentation" directory of this repo. A suite of helper tools is present here
This project involves both firmware and hardware development.
This project is currently on hiaitus. You're stll welcome to submit bug reports (which will be addressed rapidly) or make use of the codebase, but we have a couple of caveats:
- Missing firmware functionality and gameplay features are not currently scheduled to be released. There's some frozen work on the
v/0.6.0branch and f/ branches originating from it, which starts implementing the next gameplay release. - It is not currently advisable to mill the development kit boards provided under
hardware. When the project comes off hiaitus there's going to be a major hardware redesign released, which will be simpler and more elegant.
Currently, we think the project is likely to come off hiaitus sometime around the start of 2027.
The version of the project hosted on github is no longer being actively maintained and has been scheduled for truncation (removal of branches and notices apart from this readme file). The authoritative main repository of this project is Arcana Labs' Forgejo. Please redirect your upstream branch definitions to that repository. In the days to come, the remaining files from this repository will be removed and purged from the commit history on Github. This has been done because of GitHub's decision to allow for - and encourage - the training of proprietary large language model code generation systems on codebases where the licensing implicitly (or often explicitly) does not permit such conversion.
This project has a number of requirements that need to be satisfied to build the project successfully:
- It is advised that the developer install TI's Code Composer Studio and its included compiler, or otherwise source cl430 and the rest.
- The developer will also need to meet the requirements laid out in
hardware_design/readme.md, and; - The developer will need to provide both the standard MSP430 incudes directory and the "driverlib" from MSP430, both available under license from TI.
Specific cloning/installation instructions are included under documentation/env_setup.md
Building PETI has been and will likely continue to be a time-consuming effort. Even at this early stage, some custom hardware has needed to be developed in order to develop the corresponding firmware.
If you would like to contribute to the development of PETI, feel free to submit a pull request, or perhaps buy me a coffee at ko-fi.com/arclabs, or consider backing @ZAdamMac on Github Sponsors
The current version of the makefile (1.0) accepts the following commands:
make- performs a full rebuild of the entire source tree undersrc/and generates an output binary suitable to run on the MSP430FR5994.make clean- deletes thebuild/dir. Useful for tidying up pre-commit.make target-check- Outputs information about the currently-connected MSP430FR5994 and/or PETI Dev Kit. Sanity check to ensure a good connection.make target-flash- Performs the full rebuild then flashes the output binary to the connected PETI dev kit or other MSP430FR5994 target.make target-debug- Performs a full rebuild, starts the MSP430FR5994 connected by USB in its debugging mode, then uses msp430-dgb to enter debugging mode.
Please see https://www.arcanalabs.ca/hardware/PETI.html for the latest news on this project.