Notebook computer for a nerd

I am really struggling with the decision for a new laptop. I really need one, my ASUS X401A is quite challenged by my workload, such as opening more than 8 tabs in chrome, or the battery holding a charge longer than 30 minutes.

I was thinking of getting a MacBook Pro, but the October 2016 product line really left me disappointed. The basic MacBook Pro would have been fine except that there are no USB type-A ports! My Logitech M570 trackball does not come with a USB-C adaptor. Furthermore, my external DVD-RAM drive, USB thumb drives, and USB hard drives are all USB type-A. I suppose one day when the rest of the computer industry has taken the leap of faith and moved away from USB type-A, may then I will switch. But not today. Then I looked at the MacBook Air, and actually it would be ideal, but the screen resolution is very dated and I just feel like for the price that Apple is selling it for, it ought to have a much better display resolution in 2016.  So no Apple this time around…

I have a Dell XPS13 developer edition at work, and I was thinking I would get one for myself at home. I have an older version at work, and the only annoyance is that no matter what I try I cannot disable the trackpad while typing, so the mouse cursor jumps all over the place. Of course at work this is not much of an issue as I use an external mouse at my desk. More disturbing though is that current versions with Kaby Lake Intel processors have an annoying “whine” coming from the power supply. The Dell user forms are full of complains about this, and I am now  going to have to avoid this notebook computer until Dell can determine the fix. It is ashame, because this really would be the ideal machine for me, but I know the whining sound would take its toll.

So where does that leave me? I want a portable ultrabook that I can install Linux on and do some basic software development. I looked at some of the HP and ASUS product lines, but there seem to be issues with Linux and Kaby Lake support on some of these devices. The ASUS device I liked seems to no longer be sold too.  So now I’m looking at Lenovo, the Carbon X1 Thinkpad. I was considering the T460 Thinkpad, but I really want something portable and lightweight.  The X1 has everything I want, except that the it costs so much more to go from a 128GB SSD to a 256GB SSD. Oh and it comes with Windows, so I would have to blow that away.

I am thinking that I will go with the small hard drive in the end though. After all, my Mac Mini is now my primary desktop device, and I do have the NAS on the home network too. What do I need more than 128GB of storage for? Would I even use the additional 128GB, so is it worth an extra $250?

More Synology Woes

My issues with power management on the Synology DS216+ appear to continue. After my last trouble-ticket was opened with Synolgoy, they remotely installed a BIOS patch. I am not positive about this, because from what I can tell the BIOS version and date have not changed. Regardless, this patch did fix the issue with the device hanging on shutdown and reboot. The NAS now completely shuts down, and it does come back up on-line after reboot rather than hanging.

To my surprise this morning the NAS device appeared to be stuck in a sleep state. All LEDs were off, except for the Status light which was slowing blinking green, the low-power, sleep mode indicator.  I was not able to access the device via the Web GUI or the Synology Assist application. That usually means trouble. I even tried ssh and ping to access the device, but it appeared to be stuck in a sleep state. I tried to press the power button to wake it up, but there was no change. Eventually, I had to hold the power button down for a few seconds to initiate a hard reboot. This is an improvement though! I didn’t have to physically remove power on the back of the device.

After reboot, I was still not able to access the Web GUI. Synology Assist did find the device on a new IP address, however. It appears my FIOS modem/router decided to move it off of the previous IP address that the NAS had been using for months. Thanks, Verizon. This just underscores my need to work on the home network when I get some time off from grad school and work later this month.

The IP address change explains why SSH, ping and the Web GUI were unresponsive, but it does not explain why Synology Assist could not find my NAS. Unfortunately there were no clues in the notification log and . I disabled automatic updates to the system, so I just had notifications letting me know there were some DSM software updates available.

I installed the lasted OS patches and package updates. For now I suppose I just need to monitor and watch the behavior of the device. I hope hanging on sleep will not become my next issue to contend with!

And I will not be happy if the answer was to installed the M.615 patch…I am still on M.613…

More Synology troubleshooting

So I enabled ssh access to my NAS and decided to poke around a bit. Yesterday I opened a ticket with Synology, and they got back with me in a little over 24 hours, which I don’t consider too bad considering there is no service contract. The Synology support agent mentioned that there has been a shutdown/reboot an issue with the DS216+and the Intel BIOS. The agent did not provide me any commands to run but requesting remote access instead. That got me wondering how I might find out whta the bios version is myself.

On the Synology web forum I found the commands for viewing the device’s BIOS version information. After connecting with an admin group account via SSH, then running “sudo -i”, the below commands give me all of the info I was curious about.

nas_bios_version

My NAS has BIOS version M.613, and based on my previous research, BIOS version M.615 seems to have the fix that corrects the shutdown/reboot issue.

