Week 13, 11/29: Networking and Communications


I worked with Kreg this week to network the board I had created for my final project to the BlinkM MaxM RGB LED board that will be providing the light source for my final project projector. In addition to directing the main program for the MaxM through the Attiny44, The board I created is ready to program a DC motor, as it is equipped with an H-Bridge and a 5V regulator.




I began by looking at the MaxM datasheet and it was clear that I could use an Arduino board or any board that is equipped with I2C capability. That is perfect since this week I will be able to try the bit bang program for I2C networking, and hopefully get this aspect of my final project done, as well.



Capabilities of the BlinkM MaxM

  1. 8000 mcd 140º full-color RGB LED w/ 24-bit color control
  2. Specify colors by 24-bit RGB or HSB
  3. Fade between colors with variable timing and fade speeds
  4. Randomized color selection, with ranges and based on previous color
  5. 18 built-in light scripts (sequences)
  6. Create and save light scripts of up to 49 commands long
  7. Stand-alone operation: No microcontroller needed for light script playback
  8. Can plug directly into Arduino, no wiring or other components needed
  9. Two-wire (aka “I2C”) remote commanding
  10. Up to 127 BlinkMs on a single two-wire network
  11. Responds to “general call” broadcast for simultaneous commanding
  12. Reconfigurable network address
  13. Firmware upgradable
  14. 5-volt standard TTL inputs
  15. Low power consumption Three high-power 5-12VDC @ 2A PWM outputs to drive large common-anode LED arrays
  16. Included 445,000 mcd RGB LED cluster
  17. Four 8-bit analog inputs
  18. New light script commands to act on inputs for stand-alone dynamics
  19. Built-in 5V voltage regulator and DC adapter connector for stand-alone operation


The light fixture is both really cool and quite powerful. It has a separate power jack input which I have connected in order to not fry my board.


I2C or I2C stands for Inter-Integrated Circuit bus. I learned more about the I2C process from various sites, and found this page on the Instructables websiteto be helpful as I was searching for more information about using the Attiny for I2C bussing purposes. In addition to learning about the usefulness and practicality of I2C, I also learned about bit banging. It is creating a series of pulses through software to transmit messages instead of using hardware. Being a visual learner, I found these images to be helpful:





I was able to connect my board to the MaxM.



I connected the 6 pin header, female component to the correct lines – VCC, ground, i2c clock (SCL) and i2c data (SDA). According to the datasheet, SCL should be connected to Pin 9 (PA4) on the Attiny44. SDA should be connected to PA6, or Pin 7.



I connected the board to the MaxM and plugged in the power jack. I also connected the DC motor to the board. I was able to get the computer to talk to the board through th terminal, it recognized and initialized the board, but was not successful in programming it using the bitbang code provided. I tried it with the Arduino IDE and is was the same thing. I’m going to have to return to the drawing board to figure out what is going wrong with my board. I was able to connect the RGB LED to the Arduino UNO and got it to play a basic looping color combination. I attempted to connect an Hbridge board I had previously made to this combination, but had some trouble mapping out the appropriate place to connect it to the Arduino.