Author Archives: Jason

Use Your Phone as a Webcam for Zoom on Computer

It is July 2020, the year of the COVID-19 pandemic. Jokes in the IT sector is that the novel coronavirus is the leading agent for digital transformation and not the CxOs. The pandemic has spurred the world to change the way many things operate, especially desk bound job roles. Now, it is also transforming how I work from home.

Many of us who can simply work at a desk, with a computer that has internet access can essentially work from home. This is all thanks to the development of high speed Internet access for homes, and the maturity of many other technologies lie VPN, VDI, Remote Device Management softwares, Windows, MacOS and many more. One of the very highly utilised tools is the remote collaboration & conferencing solutions. This led to the rise of Zoom, and the likes.

Zoom was adopted by Nutanix before the pandemic, and became the de facto by the time we went into a global WFH mode. Although we still have access to other tools like Webex, but that’s another discussion altogether.

Physical Set Up of the iPhone 5S on a holder with a Gorilla Tripod

Let’s get back on topic, using your phone as a webcam. No, this is not simply to join a Zoom call on your smart phone and use the camera there, but to tether your smart phone to your laptop, and use the camera on the phone. Either as a replacement to the built in cam on the laptop, or as an additional camera.

Prior to this mass movement to work from home, turning on webcams in a web conference call was a rare practice. Once a while, someone will switch it on, and half that time it could be by accident. Now that we hardly see each other face to face in the office, it’s become common practice to enable the camera by default.

Web Conference Etiquette

All these while, I’ve been using the built in camera in my MacBook Pro, and I’m starting to see areas of improvement. It’s primary about the camera angle. I have extended my home office set up to have multi cameras, and more often than not, I am not looking at my laptop’s screen. From the perspective of the other parties I’m on a call with, I appear to be looking else where. I became even more aware about this as I come across posts about web conferencing etiquettes.

As I prefer to look at my larger screens, the solution to improving the experience is to leverage an external webcam. There are may choices in the market nowadays, and a popular cam like the Logitech Brio can go way beyond S$300. Till the day I need to do live streams at 4K resolutions, I’m fine to try something cheaper.

The hunt for budget 1080P web cams

Searching through the usual online portals like Amazon, Lazada, Shopee and Taobao, and picking up reviews over YouTube, I came across 1080p cams with large variance of prices. Logitech ones still command over S$160 a unit, and unknown brands can be like S$25. S$25 would have seem too cheap for a product give a good experience, and let alone any Mac OS support. Not taking risk there. The middle ground would be those that have been covered by YouTube reviews and they generally show samples of the image quality. I eventually narrowed the selection down to the Jelly Comb 1080P Webcam, or the Nanshiba 1080P Webcam. Granted, both are not by well known webcam manufacturers, but at least from YouTube reviews, they are good enough, and within the comfort of my budget.

S$10 EpocCam gives another life to my aged iPhone 5S

Just as I was about to place an order, I discovered on more way. Using my existing smartphones as the webcam. There are a couple of solutions out there, and one worked sufficiently well with my iPhone 5S and Mac OS X. That is the EpocCam by Kinoni. There are free (Ad driver) versions of the app to try. If you like it, you can then buy the Pro version from the app store. It is S$10.98 on the Singapore Apple app store. I really appreciate that these are no in-app purchases, and they fully support sharing the paid app via Family Sharing. The Google Play store also has a similar versions of free and paid apps. The Pro not only removes the in app Ads but also unlocks more functionality, like allowing higher resolutions than 640×480, and the use of the phone’s mic.

Setting up EpocCam with Zoom

To get it going is pretty straight forward, and with a caveat. Install the app on the smart phone, and the driver on the computer. When the app on the phone launches, it will automatically detect the computer and start streaming the camera feed to the computer. To use the feed in Zoom, we simply need to set the camera in zoom to EpocCam.

Phone to Computer connects over WIFI or USB (for iOS only)

Here’s the first gotcha on Mac OS X, the security in the OS blocks the use of virtual cams. (I suspect maybe because they are unsigned). The Kinoni website has the workaround documented in their FAQ, under the Troubleshooting section. It’s a simple 2-3 steps process. I’ll repeat it here, in case that changes in the future.

  1. Install Xcode command line tools via Terminal.app by typing: xcode-select –install
  2. Remove application’s code signature with Terminal.app, for Zoom type: sudo codesign –remove-signature /Applications/zoom.us.app/
  3. Quit and relaunch the app with signature removed, it will now detect EpocCam
Camera Selection in Zoom with the Virtual Cams
EpocCam Microphone works well

After restarting Zoom, you should start to see EpocCam as an available Camera source. I’ll touch on the other OBS Virtual Camera in a bit.

The other feature I like with the EpocCam Pro is that it also allows the phone to be used as a microphone. This is extremely handy on my 2014 Mac Mini that doesn’t have a MIC port. I must admit that it works quite well too.

EpocCam is great but not perfect

I’ll say first that I really like what the S$10 solution is giving me. Like everything else, there are room for improvements. I hope Kinoni can address this eventually.

  • The app does not rotate at all, and only works in landscape mode. It will also not flip around if the phone rotates 180°. If you like landscape or need to flip the phone (like I do), you will need another intermediate software, OBS, and the add on OBS Virtual Cam. That is why there is the additional camera in my camera list above. The diagram below shows the components I have installed to get the final result. With OBS there are also other cool things that can be done, it’s a post for another day.
