Transatlanticism, Day 6 – Ice Core Chicken

Day 6 – 27°24.23S  000°16.38E
14 September 2013 – Total Distance Covered: 1122nm

Spent most of the day with headwinds… We have the donkey (diesel engine) running at low revs but we’re still sailing with a substantial amount of sail up.

We still haven’t caught any fish and are trying different lures and lengths of line. Catching fish in the Atlantic is a, excuse the pun, catch 22. You’re unlikely to catch a small Tuna, so you end up with a huge bloody mess on deck and then days of tuna for breakfast, lunch and dinner… Still, fresh tuna sashimi and ceviche are very good.

I installed the 4 ICOM VHF handhelds today which involved some soldering and wiring in the new back panel. Cleaned up some other 12v wiring with the help of Chris the engineer.

11884173536_9a5dbfdfe5_z

Magnus made chicken for dinner, which was amazing. Speaking of chicken, it’s worth mentioning that chicken is often a rarity at sea because very few vessels have freezers, certainly not the rough and touch expedition yachts. We’re lucky in that we have a temporary deep freezer on board from a previous season’s Antarctic science group doing ice core sampling.

One of the interesting things about travelling at sea (ie. slowly) is that you gradually creep through time zones. You’ll notice from our latitude and longitude that we’re nearing 0 degrees longitude, which is also the international date line, or Grenich Meridian etc. For every 15 degrees of longitude we cross we lose or gain an hour. Obviously there is no real need to do this because it’s just us on board and it’s not like we have dinner appointments to get to on time, but we do have to continually adjust or we will arrive way out of sync with the rest of the world. We usually do the changeover during dinner when most people are awake. The boat therefore has what we call “local time”, which is what we use for all our shifts, but all the log entries are done in UTC (which time nerds will go to great lengths to explain is not the same as GMT). I do find it quite hubris that we have a Universal time… I wonder if any other life forms inside our universe are dutifully resetting their clocks based on our odd planet’s spin rate.

A random photo of dolphins.

Transatlanticism, Day 5

Day 5 – 28°26.3S  003°15.5E
13 September 2013 – Total Distance Covered: 941nm

Headwinds at 30 knots, lots of banging as the bow rides up the swell, lifts off and then slams down hard into the trough below. If you’re sleeping near the front of the boat you experience moments of weightlessness in your bunk before being slammed down again. It is truly amazing what sort of conditions your body can get used to sleeping in. It helps to be exhausted.

While we have headwinds we have to motor. The yacht carries a fair amount of diesel in her tanks but we really don’t want to be using it unless we absolutely have to. We try steering off the wind so that we can throttle down the engine and save fuel, but our VMG drops dismally. VMG, or Velocity Made Good, is the speed at which you are travelling towards the place you want to go. If you’re doing 10 knots and heading straight for your waypoint your VMG will be 10 knots. But, if you’re travelling at 12 knots and heading 30 degrees to the left or right of your waypoint, then your VMG might only be 7 knots. So we constantly play this game trying to find the optimal balance of VMG and trying not to burn diesel. (We have to get the boat the Stanley in time for an expedition of climber going to South Georgia near Antarctica).

We are still fishing but have caught nothing. On our previous trip we caught massive tuna within a few hours of putting our line out. This line has been our for days and nothing… As is the way of the fisherman, we fiddle and faff with lures and tracers and different distance trawls, all to no avail. It does give us something to do though.

Thomas made a risotto for dinner. Thomas does not come across as the kind of person who could make a risotto, but he nailed it. I think he was lucky. Not complaining.

Chris showed his face briefly but now Paula is starting to look a bit grim. So far the only people that have not got sick are myself and Thomas. I keep wiping down all the surfaces with disinfectant in a probably futile attempt at trying to pretend like I’m not living in a caravan with plague victims. Thomas reckons it’s his diet of black coffee and tobacco that is keeping him healthy. Not sure what’s keeping me immune.

console

