The discussion today focused on embedded programming. I did my MS and PhD work in Electrical/Computer Engineering with a focus on Embedded Systems. I have plenty of experience with this.
        
        
Here are all the files I wrote for this week, and you can get the AtTiny Arduino libraries here.
    If you ever have a question about a chip, the datasheet can be
          your best friend (or worst enemy depending on how well it is
          written...)  The AtTiny44 datasheet falls in line with other Avr
          datasheets in that it is very well written and description of the
          different hardware and example techniques are very easy to
          understand.  
          Some neat things I learned about the AtTiny44 for the datasheet are
        
I've been programming AVRs for years, more specifically the ATmega128 using C, ASM and Wiring. I am familiar with many of the tools such as AVRStudio, Codevision AVR, avr-GCC, Win-AVR, AvrDude, PonyProg, etc.
In fact I even wrote my own super minimalist AVR IDE years ago (In 2005-6ish).
          Feel free to download
            it for Windows and test it out, it is quite old so it only
          supports a few serial and parallel port programmers, mainly the DAPA
            Programmer.  Honestly, I should update this project since it
          uses FLTK and is cross platform. I think that by updating it to allow
          USBtiny it could be a useful tool for FabModules (even though it isn't
          written in python).
          
          I gave Terence
            Fagan tips when he attempted to write his assembly code program
          which
            can be found here.
          
          
          Here are some other tools I typically use when writing ASM for AVR
          chips.
          Delays are incredibly useful, but calculating them can be an annoying
          task in ASM (you are limited by the size of a memory location, 256
          loops) so you have to have nested loops of NOP statements.  These  are
          some websites and tools I find useful when writing loops.  
        
At some point I wrote a tutorial on how to write your own precompiled
          libraries for AVRs.  I'll try to dig that up and post it if I can find
          it.
          
          In linux, there are many setups that work well for development. 
          Personally, I find kate or gedit text editors with a terminal plugin
          the most useful.  But I've used Eclipse which works well too, though I
          find it rather bloated for AVRcoding.
          
          In Windows, AVRstudio is hands-down the best tool. It supports ASM and
          GCC and has a great built-in graphical debugger. Win-AVR is also a
          usable setup.  You can even roll your own with notepad++ or SciTE.  I
          just learned about VisualMicro
            for VisualStudio which seems to have a nice GUI debugger for
          arduinoif you are into that sort of thing (M$ products that is).
    OK, so for the "trying something new" part of the homework, I
          looked at pyMite (python on a chip) but it didn't seem useful at all
          since it doesn't support python libraries (which would be the only
          reason I would actually want to use it) and it isn't actively
          developed. 
          
          In the end, I opted for trying to install the ATtiny
            setup for Arduino.  I have never used any of these ATtiny series
          chips in Arduino (well, years ago I hacked together a custom solution
          for ATTiny2313, but that was barely useable at the time, had to
          generate the hex file, then use avrdude manually to upload it. I
          eventually came up with my
            own drag and drop block system for visually coding for the
            ATtiny2313. This was back in  2007-2008, years before
          modkit or the others out there). I also had not really used an ISP
          programmer with the Arduino IDE, I always used the serial connection.
          
          Installation was simple, but not being super familiar with windows, I
          hit a couple of stumbling blocks. Here are the steps I got to work on
          Windows 7.
        
 
          Once you are ready to program the chip, first select
          "tools-->Board--> Attiny44 (external 20MHz clock)"
          
          Then select "tools-->Programmer--> USBtiny" (Or FabISP if you
          changed your programmers.txt file)
          
          Now burn the bootloader Tools --> burn Bootloader
          
          And finally you can program the chip the typical way (Click the -->
          icon next to the check mark on the IDE)
          
          When done, you should have
            successful blinky!
        
I enjoy using Arduino to sketch concepts out and now that FabAcademy
          has shown me how useful some of the ATtiny series chips can be, I'll
          definitely start using them more often in my preliminary designs,
          especially since I don't have to use a serial programmer of any kind.
          
          From time to time I might still use ASM on AVRs for time-critical
          designs or when ASM makes something easier or faster. In general I
          think my workflow is the following:
          1. Arduino/Wiring IDE for "sketching" concepts in Atmega/Attiny chips
          2. Depending on my OS, I'll use either Win-AVR or AVRstudio for C/ASM
          in windows or Gedit or Eclipse in Linux
          
          Here are all my design files for this week.
        
Reference: