I enrolled for the 2017 Biohack Academy @ Waag Institute, Amsterdam! This page will serve as my public project log. Culturing spirulina today, immortality tomorrow!

View on GitHub

17-04-2017 - DIY Photobioreactor Update

The first fully working prototype of my photobioreactor has come and gone!

Building on the work in Pieter’s photobioreactor repository, this device used an air pump to provide the CO2 that spirulina needs for photosynthesis, as well as a light sensor, heating pad, LED strip, LCD screen and thermometer hooked up to an arduino to:

Pieter’s design also included a pH-meter, but reading up on the documentation for the part he was using, this meter wasn’t actually considered suitable for continuous measurements. A more expensive industrial sensor that can do continuous measurement is available for the same chip (and could thus easily be substituted), but is apparently expected to last for a year at most, which makes the addition too expensive for my price point. I decided to use a cheap manual pH meter whenever the medium was changed, instead.

I had trouble getting the LCD working. After trying things for an hour or two, it turned out that the I2C address in the arduino code (both that from the BHA repository as the one provided by the vendor where I bought the LCD screen) were wrong. Running this sketch detected the address where my screen actually announced itself, and inserting that into the code got the screen working. The real I2C address for my screen is 0x3F.

The air pump provided a challenge, as well. Waag society had some pumps lying around for this project, but these were battery-powered (1.5V), and from their experience the batteries for these lasted only about half a day. I wanted my pump to run on the same power line feeding the rest of the device, which turned out to be very tricky. Arduino doesn’t provide 1.5V, and neither did any of our available power supply units. I ended up adding a few heat-tolerant resistors, in parallel with each other and in series with the motor, which dropped the voltage down from 3.5V to 2.1V whenever the motor was running. However, it turns out that the impedance over an electromotor increases when it is running, creating a bi-stable system: When the motor isn’t running, it’s lower impedance means that a lower proportion of the circuit’s total voltage goes to the motor (as opposed to the resistors), leaving too little voltage to start the motor up. When the motor is running, it draws a larger proportion of the total voltage, and consequently it stays running. Add to that that the resistors tended to heat up (I burned through a few of them before finding a set of relatively heat-proof ones), and that the impedance over them tends to increase when they heat up or wear down from being heated for a while, and the end result was a very unstable system that took a lot of effort to get running for any length of time. Although the motor was working steadily when I finished this prototype, using resistors to create the necessary voltage drop for a device like this is clearly not a good way to go about it.

Finally, the heating pad was tricky, as well. It drew too much current to be fed from the arduino 5V pin: trying this caused the LEDS and LCD screen to dim down and stop working. Feeding it from the 3.3V pin seemed to avoid this, and still created enough heat for my purposes. The arduino was getting suspiciously hot, though.

This is the prototype in the final stages of getting put together: image

And here it is up and running, on the windowstil of the Waag biolab: image

When the device seemed ready for use, I made some medium and added some of Waag’s spirulina stock, and left the project over the five-day weekend between BHA classes.


When I came back, the air pump’s motor had stopped and the reactor was room temperature, although the lights were on and the LCD screen was working. There were pale beige blots floating in the medium, looking very much like microorganisms but not at all like spirulina.

Turns out the voltage-drop hack I used on the air pump had survived for about three days before failing, which was probably due to the resistors heating up and increasing their impedance to the point where the pump was no longer getting enough voltage to run. Putting a higher voltage on it would make it run again, although presumably not for very long.

Similarly, the power supply from the arduino 3.3V pin to the heating pad seemed to have failed; the arduino worked fine and still produced 3.3V there, but no longer enough current to get the heating pad to heat. It did appear to have stopped overheating, though, so I’m guessing that the heating pad (which has a very low impedance) drew more current than the arduino could sustainably supply, gradually damaging its overheating 3.3V supply until it no longer produced enough current to heat the pad or further damage the arduino.

The lesson that I’m drawing from this is that I should feed my devices the kind of power they ask for even if it requires buying new parts, instead of something that they just barely seem capable of running on but which I can provide them with parts I happen to have lying around. For future models, I intend to buy a grid-powered air pump, and either set the heating pad up with its own power supply unit or just buy a ready-made aquarium thermostat. Pieter helpfully added that you could run the LEDs on a 24-hour timer socket instead of an arduino, which would mean that with the pH meter already gone and using a store-bought thermostat, you could get rid of the arduino and screen entirely. It’d probably be cheaper that way, too, if not quite as much fun.