We have some new kit on the boat this year. In fact everything in this photo, except the radio (top left), is brand new and was installed in the days before we left. That might sound a little risky but surprisingly nothing in the photo is essential and we have backups for anything important.

I’ll run you through the photo: Top left we have the radio. The funny hole directly below it is where the fancy new radio was meant to go but that died shortly after installation so we reverted to the old one. Most modern equipment is networked, so the radio is getting our GPS coordinates from a black box under that desk. Just to the left of that red button is a small plastic cover with a smaller red “distress” button underneath it. If someone where to lift that cover and press that button, the radio would start to transmit a digitally encoded distress signal with our boat’s unique registration number and our coordinates. Any vessel in range with a DSC (Digital Selective Calling) system on board (which is most of them) would start to have alarms go off and see our details on their screen. That said, we haven’t heard the radio peep for days. There have been no vessels in VHF range for days, so that distress button would be useless. In another post I’ll explain EPIRB, which uses satellites and is how we would let the world know if we were really in trouble.

Next we have all the displays . It’s important to note that most modern displays are “multifunction” which basically means it’s just a screen and you can select what you want it to show. What we’ve got up on the screens in the photo is just how it was at that point in time. We’re constantly changing things depending on the conditions.

The first screen, top left, is showing our latitude and longitude, our SOG (Speed Over Ground, which uses GPS) and our COG (Course Over Ground) which is the resultant direction we are travelling in. When you’re sailing there are lots of forces pushing the boat in different directions and the result of them, the direction you’re actually travelling in, is hardly ever the direction your bow is pointing in.

The screen below that is for wind. It shows the wind angle and speed relative to the direction we’re heading in.

The big screen is a multi-purpose. It’s currently showing a chartplotter which displays our historic track and current heading. If there were any ships within VHF range we’d probably see them on the plotter as AIS blips (I’ll explain that in another post). This screen gets changed to the radar output at night and can even be used to show the output of our FLIR passive infra-red thermal camera.

To the right of the big screen (showing “305°“) is the autopilot control. There are various ways to use an autopilot (compass angle, angle to the wind, waypoint etc). Currently it’s set to a compass angle and is trying to maintain a course of 305°.

To the right of that is another multifunction display which is showing the local time (GMT is on a different clock not in this picture), another COG and SOG, the average wind speed and the times for sunset and sunrise.

To the right of that is the FLIR camera control which is turned off. I’ll post a video showing off the FLIR camera in a future post.

At night everything is dimmed and set to night colours so that we don’t lose our night vision. Even with all the technology in the world you still need someone awake at all times scanning the horizon for lights and looking after the sails.

Underneath the two laptops are the paper charts for the area we’re currently in, and the big red book is our logbook which gets an entry every hour on the hour.

Transatlanticism, Day 4

Day 4 – 29°38.3S  007°04.3E
12 September 2013 – Total Distance Covered: 755nm

 

I had been up since the start of my shift at 9pm the previous day, was on watch until 2am, but then decided to stay awake to watch the sun rise. It was glorious and the gravity of where I was finally begun to sink in. Hundreds of miles away from land and civilisation. The wind is gone. It is hot. The sea is calm but small swells roll by. There is nothing for miles. We are alone.

It feels like we’re all finally acclimatised to being on the ocean. The speed at which I run up and down stairs and pull myself through hatchways is increasing. My body has stopped trying to make sense of the random motion of the sea beneath us.

I go to bed around 8am. The sound of the sea sloshing past my head is incredible. The squeaky block is still squeaking but in the moments between squeaks I can close my eyes and hear the ocean, hundreds of meters deep beneath me. I imagine what it must be like to do these kinds of voyages by yourself, does this gentle ocean lullaby become a deafening reminder of your isolation or is it just as calming?

I sleep. Even though the engine is running, the noise of water and engine blend into one. I get up at around lunch time and the wind returned. We are being followed by a pod of dolphins. I think they’re interested in our echo sounder.

dolphin

