Tracking Time

Early in the pandemic my employer had us working from home. For the most part this was not an issue. But not having a dedicated office, I found it too easy to lose track of time, and spend too much (in my opinion) time working. With my computer set up in our lounge, it was too easy to check an email, or quickly test something else. It was right there.

There was also no separation that came from cycling/taking the train to or from work. Wake up in the morning, sit down at the desk with breakfast/coffee, start working. Without planned events in the evening, continuing to work was easy.

I have not worked enough (4+ hours). First LED is a status.

In an effort to limit this I once again repurposed my Particle Internet Button to do some time tracking. I’d used Toggl in the past to do some time tracking, but liked the idea of having a visual display available to me, without having to pull out my phone, or install additional applications on my work laptop.

My basic idea was to use the Particle Internet Button as a switch and display mechanism for interfacing with the Toggl API. The main issue I encountered with this approach was that Toggl was enforcing https for their API calls (and rightly so), but there were complications around the available Particle https libraries at the time.

I have worked too much (9+ hours)

Not wanting to spend the time on figuring that out, I somehow convinced myself that I should just spin up my own “Toggl-like” service. Obviously just for me, and not requiring https :) Hopefully my employer doesn’t hack my Wi-Fi to intercept my network comms and make me think I’m working less than I actually am.

And so that’s what I did. I setup a database, and threw together some php scripts to interpret different requests as start and stop commands, also taking a date-time string as a parameter. I expanded it a bit, allowing for different work-id’s, if I want to track different topics, and protected it all behind a nice long ‘key’ to limit the risk of someone messing with my data.

I have worked an appropriate length of times (8+ hours)

The Internet Button itself is round, and has a bunch of RGB LEDs on it. Eleven LEDs lets me use one for a notification, one as a spacer, and the other nine as hours worked increments. The Internet Button does have buttons that can be used as inputs, but instead I chose to use the accelerometer to give me a more intuitive input, without the need for labels.

My beautiful web interface

I 3D printed an octagon-shaped holder for it, which allows me to rotate the internet button to five fixed locations, which are easily distinguished from each other by the accelerometer. If you’re in the central position, the timer stops. If you shift to one of the other four positions, you start the timer associated with that position. In practice I’m only using one, so the other’s are mostly untested for now.

If I don’t have the hardware with me at any time, there’s also a basic web-interface, that allows me to view the entire week’s hours worked, and each stop and start event. I can also add events if I forgot to start or stop at some time.

Page title includes hours worked, and auto-refreshes every 5 minutes

Here you can find a link to a GitHub repo with some associated code: link

Below you can see a video of it working, and interspersed in this article are a couple photos of different stages.

Capturing Serial Data from Nidec Shimpo Force Gauge

We wanted to automate some testing. We had a Nidec Shimpo FG-3008 force gauge that we wanted to capture data from, but no obvious way to get it. Nidec Shimpo do offer their EDMS software that can log and graph data over time, but it can’t be automated.

The force gauge has two connectors, a USB-B port that is used for charging the force gauge and another port that has a serial out (only for connection to a printer) and some output pins that react relative to a set pin.

When connected via USB, the force gauge shows up as a COM port. The EDMS software obviously connects using this port. Connecting a terminal to the port doesn’t show any data streaming, implying a query needs to be sent to the force gauge to trigger a reading.

We eventually figured out that when you send a ‘?’ (0x3f) to the force gauge, it replies with the current force reading in plain text, of length dependent on the number of characters in the measured value, the last character always being a carriage return (0x0d).

Testing with Realterm

With this information, data capture can be easily automated with Python.

import serial

