Tuesday, September 24, 2019

Marketing Is The Only Thing That Matters

After arriving to Measurand for my afternoon shift one day last week I was somewhat surprised to find out that I needed to go get interviewed by a software consultant that had been hired by the company to review our software processes. His name was Alan I think, and he turned out to be a pretty friendly guy. We briefly introduced ourselves, and immediately found out that we were both working toward similar goals; both doing consulting work and working at regular jobs to help make ends meet while trying to become successful entrepreneurs. He has progressed further than I have, as I believe he mentioned something about actual customers. His business involved setting up smart lighting systems for large buildings, in order to use less energy and save their customers money. It sounded like a great idea. Then, after I briefly described what I was doing with AMOS, he gave me these sage words of advice:

"Nothing else matters except marketing. None of the other shit is important; it doesn't even matter if everything is working right, you can fix it later. Seriously, marketing is the most important thing. If you don't do it right, you've got nothing."

I smiled, nodded, and said something like "Hmm.... OK." and that was that. The significance and truth of his advice didn't really sink in until later, after the interview was over and I went back to working at my desk. I'm kind of like a "fish out of water" when it comes to marketing.

(Unfortunate minnow found dead on the deck of AMOS a couple of days ago.)

so finding customers might be a bit of a challenge. Fortunately though, In Nature Robotics was recently accepted into the Venn Garage program (http://www.venninnovation.com/en/venn-garage), a mentorship program offered to small startup businesses in New Brunswick, to help them validate their idea, acquire early adopter customers and initial funding, and prepare their startup team for successful entry into leading accelerators. Hopefully over the next year, I'll pick up some good marketing tips and knowledge from people who have done it successfully in the past. I also applied to the Creative Destruction Lab accelerator program (https://www.creativedestructionlab.com/program/) to their Oceans stream, based in Halifax (https://www.creativedestructionlab.com/streams/oceans/). Last week I had a video interview with a few people from there, and will find out by October 2 whether or not I got in.

AMOS spent another 4 days on its own at Woolastook this past week, and collected some good temperature and  pH data (https://www.innaturerobotics.com/sample-data-1). Although it has been a while since I did a very crude calibration of the probe with some kitchen vinegar and tap water, it does seem as though the water around Woolastook is a bit acidic. Apparently that's not uncommon in this particular part of North America. On Thursday, AMOS set a new single day distance record of 12.25 km.

The weather is currently quite cloudy and rainy, so I have AMOS back home where I'll see if I can fix some intermittent low voltage issues on the +5 V supply, and maybe hook the GPS antenna back up. There seemed to be a few spots around Woolastook where finding a GPS signal was a bit of a challenge.

Tuesday, September 17, 2019

A Week of Finger Burning (a.k.a. Soldering)

Turns out AMOS had sustained a bit more damage than I had originally thought last week. The pH and turbidity electronics signal boards had also been fried, so they had to be replaced too. Luckily they weren't super-expensive. Re-doing all of the wiring for the new Raspberry Pi 3B+ and the replacement RF220SU wireless unit took an inordinate amount of time though. The heating element in my soldering iron was slowly dying and the pins on the wireless transceiver were spaced only 2 mm apart, so needless to say there were some moments of extreme frustration trying to get all of the little solder blobs onto the right pins and wires. I really like the wireless module, but I wish there were a better package for it, i.e. something with a 20-pin header for easily plugging, unplugging wires would make things so much easier. Could be a new product there...

I just finished wiring up and testing everything today, so I think this new build of AMOS is ready to go. Although it's still a bit of a mess inside, the CPU box has considerably more room with the smaller Pi board, no more USB hub, and a few stray wires cleaned up:

I'm anxious to get AMOS back in the water for more testing. The forecast is calling for 5 straight days of sunshine, so hopefully it will be able to get lots of km over the next week.

Here's a picture taken from a couple of weeks ago on one of the first rescue missions. AMOS is looking kind of lonely under the shade of some trees on the south side of the river:

Tuesday, September 10, 2019

Zapped Circuit Boards

After AMOS had been on its own for 5 days, I drove out to pick it up so that it would be safe from Hurricane Dorian and so that I could modify the power cable for the cellular hotspot to be software controlled (i.e. shut off whenever AMOS goes into sleep mode).

Although it had a low battery and was too weak to extract itself from some branches near the shore, it appeared to be working normally when I picked it up. So I unplugged the power cables inside the battery box, loaded it into the van, and drove home. After I got home however, it would no longer boot up properly, even after the battery was sufficiently charged. A few hours of hardware troubleshooting revealed that the short-range wireless module was somehow short-circuited, and drawing too much power. Also, the 3.3 V regulator on the Raspberry Pi mainboard was only putting out about 2.6 V. Replacing the regulator with a different one didn't seem to help either, i.e. the Pi board would still not boot up. 

Later that same day, I drove the van to Kirsten's cross country practice to pick her up. While waiting in the parking lot for 10 minutes, the van's battery mysteriously died, and could no longer be started when the practice ended. Turned out the alternator was shot and needed to be replaced, so overall not a great day for electronics. Maybe I was emanating some weird electromagnetic radiation or something that day. Actually I think what probably happened with AMOS was that when I unplugged the power cable in the battery box and transported it in the van, it probably shorted out on the +12 V battery terminal, destroying both the Pi board and the wireless transceiver.

Turns out it's not all bad though. I had been contemplating switching the Raspberry Pi Compute module for the smaller, less expensive Raspberry Pi 3B+. The 3B+ actually has a slightly faster processor than the compute module, built in WiFi and Bluetooth, and 4 USB ports all included, whereas the Compute module only has one USB port, and requires a separate hub to add WiFi and Bluetooth functionality. Originally I had gotten the Compute module because it had two camera ports, and might make 3D ranging possible using stereovision. Turns out it's way easier to do that with LiDAR though, so no real need for two visual cameras. The 3B+ has fewer I/O ports too, but it still has way more than AMOS needs right now; about 13 extra digital I/O pins are still available for any new functionality. 

Here is a comparison shot showing the reduction in size between the Compute module and the 3B+:

The next few days are going to be spent setting up the 3B+ and the replacement wireless module. The software changes are pretty minimal, just pin re-numbering mostly. Most of the time will be spent setting up the software, as I don't have a workable image ready for this board yet, plus a bit of time for soldering together the replacement wireless module.

Tuesday, September 3, 2019

The Quest For Sun

AMOS has been mostly on its own for the past week in Kelly's Creek, near Woolastook Park. Hannah and I deployed it on Saturday morning, and tested out the LiDAR "avoidance mode". Once it did seem to work, but another time it did not, as AMOS plowed directly into the side of the canoe. I believe I was able to correct a software bug related to that this morning, but have not had a chance to test it out yet. That day was also very windy, and AMOS overshot a couple of its sampling waypoints and had to return against a strong west wind with gusts > 20 km/hr. Here is a map showing the track (in blue) that it followed before it eventually ran low on power and drifted under some trees on the south shore:

Even though the next day was sunny, it was not able to charge at all under the trees on the south bank of the river, so I took the kayak out and towed it to the north shore, letting it sit there for about an hour and a half to properly charge in the bright noon-day sun. Then I set it to continue on its way, where it traveled to the far end of the waterway, before shutting off its propeller at the planned time of 3 pm. After I got home, I opened a terminal connection to it, to discover that it had once again drifted to the south shore. So I found a place on Google maps on the north shore well away from houses, and created a short script to send it to that spot, 500 m across the water. The day after that was quite rainy and overcast, and AMOS never really charged very much, so again through the terminal connection and various file scripts, I set AMOS to mostly drift around, just using the propellers to stay away from the shoreline. It eventually covered 2.5 km, but that was over about 3 hours. Eventually it came to rest against someone's dock for the night:

I tried to steer it away from the dock, but the battery was too low to drive the servo controlling the propeller direction, so it just kept ramming itself into the dock instead. Nothing to do but leave it for the night, and hope that no one minded I guess. During the night, the wind must have taken AMOS a few hundred meters northeast to a less populated area. The battery must have gotten pretty low during the night I think, so I just let it charge up today, which was only partly sunny:

9:00 am --> 11.454 V
10:08 am --> 11.666 V
11:19 am --> 11.810 V
11:59 am --> 12.022 V
5:30 pm  --> 12.25 V

I was a bit surprised that it didn't charge up to more than 12.25 V by 5:30, as the afternoon was much sunnier than the morning, and from what I could tell from the boat's camera, it was in a spot on the north shore without noticeable shade. Here is the view from the camera when the boat was facing west:

 Normally in bright sunshine all afternoon, I would have expected to see the battery voltage climb up to over 13 V.

I added some software to AMOS to define optional "safe" locations in the text script files. These are locations where AMOS will head to when its battery starts to get low. I tested it out this evening and it seemed to work, choosing the closest safe location, although AMOS was pretty close to that point already, so it wasn't a very hard test.

Tomorrow looks like it's going to be rainy again, so if there's time, I think I'll make a trip out to retrieve AMOS and modify it to switch off power to the cellular hotspot during sleep mode. Right now it's just on all the time, which could be wasting a few watts of power at times when I can't even communicate with the boat anyway.