I make spaghetti bolognaise for dinner. Everyone loved it except Chris…. he had been looking a bit delicate for a couple of hours. He took one mouthful and then rushed outside to start puking. It was not the food… this was the bug that was making its way around our crew. Laura had only recently started showing her face again, and now it was Chris’ turn. Paula is nursing Chris dutifully, taking him water and occasionally coming on deck to empty buckets of vom :/

At sea there are no nurses, no janitors. It’s the crew and you’re a family, whether you like it or not. I have been deathly ill at sea, stuck on deck, freezing, throwing up, while another crew member, a Kiwi girl named Kali, who was equally ill and equally throwing up, helped me put on some warmer pants between our bouts of mutual hurling. Nothing quite bonds two people like vomit and warm socks.

You will see the best and the worst of people at sea. We are trapped. There are times when you have to bite your tongue to keep the peace. Times when you have to drop a friendly argument because you realise that someone is starting to take it a little too seriously. A great skipper, which Magnus certainly is, has to be commander, best friend, mediator and psychologist with each member of the crew. The unavailability of Wikipedia to settle disputes is a sore point with everyone. We make promises to, when we have internet again in a few weeks, forward URLs to each other to prove ourselves right.

This is life at sea.

Transatlanticism, Day 3

Day 3 – 31°22.6S  010°39.1E
11 September 2013 – Total Distance Covered: 557nm

Started the engine for the first time at 8am after a few glorious days of sailing.

One of the things that have been giving us hassles is the water speed transducer (log). It hasn’t been working since we left Cape Town. It’s not essential, but it’s useful to work out what the water currents are doing. A lot of the electronics on board is brand new, so niggles are bound to happen. We needed to figure out if this was dodgy wiring, an incorrect setting or a blown transducer. Not easy when the transducer is 60 feet away from the displays. After many hours of debugging we figured out that the problem was a blown transducer, probably due to someone spinning it at a gazillion miles an hour with a high pressure hose when they were cleaning the hull.

Luckily we had a spare and after a few hours of unpacking bilges, rerunning wiring and carefully repacking, we had our water speed back. One of the amazing and unexpected results of this was that the autopilot, that we had been thinking was a little jumpy, suddenly settled down. Obviously it uses water speed in its equations but wasn’t complaining about the water speed being non-existent. Live and learn! It was now making small, neat and precise adjustments, like a champ.

We spotted Minke whales a few meters away from the boat, nonplussed by our presence as we slide by at 10 knots.

P1040119

While on watch at around 3am we had to change course to avoid a collision. As dramatic as that sounds, it really wasn’t. AIS data indicated a likely collision with another vessel in 20 minutes. We adjusted our course and the vessel passed within 2nm of us. Technology is awesome.  The wind has dropped almost entirely. We put 3rd reef in the main to stop it from thrashing about.

Transatlanticism, Day 2

Day 2 – 32°30.06S  014°18.24E
10 September 2013 – Total Distance Covered: 349nm

 

Another great day of sailing, we had some challenges with the rudder angle sensor coming off its mounting, but otherwise uneventful.

Laura is still sick, it’s definitely not seasickness. I’ve started sanitising all the grab handles in the common areas.

Onward

There is a squeaky block (pulley) directly above my head in my bunk. It’s running the prang (preventer/vang) and is loaded with a few tons on slightly stretchy line, which is why it’s squeaking. Incredibly how something so simple can make such a huge, and disturbing, sound. It’s like metal scraping on metal, literally 40cm away from my face while I try and sleep.

We put out a fishing line, nothing yet. It’s a lure wired up on a bungy cord so that it will not snap the line if we get a strike.

Being Forced to Think

A journey like this is as much about the time away as it is about sailing. For me this is a form of meditation without the forced constraints of sitting in a darkened room, legs crossed trying to achieve a state of zen.

Boat meditation is more about menial tasks like mending a line or checking sail trim. Obviously there is a fair amount of time spent gazing at the horizon, but it is the time away from everything, away from the hum drum, the bathroom remodelling back at home, the dinner plans, the accounts that need paying, the week’s groceries, away from everything. Out here it is simple. The routine is almost deadening.

