Week 11: Network and Communication


The objective for this week was to design and build a network connecting at least two processors. I tried to use I2C but I wasn't able to get it to work.

Choosing the Design

My plan was to replicate Neil's I2C board and get used to the fundamentals then move to more complicated stuff so initally I left his design alone.

Milling and Stuffing

Failed Board This week I ran into several problems with the Roland Mill. First I noticed that one of the set screws was badly stripped so I had an end mill fall out while the Roland was running.

After replacing the set screw I ran the job again only to find that the mill was cutting way too deep in the middle of the copper. I stopped the mill and realized that the base of the mill wasn't flat at all since someone had only used tape on the outer edges of the bottom plate (i.e. the middle wasn't taped down and was bowing badly).

After re-taping the board to the mill I ran the job for a third time only to realize I was using the wrong interior .png which cut right through my traces.

Finally, after getting the right .png files I ran the job for a final time and everything went smoothly. Stuffing the boards was pretty straightforward.

Programming

I chose to make the I2C boards thinking that these would be fairly easy to program in Arduino since a library is already set up. What I failed to realize was just how little I understood about all this so I wasn't able to get anything to work at all.

I couldn't even get the serial monitor to read a simple "Hello World" code I wrote. Basically, I failed miserably.

I ended up trying to program the boards using the Asynchronous method to see if that would work since several students had done that in the past year. I wasn't able to get this to work either but by far the most helpful resource I used was

Sam Calisch's Page

His code was very helpful and I wish I had made the asynchronous boards instead of the I2C ones snce I would have been able to understand what was going on a little better.

I would have just made the asynchronous board except that I left town for Thanksgiving on Monday so I never got a chance to make the hardware.

Mistakes I Made

My biggest mistake was underestimating the difficulty of programming with I2C and not making the asynchronous boards as a back up before I left.