User:Mbajzek

From REU@MU
Revision as of 06:25, 12 June 2015 by Brylow (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Personal Information

My name is Matthew Bajzek and I am currently a senior at Marquette University pursuing degrees in Computer Engineering and Computer Science. I work with Dr. Dennis Brylow, primarily within his research for Xinu.



Summer 2014 - ECS Robotics Module Redesign

Week 00 (05/27/14 - 05/30/14)

Tuesday

  • Underwent REU Orientation
  • Began planning potential modules

Wednesday

  • Made schedule and divided work
  • Investigated Scratch and determined its potential as a platform
  • Began searching for previous work to utilize when designing course structure

Thursday

  • Installed Scratch and began comparing modding potential of versions 1.4 and 2.0
  • Began looking into current state of XinuPi

Friday

  • Did background research and began investigating a potential alternative to Xinu
  • Looked into existing peripheral options, as compared to existing curriculum modules

Week 01 (06/02/14 - 06/06/14)

Monday

  • Continued background research, installing OS to Raspberry Pis and investigating its features
  • Considered peripheral options and began to draft tentative budget for summer prototypes

Tuesday

  • Successfully installed and worked in PiScratch, though with some relatively serious display issues

Wednesday

  • Began modifying Scratch 1.4 code (local installation) to get comfortable adding/modifying blocks

Thursday

  • Successfully added custom blocks (behavior, appearance, name) to existing block categories, augmented UI

Friday

  • Successfully added custom block category, including changes to blocks within category

Week 02 (06/09/14 - 06/13/14)

Monday

  • Began reading through PiScratch Python script, considering options for modding PiScratch distribution

Tuesday

  • Drafted presentation document for current course learning objectives

Wednesday

  • Finalized presentation
  • Continued Scratch 1.4 modding (bundling broadcasts)

Thursday

  • First REU lunch/talk
  • Presentation to Dr. Brylow

Week 03 (06/16/14 - 06/20/14)

Monday

  • Considered switch from Scratch/Raspberry Pi to Ardublocks/Arduino

Tuesday

  • Organized lab, determined current peripheral availability
  • Ordered Arduino Leonardo boards for development

Wednesday

  • Investigated relative merits of two platforms for curriculum

Thursday

  • Ethical research training
  • Configured development version of Maven, Ardublocks, Openblocks

Friday

  • Began block development in Modded Ardublocks

Week 04 (06/23/14 - 06/27/14)

Monday

  • Participated in Google hangout with Bob Juranitch to discuss project goals and possible module actities
  • Narrowed down peripheral list
  • Attended REU baseball game

Tuesday

  • Attended Dr. Corliss' LaTeX presentation
  • Continued Ardublock modifications

Wednesday

  • Continued Ardublock modifications
  • Read through ECS educational objective documentation

Thursday

  • Curriculum discussions
  • Ardublock modding

Friday

  • Ardublock modding

Week 05 (06/30/14 - 07/04/14)

Out of lab for vacation (hours made up via overtime during other weeks).

Week 06 (07/07/14 - 07/11/14)

Monday

  • Brought back up to speed on coding effort
  • Began creating poster template

Tuesday

  • First steps to "Play Note" block implemented, pending testing
  • Started looking for breadboard alternatives for simpler teacher use

Wednesday

  • Tested "Play Note", began work on removing pin input, adding full range of notes

Thursday

  • Attended research poster presentation
  • Added example code

Friday

  • Looked into simplifying Theremin, adding to Play Note to add flexibility

Week 07 (07/14/14 - 07/18/14)

Monday

  • Struggled with adding a new block (bizarre bug)

Tuesday

  • Fixed Monday's bug, discussed project goals/curriculum details as group

Wednesday

  • Expanded project blocks for music projects

Thursday

  • Attended graduate school discussion
  • Made project poster with group
  • Finalized some curriculum plans

Week 08 (07/21/14 - 07/25/14)

Monday

  • Cleaned up XML (removed blocks)
  • Had design discussion

Tuesday

  • Began shield design
  • Looked into parts
  • Looked into pin blocks

Wednesday

  • Decided upon shield design

Thursday

  • Developed final set of blocks for initial release
  • Cleaned up and streamlined code design

Friday

  • Poster presentations in Cudahy Hall

Week 09 (07/28/14 - 08/01/14)

Monday

  • Added robust error handling to blocks

Tuesday

  • Developed prototype shield and prepared demonstrations for presentation

Wednesday

  • Finalized error handling
  • Presented project to ECS representative and several teachers

Thursday

  • Final REU presentations
  • Completed final paper

Summer 2011 - Concurrent Embedded Power Control

Week 00 (05/23/11 - 05/27/11)

  • Familiarized self with lab hardware and software, including the Linux operating system
  • Began investigating source code and looking for possible sources of error
  • Developed bash script to test specific cases within source code via looping of xinu-power calls with set delays
  • Tested bash script with varied parameters on secondary board, discovering the minimum delay between calls for power cycling (0.015 seconds)
  • Began converting bash script to adapted C program to implement future queue systems before implementation into full program set
  • Began preliminary searches for queue mechanisms in C language

Week 01 (05/30/11 - 6/03/11)

Tuesday

  • Met with mentors and coordinators to discuss program expectations
  • Toured the campus with non-Marquette students
  • Handled financial paperwork with Human Resources
  • Attended lab orientation
  • Took the program pre-survey

Wednesday

  • Investigated rebooter's execute_command function and xinu-powerd.c in general
  • Wrote rough skeleton of possible queue system for backed up commands to prepare for future work
  • Searched for power alternatives to potentially replace Baytech RPC22
  • Participated in first meeting to coordinate group activities

Thursday

  • Continued investigating source code organization
  • Attempted to refine queue function in order to insert incoming commands into a 2-dimensional array and then run them sequentially
  • 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

Friday

  • Condensed queue function and documented it with comments
  • Added comment documentation throughout major sections of xinu-powerd.c
  • Integrated system logging for the special case when a backend is told to turn on or off when already in the requested state
  • 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
  • Ran and recorded cycles of random testing with varying event quantities

Week 02 (06/06/11 - 06/10/11)

Monday

  • Began optimization of existing queue function and movement towards more sophisticated version
    • Reduced number of active arrays from three to one
    • Added head/tail variables to eliminate need to constantly reset queue
    • Added system log error message for queue buffer overflow
  • Began searching code to try to implement boolean statements regarding status of backends in terminal output function
  • Began searching code to try to implement mechanism in queue to wait for success message before continuing
  • Wrote testing program to evaluate basic queue functionality and ran tests

Tuesday

  • Continued work to make queue dynamic
  • Ran additional tests to determine effects of changed parameters in xinu-powerd.c

Wednesday

  • Edited rpc.c to verify successful writing to g_dev before returning a value
  • Edited xinu-powerd.c queue function to wait for the previous command to affect its backend's state before proceeding
  • Changes have created a queue mechanism that functions for cycles with 0.006 seconds delay or above
  • Participated in second meeting to coordinate group activities

Thursday

  • Disabled xinu-powerd.c's daemon attributes to allow print statements
  • Used print statements to start debugging timing-based problems with looping of backend calls
  • Streamlined queue function further

Friday

  • Continued work on dynamic queue
    • Inserted debug statements into code to determine origins of error
    • Ran testing to debug both main programs with different parameters
    • (Based on what testing there was time for) fixed glitch caused by endless attempts to read unwritten commands
    • (Based on what testing there was time for) Fixed glitch caused by writing commands incompletely and attempting to run them
    • Documented rpc.c's rpc_template method with comments
    • Tested code in and out of daemon mode successfully

Week 03 (06/13/11 - 06/17/11)

Monday

  • Ran testing with extreme numbers of commands in order to force queue failure
  • Attempted to find a pattern in the failures

Tuesday

  • Created rough diagrams of xinu-powerd.c, its queue and execute_command functions, and rpc.c
  • Continued debugging queue failures
  • Implemented bug fixes
    • 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
    • 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
    • Streamlined rpc.c to be more easily readable and have more logical variable names

Wednesday

  • Continued testing using random cycles from 199 events to 1999 events, both in and out of daemon mode
    • Program snags occasionally upon entering daemon mode
    • 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

Thursday

  • Determined source of error - a mistake in variable initialization
  • Attended "Responsible Conduct of Research" seminar
  • Addressed hypothetical situation when an invalid message passes into rpc.c in spite of previous error handling
  • Changed rpc.c's delay checker to be clock-based rather than incremental
  • Began fighting the series of bugs associated with the clock implementation

Friday

  • Created an electronic copy of the state diagram for the power daemon
  • Finalized implementation of the clock
  • Addressed other minor bugs

Week 04 (06/20/11 - 06/24/11)

Monday

  • Worked on electronic diagrams
    • Daemon state diagram
    • xinu-rebootd.c
    • queue()
    • execute_command()
    • rpc.c

Tuesday

  • Cleaned out code, removing sections that no longer serve a purpose
    • Effects section of queue
    • CMDBUFLEN overflow error
  • Ran testing to verify changes to code
    • Various successful 1-16-event cycle tests
    • Three successful randomized 1999-event cycle tests
    • Five successful tests with 5-10 repeating 32-event-cycles each
  • Continued streamlining diagrams

Wednesday

  • Downloaded and installed LaTeX on home machine
  • Read and reviewed "Enhancing Embedded Processors with Specific Instruction Set Extensions for Network Application" in LaTeX template
  • Assessed benefits of infinite-loop-breaking checks in case complete rebooter failure occurs during a response message
  • Finalized state machine diagram for rebooter and daemon interactions
  • Began formalizing system for documenting test cases based on parameters meant to induce desired failures in order to prove reliability of flow control

Thursday

  • Transitioned from Fedora 14 to 15
  • Discussed "Enhancing Embedded Processors with Specific Instruction Set Extensions for Network Application" with lab
  • Created table for recording failure tests of the rebooter code's error handling
  • Added several printf statements to code to assist future debugging of cryptic errors

Friday

  • Worked to diagnose connection problems present since switch to Fedora 15
  • Added printf statements to accompany syslog information for easier debugging out of daemon mode

Week 05 (06/27/11 - 07/01/11)

Monday

  • Discovered work-around for barred IP error message (full solution still needs to be found)
  • Tested error cases in state machine
  • Worked on mid-program presentation

Tuesday

  • Finished mid-program presentation slides
  • Began streamlining code and adding comments in preparation for 7/05 code review
  • Participated in Ethernet driver code review with lab group

Wednesday

  • Finalized mid-program presentation and cleared it with Dr. Brylow
  • Continued preparing code for code review
  • Organized REU trip to Kopp's

Thursday

  • Attended and spoke during REU mid-program presentations
  • Read and reviewed "Real-Time Support of Flash Memory File System for Embedded Applications"

Friday

  • Read through and cleaned up code

Week 06 (07/05/11 - 07/08/11)

Tuesday

  • Attended "Making a Good Research Poster" meeting
  • Ran code review for power daemon programs
    • #define changes/additions
    • Comment changes/additions
    • Explicit queue removal
    • Outlets.state request function
    • Header file definitions
    • Removal of strlen()
  • Addressed code review concerns
    • #define changes/additions
    • Comment changes/additions
    • Explicit queue removal
    • Removal of strlen()

Wednesday

  • Began search for research sources
  • Read and reviewed "Analysis of the Use of Declarative Languages for Enhanced Embedded System Software Development"
  • Began testing with router pool

Thursday

  • Attended REU lunch and lecture regarding computational science outside of academia
  • Continued testing with router pool

Friday

  • Discussed "Analysis of the Use of Declarative Languages for Enhanced Embedded System Software Development"
  • Continued testing with router pool
    • Xest testing appears to be consistently successful for single runs
    • All routers individually respond with power, farbot console fails

Week 07 (07/11/11 - 07/15/11)

Monday

  • Continued testing with router pool

Tuesday

  • Continued testing with router pool
    • Developed potential fix for xinu-power r## errors

Wednesday

  • Investigated a problem Dennis found with frelling's power-cycling capability and the consistency of backends powering down with daemon restarts
    • Added error-catching loop to xinu-powerd.c's init_device() function
    • Cut out xinu-power r##'s check for backend status

Thursday

  • Continued testing with router pool
  • Uncovered syslog off-by-three error with terminal response

Friday

  • Solved syslog issue
    • Success and error messages were overlapping and confusing the system
    • Increased acceptance of lengthy execution times allows successful executions

Week 08 (07/18/11 - 07/21/11)

Monday

  • Continued running tests to verify the code's effectiveness and test its limits
    • Success in batchgrade program for up to ~15 active terminals
    • Xest success in all tests run (~20)
      • (Occasional) overnight error still a mystery
      • e2100l problems might be a factor

Tuesday

  • Began project poster
  • Configured personal laptop software for paper
  • Brainstormed xinu-power lst options
    • All backends? Just those that are on?
    • Names? Numbers? Both?
    • Multiple options? (xinu-power l##)

Wednesday

  • Began writing code for xinu-power lst
    • Changed valid command parameters to allow new requests
    • Tested out response from outlets.state

Thursday

  • Worked on project poster
  • Investigated Cert/Xest errors
    • Power does not appear to be the source of the problems
    • Semi-unrelated: standard throughput appears to be 8-9 on/off commands per second

Week 09 (07/25/11 - 07/29/11)

  • Vacation
    • Finished project poster

Week 10 (08/01/11 - 08/05/11)

Monday

  • Reviewed poster to prepare for presentation
  • Began work on formal presentation
  • Performed more formal testing of throughput (old and new daemons) for project report and presentation
  • Worked on integration of "xinu-power lst" and "xinu-power l##" calls

Tuesday

  • Finished presentation slides
    • Integrated quantitative data from testing
  • Presented in REU poster session
  • Worked on project paper
  • Changed "xinu-power r##" calls to be smarter and not waste so much time

Wednesday

  • Presented in REU formal presentations
  • Worked on project paper

Thursday

  • Attended REU formal presentations
  • Worked on project paper

Friday

  • Completed end-of-program surveys
  • Finished and submitted final project paper