Wake up, breakfast (probably muesli), faff about for a few hours, do some sailing, make something for lunch, an afternoon nap, maybe read something, get up, sail, help with dinner, bed for a few hours before night shift, up at 10pm, sail until 2am, sleep.

The repetition along with the lack of external stimuli and the inherent repetitive tasks involved in running a boat, writing the hourly log etc, really gives you nothing else to do but think.

Suddenly the bathroom remodelling becomes something that is important. The loved ones you left behind become achingly far away. It becomes easier to make grand resolutions in this place.

It’s said that to turn a good practice into a habit takes 30 days (I’ve also heard 21). I wonder if living a completely different life for a month makes it easier to reset your life when you return?

Resolutions are of course notorious. Once you’ve whittled through the obvious ones, get fit, be more organised, be a better friend etc, you’re left asking the big questions: Who am I? What do I want?

I am blessed. I live a charmed life. People pay me money to do work that I find challenging and rewarding. I’m happily married to a woman who is happy with her life and it makes me happy to see her prosper. I am able to do these amazing things like sail 5000 miles across the oceans.

I enjoy being forced to think.

Sailing across the South Atlantic, Day 1

Day 1 – V&A Waterfront, Cape Town – South Africa
9 September 2013, Monday – Distance Covered: 130nm

We departed 4 days late because Magnus (the skipper) got food poisoning. The extra days bought us time to do more last minute preparations, which is never a bad thing.

At roughly 10am we did one last check/top-up of the water tanks, disconnected the shore power and cast off. We had been to immigration a few days before.

The lines came off and we eased out of our berth. The weather was glorious with a brisk breeze to set us on our way.

It takes a long time to sail away from land until the point where you can no longer see land. It was probably 4pm before the last traces of shadows that were once land disappeared.

I was feeling good. On the previous crossing we left late in the afternoon, I ended up exhausted and feeling quite ill. This time I was chipper, doing menial tasks and keeping busy.

While I write this I am reminded of how excited my parents were, especially my father, who pestered me to the point of annoyance wanting to see the boat and asking endless questions about every last detail. That said, I owe this passion to him and I love him dearly. I’m sure I would be the same if I were in his shoes. Watching them on the dock waving goodbye was a lovely experience. Lynnae had to work, we had said our goodbyes earlier in the day, I love her so much for being supportive of my crazy adventures. We exchanged text messages as I sailed away.

Leaving Cape Town

Dolphins waved us off, tracking the boat for a few miles and then getting bored.

As the sun set I started preparing omelettes for the crew for dinner, but I must admit to having to stop half way through when I began to feel a bit queezy. For people who have not spent much time at sea, one oddity is that going below and doing any sort of hand/eye coordination task amplifies any wooziness that one might feel before getting your sea legs. It takes a few days to completely acclimatize.

Laura started to feel ill shortly before sunset. This doesn’t look like seasickness… this looks like what Magnus had. Getting a communicable sickness at sea is a very not-fun experience. The close quarters mean that it’s almost inevitable that everyone will get sick. We’re all a little bit shifty at the thought.

We spent most of the day doing between 8 and 10 knots with good winds.

The Crew
Skipper, Magnus – An all round awesome guy and adventurer. This is the guy you want to be stuck on a desert island with. Originally from the UK.
First Mate, Laura – Magnus’ better half. She used to work for the BBC but traded in her desk for adventure.
Engineer, Chris – Born in the Falklands and intimately familiar with every corner of the boat.
Thomas – A German living in Norway with arctic survival skills and a very manly beard.
Paula – An Argentinian biologist specialising in variety of Antarctic fauna and flora.
Myself – Freeloader and nerd.

RDM630 125KHz RFID reading with the Arduino Mega 2560 R3

This howto is for the RDM630 125Khz RFID module – UART board. Seeedstudio and Spec Sheet.

There are a few chunks of code on the internet that will get the RDM630 up and running on an Uno, but those don’t seem to work on the Mega. There are also a few examples of code that sort-of works, but not reliably, and does not check the checksum etc. I stated with these and then kept on hacking until I got it to work 100%.