The cam feed path from Phone to Zoom
  • This is probably not something EpocCam can improve on, but be aware. The phone can run pretty hot if using the main camera. As comparison, when I run a banking app, the phone gets really hot too. With the front facing camera, no heating issue. I ran it for 3 hours plus while writing this blog and the temperature remained comfortable. My guess is that it’s probably due to the aged processor of the iPhone 5S being driven hard by iOS 12.

My set up

Here is a combination on how I set up the software, just simple points to guide you along. I’m also very new to OB, if you have suggestions to improve on it, please do share.

Software Configurations and Operations

Installation of the apps are pretty straightforward, I assume you should be able to do that on your own.

  1. EpocCam on iPhone – set the resolution to 1280×720 & switch to front camera
  2. EpocCam Driver – nothing else needed, at most a reboot
  3. OBS – Don’t need to configure any streaming options;
    • Settings – set the Video base canvas and output resolutions to 1280×720
    • Sources – Add a Video Capture Device, choose EpocCam, with 1280×720 preset, no need for buffering. Name the source meaningfully, especially if you use more than one. Move the source to fit where you want on the canvas. Simplest is just to line them up, as they are the same size.
    • If the video image is not at the right way up, select your source and use Transform to rotate/flip as necessary.
  4. Zoom – follow the steps on Kinoni FAQ to allow the use to Virtual Cams on macOS

Once all these are up, you are ready to use the set up. Remember, what will be seen by the Zoom participants are what you assemble together in OBS Studio. So to get it all from Phone cam to Zoom, we need to complete these steps, in no particular order.

OBS Virtual Cam filler
  • Start EpocCam HD on the phone
  • Start OBS Studio and make sure you can see the camera feed
  • Within OBS Studio select Tools > Start Virtual Camera
    • If we miss this step, you’ll see a nice filler instead
  • Start Zoom meeting, choose OBS Virtual Camera as camera source

That’s all to it for a quick start. Have fun and enjoy experimenting around.

Wrapping Up

I’m going to try a double cam feed on my upcoming Zoom calls. It will be interesting to find the right angle and OBS layout.

Other features I will look at exploring are having various scenes, and to switch between them. One use case I have is when having long calls, like workshops that I run, I can switch the scene to show “break time”, instead of just an empty seat.

OBS is a very popular software used by many streamers and there are so much more things we can potentially do with it. One potential integration I can imagine now is with the Elgato Stream Deck. That’s another rabbit hole for another day.

Ring Fit Adventure – Perfect for Working Out at Home

The Nintento Switch has been a real game changer (pun intended) in the console world. For the first time, a console grade device can also turn portable with complete ease. I’ve been a Nintendo fan since the first Famicom days, and have had the luck to have had the opportunity to play on every other console Nintento released since.

Since the Wii, Nintendo started to release fitness titles. The Wii Fit was quite fun to play, despite the cumbersome but necessary balance board. Game fitness has taken another step up with the brilliant versatility of the Nintendo Switch. Ring Fit Adventure is like no other fitness games I’ve ever played.

My unit delivered by Amazon.sg

The game was released in Oct 2019. Initially I did not pay much attention to it. It was during the Chinese COVID-19 lockdown in Feb/Mar 2020 that a report caught my attention. Apparently there was someone who spent a lot of time playing it during the lockdown and lost a good amount of weight. Gaming and weight loss is a good combo for me!

I started looking around to order the game, and the prices have shot through the roof. I read that the demand from China was tremendous and that drove up the price globally. It was also out of stock in many places.

Luckily, in early April, just when Singapore started with our version of the lockdown Circuit Breaker, Amazon.sg had a surprise listing of the RingFit Adventure, and at a reasonable MSRP price of S$129. (Thank you Amazon for being fair!!) It was something I had to order immediately, few hours later, it was all sold out!! As a comparison, other local retailers had the price at over S$300, with the highest at S$500.

Amazon.sg was really efficient, and I received the game the next day. In the package, expect to see the game itself, a really well made Ring-Con, and a leg strap. The Ring-Con is where you would attached the right controller, and the leg strap will hold the left controller and strapped to your left thigh. I’ve been playing for over 60 days now and these still look new.

The game play is a very well thought out. The story mode is pretty much like a turn based RPG. There’s the boss, Dragaux which you’ll have to battle multiple times at the end stage of some worlds. Each world has a unique map and consists of common stages, there are the PvE stages where you’ll be running and battling mobs, some environment will have special water and air terrains. The real workout is the run, and also the battle scenes. The battle is where it resembles turn based RPG, where you and the mobs will take turn to attack. To attack, you get to choose from a self defined list of skills. It would be a specific type of workout that you have to perform, ranging from upper body, lower body, abs, and balance. To progress well through the game, you’ll want to use a range of different skills. This is a really nice touch to get the play a rather balanced workout. The past two years I’ve been visiting the gym in my condo, but I was too focused on the treadmill and elliptical machines. This is a really good change.

Apart from PvE stages, there are also Game Gyms, these give a nice break to allow some other fun activities. There is a good variety of games that work out the arms, legs and abs. No RPG is complete without levelling your character, upgrading armour (tops, shorts and shoes), and potions (smoothies). Fortunately these are not at the level of complexity found in full blown RPG like Breath of the Wild. There is also a skill tree that you will spend skill points on, to add health (heart), attack points, defence points, new skills and other perks.