17-03-2017 - Project: Spirulina Plus

Spirulina (Arthrospira platensis, in this case) is a cyanobacterium (but usually referred to as an algae) that can be cultivated as a food source. It has several attractive properties in this regard:

A spirulina reactor from blablaLab in Spain

This seems to me a good start. One of the takeaways of the BHA lectures so far seems to be that you can get microorganisms to do all sorts of neat tricks if you prod them right - but while I appreciate the art of animations built from face-shaped yeast cultures and the innovation of making clothes from laser-cut combucha film, most projects that I’ve seen are still some distance removed from being useful when compared to already existing solutions to the same problems. Which is fine for art/learning/whenever you’re having a good time, of course. But there are important things happening in the world in our era, ready to be affected by our actions, and so I personally really like useful. Working on a food source that is already very much worth eating/growing, any success would be immediately useful for me personally, and any improvents I succeeded in making could be valuable for any current spirulina-farmer willing to adopt the method - hence this choice of project.

The Spirulina Plus project aims to: a) get a healthy spirulina culture growing in a DIY bioreactor, and b) explore the possibility of genetically engineering Arthrospira platensis to further improve its utility as a conveniently culturable health food.

Subproject A: Building the Photobioreactor and Starting a Spirulina Culture.

Four afternoons into the effort, building and improving on the Waag-design open photobioreactor currently remains a work-in-progress. Further documentation probably to be added later.

Subproject B: Genetic Engineering of A. platensis.

What? The idea here is to add genetic material to living spirulina, which would then be used to start a culture posessing the corresponding properties in its phenotype. This would be useful for a couple of reasons. Because they do best at a pH as high as 9-9.5 (which few environmental microbes like) and because other algea that could thrive in the same growing conditions are scarce inside our homes, indoor spirulina cultures don’t seem to be particularly difficult to keep uncontaminated. So once you’ve got any succesfully modified spirulina, so long you go about it right, you’ll have as much as fits in your reactor and you can replenish that supply indefinitely. And spirulina is pretty rare among prokaryotes in that it constitutes a food of and by itself - taking genetically modified live probiotic supplements risks releasing GMA organisms into the environment, but spirulina you can just eat dead, and still benefit from whatever properties you added.

Ideas for useful genetic improvements would be:

As a spoiled western biohacker who has never faced food-scarcity in his life, I get the most excited about the last two options. Currently, I’m leaning towards trying to make it (over)express PQQ (which is a fairly healthy, fairly expensive food supplement, which scientists have succesfully added to other bacteria before) as a proof-of-concept, if I get that far. A more ambitious project still would be hacking spirulina to overproduce nicotinamide mononucleotide (NMN), an intermediate in the biosynthesis of an important energy metabolism co-factor from vitamin B3 that we all already produce. NMN has powerful life-extending properties when supplemented beyond our natural production, but is ridiculously expensive to buy or synthesize normally (I’ve found that a team at the Boston Open Source Laboratory is in fact already working on achieving NMN overproduction in lactobacillus, and have emailed the contact person to ask about their progress!).

How? It appears that genetic modification of spirulina is not commonly done. My literature search turned up only one relevant paper, which remarked that the organism had proven resistant the most techniques used up until then, but succeeded at transforming spirulina by means of electroporation.

Interestingly, another thing that search turned up was that a whole-genome sequencing of A. platensis had shown the species to possess an endogenous CRISPR locus. This is exciting, because several studies now[1,2,3] have shown that these can be tricked into performing your gene-editing attempts for you, and also because I’ve been hungry for an opportunity to work with CRISPR editing.

Reading the first of these papers and comparing to the genome paper, it looks like they exploited an endogenous CRISPR array of a different type than the one found in spirulina, but they remark that the technique should generalize in theory so long as the CRISPR array in your organism is function. Looking at their methods, one major challenge for editing spirulina will be that the PAM sequences that it’s CRISPR array will accept (see this link for an explanation of CRISPR editing mechanics) haven’t yet been uncovered. Succesful CRISPR editing seems to have two conditions: knowing what DNA sequence to put into your plasmid, and getting the plasmid into the organism. Most of that first condition can be met just looking at your organism’s genome and knowing what genetic information you want to insert, but the PAM sequence which a CRISPR array will recognize is found not in its own genome, but rather in the genomes of the bacteria-eating viruses that the CIRSPR array is built to protect against. Spirulina’s genome does probably contain clues as to where to find these: the scientists from the paper solved this problem by looking for viruses matching their organism’s CRISPR array in databases, and found a working solution.