Hopefully they send me the BIOS update in the next message on the trouble ticket. I’d like to get beyond this problem and check it off of the to-do list!

Synology NAS shutdown problems

As I mentioned in my past post about Synology and UPS, I had read that some UPS devices will report powering down when going through a self-test periodically. Did I experience that issue yesterday? I woke up to find that my NAS had been powered down. Everything else was powered on, including the FIOS modem which is also connected to the UPS.  I restarted the NAS and checked the event log to look for clues.

NasEventLog.PNG

There are no notifications about the UPS on the 20th, except for a message that the NAS connected with the UPS after it was restarted. That is normal. Nothing else in the house indicates that the power may have gone down either. I do not believe the issue is with the UPS. I then decided to check the update settings for the auto updates.

synologyupdates

A clue! The device updates on Sundays (and Wednesdays) at 05:05 in the morning. This matches what I am seeing in the notifications log too, with the update starting at 05:06 after downloading an update. This seems to be clearly a Synology issue and not an UPS issue.

It looks like the Synology DSM operating system updated itself, and I can only assume that after updating, it tried to reboot but hung-up during the shutdown process.  It did this to me before when I manually updated the system, but I just considered it a fluke event. After searching around the support forums, I found this is an issue plaguing the DS216+ product line. It would appear that updating the BIOS on the device to version M.616 is working for some users though.

To make sure the issue is with shutdown on the NAS, I decided to manually shutdown the NAS using the web GUI interface. Sure enough, the NAS hung-up during the shutdown process! I had to physically remove power from the NAS and re-apply power to get it back up. I recall that I had to do this too during my initial auto-shutdown test with the UPS last week. Three times now…starting to smell like a bug to me.

As per guidance on the support forum, a trouble ticket has been submitted with Synology. Hopefully in a few days I will get a response. Synology support is very trying in that it takes days to get an initial response to a ticket.

I have mixed feelings about my Synology NAS at this point. It is very easy to use, there are iPhone/Android apps for accessing the NAS for my spouse, and in general I don’t have to mess with the NAS. On the negative side though, Synology support is very vexing with their response times.  At this point I think I am still happy with the device, and hoping that a BIOS update will make this problem go away. For now I have disabled auto-updates and will just manually update as needed.

It is very disappointing to read about this issue affecting so many people and Synology not being proactive and trying to get a fix out to the user base via the support website. There does not appear to be a way to download the BIOS update from the support website. I can only assume that they have still not identified the root cause of this issue, which is why they don’t make the BIOS update available to their user base.

Synology and UPS

By and large I have been happy with the Synology purchase for the home NAS. While I would have had more fun with FreeNAS, my spouse is probably happy I went with the solution that did not require my tinkering or attention here and there frequently. It is also nice to have the Synology apps for iPhone/Android so that we do not have to deal with upload data to the magic cloud.

I did have my first scare with the NAS though, entirely my own fault! At the end of summer there was a power outage that took down everything in the house, including the NAS. I did not have it hooked up to any sort of UPS device at the time, so it went down hard. I could not access it over the network, so I went to look at it, and the Synology NAS just sat there flashing two blue status lights. After doing some google research I was concerned they might be the death indicator lights. I ended up having to pull out the disk drives, remove physical power from the NAS, and then reboot it. After some time the device recovered and I gracefully shut it down, replaced the disk drives, and then rebooted. It came back up, no data lost, and what a relief!

After that scare I decided that I really ought to get a basic UPS for the NAS. I did my homework and found that Synology supports UPS standards that communicate the status of the power supply from the UPS. On Synology’s website is a compatibility list with rather expensive devices and even some dated devices. However, more google research said that any standards-compliant device should work. Of course, being primarily a Linux / Mac user, one could excuse me for balking at that idea when it comes to consumer grade computer equipment!

I really did not need a fancy UPS with lots of features. I just wanted a simple UPS device that will inform the Synology NAS when it switches over to battery. Ideally the UPS would use USB, since EIA-232 Serial Ports are not on Synology devices. I am not looking for a device that will keep a computer running for some amount of time, I simply want to keep the NAS and perhaps a network switch up and running long enough to safely shutdown.

After reading the Wirecutter recommendation for the CyperPower CP685AVR UPS, I searched around some more with google. I did not find any definitive information about Synology NAS devices working with this UPS model, but I decided to take the plunge and see if it would work since my local Microcenter store carries the UPS in stock. I really like the size of the UPS, it is about the size of a small shoe-box or a Cisco Press textbook. It also doesn’t make any noise which is always nice!

Safe Shutdown Test

