<-- Week 7

WEEK 8
[EMBEDDED PROGRAMMING]

Week 9 -->


WEEK'S GOALS:

1. DOCUMENTED WHAT YOU LEARNED FROM READING A MICROCONTROLLER DATASHEET. (Done)
2. WHAT QUESTIONS DO YOU HAVE? WHAT WOULD YOU LIKE TO LEARN MORE ABOUT?(Done)
3. PROGRAMMED YOUR BOARD (Done)
4. DESCRIBED THE PROGRAMMING PROCESS/ES YOU USED(Done)
5. INCLUDED YOUR CODE(Done)


IDEAS THIS WEEK:

1. Thinking of doing something artistic for my city i am terribly missing now.
2. Press fit or designer art board

ACHIEVEMENTS THIS WEEK:

1. Corbusier hello board lighting up in a sequaence.

C Based Programming:

1. Arduino Uno
  • Understood the layout of an arduino,shields
  • Set up Arduino IDE drivers for AtTiny 44/88
2. Fab ISP
  • Programmed through my FabISP
  • Used Arduino IDE, Avr Dude, Command line
3. Satshakit
  • Understood importance of Satshakit for Firefly | Grasshopper
  • tried printing double sided Satshakit Duo-Failed. Will Modify the design as per needs

IDE Platforms Oriented with:

  • Arduino IDE
  • Firefly | Grasshopper
  • AVR-Dude

TASKS AT HAND:

  • NO PENDING TASKS

<-- Weeks Overview

Day 50
[ Studying through Datasheet ]

Day 51 -->


1. Went through Datasheet as Neil suggested
2. Went through other resources regarding C language.

1. Reading Datasheets


This week was very important in two ways,

  • Firstly, programming , which is one of the important things in understanding not just the connections to IC pins but for coding in C and IDE too.
  • Secondly, I got an introduction to C.
  • I started by reading Datasheet of Attiny 44. Datasheet


  • What i learnt while reading Datasheet:

  • Pin Configurations
  • Which pins are used for which function
  • Programming of Microcontroller
  • in terms of the 6 programming pins.
  • Memories
  • Very important keeping in mind the size of the code
  • Packages
  • of the microcontroller's family and for the kind of board design
  • Clocks
  • to sync in and for RTC functions among others
    It was actually a useful task to do because we use IC's without knowing whats in it and while reading about it we get to know the possibilities of any IC for example, there is no serial in Attiny 44 or 45 but it exists in 328.

    I would like someone to explain me more about features mentioned in the datasheet like :
  • What is Stack pointer
  • Power Management etc
  • But well, this datasheet will be referred in every assignment in future i believe.

    Then I also started reading book "Arduino" by Peter Dalmaris, which is really a nice comprehensive book for beginners about arduinos.

    We were given lectures on 'C' at Vigyan Ashram from externals and other peers experts in C @ Kochi, Pabal and Pune.


    <-- Day 50

    Day 51
    [ Handson Arduino ]

    Day 52 -->


    1. Installed Attiny on Arduino through File >> Preferences >> Additional board manager URL >>
    https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json.
    2. Programmed Blink Led on board through UNO initially and then through FABISP

    We were given lectures on C at Vigyan Ashram from externals and other peers experts in C @ Kochi, Pabal and Pune.

    Setting up Arduino:



    That concluded my first arduino IDE upload




    <-- Day 51

    Day 52
    [ Handson with FabISP ]

    Day 53 -->


    1. D day to test whether it works with my fabisp
    2. Will stick to Arduino IDE for now
    3. Shall also try using my friend Nishtha's ISP in addition to my own.

    Arranged for the complete set up-> My ISP, Nishtha's ISP, My hello Board, Jumper wires. Lets go!

    Communicating through my ISP:





    Communicating through Nishtha's ISP


    Basically we attach the programming pins-MISO, MOSI, SCK, RESET, VCC, GROUND to the same pins of the FAB ISP and it works magic (at least for me )




    <-- Day 52

    Day 53
    [ Handson with FIREFLY ]

    Day 54 -->


    1. TIME TO TRY MY HANDS ON SIMULATING | PARAMETRICS or_____ NO IDEA WHAT THIS IS
    2. INSTALLED AND ARRANGED FOR FIREFLY plugin to grasshopper and WINAVR
    3. Only regret on not being able to fabricate a Sashakit before time to test it on.

    So bassically Firefly is a concept plugin of Grasshopper in Rhino that lets you talk realtime with an electronic board through Rhino itself. This is pretty cool thinking that usually no one thinks of electronics while using 3d softwares and vice a versa. It lets you link electronics to your design file directly enabling you to simulate your design even before its fabricated in real. So i chose to learn this too as part of this week.

    Firefly: Populating the Flies-)


    SO to make anything possible through Firefly, first have to upload a Firmata sketch to the board you want to talk through. THe limitation of Firmata is that it only works with Arduino boards and their ICs. So it wont work through my iSp or the hello board. THat means i'll later make another arduino compatible board using atmega 328P and upload firmata onto it. For now, i am proceeding with an Arduino Uno to understand FIREFLY which is more important skill to lern for me now.

    FIRMATA Sketch through ARDUINO IDE

    This code a little bit updated at the end and am attaching it below. Needs to be uploaded to your board file first in order to enable it to talk realtime with FIREFLY


    How i Set up firefly. Hope was able to clear it out how to set up


    This one shows the whole process in a more streamlined approach.


    This one is showing how in real time i am able to control the LED on the arduino through different types of input channel. I used the touch of my laptop to interact with the graph. (Wide applications to integrate touch interface during prototyping.)


    Also tried milling double sided Satshakit to try firefly on and using cheap alternatives to achieve that on the modela.









    <-- Day 53

    Day 54
    [ Handson with COMMAND LINE ]

    Day 55 -->


    1. I went the GIT BASH route for WINDOWS to borrow Neil's codes and try on the board
    2. C file text was copied to a borrowed c file whose text i replaced with the one by Neil's code and named it as 'main.c'
    3. Makefile was edited and replaced with make code by Neil's blink code

    What i wrote in GIT bash

    Had got few errors as you can see. Was sorted by replacing text in someother make files from my USBtiny time with code by neil and swapping makefile's text with c file (my mistake)
                     



    Some images of the process




    FINAL OUTPUT: