https://reu.cs.mu.edu/index.php?title=User:Mbajzek&feed=atom&action=historyUser:Mbajzek - Revision history2024-03-28T18:31:54ZRevision history for this page on the wikiMediaWiki 1.23.13https://reu.cs.mu.edu/index.php?title=User:Mbajzek&diff=499&oldid=prevBrylow: 1 revision2015-06-12T06:25:31Z<p>1 revision</p>
<table class='diff diff-contentalign-left'>
<tr style='vertical-align: top;'>
<td colspan='1' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='1' style="background-color: white; color:black; text-align: center;">Revision as of 06:25, 12 June 2015</td>
</tr><tr><td colspan='2' style='text-align: center;'><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>Brylowhttps://reu.cs.mu.edu/index.php?title=User:Mbajzek&diff=498&oldid=prevMbajzek: /* Week 09 (07/28/14 - ) */2014-07-31T17:05:14Z<p><span dir="auto"><span class="autocomment">Week 09 (07/28/14 - )</span></span></p>
<p><b>New page</b></p><div>= Personal Information =<br />
My name is Matthew Bajzek and I am currently a senior at Marquette University pursuing degrees in Computer Engineering and Computer Science.<br />
I work with Dr. Dennis Brylow, primarily within his research for Xinu.<br />
<br />
<br />
<br />
<br />
= Summer 2014 - ECS Robotics Module Redesign =<br />
== Week 00 (05/27/14 - 05/30/14) ==<br />
=== Tuesday ===<br />
* Underwent REU Orientation<br />
* Began planning potential modules<br />
=== Wednesday ===<br />
* Made schedule and divided work<br />
* Investigated Scratch and determined its potential as a platform<br />
* Began searching for previous work to utilize when designing course structure<br />
=== Thursday ===<br />
* Installed Scratch and began comparing modding potential of versions 1.4 and 2.0<br />
* Began looking into current state of XinuPi<br />
=== Friday ===<br />
* Did background research and began investigating a potential alternative to Xinu<br />
* Looked into existing peripheral options, as compared to existing curriculum modules<br />
<br />
== Week 01 (06/02/14 - 06/06/14) ==<br />
=== Monday ===<br />
* Continued background research, installing OS to Raspberry Pis and investigating its features<br />
* Considered peripheral options and began to draft tentative budget for summer prototypes<br />
=== Tuesday ===<br />
* Successfully installed and worked in PiScratch, though with some relatively serious display issues<br />
=== Wednesday ===<br />
* Began modifying Scratch 1.4 code (local installation) to get comfortable adding/modifying blocks<br />
=== Thursday ===<br />
* Successfully added custom blocks (behavior, appearance, name) to existing block categories, augmented UI<br />
=== Friday ===<br />
* Successfully added custom block category, including changes to blocks within category<br />
<br />
== Week 02 (06/09/14 - 06/13/14) ==<br />
=== Monday ===<br />
* Began reading through PiScratch Python script, considering options for modding PiScratch distribution<br />
=== Tuesday ===<br />
* Drafted presentation document for current course learning objectives<br />
=== Wednesday ===<br />
* Finalized presentation<br />
* Continued Scratch 1.4 modding (bundling broadcasts)<br />
=== Thursday ===<br />
* First REU lunch/talk<br />
* Presentation to Dr. Brylow<br />
<br />
== Week 03 (06/16/14 - 06/20/14) ==<br />
=== Monday ===<br />
* Considered switch from Scratch/Raspberry Pi to Ardublocks/Arduino<br />
=== Tuesday ===<br />
* Organized lab, determined current peripheral availability<br />
* Ordered Arduino Leonardo boards for development <br />
=== Wednesday ===<br />
* Investigated relative merits of two platforms for curriculum<br />
=== Thursday ===<br />
* Ethical research training<br />
* Configured development version of Maven, Ardublocks, Openblocks<br />
=== Friday ===<br />
* Began block development in Modded Ardublocks<br />
<br />
== Week 04 (06/23/14 - 06/27/14) ==<br />
=== Monday ===<br />
* Participated in Google hangout with Bob Juranitch to discuss project goals and possible module actities<br />
* Narrowed down peripheral list<br />
* Attended REU baseball game<br />
=== Tuesday ===<br />
* Attended Dr. Corliss' LaTeX presentation<br />
* Continued Ardublock modifications<br />
=== Wednesday ===<br />
* Continued Ardublock modifications<br />
* Read through ECS educational objective documentation<br />
=== Thursday ===<br />
* Curriculum discussions<br />
* Ardublock modding<br />
=== Friday ===<br />
* Ardublock modding<br />
<br />
== Week 05 (06/30/14 - 07/04/14) ==<br />
Out of lab for vacation (hours made up via overtime during other weeks).<br />
<br />
== Week 06 (07/07/14 - 07/11/14) ==<br />
=== Monday ===<br />
* Brought back up to speed on coding effort<br />
* Began creating poster template<br />
=== Tuesday ===<br />
* First steps to "Play Note" block implemented, pending testing<br />
* Started looking for breadboard alternatives for simpler teacher use<br />
=== Wednesday ===<br />
* Tested "Play Note", began work on removing pin input, adding full range of notes<br />
=== Thursday ===<br />
* Attended research poster presentation<br />
* Added example code<br />
=== Friday ===<br />
* Looked into simplifying Theremin, adding to Play Note to add flexibility<br />
<br />
== Week 07 (07/14/14 - 07/18/14) ==<br />
=== Monday ===<br />
* Struggled with adding a new block (bizarre bug)<br />
=== Tuesday ===<br />
* Fixed Monday's bug, discussed project goals/curriculum details as group<br />
=== Wednesday ===<br />
* Expanded project blocks for music projects<br />
=== Thursday ===<br />
* Attended graduate school discussion<br />
* Made project poster with group<br />
* Finalized some curriculum plans<br />
<br />
== Week 08 (07/21/14 - 07/25/14) ==<br />
=== Monday ===<br />
* Cleaned up XML (removed blocks)<br />
* Had design discussion<br />
=== Tuesday ===<br />
* Began shield design<br />
* Looked into parts<br />
* Looked into pin blocks<br />
=== Wednesday ===<br />
* Decided upon shield design<br />
=== Thursday ===<br />
* Developed final set of blocks for initial release<br />
* Cleaned up and streamlined code design<br />
=== Friday ===<br />
* Poster presentations in Cudahy Hall<br />
<br />
== Week 09 (07/28/14 - 08/01/14) ==<br />
=== Monday ===<br />
* Added robust error handling to blocks<br />
=== Tuesday ===<br />
* Developed prototype shield and prepared demonstrations for presentation<br />
=== Wednesday ===<br />
* Finalized error handling<br />
* Presented project to ECS representative and several teachers<br />
=== Thursday ===<br />
* Final REU presentations<br />
* Completed final paper<br />
<br />
= Summer 2011 - Concurrent Embedded Power Control =<br />
== Week 00 (05/23/11 - 05/27/11) ==<br />
* Familiarized self with lab hardware and software, including the Linux operating system<br />
* Began investigating source code and looking for possible sources of error<br />
* Developed bash script to test specific cases within source code via looping of xinu-power calls with set delays<br />
* Tested bash script with varied parameters on secondary board, discovering the minimum delay between calls for power cycling (0.015 seconds)<br />
* Began converting bash script to adapted C program to implement future queue systems before implementation into full program set<br />
* Began preliminary searches for queue mechanisms in C language<br />
<br />
== Week 01 (05/30/11 - 6/03/11) ==<br />
=== Tuesday ===<br />
* Met with mentors and coordinators to discuss program expectations<br />
* Toured the campus with non-Marquette students<br />
* Handled financial paperwork with Human Resources<br />
* Attended lab orientation<br />
* Took the program pre-survey<br />
=== Wednesday ===<br />
* Investigated rebooter's execute_command function and xinu-powerd.c in general<br />
* Wrote rough skeleton of possible queue system for backed up commands to prepare for future work<br />
* Searched for power alternatives to potentially replace Baytech RPC22<br />
* Participated in first meeting to coordinate group activities<br />
=== Thursday ===<br />
* Continued investigating source code organization<br />
* Attempted to refine queue function in order to insert incoming commands into a 2-dimensional array and then run them sequentially<br />
* Successfully integrated queue function: though inelegant, it allows delay-less calls to the rebooter to execute in sequence as if a sufficient delay was user-provided, cutting out all instances of dropped rebooter calls in limited testing<br />
=== Friday ===<br />
* Condensed queue function and documented it with comments<br />
* Added comment documentation throughout major sections of xinu-powerd.c<br />
* Integrated system logging for the special case when a backend is told to turn on or off when already in the requested state<br />
* Wrote a program to randomly request a specified number of events (turning a random backend either on or off) in order to test robustness of queue function<br />
* Ran and recorded cycles of random testing with varying event quantities<br />
<br />
== Week 02 (06/06/11 - 06/10/11) ==<br />
=== Monday ===<br />
* Began optimization of existing queue function and movement towards more sophisticated version<br />
** Reduced number of active arrays from three to one<br />
** Added head/tail variables to eliminate need to constantly reset queue<br />
** Added system log error message for queue buffer overflow<br />
* Began searching code to try to implement boolean statements regarding status of backends in terminal output function<br />
* Began searching code to try to implement mechanism in queue to wait for success message before continuing<br />
* Wrote testing program to evaluate basic queue functionality and ran tests<br />
=== Tuesday ===<br />
* Continued work to make queue dynamic<br />
* Ran additional tests to determine effects of changed parameters in xinu-powerd.c<br />
=== Wednesday ===<br />
* Edited rpc.c to verify successful writing to g_dev before returning a value<br />
* Edited xinu-powerd.c queue function to wait for the previous command to affect its backend's state before proceeding<br />
* Changes have created a queue mechanism that functions for cycles with 0.006 seconds delay or above<br />
* Participated in second meeting to coordinate group activities<br />
=== Thursday ===<br />
* Disabled xinu-powerd.c's daemon attributes to allow print statements<br />
* Used print statements to start debugging timing-based problems with looping of backend calls<br />
* Streamlined queue function further<br />
=== Friday ===<br />
* Continued work on dynamic queue<br />
** Inserted debug statements into code to determine origins of error<br />
** Ran testing to debug both main programs with different parameters<br />
** (Based on what testing there was time for) fixed glitch caused by endless attempts to read unwritten commands<br />
** (Based on what testing there was time for) Fixed glitch caused by writing commands incompletely and attempting to run them<br />
** Documented rpc.c's rpc_template method with comments<br />
** Tested code in and out of daemon mode successfully<br />
<br />
== Week 03 (06/13/11 - 06/17/11) ==<br />
=== Monday ===<br />
* Ran testing with extreme numbers of commands in order to force queue failure<br />
* Attempted to find a pattern in the failures<br />
=== Tuesday ===<br />
* Created rough diagrams of xinu-powerd.c, its queue and execute_command functions, and rpc.c<br />
* Continued debugging queue failures<br />
* Implemented bug fixes<br />
** Fixed (based on limited testing) the persistent errors that occurred when rpc.c's rpc_template method would attempt to rewrite to g_dev before g_dev had finished outputting its error message<br />
** Wrote a second do-while loop that separates rpc_template's reading of the first character in its buffer from the reading of the other characters, creating more flexible error handling<br />
** Streamlined rpc.c to be more easily readable and have more logical variable names<br />
=== Wednesday ===<br />
* Continued testing using random cycles from 199 events to 1999 events, both in and out of daemon mode<br />
** Program snags occasionally upon entering daemon mode<br />
** When this error does not occur, the program is able to run a delayless cycle with a number of events 20 times larger than the number of slots in the queue without freezing or failing, and (at a minimum) the final state of each backend is accurately set<br />
=== Thursday ===<br />
* Determined source of error - a mistake in variable initialization<br />
* Attended "Responsible Conduct of Research" seminar<br />
* Addressed hypothetical situation when an invalid message passes into rpc.c in spite of previous error handling<br />
* Changed rpc.c's delay checker to be clock-based rather than incremental<br />
* Began fighting the series of bugs associated with the clock implementation<br />
=== Friday ===<br />
* Created an electronic copy of the state diagram for the power daemon<br />
* Finalized implementation of the clock<br />
* Addressed other minor bugs<br />
<br />
== Week 04 (06/20/11 - 06/24/11) ==<br />
=== Monday ===<br />
* Worked on electronic diagrams<br />
** Daemon state diagram<br />
** xinu-rebootd.c<br />
** queue()<br />
** execute_command()<br />
** rpc.c<br />
=== Tuesday ===<br />
* Cleaned out code, removing sections that no longer serve a purpose<br />
** Effects section of queue<br />
** CMDBUFLEN overflow error<br />
* Ran testing to verify changes to code<br />
** Various successful 1-16-event cycle tests<br />
** Three successful randomized 1999-event cycle tests<br />
** Five successful tests with 5-10 repeating 32-event-cycles each<br />
* Continued streamlining diagrams<br />
=== Wednesday ===<br />
* Downloaded and installed LaTeX on home machine<br />
* Read and reviewed "Enhancing Embedded Processors with Specific Instruction Set Extensions for Network Application" in LaTeX template<br />
* Assessed benefits of infinite-loop-breaking checks in case complete rebooter failure occurs during a response message<br />
* Finalized state machine diagram for rebooter and daemon interactions<br />
* Began formalizing system for documenting test cases based on parameters meant to induce desired failures in order to prove reliability of flow control<br />
=== Thursday ===<br />
* Transitioned from Fedora 14 to 15<br />
* Discussed "Enhancing Embedded Processors with Specific Instruction Set Extensions for Network Application" with lab<br />
* Created table for recording failure tests of the rebooter code's error handling<br />
* Added several printf statements to code to assist future debugging of cryptic errors<br />
=== Friday ===<br />
* Worked to diagnose connection problems present since switch to Fedora 15<br />
* Added printf statements to accompany syslog information for easier debugging out of daemon mode<br />
<br />
== Week 05 (06/27/11 - 07/01/11) ==<br />
=== Monday ===<br />
* Discovered work-around for barred IP error message (full solution still needs to be found)<br />
* Tested error cases in state machine<br />
* Worked on mid-program presentation<br />
=== Tuesday ===<br />
* Finished mid-program presentation slides<br />
* Began streamlining code and adding comments in preparation for 7/05 code review<br />
* Participated in Ethernet driver code review with lab group<br />
=== Wednesday ===<br />
* Finalized mid-program presentation and cleared it with Dr. Brylow<br />
* Continued preparing code for code review<br />
* Organized REU trip to Kopp's<br />
=== Thursday ===<br />
* Attended and spoke during REU mid-program presentations<br />
* Read and reviewed "Real-Time Support of Flash Memory File System for Embedded Applications"<br />
=== Friday ===<br />
* Read through and cleaned up code<br />
<br />
== Week 06 (07/05/11 - 07/08/11) ==<br />
=== Tuesday ===<br />
* Attended "Making a Good Research Poster" meeting<br />
* Ran code review for power daemon programs<br />
** #define changes/additions<br />
** Comment changes/additions<br />
** Explicit queue removal<br />
** Outlets.state request function<br />
** Header file definitions<br />
** Removal of strlen()<br />
* Addressed code review concerns<br />
** #define changes/additions<br />
** Comment changes/additions<br />
** Explicit queue removal<br />
** Removal of strlen()<br />
=== Wednesday ===<br />
* Began search for research sources<br />
* Read and reviewed "Analysis of the Use of Declarative Languages for Enhanced Embedded System Software Development"<br />
* Began testing with router pool<br />
=== Thursday ===<br />
* Attended REU lunch and lecture regarding computational science outside of academia<br />
* Continued testing with router pool<br />
=== Friday ===<br />
* Discussed "Analysis of the Use of Declarative Languages for Enhanced Embedded System Software Development"<br />
* Continued testing with router pool<br />
** Xest testing appears to be consistently successful for single runs<br />
** All routers individually respond with power, farbot console fails<br />
<br />
== Week 07 (07/11/11 - 07/15/11) ==<br />
=== Monday ===<br />
* Continued testing with router pool<br />
=== Tuesday ===<br />
* Continued testing with router pool<br />
** Developed potential fix for xinu-power r## errors<br />
=== Wednesday ===<br />
* Investigated a problem Dennis found with frelling's power-cycling capability and the consistency of backends powering down with daemon restarts<br />
** Added error-catching loop to xinu-powerd.c's init_device() function<br />
** Cut out xinu-power r##'s check for backend status<br />
=== Thursday ===<br />
* Continued testing with router pool<br />
* Uncovered syslog off-by-three error with terminal response<br />
=== Friday ===<br />
* Solved syslog issue<br />
** Success and error messages were overlapping and confusing the system<br />
** Increased acceptance of lengthy execution times allows successful executions<br />
<br />
== Week 08 (07/18/11 - 07/21/11) ==<br />
=== Monday ===<br />
* Continued running tests to verify the code's effectiveness and test its limits<br />
** Success in batchgrade program for up to ~15 active terminals<br />
** Xest success in all tests run (~20)<br />
*** (Occasional) overnight error still a mystery<br />
*** e2100l problems might be a factor<br />
=== Tuesday ===<br />
* Began project poster<br />
* Configured personal laptop software for paper<br />
* Brainstormed xinu-power lst options<br />
** All backends? Just those that are on?<br />
** Names? Numbers? Both?<br />
** Multiple options? (xinu-power l##)<br />
=== Wednesday ===<br />
* Began writing code for xinu-power lst<br />
** Changed valid command parameters to allow new requests<br />
** Tested out response from outlets.state<br />
=== Thursday ===<br />
* Worked on project poster<br />
* Investigated Cert/Xest errors<br />
** Power does not appear to be the source of the problems<br />
** Semi-unrelated: standard throughput appears to be 8-9 on/off commands per second<br />
<br />
== Week 09 (07/25/11 - 07/29/11) ==<br />
* Vacation<br />
** Finished project poster<br />
<br />
== Week 10 (08/01/11 - 08/05/11) ==<br />
=== Monday ===<br />
* Reviewed poster to prepare for presentation<br />
* Began work on formal presentation<br />
* Performed more formal testing of throughput (old and new daemons) for project report and presentation<br />
* Worked on integration of "xinu-power lst" and "xinu-power l##" calls<br />
=== Tuesday ===<br />
* Finished presentation slides<br />
** Integrated quantitative data from testing<br />
* Presented in REU poster session<br />
* Worked on project paper<br />
* Changed "xinu-power r##" calls to be smarter and not waste so much time<br />
=== Wednesday ===<br />
* Presented in REU formal presentations<br />
* Worked on project paper<br />
=== Thursday ===<br />
* Attended REU formal presentations<br />
* Worked on project paper<br />
=== Friday ===<br />
* Completed end-of-program surveys<br />
* Finished and submitted final project paper</div>Mbajzek