For upgrading an Arduino so that it can program another microcontroller
https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP
https://github.com/FYNCH-BIO/evolver-arduino/blob/master/ATtiny1634/lightsense.c
https://blog.zakkemble.net/avr-gcc-builds/
Tried to upload blink to Arduino Uno and got this error
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x58
Had to remove all wires going to Arduino ports and unplug usb before it would upload
Map of controller pins in on the microcontroller
https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP
Load up ArduinoISP (in the Arduino IDE examples) onto the programmer Arduino
Download C code for ATtiny from here:
https://github.com/FYNCH-BIO/evolver-arduino/tree/master/ATtiny1634
Navigate to the folder containing ATtiny code (lightsense.c)
avr-gcc -g -Os -mmcu=attiny1634 -c lightsense.c avr-gcc -g -mmcu=attiny1634 -o lightsense.elf lightsense.o avr-objcopy -j .text -j .data -O ihex lightsense.elf lightsense.hex avrdude -p t1634 -P <Your Arduino Port> -c arduino -b 19200 -U flash:w:lightsense.hex -v -v -v -v
From <https://github.com/FYNCH-BIO/evolver-arduino/tree/master/ATtiny1634>
Replace <Your Arduino Port> with the port used by your Arduino (found in IDE under Tools>Port)
avrdude -p t1634 -P COM9 -c arduino -b 19200 -U flash:w:lightsense.hex -v -v -v -v
avr-gcc -g -Os -mmcu=attiny1634 -c LEDblink.c avr-gcc -g -mmcu=attiny1634 -o LEDblink.elf LEDblink.o avr-objcopy -j .text -j .data -O ihex LEDblink.elf LEDblink.hex avrdude -p t1634 -P COM9 -c arduino -b 19200 -U flash:w:LEDblink.hex -v -v -v -v
Described initially in Huang, Heins et al. 2022 Nature Biotech.
Make sure that the board is receiving 6V
12V power supply needs to be on
Measure voltage from two jumper cables plugged in to correct pins in ribbon cable using a multimeter
Plug in to LUX Arduino and check what inputs it is receiving
Link Arduino troubleshooting guide
Use SerialUSB.println(input2String);
to check if there are serial events
Open up serial monitor
This should instruct you about what to check next based off of the output
If no output,
The LUX board may be incorrectly flashed with code
Plug an Arduino Uno directly into the board to see what outputs it receives
If the boards were previously working or have been verified to be outputting the correct signal directly to an Arduino, the connection between the SAMD21 and the LUX board is broken