Difference between revisions of "User:Farzeen"

Jump to: navigation, search
m (1 revision)
(No difference)

Latest revision as of 06:25, 12 June 2015

Personal Information

Farzeen Harunani is an undergraduate student at Marquette University, on track to graduate in May 2015. She is pursuing a dual major in Computer Engineering and Computer Science, with a minor in Mathematics. She is working with Eric Biggers and Tyler Much under Dr Dennis Brylow on fully implementing XINU on the Raspberry Pi platform (Summary here).

  • Note: In week three, a branch was introduced in the group. I have branched off to developing a framebuffer driver, whilst Eric developing the USB driver on top of which we can implement the Ethernet driver, and Tyler is working on an audio driver.

Research Logs

Longterm Goal

The goal is to have a functional, full version of XINU running on the Pi by July in order to start classroom implementation for the 2013-2014 school year.

Week One


  • Generate, at the very least, a clock timer interrupt.


  • Take the existing XinuPi code and begin integration with repository version.
  • Enable system timer
  • Enable clock timer interrupts

Week Two


  • Complete interrupts for both clock and UART.
  • Allow concurrent threads to interrupt each other.
  • Get XINU shell up and running.
  • Allow XINU testsuite to pass.


  • All goals achieved.
  • Non-module specific XINU testsuite passes.

Week Three


  • Render the XINU banner in color by the end of the week via the framebuffer driver.


  • Initialize the framebuffer driver correctly (initialize to a black screen).
  • Draw pixels at any given (x,y) coordinate.
  • Draw a line from one (x,y) coordinate to a second (x,y) coordinate.
  • Draw a character at any (x,y) coordinate.
  • Draw a string of characters.
  • Allow pixels to be drawn in a given 24 bit color.
  • Draw various shapes at any (x, y) coordinate (circles, rectangles, 5 point stars)

Week Four


  • Begin implementation of LOGO-like Turtle Graphics


  • Figure out how to compute angles without sine, cosine, or floating point
    • First solved via fixed point CORDIC
    • After CORDIC proved unwieldy, reimplemented trig functions via Taylor series
  • Mini turtle shell runs and accepts/parses input
  • Turtle can lift/drop pen, change color, change angle, move forward/backward, and draw lines

Work Remaining

  • Turtle cannot 'remember' where he has drawn--and when he is erased, he erases the lines with him
  • Squirt is currently rendered by two circles. Make him more turtle-like.
  • Angles are NOT accurate--180 degrees is still not a straight line.
  • Allow custom hex colors.
    • Colors are currently entered as a 32 bit representation of transparency, blue, green, red.
  • On the whole, alter the experience to be truer to LOGO.

Week Five


  • Completed ethics training.
  • Delivered a spectacular mini-presentation.
  • Continue improving Squirt.
  • Fixed angles so that all calculations are done on angles in the 0 to 90 range.
  • Added a "linemapping" system so that Squirt can keep track of lines already drawn.

Week Six


  • Commands are now run in a "minishell" at bottom of window--towards moving to a standalone keyboard/monitor setup.
  • Squirt can go anywhere in the coordinate system instead of being limited to the screen.
  • Added setx and sety commands.
  • Fixed bounding errors
  • Added more error-checking

Week Seven


  • Implemented "repeat" correctly (was previously very inflexible)
  • Implemented ability to add new commands
  • Added custom hex colors

Week Eight


  • Merge graphics code back into master
  • Complete research paper for WESE 13 submission

Week Nine


  • Submitted WESE 13 paper
  • Made poster
  • Assembled and inventoried RPi accessories in preparation for CS4HS

Week Ten


  • Present at poster session
  • Deliver final presentation
  • Assist with CS4HS workshop