60+ days in, I’ve been playing this for at least 30mins everyday. My character level is now over 170, and I’ve lost track of which world I’m in now. As expected by any seasoned gamer, each world has increased difficulty and fun factor! Even the game gyms get more challenging. Earlier stages just need you to reach a minimum points to clear the stage, but the current level I’m at adds new twists, like to only collect silver coins and completely avoid the gold coins.

Wrapping Up…

Fitness wise, I definitely feel to be in much better shape. I had really poor stamina for running, but now I can clear a running stage without much difficulty. The game checks in regularly with you on how you feel about the difficulty level, and you can adjust to increase or reduce. So it can keep up with individual progress. Weight wise, there is some noticeable reduction, but definitely not significant like it was publicised by other. Weight loss is not simply about exercise but also intake. I’m just glad that I’m not putting on weight during this long running stay home movement.

I really recommend this game for everyone. For those gamers who lack the access or motivations to hit the gym, this is an excellent alternative. The Ring-Con is simple but yet really effective to give a decent workout.

I think I’m not even half way through the game yet as there are still many empty slots in my inventory list. I’m trying to avoid reading any reviews or walkthroughs, so no spoilers please.

Integrating Ambi Climate aircon control with Homey

In a previous post, I shared my experience integrating different Home Automation systems together. I received a feedback that there is now an Ambi Climate plugin for the Homey. I’ve now made the switch from integrating Ambi Climate with Google Home to integrating with Homey. Here is what I have learnt.

I took a cautious approach to make the switch, rather than a mass switch of all my 5 Ambi Climate devices, I start with one, the Ambi Climate device for my Study Room.

The overall process was simple, and here are the steps I took.

  • Install the Ambi Climate plugin to Homey
  • In Homey App, choose to add new device > Ambi Climate > Pick desired device
  • Go to Google Home > add > Set up Device > Have something already setup > select Homey > Check for new Devices
  • The new unit should show up after the refresh

The above are the two icons seen in Google Home for the same Ambi Climate device. The one on the left is picked up via Homey, and the one on the right is via direct integration between Ambi Climate and Google Home.

User Experience with the Ambi Climate Plugin for Homey

A/C Switched Off
A/C Switched On

From within the Homey App, I get a typical tile with a nice Ambi Climate icon. Also, I like the inclusion at the top right corner of the tile, the target temperature Ambi Climate had set for the A/C. The two different shades of the icon represents the device being powered on or off. Tapping the tile, like most devices, will toggle the power action to switch On/Off the A/C.

A long press and release will bring you into the device details page. There are five sections, from left to right, Temperature, Power, Cooling Mode, Humidity, Homey device activity log. Be aware though, this plugin was developed with the assumption that Ambi Climate is to be operated only in the Comfort Mode. I would agree, as that is the real value of the Ambi Climate AI. For fine grain control of Ambi Climate, use the native app. If you have some ideas, feel free to provide feedback to the developer for the plugin.

  • Temperature – this page reports the current measured temperature, and the temperature target set on the A/C. Everything here is read only, the dial is just for illustration. You can move it, but nothing will happen. The potential confusion on this page is that even if the A/C is switched off, the message can still read “Cooling down towards”. I would probably prefer it to just say “A/C is switched off” instead.
  • Power – this page does allow you to power on/off the A/C
  • Cooling Mode – Reports if the A/C is set to Automatic, Heat, Cool or Off. Again, this is read only, and changes made here are not applied.
  • Humidity – reports on the measured humidity.
  • Device activity log – shows running history on when the A/C was switched on/off.

At this point, you may ask, if we can only power on/off the A/C, what is the value of using Ambi Climate plugin with Homey. The power is with automation you can potentially do with it.

Below are screenshots from my attempt to create a simple flow, for illustration purposes. This flow will send push notifications to my phone with the current measured temperature.

Of course this is just an example, I don’t really have interest to be notified each time the temperature changes. One practical use perhaps, is to combine with other devices. For example, a trigger could be that the temperature has reached above a threshold, and the action is to close the curtains and switch on the A/C.

How about voice control with Google Home?

Although I have disconnected Ambi Climate with Google Home, there is now an indirect connection between the two via Homey. The good news is that Google Home still recognises these devices as aircon units, so I can continue to use the same generic voice commands “Hey Google, switch on the aircon”, and they still work just fine. Though I haven’t tested it, I don’t think the Ambi Climate specific voice commands will work anymore. Not really an issue for me, since I hardly use them.

Wrapping Up…

I am happy with integrating Ambi Climate with Homey. It gives me access to different automation controls which I could not do via Google Home. I think the plugin is a great start, and I’ll be sure to provide feedback to the developer as ideas come to mind as I use the app more.

Voice Commands and Importance of Naming Rooms with Home Automation Systems

A year ago, in May 2019, I started a simple journey to implement some automation for my new apartment. For some overview, you can read from this post. In my set up, I have connected up devices from different systems. The three main systems I have are:-

  • Homey – the smart controller that integrates with my lights, blinds, doors, TV and Sound System.
  • Google Home – where Google Assistant is the primary voice control.
  • Mi Home – that I use with over 10 remote controlled AC power plugs, and a couple of bedside lamps.
  • Ambi Climate – I have 5 units of Ambi Climate v2 to control the air con units in each of the rooms.

