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
Rather than propose a single continuous culture device designed to a specific purpose, our goal with eVOLVER was to demonstrate a design framework that gives the user the freedom to imagine and carry out virtually any type of experiment that uses automated cell growth functionality to study cellular fitness. Here, we comment on reconfiguring eVOLVER for several experiments of significant interest in the community. For further examples, see Supplementary Table 1.
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
Morbidostat algorithms have been developed that gradually increase the selection pressure of an evolving culture, typically based on measured growth rate23. Previously, this algorithm has been implemented with two media inputs (+ and - drug), requiring three peristaltic pumps per culture (w/ efflux pump). In a 16-vial eVOLVER unit, this setup can easily be implemented by (1) controlling 48 pumps with the auxiliary board or (2) using multiplexed fluidics with the millifluidic devices. The prior being simpler to implement for 2 media inputs and the latter letting one scale to >2 inputs. As currently designed, the auxiliary board can control up to 48 fluidic elements (pumps/ solenoids). To run morbidostat mode, one would need to modify the Python code to the desired growth algorithm (e.g. control rate of drug increase, growth rate threshold to trigger the drug input).