Electronics Production

The assigment page
The goal of this week was to make a board, Brian's FabTinyISP, with a little milling machine, solder components on it and flash the firmware.
I really enjoyed discovering this topic, it feels like I have new powers!

⇝ Milling the board ⇝ Programming the board with an Arduino

I have a nice little board, with no short. Now it's time to program it. In order to flash my future programmer.
I need another programmer, I used an Arduino on Ubuntu 16.10.

How to flash the FabTinyISP with an Arduino Uno:

1. Download and install Arduino IDE if you didn't already did it.

2. Plug your Arduino to your computer, launch the software. Choose your board: Tools -> Board -> Arduino/Genuino Uno.

3. Check the serial port: Tools -> Ports. There's a list of serial port, in Ubuntu it's generaly /dev/ttyACM0.
If it's the first time, perhaps your computer doesn't allow the board to connect. Go in terminal and write sudo chmod a+rw /dev/ttyAMC0.

4. Your Arduino is set. Now we can upload a special code who transform the Arduino into an ISP programmer. Open the ArduinoISP sketch:
File -> Exemple -> 11.ArduinoISP
Press the upload button (->). Wait few seconds, if there's no problem, the software will shows "upload complete". Your Arduino is set!

5. Now you have to plug your FabTinyISP to the Arduino. Unplug the Arduino first to avoid damaging the board if you're making mistakes. It looks easier but don't use the ICSP connection, it doesn't work.
It suppose to look like this:

So you have to plug the pins of your board to specific arduino's pins. I used this exemple to do it.

Plug your arduino, if the red LED on the board works, it's good. Go back to your computer.

6. It's time to flash your board. Don't download the file from Brian's page, it doesn't work (see below for more information). Download this one!
Unzip it wherever you want, open a terminal and cd to the folder. Open Makefile in Gedit or Nano and check if the serial port is same as you had in Arduino IDE. If it's not the same, change it, save and quit.

There's not some much differences. Left is my code, right is Brian's code. You have to specified clearly the path for your Arduino. "usb" variable doesn't work.

I've change also the line PROGRAMMER ?= usbtiny to PROGRAMMER ?= avrisp. It's telling that you're using ArduinoISP.

There's also this line: MCU = attiny85. If you're not using an Attiny85, change it to your chip.
Run make, the fts_firmware.hex is created.

Now you can follow the steps in Brian's page (if there's a problem check his page):
-Run make flash
-Run make fuses
-Run lsusb, if you see a "Multiple Vendors USBtiny" device, it worked!
-Run make rstdisbl to finish.

Brian tells you to removing the jumper. Emma tells me to keep it, check with your instructor.
Now your board is complete and can be use to program other boards!

My problems
My problems were mostly due to the lack of documentation about flashing with an Arduino.
I managed quickly to find the ArduinoISP thing, I guessed that I had to upload something to the board to transform it into an ISP. I use to upload StandartFirmata in order to work with Processing.

First I tried to connect my board to the Arduino using a 2x3 header using the ISCP connection. But it simply didn't work.

With Emma we struggled to flash the board with the firmware provided by Brian. You have to use the firmware provided here.