The challenge was trying to integrate these 4 systems together. While I prefer Homey to be at the core of everything, where every device I want to be automated can be done by Homey, it is not the case. For example, there was no integration between Homey, Mi Home and Ambi Climate. [Update 13 June 2020: Switching Ambi Climate to Homey] On the other hand Google Home can integrate with everything. However it does not recognise all types of devices I have. For example, when I first set up in 2019, Google Home did not recognise the blinds. Hence I could not use voice control to perform any actions with the blinds.

Back to the point about integration between these systems. There are times where controlling groups of devices by room are useful, e.g. switching off everything in the bedroom. You can simply issue a voice command to “switch off the room”. Since it is Google Home that receives the command, it needs to know what devices are in that room. Since my lights do not have direct integration with Google Home, it then depends on the groupings presented by Homey and Mi Home.

Overview of the automation setup and the integrations

Here is the first crucial part, naming the rooms across the systems. In Google Home and Mi Home, you would create a Home with Rooms. In Homey, the construct is a Home with Zones. Rooms and Zones essentially mean the same thing here, and you want to create the Rooms/Zone consistently across all your systems. To avoid any risk of discrepancies, I recommend to name them exactly the same, even the spaces and cases must match. For example, Living Room, must be spelled exactly the same way, with the capital letter for every first letter and the space in between. No extra characters before and after. With this, when you connect the systems together, the devices grouped within each Room will fall nicely in place.

The next confusion comes, Ambi Climate. When setting up the device, there is a field to provide the Room Name. I found out the hard way, that this does not match a Room in Google Home. It actually translates to a Device Name instead. Initially I setup the Ambi Climate for the living room as Living Room. When I linked Ambi Climate to Google Home, it was straight forward. However, as I issued the voice command to “switch on the aircon“, Ambi Climate (at that time) did not know what device it was. I couldn’t issue the command using the Room name as well, because it would end up switching on/off everything else in the room. That’s when I realised, the Room Name in Ambi Climate, actually maps to Device Name.

The work around I did was to rename all the Ambi Climate devices. I just added “AC” to the back of each Room Name. For example Living Room would become Living Room AC. With that done, I could issue voice commands and call out Living Room AC. That worked really well.

Few months later, Google Home, had an update and gained room awareness. What that means is that I no longer have to call out specific device names in the voice command. Furthermore Google Home would recognise common devices like lights, fan, air con, and coupled with the room awareness, I can issue generic commands like “switch on the lights”, and the Google Home will only work on all the lights associated in the room the command was issued.

At this point, you may wonder, how would Google Home know which room I’ve issued the command from. It’s a simple answer, I have a Google Mini in every room, and a Google Home Hub Max in the Living room. Each device is also associated with the room it is located in. So in each room, I can issue the exact same generic voice command, but the action is localised within the room. Neat!

Wrapping up…

This goes back to the original point to name the Rooms and Zones identically. As there are cross system integrations, the devices within the same room are therefore automatically grouped together.

Think hard on how you want to name the rooms right at the start. As you can imagine, if you have different systems, and you want to rename a room, you will have to do it across all systems. Some may allow a simple rename, some may need you to create a new room and move devices across. While this is the easy part, if you rename a zone in Homey, it may not automatically get picked up by Google Home. Sometimes it just take some time to be refreshed, other times you may need to completely disconnect both system and re-link them again.

You would want to avoid renaming. Plan ahead and name them meaningfully right from the start.

Upgrading to the Keychron K1 V3 Mechanical Keyboard

the Keychron K1 V3 RGB

I’ve been working from home since returning from my last business trip to the USA in Feb 2020. It’s now the first week of June 2020, and I foresee continuing this WFH motion to continue for many more months. With that, I’ve decided to update my home office set up.

One of the first updates was the addition of the Samson Satellite USB microphone, which I’ve wrote a bit about here. Now, I’m updating my keyboard from an old Logitech K200, to the Keychron K1 that is pictured above. This post is typed out with the Keychron K1.

First, why the upgrade? The Logitech K200 had served me well for many years. However as I moved from Windows Vista (yup, the last PC I owned ran Windows Vista), to Mac, the keyboard didn’t really change. While I’ve figured out the few key mappings to use a Windows keyboard on Mac OS X, it has always been a bit of an annoyance. Especially when I switch from my work MacBook Pro, with a Mac Keyboard layout, to my Mac Mini with the Windows layout, it gets somewhat annoying. Hence the inner desire to change has been lingering for a while.

Looking for a keyboard nowadays is so much more than what it used to be. The last time that a keyboard caught my attention was the Microsoft Natural keyboard from 1998. There weren’t many mainstream developments that caught my attention. In recent years gaming mechanical keyboards had gain popularity and opened up a new segment. It took some research to understand what exactly are these keyboards and what makes them click (pun intended). Terms like Cherry MX came up frequently, and there are colours like red, brown, blue, yellow, etc. If you are also new to mechanical keyboards, here is what I’ve learnt.

Mechanical Keyboards

Traditional keyboards (before mechanical) are essentially membrane keyboards. If you have ever looked in one, you will see there is like a large sheet of rubber inside the keyboard and each key will press against a location that pushes the membrane in contact to a circuit board below. These keyboard typically give a dull feel to the keystroke.

