Browsed by
Month: February 2020

Team Status Update for 2/29/2020

Team Status Update for 2/29/2020

Risks Switching to surface mount brings with it a lot of unknowns as we have never worked with it before. Changes Interpreter:  Adding functions to the language to allow for more interesting example code. Firmware: Reading neighbor messages are now triggered via IR pulses, causing interrupts (instead of synchronizing on the sending bit). Tiles will now be in sleep-mode most of the time, except for when explicitly communicating with other tiles; the neighboring tiles will send a “wake up” pulse…

Read More Read More

Eric Maynard’s Status Update for 2/29/2020

Eric Maynard’s Status Update for 2/29/2020

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours). Worked on and practiced presentation Made a schematic and Eagle PCB layout for the tile’s circuit.  See the picture from the design presentation. After the presentation, I discovered that our power requirements would subject users to dangerously high currents and unpleasantly high…

Read More Read More

Aarohi’s Status Update for February 29

Aarohi’s Status Update for February 29

Progress This week I mostly focused on specing out the rest of the interpreter, and on the design presentation.  Functions  We decided to add an additional functionality to the spec of the interpreter: functions. This involves function definition (fn), functions and return statements. Functions will be declared as follows:  Code:  fun foo(int x) {     return x + x; } fun bar(int x) { return foo(x); } CodeBlox: v1 = fn of v2 return v2 + v2 v3 = fn of…

Read More Read More

Melodee’s Status Update for 2/29/2020

Melodee’s Status Update for 2/29/2020

Progress This week we realized that we needed to rethink a lot of our circuit and embedded design after our design presentation. Our tiles were drawing a lot of current, which would make our product not child-safe. Since child safety is one of our top technical requirements, Eric redesigned our circuit so that each tile is powered by its own set of batteries. These tiles would start out in sleep mode, and would wake up once it detects a side…

Read More Read More

Team Status Update for 2/22/2020

Team Status Update for 2/22/2020

Risks The pcb supplier we wanted to use has extended their turn-around time from 3 days to 15days in response to Coronavirus.  This will affect our schedule and now we want to order the pcb’s asap in case this time extends again. Changes Interpreter: The preexisting spec has been changed to include support for nested expressions, typechecking and error handling. Firmware: Removing the boot state of neighboring tiles and changing the communication protocol to not need a clock signal. Circuit: Removing the…

Read More Read More

Eric Maynard’s Status Update for 2/22/2020

Eric Maynard’s Status Update for 2/22/2020

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours). I set up the microcontroller on a breadboard to measure power requirements, clock skew, and boot time. The result of the boot time test was that it is not perceptible.  As a result, we have removed the  boot time from our model…

Read More Read More

Melodee’s Status Update for 2/22/2020

Melodee’s Status Update for 2/22/2020

Progress This week I continued working on the Python firmware logic. A few changes occurred with our protocol while I was writing it that slowed down my progress. We realized that technically tiles do not need a clock line. Originally, we planned that a tile’s top and left clocks would be driven by their top and left neighbors through two clock lines. Doing so would indicate to the tile when to read from the data line of its sides. But…

Read More Read More

Aarohi’s Status Update for February 22

Aarohi’s Status Update for February 22

Progress At the beginning of the week, I wrote a unit testing apparatus that takes in an input stream of the same format as what the robot will be receiving from the master tile and outputs a list encoding the position information of the tiles. It creates an m x n array (m rows and n columns of codeblox tiles) with the appropriate tile code at the correct location. If there is no tile at a given position, it outputs…

Read More Read More

Team Status Update for 2/15/2020

Team Status Update for 2/15/2020

Risks The main risk we foresee right now is the required tile clock speed being too fast to be driven by IR LEDs. As a contingency, we would have to loosen our requirement on our compile time. However, we are fairly confident that we can overcome this issue by reducing parasitic capacitance and specing out higher quality components. Changes Our backup battery circuit turned out to be not as trivial as we thought, and will require some more research and…

Read More Read More

Eric Maynard’s Status Update for 2/15

Eric Maynard’s Status Update for 2/15

What did you personally accomplish this week on the project? Finalized the inter-tile communication protocol with Melodee Result: The protocol should be able to work with only three simplex communication channels per side  Wrote a tile-to-tile python simulator for Melodee to use to implement the tile’s internal state machine and prove the communication protocol. Result: The simulator allows you to connect arbitrarily many tiles together and configure them with any encoding.  Each tile operates in its own thread and the…

Read More Read More