RDM630ArduinoMega

So, firstly, a few things that you should know before we start:

  • Many of the code examples work fine with an Uno (using Software Serial) but I’m starting to learn that the Mega doesn’t like Software Serial. I’ve found a few instances of people saying (anecdotally) that Software Serial is “not supported” on the Mega, and even though it works, it’s buggy, and there are patches blah blah. Luckily we have 4 hardware serial ports, so lets use those.
  • You only need to use +5V, GND and one pin (TX) to connect the board to your Mega.
  • You will notice the delay(20); in my code. That gives the board time to bring up the serial connection before trying to read data for it. Without that you’ll get garbage 90% of the time.
  • There are various methods for reading. I’m using a hybrid of various approaches from the internets that uses Serial1.available() as a signal that a tag has been swiped and explicitly reads 14 bytes.
  • I am also explicitly closing and restarting the the Serial1 connection after reading a tag. I do this because the code was working until I left a tag in range for longer than about 5 seconds, at which point Serial1 would get confused and the counter would overrun. This approach does slow things down, but since you can still scan about 4 tags a second (way more than you’ll need to in real life) you’ll be fine.
  • This approach uses pointers, buffers and some confusing snprintf and sscanf functions to extract and convert the 14 bytes from the tag into the various bits and pieces (RFID Tags have checksums, and the unique number itself is stored in HEX). That stuff is hard to grok, but luckily you can chose to either make an effort to understand it or just use the code as-is.

Right. Wiring.

Look at the spec sheet. On pin-set one, pins 4 and 5 go to GND and +5V respectively, with  pin 1 going to Pin 19 on your Arduino Mega (RX for Serial1). That’s all.

Now the code:

uint8_t buffer[14];
uint8_t* buffer_at;
uint8_t* buffer_end = buffer + sizeof(buffer);

String checksum;
boolean tagfound = false;

void setup()
{
    Serial.begin(9600);
    Serial.println("Serial Ready");

    Serial1.begin(9600);
    Serial.println("RFID Ready");
}

void loop()
{
    if (Serial1.available()){
        delay(20);
        buffer_at = buffer;

        while ( buffer_at < buffer_end )
        {
            *buffer_at++ = Serial1.read();
        }
        tagfound = true;
        Serial1.end();
        Serial1.begin(9600);
    }

    if (tagfound){
        buffer_at = buffer;
        uint32_t result = 0;

        // Skip the preamble
        ++buffer_at;
        // Accumulate the checksum, starting with the first value
        uint8_t checksum = rfid_get_next();
        // We are looking for 4 more values
        int i = 4;
        while(i--)
        {
            // Grab the next value
            uint8_t value = rfid_get_next();
            // Add it into the result
            result <<= 8;
            result |= value;
            // Xor it into the checksum
            checksum ^= value;
        }
        // Pull out the checksum from the data
        uint8_t data_checksum = rfid_get_next();

        // Print the result
        Serial.print("Tag: ");
        Serial.print(result);
        if ( checksum == data_checksum )
            Serial.println(" OK");
        else
            Serial.println(" CHECKSUM FAILED");
        // We're done processing, so there is no current value

        tagfound = false;
    }

}

uint8_t rfid_get_next(void)
{
    // sscanf needs a 2-byte space to put the result but we
    // only need one byte.
    uint16_t hexresult;
    // Working space to assemble each byte
    static char byte_chars[3];
    // Pull out one byte from this position in the stream
    snprintf(byte_chars,3,"%c%c",buffer_at[0],buffer_at[1]);
    sscanf(byte_chars,"%x",&hexresult);
    buffer_at += 2;
    return static_cast<uint8_t>(hexresult);
}

Now connect it up, open your Serial Monitor and swipe a tag. You should see the tags being read, with their decimal value (often the number that’s printed on them) printed out.

My three tags look like so:

Serial Ready
RFID Ready
Reading: 695592 OK
Reading: 721129 OK
Reading: 1430936 OK