Mechanical keyboards on the other hand have individual switches for each key. The membrane no longer exists. I believe the main drivers and advantage to move to such design was driven by gamers. Having individual switches allow faster keypress, touch feedback and more keys to be pressed simultaneously. Supposedly such keyboards can give gamers improved game play and hopefully an edge, especially with competitive gaming. Overall typing experience is also meant to be better, giving a good tactile feel. I do agree with this, the feel is more solid.

What’s with the Red, Brown and Blues?

If you search around, there is a very wide selection of mechanical keyboards out there. First, there are many different manufacturers, and each has several models, and typically each model will have different “colours”. Let’s touch on the colours, and their significance. The colours are referencing to the type of switch used by the keyboard. It’s an indication of the tactile feel of the switch, and not for aesthetics purpose. You can’t really see the colour unless you remove a keycap to look below. The most popular switch manufacturer is CHERRY, a German company that has been around since 1953. If you look around CHERRY’s website, you will find the characteristics of each colour, and an animation of the internal mechanisms of each switch type. Gives you an idea on how each switch differs.

Key characteristics for each colour are in the following areas:

  • Operating Force – indicates how “stiff” the feel is for each key. The higher the number the harder you have to press.
  • Pre-Travel – indicates how deep the key needs to be pressed for the keystroke to be registered. This varies, but it is typically this is around the halfway point of the Total Travel.
  • Total Travel – that’s the total distance each key can move downwards as you press. There’s always a bit more movement allowed beyond the “clicking” point.
  • Audible Click – whether that switch type generates a “click” sound as it is depressed.

There are other manufacturers for switches and from my brief look, they tend to follow the convention that CHERRY adopts, where the Red has the lightest Operating Force, with no audible click sound, and the Blue is the opposite with heavier Operating Force and has the audible click. There are several other colours, but I find that the red, brown, blue are the most common. I found the YouTube video (embedded below) by BeatTheVBush DIY to be really useful to help me decide (audio wise) which colour I’m comfortable with.

The other aspects of the keyboard

One of the top priority area to consider when picking the keyboard is the type of switch you’d like to have. The other common things to consider are:-

  • Keyboard Language – does it have layout you prefer, e.g. most common is the US101, but there are others that are geared towards different languages, like Chinese, Japanese, French, German, etc.
  • Keyboard Size – is it a full sized 104 keys with number pad, or one size down is the 87 keys, a.k.a. TKL (Ten Key Less), without the number pad, or even smaller, the 60%, that cuts out the column with home, end, pg up/down.
  • Keyboard OS – typically whether if it has the Windows or Mac layout.
  • Connectivity – is it USB wired, wireless with bluetooth or proprietary wireless. The older PS/2 and DIN connectors should be extremely rare nowadays.

Enter the Keychron K1

There are not many mechanical keyboards out there that have the Mac layout. As I was shopping on Lazada, the only one that came up was the Keychron keyboards. Doing some research, the Keychron do have some good reviews, especially for the K1. The others, K2, K4 and K6 look good as well, but they have a common complaint that they tend to be too thick. The K1 is designed to be thin, and it is indeed among the thinnest mechanical keyboards out there.

As I intend to use the keyboard with a KVM, it is essential that it must support a USB connectivity. The K1 meets this requirement as well. The added bluetooth support is nice to have. The K1 supports pairing up to 3 unique devices, they can be Mac, IOS, Windows or Android. I tested it with my iPhone 11 Pro and it worked nicely. The phone links up quickly once BT was enabled on the K1.

Price was also in the ball park I was prepared to spend. There were several other models my friends suggested, like the Ducky keyboards, but they are beyond my preferred price range.

I am also intrigued by the RGB option available with the K1. The control of the colour pattern is locally handled on the keyboard itself. There is a dedicated light key which will cycle through the patterns. Additionally, using the hotkey combo of fn+Left or fn+Right arrow keys will allow choice of colours for that chosen pattern, e.g. only red, blue, white, rainbow, etc.

The Keychron K1 looks to be really popular and as of this writing, V4 is about to be released in a few days. The one I have is the V3, ordered from Mecha.Store on Lazada.sg.

First Day Experience

Keychron K1 in the box with plastic wrappers removed

The K1 arrived a few days after the order was placed. Not bad during the COVID-19 period where there are significant logistics overheads.

The keyboard came out of the box with the Mac layout. 5 additional key caps are included to convert the keys to the Windows layout. A keycap puller is also included to aid the conversion process. USB-A to USB-C cable is also included and is reasonably thick. The included quick start guide and manual are pretty well written.

Sliding switches on the K1

The keyboard is pretty much plug and play, nothing less one would expect from a keyboard. There are two switches on the side, above the esc key to switch between Mac/iOS vs Windows/Android, and another with Cable/Off/Bluetooth settings. Functions are pretty much self explanatory.

The bluetooth labelling on 1, 2 & 3 keys

The bluetooth function is also rather simple to use. Pressing the fn+Numeric key 1, 2 or 3, will switch the connection profile to one of the 3. To pair, simply press and hold the key combo for a few seconds, and the bluetooth light will being to flash slowly, indicating it is in pairing mode. The usual motion to search and pair available devices from your Computer/mobile device applies.