Before hooking up the NAS to the UPS for power, I decided to try an experiment to make sure the UPS would work with my NAS.

  1. Keep Synology NAS powered by A/C power, but connect the UPS USB cable to the back of the NAS, and power on the UPS
  2. Switch off the UPS outputs only and see how the NAS handles the event.
  3. Switch on the UPS outputs, and then after a minute remove A/C power supply to the UPS
  4. Wait for safe shutdown time, and then confirm the NAS safely powers down.

Configuration

synologyupssettings

Configuration was probably the easiest thing I have ever seen. In the Synology NAS control panel, in the Hardware and Power section, one simply navigates to the UPS tab. Place a check mark in the Enable UPS support box, and then set the safe mode timer. For now I have set this timer to 5 minutes. There is also a button “Device Information” at the bottom of the tab, and as shown in the above screen capture, the NAS automatically detects the UPS.

Test Results

Starting at the bottom and working up with the messages in the screen shot, all of the power events are stored in the NAS log file.  After enabling the UPS support, the NAS logs that the service started and identifies a UPS on the USB port. The message “Local UPS was plugged out” refers to step 2 of my simple test, where I kept the UPS plugged into A/C power but simply disabled the UPS outputs. After 5+ minutes, the NAS was still online and did not shutdown. Next, I re-enabled the power outputs on the UPS, and after a minute or two, removed A/C power from the UPS. The NAS logs that the UPS has gone to “battery” and the safe shutdown timer begins.

synologyupslogs

After the safe shutdown timer expires, the NAS shuts down the Cloud Station service, and logs a message stating it will be going into Safe Shutdown. At this point, keep in mind the NAS is still plugged into A/C power. After the NAS shuts down, the Status LED on the NAS was cleared, and I was no longer able to navigate the NAS via its web interface. I reconnected the UPS to A/C power, and after a minute or two, the blue lights on the NAS began to flicker. A few minutes later, the NAS was back up online and I was able to access to the web interface. Success!

Conclusion

The CyberPower CP685AVR UPS and Synology NAS work just as I had hoped–I could not be happier. I have read that some UPS devices will initiate periodic self-checks than can cause some NAS devices to think power has been lost. I will have to keep an eye out for this, and worst case I may need to extend the safe shutdown timer from 5 minutes to something longer. However, this UPS claims up to 70 minutes on an iMac G4, and I am sure that this NAS with its low-power ARM CPU will not exceed the power draw of an iMac G4. As such, there appears to be plenty of margin to work with.

Windows IoT Impressions

I am impressed with the ability to run Windows on the ARM and with how easy it is to use out of the box. But developing and deploying applications? Not such a pretty picture–Microsoft has a LONG way to go still. A RPi device with RaspianOS and python is a much better option at this point in time for my purposes: electronics interfacing and sensors. For reference, I have the following platform: Raspberry Pi 3 with Windows IoT 10.0.14376.0, and a Windows 10 desktop with Visual Studio 2015 Update 2.

The Pros

Being able to ssh into my device…excellent! Powershell is no replacement for Bash, but it is good enough and get the job done. Being able to mount my device’s C:\ and drag and drop files to the device…awesome! Networking functioning straight out of the box after plugging it into my Ethernet switch…check! Web-based control panel for monitoring the device, updating Windows, power-cycling…check! Headless capability…check!

The platform looks good overall, the only thing I am yearning for is Bash, but that is because I’m a Bash power user. For someone familiar with Powershell, I’m sure this is just perfect.

The Cons

My biggest disappointment is that Visual Studio remote debugging and remote deployment of apps does not appear to work. Based on my research, Microsoft removed the binary msvsmon.exe from their Windows IoT distribution, expecting it to be installed on a device by Visual Studio. That would make sense conceptually, but if Visual Studio cannot connect to the device, how do I get started?  I can ping the device, SSH into it, mount its c:\ on my desktop…so this is clearly not a connectivity issue. The issue must be with Visual Studio and Windows 10 IoT not playing nice together.

Capture1

Sorry, Microsoft. None of the settings in that menu are helping with this issue. Further research reveals that this was a problem with Windows IoT 10586 and Visual Studio 2015 Update 1.  Other workarounds provided, such as universal encryption disablement, do not appear to even be an option in VS 2015 Update 2.  Visual Studio has changed yet again from November 2015 when this problem first appeared, and so far I have been unable to figure out exactly what will fix the issue.

My guess is that a fix will be coming down the pipeline at some point, but frankly this platform is still to immature for serious development. I thought of downgrading to an older version of Windows IoT, but Microsoft is not allowing me to download it, I am only able to get the latest version (which I currently have). And after how long it took to get Visual Studio installed…and then updated…snowball’s chance in hell I’m going back to an older version of Visual Studio.

Closing Thoughts

For now I have to build a C++ application on my desktop and then copy the binary over to my Windows IoT device. That will work for now as I am still getting my feet wet, but hopefully that will be addressed in the next Windows IoT build, or next Visual Studio update. Once I start doing more complex things I will definitely want to be able to debug remotely.

I have started to browse some of the C++ samples and I am getting nervous, the code looks atrocious and appears to depend on some Windows RT libraries, COM objects, etc. Hopefully it will just be a small learning curve and be boiler plate code. I am sure it is easier with C#, but I don’t care to learn C# just for this device. Waste of my time. Perhaps if the C++ is too immature then there is hope for python? To be seen…

Trying out Windows IoT

To be brutally honest, Windows as a system is rather boring for a guy who is interested in embedded systems. Don’t take me for a zealot, though I prefer Linux for most things, Windows has its place for sure. Microsoft Excel is the killer application in my book, and there are great CAD tools like Altium and SolidWorks that make it an excellent platform for getting real work done. But for embedded systems??? Sure there was Windows CE, but that was really overkill. PalmOS was much more slick in its time! And iOS and Android are rightly putting Windows Phone in the grave. When I first read about Windows IoT, I did not bother to read any further. It sounded like another half-assed Microsoft attempt at trying to be relevant outside of desktop computing.

Yet I found I was reading an article about I2C/SPI interfaces and the Windows Driver Kit, and that sparked an interest. I can use Windows to control I2C, SPI, and GPIO devices? Please tell me more! Microsoft has created a stripped down version of Windows 10, known as Windows 10 IoT, that is capable of running on x86 and ARM processors. You can develop C++, C#, or Python apps with Microsoft Visual Studio, and then remotely debug and deploy apps to an embedded host. Now that sounded interesting! And there is more! You can download the community edition of Visual Studio for free and obtain Windows 10 IoT for free as well (permitted if you have Windows 10 Desktop). Sign me up.

So I ordered a Raspberry Pi 3 (64-bit ARM) that supposedly came with an SD card loaded with NOOBS directly from the Microsoft Store. I opened the box, pulled the microSD card out of the SD card holder, plugged it into the Pi unit, and then powered it all up. According to Microsoft, I would have the option to install Windows IoT once I booted the device via NOOBS. Imagine my surprise when I boosted the system and I found I was in Raspian! So it looks like NOOBS was *NOT* on the SD card! Annoying…

I downloaded NOOBS from the Raspberry Pi website and reformatted the SD card and decided to try again. This time the NOOBS system came up asking which system to install. I selected Windows IoT, and a browser eventually opened up asking me to login with a Microsoft account. It turns out I could not proceed since my outlook.com user account was not in the Windows Insider program. I returned to my desktop computer and registered my outlook.com account in the program–luckily it is free, unlike MSDN! I was now greeted as an Insider by Microsoft Insider’s website.

Unfortunately things got worse:

  • I returned to NOOBS, tried to login on the Pi, but Microsoft informed me I was not an Insider
  • I confirmed on my desktop that my outlook.com account is indeed part of the Insider program
  • A few more times and I gave up for the night, tired of the circular process and run-around
  • 24 hours later, on the Pi, Microsoft was still telling me I was not an Insider…yet in my Outlook.com inbox I had a welcome message to the program…
  • On my desktop, I managed to get through, and downloaded the Windows IoT ISO image; I got busy so that was it for the day…annoying
  • 48 hours later, on the Pi, Microsoft was still telling me I was not an Insider

I gave up and decided to just do a manual install. Luckily that was not so bad: download the ISO, install it on your Desktop (which extracts a disk image), and install the Windows IoT Core tool and manually flash the image to the SD card.

After that things went smoothly, the Raspberry Pi booted in Windows and grabbed an IP address off of my network switch (as it should) via DHCP with no hitches. I was even able to SSH into the device via my Linux computer. It was a pain in the ass to get this far, but it all looks interesting and I am willing to let bygones be bygones. Hopefully the hard part is over, and it will be a breeze with Visual Studio and loading software onto the Raspberry Pi.

I have to say Microsoft has a lot of work ahead of it. Instead of wasting everyone’s time with their stupid developer’s program accounts and registrations, it would be great if they just put the ISO out there for their target platforms and require tools–we want to get to work, not wait 24 hours for account registrations to be propagated within Microsoft. Also:

  1. Don’t market and sell Raspberry Pi 3’s without clearly stating you don’t yet support it!
  2. Fix the stupid Windows Insider program mess…it was ridiculous…and there was no email to send a help request to either…the guidance was to ask the community for help!
  3. Go for more spartan websites, it is tiring clicking through all of the links

More to come on Windows IoT soon I hope…from the C++ application side and Windows driver side of course!