Credits:
I stole a large chunk of code from ManicBug’s blog post, and got a lot of help from the great people in #arduino on Freenode.  Thanks!

Seeed Studio GPRS Shield 1.4 and Arduino Mega 2560

Recently I battled to get the Seeed Studio GPRS Shield 1.4 and Arduino Mega 2560 to talk to each other. I eventually discovered that they are not actually compatible when stacked (without some ugly pin jumping, and even then, not really compatible because the Software Serial can’t seem to really handle 19200 baud rates).

So here’s how to treat it as a breakout board. (my notes in blue):Image

This only requires 5 connections. The blue labels represent the Arduino pins to connect to.

  1. 5v and GND – These should be pretty obvious.
  2. Pin 9 – This pin is used to turn the SIM900 on and off.
  3. Pin 18 and 19 – These are the HW serial pins

Finally note the position of the jumpers (HW Serial) and the position of the Power Switch (Internal).

Which, when connected up should look something like this:Image

Then finally you can load up the following sketch to get serial access to the GPRS modem via the Arduino’s serial monitor.

#include <SoftwareSerial.h> 
#define terminator 10 // DEC value for a LF(line feed) to skip while loop

/*
SETUP
 
 See https://arbitraryuser.com/2013/04/07/seeed-studio-gprs-shield-and-arduino-mega-2560/
 
 This code is partially "borrowed" from idS2001 at http://www.seeedstudio.com/forum/viewtopic.php?p=12939#p12939
 */

String IncDataSerial = "";

void setup()
{
  delay(1000);
  Serial.begin(19200);
  Serial1.begin(19200);

  // Automatically power up the SIM900.
  pinMode(9, OUTPUT);
  digitalWrite(9,LOW);
  delay(1000);
  digitalWrite(9,HIGH);
  delay(2500);
  digitalWrite(9,LOW);
  delay(3500);
  // End of SIM900 power up.
}

void loop()
{
  if (Serial1.available()>0)  // if date is comming from softwareserial port ==> data is comming from gprs shield
  {
    boolean getLF = false;
    while(Serial1.available()>0 && !getLF)  // reading data into string if activity is on port and getLF is false ==> no LF have been send
    {
      char buffer=Serial1.read();  // writing data into char
      IncDataSerial += buffer;
      if (buffer == terminator) {
        getLF = true;
      }
    }

    Serial.print(IncDataSerial);  // send string ( char array ) to hardware serial
    Serial.print("\r");   // send a CR because it is missing
    IncDataSerial = "";
  }
  if (Serial.available()>0) // if data is available on hardwareserial port ==> data is comming from PC or notebook
    Serial1.write(Serial.read());  // write it to the GPRS shield
}

In Serial Monitor (or similar app) you will then see it start to talk to you after the initial ~5 second startup delay.

RDY

+CFUN: 1

+CPIN: READY

Call Ready

AT
OK

AT+CSQ
+CSQ:18,0
OK

20 Pieces of Startup Advice I Should Have Posted A Long Time Ago