I tested the bluetooth connection with my iPhone and encountered an interesting bit where shift+3 gave me a £ instead of #. I realised it’s because of the keyboard type I had set up on the iPhone to English(UK). That got resolved as I swapped the keyboard with English(SG). I’m sure English(US) would resolve that as well, but as Singapore follows the UK spelling style, the autocorrect with the US dictionary isn’t as appropriate.

One of the feature updates with the K1 V4 is that caps lock key will have an added indicator for the 87-keys model. Fret not though for the earlier models, recent firmware for the K1 allows enabling the LED on the caps lock key to operate independently from the keyboard light pattern. Meaning, instead of participating in the flashy light show with the other keys, the LED for the caps lock key will only be used to indicate whether caps lock is enable or not. This can be toggled using the hot key combo fn+caps lock+P. Holding the combo for about 6 seconds will toggle the function. You’ll know it has taken effect when all the keys flash red, neat!

Firmware Update

An occupational hazard I have is to always look at updating to the latest (and stable) firmware. That’s was what I did for the K1 as well. It is nice that Keychron provides updates, and I took advantage of it. There are update utilities available for both Windows and Mac, which is the least I would expect for a device that is designed to work across both Operating Systems.

The process worked exactly as how it was instructed on the website. With the last step to perform a factory restore of the keyboard. I was expecting the bluetooth pairing with my phone to be gone, but to my surprise, that remained. What got reset were like the setting for the independent caps lock light.

There is an important thing to watch out for, that is warned on the website, is to ensure no other keyboards are connected to the same computer performing the firmware update. I decided to be extremely careful and disconnect my Trendnet KVM from my Mac Mini, and have the keyboard wired directly. Also, I removed the Logitech Unify adapter I use with the mouse, as that same adapter can also work with Logitech Keyboards. Meanwhile, I used my old wired mouse to during the firmware update process.

What I like about the K1

I ordered the K1 with blue switches. Do note that Keychron uses the Gateron switches. I don’t have any personal experience with other switches to offer a comparison, but I’m quite pleased with these blue switches. Having typed through this blog, I’m pleased with my choice.

The low profile nature of the keyboard also fits well with my preference. I’ve been working off my MacBook Pro for several years now and this allows a comfortable switch. I would guess the other models like the K2 could be too tiring for me.

The light show on the keyboard has many patterns to choose from. Although I don’t always look at the keyboard while typing, it just adds to a cool factor. The fact that I don’t need additional software on the computer to drive the LED is a bonus.

The print screen key works for both on OS X and iOS. On the Mac Mini, pressing the key is equivalent to a cmd+shift+4.

I really like that the Keychron team is continually innovating and improving the products based on feedback. Evidently from the new firmware which look to stem from customer feedback, and also the newer varieties of the K1.

Areas I feel can be improved

So far, the keyboard itself has been great and I have zero issues with it. What I feel that can be improved are the following areas.

Product labeling: since the K1 has had a few updates, it will be useful to also label that on the keyboard. E.g. at the bottom of the keyboard there is a print that says “K1 Bluetooth Mechanical Keyboard”; if it has a “V3” some where, it would have been perfect. Although I had ordered the V3, there was no easy way for me to determine that I have indeed received the V3. I had to do some detective work to search for images to compare. And with that, I could only tell that I definitely don’t have the V1 as the light key have moved since V2.

Firmware Checking: there doesn’t seem to be a way for me to check what is the running version of the firmware on the K1. Pretty much so I can easily tell if I should take the trouble to update my unit. The FW update tool is rather basic with just a “start” button. I had to read the FW releases and compare the features with what my K1 could do. At best my unit would have version 2.72. So it was worth attempting to update to the latest 3.7.

Website: the downloaded file for 3.7 firmware, interestingly unzipped with 3.6 in the file name. Doing a checksum comparison with the zip file for 3.6, they are actually identical. I’ve submitted a ticket for this. So meanwhile, I’ve seemingly have updated my unit to 3.6.

Wrapping up…

I’m pretty much very happy with the Keychron K1 V3. The feel is great, and I just switched to finish this post on my iPad paired with the K1. It’s working flawlessly over Bluetooth, with no apparent latency. The “clickiness” of the blue switch is to my liking. So far my family doesn’t find it disturbing at all. I enjoy the feel of the keys.

If you are looking out for a low profile mechanical keyboard. I certainly do recommend the Keychron K1. It is of reasonable value, and with V4 around the corner, the improvements are nice.

My first impressions with the Samson Satellite microphone

I recently (Apr 2020) bought the Samson Satellite to record voice overs for the technology videos I’m creating for work. It was during the 2020 COVID-19 Circuit Breaker in Singapore, thankfully CityMusic online shop was still operating and they processed the online order promptly. The courier took a few days to deliver the mic, as it was expected due to overheads during the Circuit Breaker period. Product was received in good condition, thumbs up for the online shop!

Samson_SatelliteThe mic has a sturdy build. Feels solid with the all metal body, and has a good weight. The mic is not self powered, and draws power from the device it is connected with. I tested it with my iPhone 11 Pro Max, with the native Voice Recorder and Camera apps. Recording was clear and sounded excellent. The iPhone was able to use the Satellite as both for input and output. To listen, plug your headphones to the monitor jack on the Satellite.

