Categories
Fab Academy AS220 - Providence, RI Fab Academy Providence -Year II - Teaching

Hello Phototransistor

The purpose of this board is to take input from a phototransistor and display it visually using a python program when the board is connected to a computer via a FTDI cable. Link to the Fab Academy board diagrams / pngs and code.

To Flash the Board

sudo make -f hello.light.45.make program-usbtiny

Terminal Output When Board is Being Flashed

[sudo] password for akaziuna: 
avr-gcc -mmcu=attiny45 -Wall -Os -DF_CPU=8000000 -I./ 
-o hello.light.45.out hello.light.45.c
avr-objcopy -j .text -O ihex hello.light.45.out hello.light.45.c.hex;\
avr-size --mcu=attiny45 --format=avr hello.light.45.out
AVR Memory Usage
----------------
Device: attiny45

Program:     426 bytes (10.4% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)


avrdude -p t45 -P usb -c usbtiny -U flash:w:hello.light.45.c.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9206
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "hello.light.45.c.hex"
avrdude: input file hello.light.45.c.hex auto detected as Intel Hex
avrdude: writing flash (426 bytes):

Writing | ################################################## | 100% 1.27s



avrdude: 426 bytes of flash written
avrdude: verifying flash memory against hello.light.45.c.hex:
avrdude: load data flash data from input file hello.light.45.c.hex:
avrdude: input file hello.light.45.c.hex auto detected as Intel Hex
avrdude: input file hello.light.45.c.hex contains 426 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.77s



avrdude: verifying ...
avrdude: 426 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Run The Visualization Program

python hello.light.45.py /dev/ttyUSB0 
Categories
Fab Academy AS220 - Providence, RI Fab Academy Providence -Year II - Teaching

Hello Microphone

Hello Microphone Board

The purpose of this board is to take microphone input and display it visually using a python program when the board is connected to a computer via a FTDI cable. For whatever reason, I found that the non-fab inventory microphone I used only picked up high pitched electronic noises / music.  The microphone / program did not display input from sounds in a lower range or general music or background noise.

Visualized Microphone Output – Dead Kennedys “Man With The Dogs”

Programming Hello Microphone with the FabISP

To Flash the Microntroller:

To program your Hello Microphone – download all the files

sudo make -f hello.mic.45.make program-usbtiny

If Working – This is the Terminal Output Produced

avr-objcopy -j .text -O ihex hello.mic.45.out hello.mic.45.c.hex;\
avr-size --mcu=attiny45 --format=avr hello.mic.45.out
AVR Memory Usage
----------------
Device: attiny45

Program:     500 bytes (12.2% Full)
(.text + .data + .bootloader)

Data:        200 bytes (78.1% Full)
(.data + .bss + .noinit)

avrdude -p t45 -P usb -c usbtiny -U flash:w:hello.mic.45.c.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9206
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "hello.mic.45.c.hex"
avrdude: input file hello.mic.45.c.hex auto detected as Intel Hex
avrdude: writing flash (500 bytes):

Writing | ################################################## | 100% 0.87s

avrdude: 500 bytes of flash written
avrdude: verifying flash memory against hello.mic.45.c.hex:
avrdude: load data flash data from input file hello.mic.45.c.hex:
avrdude: input file hello.mic.45.c.hex auto detected as Intel Hex
avrdude: input file hello.mic.45.c.hex contains 500 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.00s

avrdude: verifying ...
avrdude: 500 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

run software

Run The Python Program (Ubuntu)

python hello.mic.45.py /dev/ttyUSB0
Categories
Fab Academy AS220 - Providence, RI Fab Academy Providence -Year II - Teaching

FabKit / Fabduino

fabduino
I milled and stuffed Ed Baafi’s Fabduino board version 2. I am still troubleshooting the board, but I may just start over. So far avrdude cannot talk to the chip to burn the bootloader. I have tried the USBtiny and the ATAVRISP2, but I did not have any luck with either one.

I have also tried using just avrdude and the Arduino IDE without success. I have also tried every possible configuration of FTDI plus jumpers to the ISP. (As well as just jumpers to the ISP). I will likely start over, perhaps I overlooked a trace when I was editing the .png file – see “other issues” below.

Error Message (both avrdude and Arduino IDE):

avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override this check.

Figuring Out the Pin to Microcontroller Setup:

The Fabduino does not have a 6-pin header, so it needs to be programmed using jumpers attached to the pins that would be on the programming header.

