Implementing a covert UI and Stepwise mathematical solver on the PocketBeagle in order to act as a compact utility device.
Student: Patrick Grave
Mentors: Coming soon.... Code: https://github.com/HydraulicSheep
GSoC: GSoC entry
This project is currently just a proposal.
School: The University of Melbourne
Primary language: English
Typical work hours': '9AM - 5PM GMT+11
Previous GSoC participation: Tell us why you want to participate in GSoC here. I have not participated in GSoC previously but I did partake in 'Google Code In' with Zulip.
About my project
Project name: PocketBeagle Covert Mathematical Solver
The project involves implementing a Stepwise mathematical solver on the PocketBeagle in order to act as a covert calculator modification. The key value of the project is twofold:
1. Implementing a mathematical solver on the PocketBeagle. This makes inroads into more symbolic algebra and perhaps SAT-related computation on the small board.
2. Working within covert constraints (e.g. an unassuming UI without compromising UX). This may aid future efforts in other similar ventures (such as networking on such a device) or even security-related fields (an unassuming device for war walking).
Goals beyond the suggested ideas:
3. Add high-level scripting functionality (e.g. in lua or something similar). This would allow users with little low-level experience to increase the device's functionality. For example, a user could implement a solver for geometric problems which cannot be written symbolically.
4. Extend the device's UI capability. This has a great software value as it lends this device far more utility. This interface could allow web-browsing capability (but such an extension is likely out of the scope of this proposal) or pentesting/security modules as a pocket-calculator is a relatively unassuming device to carry around.
Provide a development timeline with a milestone each of the 11 weeks and any pre-work. (A realistic timeline is critical to our selection process.)
|Mar 30||Proposal complete, Submitted to https://summerofcode.withgoogle.com|
|Apr 27||Proposal accepted or rejected|
|May 18||Pre-work complete, Coding officially begins!|
|May 25||Milestone #1, Introductory YouTube video|
|June 1||Milestone #2, Setup calculator environment. This includes interfacing with the screen and capacitive keyboard (as well as physically fitting in the case).|
|June 8||Milestone #3, Create the UI and control systems that hide the secret features of the device while allowing easy interaction.|
|June 15 18:00 UTC||Milestone #4, Mentors and students can begin submitting Phase 1 evaluations|
|June 19 18:00 UTC||Phase 1 Evaluation deadline|
|June 22||Milestone #5 Finish implementing algebra system.|
|June 29||Milestone #6 Extend featureset to include basic Calculus and matrix-related operations.|
|July 6||Milestone #7 Implement advanced mathematical functionality (The extent of this is adaptable).|
|July 13 18:00 UTC||Milestone #8, Mentors and students can begin submitting Phase 2 evaluations|
|July 17 18:00 UTC||Phase 2 Evaluation deadline|
|July 20||Milestone #9 Finish high-level scripting functionality.|
|July 27||Milestone #10 Conclude by tidying up any documentation and neatening the UI so it is accessible and adaptable to new features.|
|August 3||Milestone #11, Completion YouTube video|
|August 10 - 17 18:00 UTC||Final week: Students submit their final work product and their final mentor evaluation|
|August 17 - 24 18:00 UTC||Mentors submit final student evaluations|
Experience and approach
What will you do if you get stuck on your project and your mentor isn’t around?
I think, particularly for a project such as this, there are three alternate avenues to overcome obstacles: Firstly, the internet provides a great wealth of guides, videos and tools that should be able to aid me, no matter the problem. It is highly likely someone will have encountered my problem before and I should be able to learn from their experience. Secondly, I am not afraid to turn to a reference manual or datasheet in order to get things done. Although often dense and challenging, given the time, I am sure I can find the answers I need. Thirdly, if all else fails, there is always the option of applying strategies to diagnose the problem and tinkering to resolve it. Although this may take longer, it will ultimately give me a greater understanding of the project and help with future dilemmas.
If successfully completed, what will its impact be on the BeagleBoard.org community?
From this proposal, the BeagleBoard community will receive a platform for covert and compact systems. Such a system has value both for security and for compact integrated applications. A valuable component of this system is its UI which will hopefully provide inspiration to potential creators and guide them in creating compact, covert interfaces.
Further, this calculator project is likely to bring more people into the BeagleBoard community as it has utility, is an entertaining concept and is made from easily accessible components.
(Quotes from community members coming soon)
Pull request link coming soon.