Next, I tested on my MacBook Pro. As the included cable is USB-A to micro USB, I had to use an USB-A to USB-C convertor. Similar to the iPhone, the MacBook detected the Satellite for both input and output device, and it works just the same. Of course, being on OSX, I have the choice to pick different input and output devices. I tested the Mic recording with iMovie and Quicktime. Both worked really well. iMovie is the primary reason why I bought the Satellite. iMovie does not natively work with AirPods as an input source.

Here is a quick test recording that I did using my iPhone that’s connected to the Samson Satellite with the included microUSB to lightning cable.

I’m totally happy with the Samson Satellite, and I expect to be using it with all my recordings.

Suica for Children

If you are planning a trip to Tokyo, Japan with children, this post may be for you. Especially if you may be taking a fair bit of train, be it JR or Subway services. If you have a JR pass, then this may not be necessary during the effective period of your pass.

The Suica card is a personal stored value card that can be used for public transportation. It is used similarly to the EZlink card in Singapore, or an Opal card in Sydney. Charge the card with some value, and at each gantry point, tap as you enter, and once more to exit, the deduction will be made automatically from the balance in the card.

The Suica is something I use a lot when I travel in Japan. It allows the convenience for not needing to purchase a train ticket each ride, and also a common means for payment at vending machines, stores and restaurants. Best of all, it can also be added to my iPhone or Apple Watch. (Another post about this next time.)

Now to the topic of Suica for Children. Most child fares (all that I’ve encountered so far) are 50% the price of adults. A child fare is valid for those from 6 till 12 years old. That’s a good amount of savings, and well worth the effort to get one.

Regular Suica for grown ups can be bought at designated vending machines. For child suica however, needs to be bought from the ticket office found at most JR stations in Tokyo city. You’ll need to bring along the child’s passport. I found that the staffs at the ticket office speak sufficient English for the process to be completed easily.

There is a requirement to put ¥500 deposit for each Suica card, which is pretty standard, even with adult Suica cards too.

The child Suica will be printed with the child’s name and with an added character 小, meaning “small”. To prevent abuse of the card, each time it is used, the ticket gantry will emit a bird chirp. So any adult attempting to use a child ticket can be sieved out.

Adding value to the child Suica card is the same as for an adult, can be done at the self service ticket machines, with cash.

One advantage of a registered Suica card is that in case it gets lost, it can be replaced for a reasonable fee of ¥500. Any value that remained available at the time of replacement will be transferred to the new card.

When the child comes of age, I think on the 12th Birthday, the card can no longer be used for child fare. Another quick visit to the ticket office to do a quick “promotion” of the card to a full fare Suica. The process is free and rather quick. You may need to bring the child’s passport along as well. If you don’t do this, the card cannot be used at all. Don’t worry, the stored value is not lost, it can be used again once the card has been “promoted”.

Final note, a Suica card is good for 10 years since it’s last use, so it doesn’t expire so easily. Even if so, you can do a refund anytime for a simple ¥250 fee.

Home Automation with Digital Door Locks

For the next post to my Home Automation Series, I’ll share about what I’ve done with automating the Main and Yard doors for my apartment.

The initial requirement was simply to have a keyless way to unlock the door, and just so happen that there are further integrations possible, I took it a step further. Here are the details.

My initial use case was to be able to unlock the door without keys, but yet secure. After some research I arrived at the Samsung Digital Locks. Specifically I bought the two SHP-DP728.

This lock supports the following methods to unlock the door

  • Fingerprint
    • works fine for most grown ups, doesn’t work well with children
  • PIN
    • a rather smart implementation that it will randomly force you to key in prefix numbers first before the actual pin. This is so that there is even “oil prints” distributed around the keypad
  • Proximity Card
    • the unit came with 2 credit card size, 2 mini card size, and 2 key tags; straightforward tap and unlock
  • App via bluetooth
    • needs to register the phone first via the app, then use the app to unlock. It doesn’t go by proximity, meaning it will not unlock just because your phone is near.
    • I was told that once the Z-Wave module is installed, bluetooth does not work; however it didn’t seem so.
    • To use bluetooth function with this lock, I needed to install the sHome app on my iPhone and setup was quite straightforward. The use of the app wasn’t so good though, I’ll have another post to share more details about it.
    • The short of it is I am able to unlock the door from the app, but that’s all.
  • Automation via Z-Wave (needs add-on module, **ask for EU/I chip**)
    • connects to my Homey, and the possibility becomes unlimited
    • as Homey is primary built for EU market, the Z-Wave module needs to be of the EU band as well
    • For my installation by Hanman, I requested for the EU/I module, as I’ve been told it provide fine grain details to the lock operations, e.g. the Z-Wave trigger can be distinguished on how the lock is unlocked, with a fingerprint, card, opened from inside etc.
    • The module is installed after the lock is installed, and a firmware update was necessary for the module. Both of my modules were supposed to be updated before they brought to my place, but one didn’t work and had to be re-flashed once more on site.
  • Manual Key (override)
    • in case everything else fails, or when battery runs out, this is the override to unlock the door

Another important aspect for me with this lock is the way you would open the door. The lock need to push/pull according to the same direction the door opens and closes. Hanman site describes this really well, here. Bottom line is, you’ll want a natural feel to the direction of opening the door.

