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

Categories
04 Electronics Design and Production Fab Academy AS220 - Providence, RI

FabISP Part II: Stuffing and Programming the Board

 

The Fab Academy Assignment
make and program a board

The Project: Fab ISP

The FabISP was designed by David Mellis. It is an in-system programmer for AVR microcontrollers. Mellis designed it so that it could be produced in a Fab. It’s based on theUSBtiny andV-USB firmwares, allowing the ATtiny44 to communicate over the USB connection. It can be programmed with avrdude. See Mellis’s site for more details.

Skills Learned

This was my first board that I put together and programmed at Fab Academy

I learned how to:

  • mill a board
  • stuff a board
  • program a board
  • troubleshoot a board

I had a alot of trouble initially with this board and I made at least 6 of these at various stages of completion before I got the final one working.
Some of the issues were due to my inexperience and need of practice with soldering and troubleshooting, but I discovered later that many of the problems were also due to the programmer I was using (see below).

Tools Used

  • ATMEL Mini AVR ATMEGA STK500 USB Programmer ISP (initially)
    • I had a lot of trouble with this programmer. I could not get it to green light on most of my boards – and when I did get a green light, it was unreliable. It would often go green – then yellow – then red. I would unplug it and then plug it back in and get flashing yellow or green.
    • I also wanted my own programmer to work with at home (the Ateml Mini belonged to the lab), so I purchased the very inexpensive USBtinyISP kit. This turned out to be a great solution. I occasionally have an issue with it heating up the boards a bit, but it doesn’t give me flaky results like the Atmel mini. Without the USBtinyISP, I would not have been able to complete any of the electronics / board related assignments with fabbed boards.
  • USBtinyISP AVR Programmer Kit
    • I found this programmer much easier to use than the Atmel Mini.
    • available from Adafruit Industries
Categories
04 Electronics Design and Production Fab Academy AS220 - Providence, RI Fab Academy Providence -Year I - Student Projects

Fab ISP Part I: Milling Out The Board

Today I milled out my first PCB on the Modela. Technically it is not a “printed circuit board”, but machined out of copper-clad PCB stock.

milling board

Fab Academy Assignment

The assignment is to design a circuit board, mill it, and program it in assembly language. This post documents Part 1 of this process which entails:

  • Designing the board (For this board I used the already created Fab ISP board file – I plan to design a board for a later project).
  • Machining the board

Part 2 will document the process of putting the components into the board. Each student had to become acquainted with the following work flow:

  • Stuffing components
  • Programming

The first step in making a board is to create a tool path to send to the machine:

To Mill the Board:

  • Import a PNG image into cad.py.
  • Create the tool path in cad.py
  • Send to the Modella

Fab ISB

To Cut through the Board:

  • Import the border PNG image into cad.py
  • Create the tool path in cad.py
  • Send to the Modella

Border