Backing Up SD Cards on an Overnight Bike Trip

I do many multi day trips on my motorbike, and rack up a lot of storage on SD cards. There’s the helmet camera, the camera facing me, the drone, and DSLR camera.

So here’s the setup I use to get a day’s photos off SD cards and onto a 4TB drive from a hotel room, using nothing but my iPhone and a few accessories. (for Android see end of post)

It is possible to use a laptop to copy the files, but this kit is a lot lighter and less bulkier than a laptop.

The Kit

  • Anker 7-in-1 USB-C adapter. The ports that matter here: SD, microSD, USB-A, and — the important one — USB-C power delivery. link
  • A 4TB portable hard drive. Big enough that you never think about it again. A fortnight of RAW files and 4K clips barely dents it, and you can keep several trips on there before it needs emptying. link
  • A USBA to USBC adaptor between the drive and hub – optional. It’s slightly quicker copying with USB-C. link
  • An iPhone. I use a 16 Pro Max, but this works with most iPhones. Anything from the iPhone 15 onwards has USB-C and plugs straight into the adapter.
  • A power source — your phone charger.

* Affiliate links

Before you leave: format the drive to exFAT

Do this at home. Format the drive as exFAT. It’s readable by iOS, macOS and Windows, and unlike FAT32 it handles files over 4GB — which matters the moment you shoot any video at all.

  • On a Mac: Disk Utility → select the drive → Erase → Format: ExFAT, Scheme: GUID Partition Map
  • On Windows: right-click the drive → Format → exFAT, allocation unit 128KB or larger

Then test the whole chain at home. Copy one folder end to end. You don’t want to find there’s an issue when you’re in your hotel room.

The hotel room routine

1. Power the hub first. A 4TB spinning drive draws more current than an iPhone will hand out on its own. Plug your charger into the adapter’s USB-C PD port before you connect the drive.

2. Connect everything. Adapter into the phone, drive into a USB-A port, SD card into the slot.

3. Kill auto-lock. Settings → Display & Brightness → Auto-Lock → Never. iOS will happily stall a long transfer when the screen sleeps. Turn it back on in the morning.

4. Open Files → Browse. Under Locations you’ll see both the card and the drive. Open the card and find DCIM.

5. Make a dated folder on the drive. 2026-07-31 Day 3 Snowdonia. Something you’ll still understand in six months.

6. Copy — never Move. Tap Select → Select All → Copy. Go to your new folder and Paste. Move deletes from the card as it goes, and until that copy is verified the card is still your only original.

7. Walk away. Reckon on 10–20 minutes per 64GB through a hub. Leave Files in the foreground and go and have a shower.

Verify, then wipe card or store.

When it finishes, long-press the folder on the drive and check Get Info. Does the file count match the card? Does the size look about right?

Then, format the card from Files – make sure you format the card and not the drive!

If you want to be extra careful carry enough cards for the trip and rotate them instead. A full card zipped in your jacket plus a copy on the drive is two copies in two places.

Does this work on Android?

Yes, Android 11 or later will work, because that’s roughly when native exFAT support stopped being an OEM extra and became something you could just assume. A Samsung on Android 9 will very likely be fine; a budget handset on Android 13 might not

One thing to test at home before you rely on it: some phones will only mount one USB volume at a time through a hub. If the card and the drive won’t appear together, the direct copy is off the table and you’re staging everything through the phone’s own storage — which defeats the entire point.

Conclusion

This is a photo of the setup on my desk.

Microsoft Dynamics – querying User Roles using SQL

Recently we had a requirement to check who had a certain privilege across all of our Dynamics environments. The privilege in question was ‘Delete Change History‘ for Audit History records.

The ‘Delete Change History‘ role is found under Miscellaneous privileges, and the internal name is prvDeleteRecordChangeHistory. A full list of these can also be found on Microsoft Learn.

We need to find all of the Security Roles where this was enabled, and then the users who had this role. The interface to roles and privileges works but does not allow the searching we require.

SQL 4 CDS comes to the rescue yet again. I won’t go over the install procedure, but basically go to XrmToolBox, then download the SQL 4 CDS plugin.

Once it’s installed and you’ve connected to your Dynamics environment you can query the appropriate tables. There are several tables that hold the required information:
• systemuser
• role
• privilege
• roleprivileges

See examples below

Show all the users who have a specific privelege

SELECT
   systemuser.fullname AS UserName,
   systemuser.domainname,
   role.name AS RoleName,
   privilege.name AS PrivilegeName,
   privilege.accessright
FROM
   systemuserroles
JOIN
   systemuser ON systemuserroles.systemuserid = systemuser.systemuserid
JOIN
   role ON systemuserroles.roleid = role.roleid
JOIN
   roleprivileges ON role.roleid = roleprivileges.roleid
JOIN
   privilege ON roleprivileges.privilegeid = privilege.privilegeid
WHERE
   privilege.name = 'prvDeleteRecordChangeHistory'
ORDER BY
   systemuser.fullname, role.name

Users who have System Administrator role

SELECT
   systemuser.fullname AS UserName,
   systemuser.domainname,
   role.name AS RoleName,
   accessmodename,*
FROM
   systemuserroles
JOIN
   systemuser ON systemuserroles.systemuserid = systemuser.systemuserid
JOIN
   role ON systemuserroles.roleid = role.roleid