Disclaimer: I am not a successful tech entrepreneur, so you probably shouldn’t read this.

  1. Build what people need and build it in the quickest and easiest (read hackiest) way possible that is barely acceptable to them. There are a lot of very bad implementations out there making millions right now.
  2. Do not build what you want (or what you think people need/want). As a tech entrepreneur you are an anomaly. Most people don’t care about the things you care about. eg. “I want a way to sync my scrobbles to my own server in case LastFM gets taken down by the FBI.” – Only 5 people care about this.
  3. Build products around use cases, NOT use cases around products.
    If you can’t explain what your product does in 20 seconds then you don’t have a product, you have a big idea. Unless you have unlimited resources and funding you’re going to need to tame your idea. Find a specific implementation of your big idea in action that resonates with the masses and run with that. If building that specific instance of your idea doesn’t sound sexy enough, think about how sexy it is going to be when you go back to your old boss and ask for a job. Once you’re making a profit off your not-so-sexy idea you can start self-funding your big idea.
  4. Big ideas don’t get funding. Google was not a big idea, it was a vastly better search engine in a market flooded with search engines. It was a product. Angels and VCs need to be able to understand your idea and then be able to communicate your idea to other people who will also understand it and immediately see how it will make money.
  5. Don’t let VCs lead you down the garden path and never commit. They’re doing you a disservice. If they truly like your idea and believe in you they can do their due diligence in 2 weeks and have (some) money in your bank account in a month. Too often it seems that VCs who don’t really “get” an idea are too scared to tell the founders to go away, just in case their idea starts to make sense. (No one wants to be the record exec who told the Beatles to go away). But this can give youa false  impression of how good your idea is, because if a VC seems interested, then surely your idea is a good one, right?
  6. Don’t make friends with VCs. Friends don’t want to tell friends that they “don’t really get it“, or more specifically that they “get it, but don’t see how you will be able to sell enough of it“. This kind of feedback can too easily come off as a personal insult for anyone to ever say it… so they’ll lead you on in the hope that one day you’ll say something to convince them because they really want you to do well.
  7. Don’t get too personal or precious about your idea. You are a smart, attractive person with great hair and a wonderful personality, you don’t need your product to validate your worth. Getting too personal about your product leaves you unable to change anything because it’s like gazing into the eyes of your beautiful new born baby and wishing they had been born with with nicer ears. You need to be ready to dump that baby in the dumpster at a moments notice.
  8. It’s all about cash, sales and runways. Building the product is the easy bit. Any nerd with a laptop can build a product. Selling it is HARD. You need to realise up front that your “tech startup” is 90% on-the-street-corner-sales. If you think you’re immune to this you’re a fool. If you aren’t earning 50% of what you need to break even after 50% of your runway you are in trouble.
  9. If your runway is 100 meters long, you need to be selling your product at 25m. The next 75m is refine, sell, refine, sell, repeat.
  10. Make sure know how long your runway is from day 1. Count down in days, have it up on the wall in big print.
  11. If you can’t build a product that people would pay for in 25m, make it simpler. If you don’t think you can sell this new simplified product then charge less for it or try and find some more runway… But figure this all out before you start.
  12. If you think you have a longer runway because you will obviously get more funding, don’t quit your day job. Negotiate all your funding before you quit your job. You might need to develop an MVP to get this funding. Do that at night or on weekends.
  13. Selling isn’t sexy but don’t avoid it. Rather get your hands dirty from day one so that you get used to the smell. (You’ll also get better at not stinking up the room every time you try)
  14. You need to realise that there is a difference between what people are impressed by and what they will pay for. If you’re removing some significant pain or frustration from their life, they might not be impressed but they will pay for it. People pay for lots of very unsexy things all the time.
  15. Design and field-test products until something resonates. Mock something up in photoshop and then go and see if you can sell it. You need to get to the point where someone is willing to give you cash out of their wallet in order to go home and use your thing.
  16. Sell to people you don’t know and who don’t know you. If you’re going to be successful then 99.9999% of your market is going to be people who have never met you, so why would test your sales on people who know you? Firstly they’re biased (they want to help you and may even give you their hard earned money out of guilt/pity/just-to-be-nice) and secondly, you have insider knowledge– you know who to sell to and which of your friends to not even bother with. That’s not reality.
  17. If there is more than one of you in the startup, don’t assume roles like “sales guy” and “coder”. Send the coder out to sell (especially when you’re still faking it)… He/She might just surprise you, and, at the very least they’ll learn more about how the product fits in the real world.
  18. Get a simple office (or even a room in the back of someone else’s office). Be there every day from 9 until 5 (or 10 till 6, or 11 till 7 etc) from day 1. Stick things on the walls, decorate your corner… get a crappy coffee machine. There is something about a humble office that will bring out the best in you. Working from someone’s home, even if you all work together just doesn’t have the same effect.
  19. Don’t believe everything you read on the internet.
  20. Read The Personal MBA before you start. Even if you have an MBA.