Installation by Hanman was professional and nicely done, the installer came with the right tools to  accurately drill the necessary holes in the door and door frame to fit the unit. He then showed me how to do the necessary setup, and that’s about it. The rest was for me to figure out.

I’m generally quite pleased with this lock and would recommended it. I do want to remind you to check out that it is a unit that is compatible with your door, in terms of fitting, as well as the direction of opening.

Taking it further – Here comes the real automation bit

The automation I’ve done is basically two main use case
A. When a door is unlocked, Homey will announce it. This is particularly useful when we are not constantly watching the door.
B. When me or my wife gets home, the door will unlock automatically. This is rather complex to setup, and I’ll need another blog post for that. It incorporates a motion sensor, Google Wifi, IFTTT and of course, Homey.

After the digital lock is installed with the Z-Wave module, the next thing to do is to install the Samsung Z-wave Locks plugin for Homey. The plugin is written by the good guys at Automate Asia, where I bought my Home Automation Solution from.

Pairing of the Digital lock with Homey was straightforward, just like pairing any other Z-Wave devices. Bring the Homey near the lock and start pairing. To know if it’s successful, and if the module in the lock is truly EU/I, there’s a bit to do.

Basically, the acid test to determine if the chip is EU/I, is that if you set a flow as below
When… “Unlocked from back”
And…
Then… “Speech > Say Hello

The key part is “Unlocked from back” as a non EU/I chip will not be able to distinguish that action. So, a successful test is when you open the door from the inside, Homey will say “Hello”

That’s it for the first use case, you are free to create more flows to have Homey say different things based on how the door was unlocked. 🙂

Do you have other ideas? Do share! Have Fun!

2019 Home Automation with Homey & Google Home

I recently move into a new apartment, and I took the opportunity to dive into some Home Automation. This post shares some of the things I’ve done, and will write more around the details.

The overall solution, I adopted the approach my friend, Vicardo, shared with me, that devices can be controlled by Voice, Smartphone App, and Manual. Voice and app will be the primary methods, and as a fallback, there must be a way to manually trigger the action, e.g. switch off the lights, roll up the blinds.

(Full post on my complete bill of materials to come soon…)

Overview of my Home Automation Set Up

Let’s start with some of the uses cases I have, and then I’ll mention the components involved in each use case. It’s important to note that the core controller I’ve chosen is the Homey.

  • Lights Automation
    • I have all my living room, dining room and master bedroom lights automated. This allows me to control the lights as groups, e.g. when leaving the apartment, I can power off the lights with a single control. Or I can define a scene for movie time and it will power off all lights except and keep a selected few on.
    • Device – MCO Home touch panel switches
    • Connectivity – Z-Wave
    • Controller – Homey
    • (more details coming…)
  • Balcony Zip Blinds Automation
    • I have my entire balcony installed with ZipBlinds. I use the blinds to block out rain, or when fully lowered, I can let the living room aircon run and cool down a bigger area.
    • Device – MC2 Altex SecureZip (with Somfy motors)
    • Connectivity – RTS
    • Controller – Homey (Connexoon is optional; which I’m not using)
    • (more details coming…)
  • Apartment Front and Yard Doors Automation
    • I have installed electronic locks by Samsung. It has an added z-wave module which allows integration with Homey for some controls.
      • When door opens – Homey announces the door is unlocked
      • When door closes – Homey announces the door is locked
      • When I get home – the door is unlocked
    • Device – (Lock) Samsung SHP-DP728 with Z-Wave (EU/I) addon module
    • Device – (Motion Sensor) Aeotec MultiSensor 6
    • Device – (Wifi) Google Wifi
    • Advanced Integration – IFTTT
    • Connectivity
      • Lock to Homey > Z-Wave
      • Motion Sensor to Homey > Z-Wave
    • Controller – Homey
    • more on the basic setup of this lock
  • Aircon automated control
    • I discovered the Ambi Climate in late 2018, and found it to be really effective to nicely control the room temperature. The most important part for me is that I no longer wake up in the morning to an overly cold room which I dread to crawl out from under the blanket. Now I always wake up to a nice comfortable temperature.
    • Device – Ambi Climate
    • Connectivity – Wifi
    • Controller – not required, but integrated with Google Home for voice commands
    • (more details coming…)

There’s much more to share, watch out for more posts on the Home Automation topic.

Further topics to read on

Solution – iPhone Apps are not syncing with iTunes after a restore

So you have got a new iPhone; you did a backup of your old iPhone and restored it to the new device. Everything seems to be working except that Apps are not installing. You try to re-sync with iTunes but nothing changes.

Looking at the Apps tab in iTunes shows that the Apps will be installed. So the question is when? Seems never right?

Well, it happened to me recently when I was doing just the same thing for an iPhone I was migrating. I even tried to restore a second time, but it didn’t matter.

I then stumbled upon the “Restrictions” settings, funny enough it was disabled. The original phone had restrictions turned on and Apps installation disabled. Just in the off chance of a bug here, I enabled restrictions, just to make sure all options are set to enabled, and turned off restrictions again.

Right after, I did another sync with iTunes, and all the Apps started to install.

There you have it, there’s a bug in the process. Maybe it was specific to my situation, where the source was an iPhone 4 with iOS6 and the target was an iPhone 4S with iOS7.

Nevertheless, here’s an experience I’ll share, in case if you encounter a similar issue.