I also still need to work out the legality of this. CRISPR is apparently not included in the Waag society’s genetic-modification licence, on account of it being a two-step process where you first make your organism express the CRISPR proteins (Cas9) which subsequently make it susceptible to further genetic editing - that is from memory of talking to Pieter, and may be poorly remembered. It is plausible that using spirulina’s endogenous CRISPR machinery may circumvent this part of the law, but the last time I asked Pieter about this I misrepresented the facts of what would still be required to complete the process, and I don’t think the answer I got then (which was “Yes, you could do that”) can still be trusted to apply.

That’s it up until now!

~ Raza

24-02-2017 - Debugging the Magnetic Stirrer.

One of my main objectives this BHA is to build most of the devices, and this tuesday I finally completed my first: the magnetic stirrer. It started out easy enough, with quickly getting the fan/stirring function running and setting up the remainder of the circuit with the exception of the heating pad:

Getting started Getting started.

Image The circuit minus the heating pad.

Image Cardboard scaffolding to hold the magnets in place while the glue dries.

Image Whirlpool!

Victory! Right? Not quite. Because when the heating pad eventually was attached, it turned out not to do any heating! Also, two minutes into trying to figure that out, the red LED stopped working. After spending a lab session or two testing the circuit and double-checking every connection, wherein everything seemed to function as it should, I finally thought to do something I should’ve done form the start: do the math!

Looking at the heating pad sub-circuit, there was 12 volt divided over a 6.5Ω/5V heating pad, a set of toggle-able resistors with a minimum combined impedance of ~22Ω with all switches turned on, and a 92Ω/1.75V LED, connected in series. Meaning that the LED alone would be taking about 9V, the switch-system two-point-something, and the heating pad less than 1V. No wonder the LED burned while the heating pad stayed cold.

Turns out there was… well, not so much an error as an unfortunate display problem with the fritzing schematic:


In the left image, which was the fritzing file I was working with, it is apparent that the right-hand loop (which feeds the heating bad) feeds back through the led onto the ground. Made sense to me: this way, the LED would light up regardless of whether the stirring or heating function was turned on - that is, whenever the device was running at all. But looking at the right side image, the heating pad’s ground line turned out not to connect to the line feeding the LED so much as it displayed exactly overneath it. Pulling it downwards a bit showed how the circuit was supposed to be wired.

Wiring it up like that turned out to be a significant improvement! The new LED didn’t burn, and the heating pad now achieved a temperature that was unmistabably a tad above room temperature. More math: with all switches opened up to run the heating pad at it’s maximum power, the pad would now draw 6.5Ω / (6.5Ω + 22Ω) = 22.8% of the voltage; so around 2.8V, a little more than half of its desired operating voltage of 5V.

The story here was that the mechanism with three switches, each adding another paralel conductor to allow incremental control of the power over the heating pad, was an untried change of the previous working model intended to teach participants about working with Ohm’s law. It succeeded there! But the range of impedances that the switching mechanism was capable of remained way too high compared to the heating pad. I ended up just adding another 68Ω resistor in parallel to each of the three prior resistors, so that the total conductivity added by opening each switch doubled. This permits a total impedance as low as 11.3Ω when all three switches are opened, for a voltage drop of (11.3Ω / (11.3Ω + 6.5Ω) ) * 12V = 7.6V over the switching mechanism, leaving 4.4V to keep the heating pad running at nearly maximal power.

That did the trick, and my stirrer heats up (and stirs) beautifully now.


12-02-2017 - Welcome to my project logbook.

We’ve not actually started our projects yet, but this page is still full of helpful markup language tips!


You can use the editor on GitHub to maintain and preview the content for your website in Markdown files.

Whenever you commit to this repository, GitHub Pages will run Jekyll to rebuild the pages in your site, from the content in your Markdown files.


Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for

Syntax highlighted code block

# Header 1
## Header 2
### Header 3

- Bulleted
- List

1. Numbered
2. List

**Bold** and _Italic_ and `Code` text

[Link](url) and ![Image](src)

For more details see GitHub Flavored Markdown.

Jekyll Themes

Your Pages site will use the layout and styles from the Jekyll theme you have selected in your repository settings. The name of this theme is saved in the Jekyll _config.yml configuration file.

Support or Contact

Having trouble with Pages? Check out our documentation or contact support and we’ll help you sort it out.