WHERE
   role.name = 'System Administrator' and azurestatename = 'Exists' and accessmodename <> 'Non-interactive' and isdisabled=0
ORDER BY
   systemuser.fullname, role.name

Hope this helps. 🙂

Dynamics Workflows Primary Entities

The Microsoft Dynamics Advanced Settings pages have been around for as long as I can remember – probably since Dynamics CRM 2011.

It’s been marked as deprecated for a number of years – but not totally gone yet. It used to be accessible from the top-right cog, and then ‘Advanced Settings’, but since Release Wave 2 this now takes you to the Power Platform Environment Settings

The issue is that some functionality isn’t available in the updated interface.

A prime example I found recently, is that viewing Processes in a Solution differs from the old and new interface.
The new interface (make.powerapps.com) shows Processes as below:

Which looks fine until you have many workflows and want to see the Primary Entity of a workflow.

See the older interface:

So why has this been removed from the new interface. Presumably there’s a reason for this.

Anyway, for now, we can still access the old interface by using the below URL

YOURORG.crm4.dynamics.com/main.aspx?settingsonly=true

That’ all for now 😀

Microsoft Dynamics – Users Last Logged In Date/Time

Table of Contents:

  1. Introduction
  2. Enabling User Auditing
  3. Method 1: Using “XrmToolBox” and “Get Last Login for Users”
  4. Method 2: Using “XrmToolBox” and “SQL 4 CDS”
    1. Download and Open spreadsheet
    2. Install and configure SQL 4 CDS
    3. Get Active Users
    4. Get Last Logged In Values
    5. Final Results

Introduction

Recently, we wanted to carry out a Dynamics license clean-up exercise, and remove any users who had not used the system for a few months. We wanted to create an export with enabled users, and when they last logged in to Dynamics.

Enabling User Auditing

Data regarding the users last login date is only stored if “Log Access” is enabled. I recommend switching this on for all of your environments.

Go to Power Platform Admin Center

Click on the environment

Under Auditing, click on Manage

Enabled ‘Start Auditing’ and ‘Log Access’

Click Save

Method 1: Using “XrmToolBox” and “Get Last Login for Users”

If you have less than 500 users you can use the excellent tool ‘Get Last Login for Users‘, which runs in the also excellent XrmToolBox.

It is very easy to use:

  1. Download and run XrmToolBox
  2. Create a connection to your Dynamics environment
  3. Install the tool ‘Get Last Logged in time for CRM Users‘, and connect to your Dynamics environment
  4. Click the button ‘Get all Users Logins
  5. Click the Excel button to export

Method 2: Using “XrmToolBox” and “SQL 4 CDS”

If, as in my case, you have more than 500 users you can export data to excel, and manipulate the data to show all users, and when they last logged in.

Download and Open spreadsheet

Install and configure SQL 4 CDS

  1. Download and run XrmToolBox
  2. Create a connection to your Dynamics environment
  3. Install the tool ‘SQL 4 CDS‘, and connect to your Dynamics environment
  4. You should now have something similar to the below

Get Active Users

Paste in the below SQL, which returns all active interactive users, excluding internal user accounts.
Press F5 to execute the query.

SELECT systemuserid, domainname, fullname FROM systemuser
WHERE isdisabled = 0 AND accessmode = 0

Select the results grid, press CTRL + A to select all, then right-click on the grid, and click ‘Copy

In the spreadsheet, in the tab ‘Active Users‘ paste the results into cell A2

Currently the column ‘Last Logged In” will show as #N/A. This is because we have not yet completed the process.

Get Last Logged In Values

Select all of column E by click on the header

Press Ctrl + C to copy these values

In XrmToolBox clear the current SQL, and then click in the SQL area, and then press CTRL + V to paste in the new SQL.
Press F5 to execute the query. This may take several minutes to run.
You should see similar to below:

Select the results grid, press CTRL + A to select all, then right-click on the grid, and click ‘Copy‘.

In the spreadsheet, in the tab ‘Login SQL Output‘ paste the results into cell A2

Final Results

In the spreadsheet, the tab ‘Active Users‘ will now show the users, and when they last logged in:

I hope you find this useful 😊

Notion Highlight Colours

I’ve recently starting using Notion for some of my digital notes. As a long time Evernote user I find the notes in Notion easier to visualise as they are stored in a hierarchical format. Evernote uses a tagging system which is more flexible but can be quite confusing.

One thing I don’t like about Notion is that the colour options for highlighting text only have pastel/neutral colours

Last year Trello changed their colours from “normal” colours to more neutral colours – which caused a bit of backlash with their users.

Anyway, in Notion there is a way to add a highlight with any colour, using the equation feature. The process is, to add the below text first

\colorbox{#55FF55}{\color{#000000} \text{TEXT} }

Then right click on it, and choose “Create Equation”

In the next dialog, edit the TEXT to whatever you want, then select Done

And there you have it – nicely visible highlighted text.

You can edit the value 55FF55 after \colorbox to get different colours. Some options are:

Yellow – FFFF00
Red – FFAAAA
Blue – 88FFFF

Also, you can choose your own colour using htmlcolourcodes.com. Just select your colour and copy the HEX value.

The downside with this method is that the whole line is highlighted, so you can’t have mixed text and highlighted text on the same line.

I think Notion will be updated at some point to include brighter highlight colours, but this seems to be the only option for now.

Photo by Robert Katzki on Unsplash

General thoughts put onto screen