ser = ser_obj = serial.Serial("COM4",


2008 Hyundai Tucson 2.0 GLS

I’ve been spoilt in the last few years with the vehicles I’ve been able to drive on a daily basis. And I fear it has spoiled me (1, 2, 3, 4). When we moved to the US, I didn’t have work lined up and had to wait several months for a work permit. During that time we were living off a grad-student salary and savings. Very quickly we realised the need (or extremely strong desire) for a vehicle to get aroudn and out of LA. Although living in close proximity to public transport, it lacked in many areas. So we were shopping on a budget. Definitely pre-owned, but we wanted something we could at least take into the wilderness. 4WD wasn’t off the cards, but not a necessity.

As such our vehicle search landed us with a lowish mileage (72,000 miles) 2008 Hyundai Tucson. It was well-priced, likely as a result of its manual transmission and “small” 2.0 petrol engine. Besides a couple scratches on the bumpers, it was devoid of major dents or indication of having been in an accident. And so it became ours. It had two open recalls, which the Hyundai dealership quickly sorted for us free of charge and has otherwise been problem free.

Since getting it we’ve replaced the tires and brake pads, as well as the front rotors. An oil change and other minor maintenance have been all its required. Almost 10,000 miles in, and it’s still going strong. It doesn’t use oil, has been surprisingly capable off-road, and the platinum paint job hides the dirt well.

But as I mentioned I’ve been spoilt, and this car is underwhelming to drive. My 1996 Audi competes with this Hyundai on features. But it’s a car. It gets us from A to B, and doesn’t complain. The 2.0l engine is surprisingly sprightly, but lacks torque when climbing long hills at highway speeds; of which the Americans are fond. Was it a bad decision? definitely not. As we’ve gotten to know California better, my only regret is not having looked for a 4WD version. The ground clearance has let us do a good amount of exploring, and while the boot (trunk) isn’t large, it’s ample for two people, and camping for four has been achieved. Even in a bit of snow.

If you’re looking for an amazing car. This isn’t it. It has power steering, it has electric windows, and it has a radio (with front loader). It has AC, that battles on the hottest of LA days, but is otherwise capable. It has airbags and we’ve added a towbar. It is a car; it is ours; and we like it.

There isn’t really anythign else to say about it. It has done all that we’ve asked of it, but bar the fact that it is our Tucson, it is nothing special.

Would I suggest you buy one? Sure. If it meets your needs, and you can get one for a good price. Hyundais of this generation have a good reputation for reliability. And I expect this car to convey us many more 10s of thousands of kilometres before we eventually give it up.

Although we could afford a new car, why? We either cycle or take public transport to work. The car sits at home during the week, besides the odd grocery run. Otherwise it sits in waiting; waiting for our next adventure. It is a car, and it is ours.

Lego! For adults?

When I was younger, I was fortunate enough to get to play with a fair amount of Lego. An older brother meant I started out with a decent sized selection and was able to grow that as I too grew up. I would occasionally get new sets, but mostly made do building all kinds of things with the variety of Lego I had. I was usually encouraged to put money I received for birthday’s and things into my savings account, but remember winning some money in an art competition (go figure), and my Mom allowing me to buy a new Lego set. A special treat. I’m quite sure I used the whole amount R300ish to purchase the Res-Q Hovercraft 6473 set.lego6473That’s probably the last set I can recall receiving. It would have been 1998 some time. And while I enjoyed building the set; once it was completed and played with, it got torn apart for scraps, to be used in other developments. I can’t recall any set I received since then. My parents stocked me up on miscellaneous blocks for the various fortifications I built, and I continued to build occasional Lego items through high school. But little thereafter.

20 years later, I have money I can spend. The money was a gift, so with minimal effort I can convince my wife that it’s okay for me use it to buy Lego. But what to buy? The selection is truly huge, with wonderful NASA creations, various vehicles, the whole Technic selection. How does one decide? Eventually I settled on set 42043, a Lego Technic set of a Mercedes-Benz Arocs 3245. Partly as an homage to my previous employer, partly because it was close to 3000 pieces and reasonably priced, and partly because I have a fascination with trucks and large vehicles in general.

lego42043Little could I contain my excitement when Amazon delivered my first new Lego set, me in my late 20s. I knew this was a fairly large build, but was still amazed by the weight of the box, coming in at over 4kg. The build took a fair amount of time, but I was able to complete it in a few days in my free time. It was a hard battle between wanting it to be finished and wanting the build to take as long as possible.

Instructions are mostly clear, and I only made a few minor mistakes along the way. The instruction book has over 460 pages. But it was fun. It’s not especially difficult, you just follow instructions, but it was a nice way to shut off after a long day at work. Building is a methodical balance between reading the instructions, searching for the part on my limited work surface, and then fighting some of the parts to fit.

Looking at the Lego 42043 set itself, I was quite impressed with some of the technical implementations. I had previously built a much smaller technic set, whose most advanced feature was a piston block and a rack and pinion gear train for steering. This truck has independent suspension, two differentials and two-axis steering. Additionally there’s a battery powered DC motor that supplies power to a number of devices. Under the drawbed is an array of gears and gear selectors, similar to those in function on a manual gearbox.

These allow you to separately actuate:

  • the lifting and dropping of the drawbed
  • the extensions and retraction of the stability arms
  • rotate the boom arm
  • power the pump for the pneumatics.

The pneumatic pump then (although obnoxiously loud) supplies pressure to four pneumatic actuators on the boom arm that allow you to:

  • lower and raise the boom arm (two separate sections)
  • extend and retract a section of the boom
  • open and close the scoop.

Along with this are a number of other smaller features. What impressed me the most was the attention to detail and how all these features come together.

My least favourite part of the whole build, was putting the tires on the wheels. There are 12 wheels, and 12 tires, and you have to push the tires over and get the seals to line up. Not hard, just not as fun as the rest of the build.

My only disappointment of the set, is the pneumatic system. It’s really cool, and was fun to play with. It’s impressive what they’ve achieved, but the boom arm is heavy, and the pneumatic pump is small, so trying to lift the system is slow. In reverse, when gravity is helping, the system will drop instantaneously (yeah compressible fluids). I know why this is, and once you get the hang of it, you can kind of control how fast the boom lowers by limiting how much you adjust the lever.

Having built this set, I’m sure I’ll get another set at some stage, I think I value part count the most, as I want a longer build time, so I’m interested to see what my next set will be. It’s fun, and relaxing to build. I haven’t yet found a place to display my truck, but online there are instructions provided for alternative builds for the same parts. So I see myself tearing this apart and building something new. Also, they provide extra pieces in the set, like spares. Which is concerning when you’re used to building something and left over pieces implying you did something wrong.

Through all this, I’ve not yet answered my title question. And yet I think the answer is obvious. Yes. Lego, for adults. Much like a jigsaw puzzle, I think people of all ages can derive joy from the process of building, and with the huge selection that is on offer, the result can be a model of something you have an interest in. In some ways it reminds me of the ‘adult’ colouring in books that were notably popular a few years ago, albeit more expensive. I think the building can be as therapeutic as colouring in, not requiring much thought, but with a visible result at the end of the day.