fabduino

Other Issues:

I milled this board several times. When I exported the file as a .png from the origional Eagle board file, there were some jagged edges that caused the toolpath around the microcontroller pins to remain connected. At first I thought that this was due to the Fab modules settings or the bit size. I later figured out that if I cleaned up the problem areas in the .png manually in The Gimp, the toolpath issues went away.

fabduino

Categories
Fab Academy AS220 - Providence, RI Fab Academy Providence -Year II - Teaching

Fab ISP 2.0

Fab ISP - with resistors
This year the Fab ISP programmer (created by David Mellis) was updated by Neil Gershenfeld. The Electronics Production assignment was to mill the board and stuff it. Most of the students had their boards programmed this week. The board shown is the Fab ISP I made. We will be using these programmers through the semester to program the other boards we create.

To Get Started:

  1. First – go to the Fab Academy page for Electronics Production and download Neil Gershenfeld’s updated design (shown in this example).
  2. Then – Read through the MIT Fab ISP page documentation

Mill the Board:

  1. Mill the board traces (hello.ISP.44.old.traces.png) using the Fab Modules or Cad.py
  2. Mill out the board (hello.ISP.44.old.interior.png)
  3. Labeled board diagram  (hello.ISP.44.old.png)

Fab ISP TracesFab ISP Mill OutFab ISP Labeled

Stuff the Board:

Shawn Wallace has provided a Fab ISP labeled board diagram
Fab ISP

“Smoke Test”

  1. Plug the Fab ISP into your computer via the USB cable.
    — If you get an error message from your computer that the board is drawing too much power – and the computer is shutting down the USB port — You have a short somewhere on your board.

Troubleshooting  Short Circuits:

  1. First, do a visual inspection of the board and reflow any solder joints that look cold (not shiny and smooth).
  2. Then, get out your multimeter and check all the connections to make sure that:
    – power and ground are not connected
    – there is not a short on the power line

ATAVRISP2 Programmer Light Indicator Messages

If you are using the ATAVRISP2 programmer (or any other programmer that has a indicator light that lets you know if you board is connected / powered correctly). If you connect the programmer to the 6-pin programming header on your Fab ISP board and you get:

  1. Green Light: means that the header is soldered correctly, the board is getting power and the programmer can sense the microcontroller.
  2. Yellow Light: means that the board is getting power, but most likely the 6-pin programming header is not soldered correctly (re-flow your solder joints / check for cold joints, check for shorts).
  3. Red Light: means that the board is not getting power – check for shorts.

Program the Board:

  1. To program the board, you will need avrdude installed.- For information on where to get and how to use avrdude see:  Very Basic Beginner Assembly Tutorial III: How to Use Avrdude
    – Also see MIT Fab ISP page documentation
  2. Download the firmware from the Fab Academy Electronics Production page.
  3. After unzipping the firmware, open a terminal window (mac / linux – for windows instructions see the tutorials listed above).
  4. Navigate to the downloads folder (or the folder where you saved the firmware).
  5. The board needs power: make sure that the USB connector for the Fab ISP you are trying to program is plugged in to a computer AND that a separate pogramer is plugged in to the 6-pin programming header. (this could be another working Fab ISP or the ATAVRISP2 mentioned above.)
  6. In the terminal window type:
make clean

Then type:

make hex

Then type:

make fuse

Then type:

make program

If you get errors – read the errors and follow instructions.  If avrdude cannot connect to your board’s microcontroller – you should follow the “Troubleshooting Short Circuits” steps above and ask your instructor for help.

To Verify That Your ISP is working correctly:

Mac OS –> go to the System Profiler >> Hardware >> USB >> Hub:

Step – By – Step:

  1. Click  the “apple” menu in your main toolbar
  2. Select “about this mac”
  3. Select “more info”
  4. Under the “Contents” menu in the left hand navigation- Under the “Contents” menu in the left hand navigation
    – Click “Hardware” to expand the hardware menu (if not already expanded)
    – Click “USB”
    – Under the “USB Device Tree”
    – Click “Hub” to expand the hub menu (if not already expanded)
    – “FabISP” should be listed in the hub menu
  5. Your Fab ISP device has been successfully programmed and is recognized by your computer.

Linux:

  1. Still working on this……. details coming soon.

After You Have Programmed the Board:

  1. Remove the 0 ohm resistor and solder bridge as shown in the picture below.

Fab ISP without jumpers