I’m not sure where we got the idea, and the solution we proposed was gimmicky, even at the time, but the exercise was more about design process – my team did fine. Imagine my surprise, when I was browsing for something else recently on AliExpress (and on Amazon), that some company builds and sells a device similar to our proposed design.
As automakers have added lane following systems and basic autopilots to their cars over the last ten years, they’ve also invested in systems that ensure drivers remain alert to supervise these systems and are ready to take over. Tesla’s systems have sensors to ensure hands remain on the steering wheel, Cadillac’s Supercruise has a camera that ensures the driver’s eyes are focused on the road ahead. What seemed like a silly idea is now a little industry…
My re-used weather station project board is a homemade Arduino board, with an APC220 transceiver radio. I added two rotary potentiometers for rudder and sail control. I removed the Raspberry Pi in the boat, and connected another APC220 transceiver to the Arduino Uno that controlled the sail and rudder servos.
Controlling the sail and the rudder is fine, but with the boat just floating on the pop bottles, the rudder has very little effect. Our boat design itself needs improvement – I think this is currently the greatest issue.
My transmitter and receiver code could use some optimization – as I was troubleshooting at home, my code limited updates, and was only sampling every second – controls seemed “laggy”.
I’m using very inexpensive TowerPro MG995 servos, which many advise against using. They were fine for playing around with interfacing, but they are slow, they seem to have a hard time holding their position, as well as not consistently reaching their programmed position.
I did write my phone number on the boat in case the boat got stuck in the middle, and someone else eventually found it. In the end, it wasn’t required. We just played with the controls as the wind carried it to the other side – probably about 100 m.
Maybe some time over the next 6 years, I’ll optimize the RC code, install better servos, and improve the boat design by adding a keel.
Enter 35 degree weather. I have a window air conditioner, that I install in a metal sleeve built into our wall. For some reason, the sleeve is sloped such that water flows INSIDE. When the A/C runs on humid days, the water it collects from dehumidifying can leak inside, creating an unpredictable annoying mess that has to be cleaned up.
I could pickup a commercial leak sensor, but that’s not fun, the mobile app is probably not very good, it probably sends more information than needed to its cloud service, will never receive updates, and it seems like we’re always reading about IoT device vulnerabilities.
So, I bought a water sensor ($2.20!) in June, connected it to the dev board, and started to write a client in the Arduino environment for the ESP8266, and the server in Node.js. Then summer happened. Today, it’s August, its only 24 degrees outside, the A/C is off, and I’m done! The client reads the sensor every 10 seconds, and calls the server with a standard web service call, which will check the sensor reading, and send an alert by email if a water leak is detected.
The code is simple, but I had challenges getting the ESP8266 to HTTP POST a JSON payload. It seemed every example I found used different libraries or versions than the ones I had installed. I eventually got it working.
This website is running WordPress on an Amazon EC2 instance.
If I were looking to keep a blog, this is not how I would do things, I’d just use a service. The micro EC2 instance is slow, I have ensure Linux is patched, WordPress is patched, etc… But playing around with the server is as much fun as writing the blog.
Here are a few changes to the site recently:
I run the EFF Privacy Badger on my browser at home, and I couldn’t believe how many trackers were running on my self hosted site, because I don’t track, and I don’t have ads. I dropped the Youtube videos, that got rid of many (I just link to Youtube now instead of embedding). I can’t remember what else I did, but now I’m just down to Google Fonts, used by the template.
The site now defaults to HTTPS. With default settings, Qualys rates the default Ubuntu 18.04 LTS Apache HTTPS setup on this site as an A. Its funny how many important companies struggle to get this right on their sites, given how easy this is.
Recently update the site to Ubuntu 18.04 LTS – the latest version of WordPress didn’t like the version of PHP on the previous LTS version I had been running (not sure what that was). This is the third VM on which this site has been hosted.
I hadn’t been resizing photos and the site got REALLY slow. I’ve resized the largest ones – it’s not painfully slow anymore. I may eventually move the image hosting to S3, but keep the server/DB on EC2 – I expect the site would run faster without increasing costs.
Update October 5th, 2019:
Google Lighthouse ranks the site load speed at 100
Finally got the fonts loading locally with the OMGF WordPress plugin. The site no longer has any external trackers!
My Epson XP-830 started dropping black ink globs on my prints, which would smudge and wreck photos. As I had recently installed $150 worth of ink, I didn’t want to just go out and get a new printer. I also liked the compact format of this printer, and wouldn’t just buy the same one, as this was starting to look like a doorstop after its 2nd set of cartridges. I wasn’t concerned about breaking the printer at this point, because I was ready to throw it out.
I managed to resolve the issue – I’ve decided to write about what I did, and perhaps some will find this article and I’ll save a few printers from an early trip to the landfill. I expect this will work for any Epson XP printer.
First, I ordered a print head cleaning kit from Amazon (kit, Amazon link). In hindsight, I don’t actually think this was an issue with my print heads, but I did a number of things all at once, so I don’t know exactly which step resolved my issue. I recommend watching their video before ordering the kit.
The first step was getting the print head out of its right-side dock. Go to the menu, click maintenance, and then click Ink Cartridge Replacement.
At this point, the print head will have moved to its change cartridge position. Disconnect the power.
At this point, I took out the cartridges, and I wrapped them in plastic wrap, following the guidance of the Print Head Hospital.
I did clean the heads, as instructed in the Print Head Hospital video, but I think what really made the difference for the black ink globs was the following: using cheap papertowels and cardstock, I cleaned up all the ink in the areas highlighted by arrows in the above image. I cleaned under the print head by cutting a ~1″ piece of cardstock, wrapping it with a paper towel, and running it underneath the assembly as shown at the 3:40 mark in the Print Head Hospital video, and repeated until the paper towel would come out clean.
I plugged the printer back in, re-installed the cartridges, ran the regular print head cleaning cycle 3 times (until the test page came out fine), and am now getting perfect prints.
I’m on a roll this week – a record number of posts (3 in 7 days…).
The bar code on my library card has been worn out for a while. My last few trips, its probably taken about a minute for me to play around with the positioning of the card on the library’s scanner to get it to read correctly.
The Hispanic Fiesta Latin-American festival descends on Mel Lastman square in North York every labour day weekend. The festival has lots of live music, a beer tent, and food vendors. And every year, I buy a coconut ice pops (“Paletas”/popsicles) from Polar Real Tropical Fruit. They’re awesome, and I never see them sold anywhere else. Perhaps its the ambience of the festival, but I prefer them to other coconut ice pops I’ve tried.
So, I decided to try to make my own. I took a picture of the ingredients and the nutritional information.
Then, looking at the protein, carbohydrate, and fat content of each key ingredients against the nutritional facts of the ice pop, I estimated the proportions of a 150 g serving as follows:
15 g of shredded, sweetened coconut
70 g of 2% milk
2 g of tapioca starch
13 g of sugar
50 g of water
Here’s how mine turned out:
It looks very much like the ones from Polar Real Tropical, but the texture was a little more ice-crystal-y, and it was less sweet. For my next batch, I’ll cook the mixture before freezing it. This should help the sugar dissolve evenly, and allow the tapioca starch to thicken the mixture a bit and improve texture.
After seeing the simple Automatic Fish Feeder on Thingiverse, I immediately ordered the required parts and set about modifying the design for my purposes.
I liked this particular design, as we only have a 2 bettas in 2 bowls, and we need to ensure only a couple of very tiny pellets drop with each feeding. I did want to make a few changes. It was not clear how the motor was controlled in the original design – I wanted to use an optical slot sensor to detect when to start and stop the rotating disc.
With OpenSCAD and Inkscape, I modified the original design. I added slots to the rotating disc, which could be detected by the slot sensor, and modified the support to suit my fish bowl.
Parts and Assembly Notes
9V DC power supply
Optical Slot Sensor (I used an Omron EESX1002-W3A – I just picked one at random from my local electronics store)
It took some code tweaking to get the disc to stop at every hole. I couldn’t control the speed of the motor with pulse width modulation – perhaps because it’s geared, or there was too much friction, it just didn’t move unless I gave it the top speed. I settled moving the disc in small increments, checking the measurement from the slot sensor, repeating until it sensed it was in the right position.
Once built, send a ‘1’ over the serial port to the Arduino, and it will advance the rotating disc to the hole.