Wednesday, February 01, 2023

 

Bourns 128 Pulse Absolute Mechanical Rotary Encoder

RS Stock No. 263-2918 Mfr. Part No. EAW0J-B24-AE0128L

I was looking for something where the user could rotate a given number of clicks in either direction, and my Pi Pico could compare the current value with the previous value, to spot that the knob had moved, and by how much. (I wasn't sure that my program would loop fast enough to catch each increment). 

Not that easy! 

I should have spotted that 128 positions meant less than three degrees per increment: too fine to be sure whether you had moved say 2 or 3 positions. 

But the killer is that there is no "click" to this encoder - it turns completely smoothly.

I really needed a 4-bit absolute encoder, but haven't been able to find one!



Wednesday, November 02, 2022

 

Q: How much power does a USB mains socket use when not in use? A: 1 kwh every 18 months.

Manufacturers seem very coy to admit that their Mains-socket-with-built-in-USB-power will consume power all the time, even when the mains sockets are off and nothing is plugged in. I couldn't find any indication in published specifications.

(Does any company make a socket with zero consumption when idle? I suspect not, but would be delighted to discover that I am wrong).

For the socket that I was considering (made by BG - Technical Data document here), there was nothing about consumption, so I asked the manufacturers.

All credit to them, the replied within hours, to say 75 milliwatts. Multiply that by 8760 hours/year and you get 0.66 of a kwh per year. 

Perhaps a consideration if you are planning lots of USB mains sockets, but for one or two in a house, the waste is small compared to the many other ways we waste power.



Friday, October 07, 2022

 

Plusnet Hub 2 - why won't Ethernet ports work?

The Plusnet Hub 2 is a Gigabit router, but it doesn't seem to downgrade to 100Mbps as I would expect. If you don't have all 8 wires connected through, the Hub 2 won't play at all

I had convinced myself that my new Hub 2 was faulty: my PC would connect to my Hub 1 (and on the the internet) happily. But replace it with the Hub 2, and it wouldn't even ping via Ethernet (although it would support wifi, and connected to the internet perfectly).

It turned out that I had a break in Pin 1 of my Ethernet connection between my PC and the Hub 2. The Hub 1, at 100mbps, doesn't use Pin 1. The Hub 2, at 1000mbps needs all the pins connected through. If not, it doesn't downgrade, it just fails.

Plusnet Customer Support were no help - they sent a replacement router (two actually: the first never arrived) and when I called to say that the second specimen was no better, they tried to fob me off with a link to suggestions of how to "tweak" my network. I stood my ground, and was promised a callback from a more senior engineer within the hour. But the call never came. So I had to work this out for myself, and was only successful because I had an Ethernet tester that identified the disconnected wire.

Hope this might help someone else!



Thursday, December 02, 2021

 

Access VBA - 2585 when trying to close a form

I hit the error 2585: "Action can't be carried out while processing a form or report event" when I tried to close A during the opening of Form B.

My problem turned out to be the timing of when I was calling it. I hit the error if I tried to close the second form as part of the "Current" event. But changing it to run as part of the "Load" event solved the problem.


Tuesday, November 30, 2021

 

Access vba - 2101 error when trying to set the page for a tabControl

I kept hitting 2101 error ("The setting you entered isn't valid for this property") when trying to move to a new page on a tabControl. The cause - I was trying to move to a page that was currently set to visible=false.

Solution - change the visibility first, eg:

Forms("coreAdmin").TabPages.Pages(3).Visible = True
Forms("coreAdmin").TabPages.Value = 3



Friday, November 19, 2021

 

Solution to Access error 2110 for setFocus

In Access forms, I often use a dummy text field called "txtFocusDummy" to which I set the focus when I want to de-select a field - which might be because I don't want the cursor to stay on the field (eg after selecting from a list) or because I want a quick way of committing an updated field value to the underlying table.

But I kept hitting error 2110, which said:

Run-time error '2110'

[Name of Application] can't move the focus to the control txtFocusDummy

and offered the choice of End and Debug.

If I chose Debug then, with the VBA Editor cisible, pressed F8 to continue, then all proceeded OK. So I knew it wasn't a problem with it being Enabled or Visible, or the right sort of field. So I reckoned that it had to be down to a timing issue - I was asking Access to move to a new field before it was ready to do so.

So, I replaced the setfocus instruction with a subroutine:

Public Sub fd()

    'moves focus to dummy field txtFocusDummy (among other things, ensures that field value is saved to underlying table)


tryAgain:

    On Error GoTo wait_a_while

    txtFocusDummy.SetFocus

    Exit Sub

wait_a_while:

    If True Then

        sSleep 10 '10 millseconds seems to be long enough!

        GoTo tryAgain

    Else

        If MsgBox("Sorry - Access needs a moment's rest to catch up. Please press OK to proceed") Then

            GoTo tryAgain

        End If

    End If

End Sub

And then (important step) in the VBA screen, I took Tools and Options, then the General tab and chose "Break on Unhandled Errors".

As you will see in the code, I have added the option to throw up a message box so that if I wish, I can see when the 2110 error is happening. But as set, the subroutine simply adds a 10 millisecond delay, which on my PC is enough to solve the problem.

The sSleep routine isn't mine, but here it is:

Private Declare Sub sapiSleep Lib "kernel32" _

        Alias "Sleep" _

        (ByVal dwMilliseconds As Long)


Public Sub sSleep(lngMilliSec As Long)

    If lngMilliSec > 0 Then

        Call sapiSleep(lngMilliSec)

    End If

End Sub

Hope this helps someone else (or that I find this myself when I hit the same problem again in a few years' time and have forgotten the answer).



Monday, June 07, 2021

 

Can't open a dropdown Combobox in Access?

If you have a Combo box in Access with a valid Rowsource, but it won't open (ie drop down), then check to see whether you have set an OnFocus event.

If you have, that will fire before anything else. In my case, I had erroneously set the OnFocus to SetFocus to a dummy field, which can be useful on a display-only field, but is crazy on a field where you are seeking an input!


Tuesday, February 23, 2021

 

How to delete your last Payment Method in Twitter

I made the mistake of giving Twitter my Credit Card details so that I could do a quick trial of how readily I could target ads to a particular audience. 

Having built up a bill of £0.05, I wanted to stop. And could find no way of removing the card. 

It was easy to add a different card and then remove the first one, but there seemed no way to remove the last card. It has taken something like a month and perhaps 8 emails to get Twitter to sort this for me. They gave instructions that didn't work, and took corrective action that didn't correct things. Eventually, they did fix it - but didn't explain, let alone apologise. The joy of being a dominant player, eh? 

But I think I have worked out what needs to be done without going through so much grief. 

Firstly, you need to stop all campaigns and have them stopped for at least 48 hours. 

Next, you need to clear your balance by paying what you owe PLUS £0.01. That will give you a positive balance. And (if not immediately, then perhaps after another 48 hours?) you should then be able to delete your last/only payment card. 

Hope this helps save time and grief for someone else.

Friday, December 11, 2020

 

Blum kitchen hinges - how to limit opening angle

On installing our kitchen units, I ended up with a couple of corner cupboards where I wanted to limit the angle of opening for the doors to a right angle (ie 90 degrees) rather than the 107 degrees that the hinges allow. The manufacturer of the units eventually came up with special clips which limited opening to 86 degrees - and these do the job nicely (as long as you put the clips on each hinge - one per cupboard is not enough). The clips are specific to Blum hinges, but those look to fit standard fixing holes for doors and units) so it could be worth changing hinge type if you hit this problem. I had found it very difficult to track down either the clips or instructions for their use, so here is a link for anyone who finds this posting from a search.

Wednesday, January 15, 2020

 

EL-USB-CO vs EL-USB-CO300

Black mark to Lascar Electronics, who make two excellent Carbon Monoxide loggers, only to ruin the achievement by moronic product coding.

They offer two versions: 0-1000ppm called the EL-USB-CO and a 0-300ppm version called the  EL-USB-CO300

Spot the first problem? You can't easily search for the "CO" version without also finding the "CO300" version.

Second problem? To save money (I guess) they label the actual unit as "EL-USB-CO" whichever model it is. I wasted probably half an hour complaining to my supplier that they had sent the right box (marked EL-USB-CO300) with the wrong product (marked EL-USB-CO). They wasted their time checking stock to find the same problem and then contacting Lascar.

This is a moronic approach to product coding - shared by a chair supplier who I dealt with on the same day, who showed three different products in their brochure but gave them all the same product code.

So - message for Lascar users - beware the silly labelling.

And message for manufacturers: PLEASE give each variant of your product a unique reference code that allows customers to search on it without needlessly matching to any other of your product codes.

Saturday, October 12, 2019

 

Coreldraw 12 on Windows 10 - it works!

You CAN run Coreldraw12 on Windows 10 - but not in the obvious way.

Install Coreldraw12 normally.
Try opening Coreldaw12 from the program icon and it will fail with a popup saying "1: Failed to install ISKernel Files".

Don't panic. Close that down. Use File Explorer to find any old version-12 (or earlier) cdr drawing file. Double-click on that to open the drawing - Windows 10 will have the file association set to Coreldaw12 and - if your setup is like mine -the file will open, edit, save and print absolutely fine.

So, make a copy of that old file and rename it BLANK12.cdr

Open that copy file, remove all content, and save it.

Then, to use Coreldraw 12, open BLANK12.cdr, immediately save it with the new file name, and off you go!



Tuesday, August 13, 2019

 

Variable Variables in Javascript

In javascript, if the name of the variable you want is stored in another variable, one approach is to use "window[variableName]".

But beware - this ONLY works if the declaration was in a statement using "var", eg "var a=23;"
It does NOT work if you declare using "let" or "const".

Try this:
        const THIS_CONST=123;
        let constName="THIS_CONST";
        alert("const="+window[constName]);

        let THIS_LET=456;
        let letName="THIS_LET";
        alert("let="+window[letName]);


        var THIS_VARIABLE=789;
        let varName="THIS_VARIABLE";
        alert("var="+window[varName]);

So:
Variable variable - Yes
Variable let - No
Variable const - No

Friday, April 12, 2019

 

Travelodge Bangor - tired is OK, tatty is not

Here is a corner of the bathroom of room 101 (indeed!) at the Travelodge at Bangor in Wales, as at 8th April 2019:
The bathroom door squeaked loudly enough to wake up a partner in the middle of the night. And the bathroom fan wasn't working.

I understand that budget hotels will tend to look a little tired as they get towards their next refurbishment, but this is more than tired - it is tatty. It makes me feel poor to be staying there. And oiling door hinges and testing fans should be routine maintenance. If they can't do that reliably, how sure can I be that they check safety-critical maintenance like fire alarms?

How interested is Travelodge in hearing about customer feedback?. Not much, as far as I can tell. Once upon a time, they would email and ask what you thought about your recent stay. Not any more, it seems. They don't publish any email address, so you can't send them pictures. And if you fill in their complaints form and ask them to contact you, the typical response time is (according to the agent I spoke to tonight) 3-5 working days.

Not impressive

UPDATE - it took four working days for Travelodge to respond to my request for contact. While they don't advertise it, the reply email was  customer.service@travelodge.co.uk - why didn't I think of trying that in the first place.

Tuesday, August 21, 2018

 

OuterHTML breaks DOM?

Change the outerHTML of (say) a td element using the DOM within Javascript.

See the content change on the page.
Then try to make a further change to the td and get bizarre results.

Has changing the outerHTML broken the DOM?

No - but it has wrecked the definition of the td that you are using to set or get properties.

Solution - after setting outerHTML - EVEN if the new outerHTML specifies the same id as the cell currently uses - you MUST redefine the object that your Javascript is using to refer to that cell.

In the example below, you can change the initial text to EITHER interim or final text. But once you have made the change, a subsequent change won't work - until you have redefined the variable "targetCell" which is used to refer to the td

(And note that if you are applying outerHTML to a cell that does not have a parent, even redefinition won't help: "If the element has no parent element, setting its outerHTML property will not change it or its descendants" - source)

<html>
<head>
<meta charset="UTF-8">
<script>
    var targetCell;
    function doInterim(){
        var newHTML="<td id='target'>Interim content</td>";
        targetCell.outerHTML=newHTML;
        alert("targetCell has innerHTML of "+targetCell.innerHTML);
    }
    function doFinal(){
        var newHTML="<td id='target'>Final content</td>";
        targetCell.outerHTML=newHTML;
        alert("targetCell has innerHTML of "+targetCell.innerHTML);
    }

    function defineTarget(){

        targetCell=document.getElementById('target');
        alert("targetCell has innerHTML of "+targetCell.innerHTML);
    }

</script>

</head>
<body onload='defineTarget();'>
<table id='tab1'>
    <tr id='row1'>
        <td id='target'>Original Content</td>
    </tr>
</table>
<p><a href='javascript: doInterim();'>CHANGE to Interim</a></p>
<p><a href='javascript: doFinal();'>CHANGE targetCell to Final</a></p>
<p><a href='javascript: defineTarget();'>Re-define targetCell</a></p>
</body>
</html>

Tuesday, August 07, 2018

 

When one computer can see a website, but not another ...

... then check their Network Adapter Settings to see what is specified for DNS.

We were checking that a website was available again after it had disappeared because of an expired domain. Once we had renewed the domain, we were checking whether the site was being served again - and found that one PC was getting the site correctly, but the other wasn't. Both were on the same network with a single router.

This difference continued even after clearing the cache.

The reason? One PC had its DNS address specified manually (to Google's DNS servers at 8.8.8.8) and the other was using the default DNS server provided by the ISP. Counterintuitively, the ISP's DNS server had updated when we were checking, but Google's DNS server hadn't updated at that point.

Tuesday, June 19, 2018

 

Honeywell V4043 - photos including microswitch

The Honeywell V4043 2-port central heating zone valve is amazingly badly documented. Honeywell don't offer an exploded diagram, nor even a line drawing of the inside of the head. I couldn't even find any reasonable-resolution images of the inside of the head, so here are my shots:


Note here that the synchronous motor is held in place by a single screw (see second photo) - the screw hole on the motor tab that fits under the "finger" tab is NOT used.


Note here that the microswitch (also called the end switch) sits a long way from the gold-coloured striker that is connected to the manual-open lever. Having taken the unit apart, I puzzled for ages about what I was doing wrong in mounting the microswitch because it looked as if it would never close. In fact, the microswitch does go in the obvious place - but while the Manual Open does open the valve (for filling and draining, Honeywell suggest) it does NOT operate the microswitch. Only electrical operation of the valve sees the striker move far enough to close the microswitch.

(If you need to replace the microswitch, it isn't offered as a standard spare for the V4043, but as noted by others, a suitably-rated Honeywell microswitch - eg V7-3E17D8 - looks like it should fit - but obviously it is up to you to check that it meets your needs)

Note that once a system is installed, operating the Manual Open lever will heat the relevant zone ONLY if there is another zone already calling for heat - or if you manually connect the call-for-heat wires (grey and orange wires) so that the boiler fires and the pump runs. Just closing the valve manually won't close the switch, so it won't call for heat by itself.

Recent V4043 valves have a head that you can remove without draining down the hot water system (some older ones do not - beware: removable ones are removed by undoing just two screws - if there are four to undo, this seems to be a sign that you have the non-removable type and if you undo all four screws, you will have water pouring out).

But how do you remove the head? Again, no help from Honeywell. Once you have undone the two retaining screws (the brass dome-headed screws shown in each picture) then it really comes down to wiggling: the head is a push fit onto copper bush on the main valve housing. From my experience, it can take a lot of wiggling.





Monday, April 30, 2018

 

CMSMS, global vairables and $GLOBALS - beware!

CMSMS User-Defined tags are chunks of php. If you use them, be careful about global variables.

My web host sold out and I was moved to a new (namesco) server, and suddenly my CMSMS content was seriously broken.

Aside from configuration switches, the big problem turned out to come from global variables.

I use "User Defined Tags" to load blocks of php into my page banner. And in that php, I was setting variables that I wanted to access from functions, which I achieved by declaring the variables as global in the function, eg:

myFunctions.php
function doSummat(){
    global $thisVar;
    //Do something with $thisVar
}


USER-DEFINED TAG
include (myFunctions.php);
$thisVar=123;
doSummat();

This approach, which had worked with my previous web host's (php5.4) server setup, would not work on the new (php5.6) one. The function didn't find the expected value in $thisVar.

Why?

Something has changed (either between server setups, or between php5.4 and php5.6) in the way that global variables are handled. Variables defined in a cmsms user-defined tag used to be working at top level, and so were available to functions if specified there as global.

But in the new setup, the php for a user-defined-tag appears to be handled within a php function: variables created within have only local scope. So when, in my example above, the function doSummat tries to access the global variable $thisVar, it doesn't find the variable $thisVar that I set in the tag - because the scope is limited to the php function in which the php for the tag is accessed.

(I presume that the user-defined tag was always handled this way, and that the two servers had different switch settings - which I have either missed, or have no access to - that have changed the behaviour)

Solution - if I declare "global $thisVar;" at the top of the User-defined Tag, then everything works as before: the User-defined Tag is finding the top-level variable $thisVar (by specifying it as global) and the function then finds it in the $GLOBALS array as expected.

Alternative - explicitly set and read $GLOBALS['thisVar']. A bit more typing but less error-prone, I suspect.




Thursday, February 22, 2018

 

Google Keep - cannot save a reminder?

I tried to save a Google Keep note with a customised repeat frequency - every 3 days. But the Save button on the reminder box was greyed out. Why? Was there a bug in the program?

No bug; it's very simple - Google Keep will not save a reminder frequency if the specified time (for the first reminder) is in the past. (Sensible, but it would be good to get a warning when you tried).

Thursday, February 08, 2018

 

DS18B20+ - what does the PAR suffix mean?

Nice simple answer from Mouser electronics:

The DS18B20+

can be powered from the data line ("parasite power") as well as from external power supply via Pin VDD
  
The DS18B20+PAR

can be only powered from the data line ("parasite power"). 

Tuesday, October 10, 2017

 

Destination Host Unreachable for one machine but not another on same network?

I had a miserable time trying to work out why my own PC wouldn't show me pages from w3schools.com while other PCs on the home network were fine. And other pages on my PC were fine too.

It wasn't a browser issue.

After checking DNS and the hosts file, I eventually twigged what was wrong. My subnet mask.

The site w3schools.com resolves to an IP address starting "192." - and I had (erroneously) set my subnet mask to 255.0.0.0 - result: my PC thought any "192." was local

I had meant to set the mask to 255.255.0.0 - which gives access to devices pre-set to 192.168.anything, but allows access to external sites with IPs of 192.anything-but-168.xxx.xxx

Silly me



Thursday, September 28, 2017

 

Budget Chain hotels within walking distance of northern Thameslink stations

I don't claim this is complete. I compiled the list in September 2017 for my own use - and thought it would be good to share it.

These are the budget chain hotels that I found within walking distance of Thameslink stations between central London and Luton:

Luton
Easy Hotel (2-star: minimalist rooms, sometimes the cheapest option)
Premier Inn Luton Town Centre  - about 1km to station
St Albans
Elstree & Borehamwood
Travelodge Borehamwood Studio Way – about 1.8km to station, c400m to bus
Travelodge Borehamwood (Elstree Way)  often cheap deals but 2km to station (direct bus passes door)
Premier Inn Elstree/Borehamwood (opposite Elstree Way Travelodge) - 2km to station (direct bus passes door)
Hendon
Premier Inn (The Hyde) – about 1km to station
Cricklewood
Travelodge Cricklewood  - very close to station
St Pancras
hub by Premier Inn London King's Cross  - about 600m to Kings X St Pancras Thameslink

(Also full Premier Inn and Travelodge branches near, but typically quite expensive)

Wednesday, September 27, 2017

 

Setting up a Virtual XP machine using Hyper-V: what if your XP CD is an Upgrade version?

I wanted to set up Win 98 on Hyper-V for Windows 10. But my first attempt failed, because my XP disk is an upgrade version, and merely inserting a Win-98 disk in the CD drive (as bidden by the XP installation screen) didn't work.

(Incidentally, I had problems using "Quick Create" in Hyper-V. "New" worked fine)

Here is how to do it:

Preparation

Create an ISO (eg using Imgburn) from your XP CD

Create a BIN (eg using Imgburn) from your Win 98 CD (needed if your XP CD is an UPGRADE one)

Converted the resultant Win-98 BIN to ISO using WinISO

Action

Now, create your VM using Hyper-V. Specify the XP ISO as the Operating System source.

When the WinXP installation on the VM asks you to insert Win 98 etc CD (to show that you qualify for upgrade version of XP), go to the Media tab in Hyper-V and point it to your Win-98 ISO file.

It should then install without problems.

Wednesday, August 16, 2017

 

Train tickets booked with Bristol Air Bus - what if flight is late?

GWR will sell you tickets from "Bristol Air Bus" to your destination: tickets that include the bus from Bristol Airport to Bristol Temple Meads station, and train from there.

I have today (16 Aug 2017) had confirmation (from Andy Robinson in GWR telesales) that Advance tickets bought from "Bristol Air Bus" are valid on trains after the specific one booked if the passenger's flight arrives late into Bristol Airport.

He couldn't offer any documentary confirmation of this, but was adamant that the concession did apply.

Sunday, August 06, 2017

 

php to javascript via json_encode - beware negative keys in sparse arrays

The json-encode function in php is a neat way of getting data into javascript - but ...

... be careful with arrays.

If you have a non-sparse array then that can be encoded using json-encode($thisArray, true);

But a sparse array needs to be encoded the normal way - json-encode($thisArray); - and this creates an OBJECT rather than an ARRAY in javascript (which can't handle associative arrays)

The problem comes if your sparse array has a negative key. I hit this - the key will list if you iterate through the keys (albeit AFTER the positive keys!) but you can't access the value.

Ugh!

Monday, July 31, 2017

 

Cursor offset problem in Pixeur or Pixie?

Programs to check the colour of a particular pixel are really useful. But I found that both Pixeur and Pixie weren't working properly: the problem was that the magnifier would show an area well offset from the mouse position.

The cause? I had my display set to enlarge text etc to 125%.- and it seems that these programs don't make allowance for any such adjustment.

Resetting to 100% got rid of the offset.

A sad choice - between being able to use these handy programs, and having nice large text that makes for relaxed reading by older eyes.


Saturday, May 27, 2017

 

"Failed to find a place for the imported file" (Lightroom 5) - workaround

I've never got to the bottom of this error message.

But there is a simple workaround - open the file in another photo editor (eg Corel Photopaint) and then Save As - and modify the file name (just adding a suffix of "a" will do).

Then you can open the file in Lightroom as you would expect.

Friday, December 16, 2016

 

Won't all the extra self-driving cars cause unbelievable congestion?

No. Owners of fleets of driverless cars will resent their vehicles sat motionless in queues as much as individuals do. But they will have a massive economic imperative to promote different ways of rationing road use at busy times, and the money/influence to get governments to give them their way.

Traffic jams are the chaotic result of too many people wanting to arrive in the same place in a short time (eg 0800-0900 in a city centre) - slow moving traffic and queues do the job of spreading the arrival times over a longer period. As long as the demand comes from millions of vehicles each controlled separately, chaos will continue: scheduling trips to avoid traffic jams would require government intervention that would be politically unsellable.

But at the point where most of the vehicles on the road are run by a few massive network operators, a trip-scheduling system becomes irresistible. We will stop using queues as the rationing mechanism and move to the mechanism that works so well for capitalism - pricing.

The limited slots for a driverless vehicle to deliver you, undelayed, to a city centre for 0830 on a weekday will command premium prices - which will settle down to the level that the richest are willing to pay. The poor will end up being "priced out" of travel at busy times: those who cannot walk or cycle will only afford trips that get them into the city at times nobody else wants to travel. Those no-longer-needed car parks will sprout basic shelters where the poor can while away the time between their too-early arrival on a low-priced autotaxi and the time at which their employer (or hospital consultant) is ready for them to arrive.

So, no traffic jams - just a replication of the way we allocate seats in planes: convenience for the rich who travel when they want, while the poor are priced away from the more convenient slots, to the times when there is capacity that nobody else wants.

Friday, September 23, 2016

 

Updating firmware on a SNOM phone using Pumpkin

Set up Pumpkin on your PC and run it. Check the IP address for your PC (and gateway) as you will need to tell the phone where to find the TFTP server.

Download the firmware image for your phone model from Snom - make sure that you are using a compatible version: sometimes you need to do an interim upgrade if the difference is too big.

Next, RENAME THE FILE. Your Snom knows what it is asking for: a file named snomxxx.bin (where xxx is the model number, eg snom300.bin)

Don't use the Get File or Put File settings in Pumpkin: the phone will ask for the "bin" file by name. Just set the "TFTP filesystem root" to be the folder where you have saved the "bin" file.

To get the phone to access the TFTP server, you need to re-power (not just reboot) to get the option of accessing a TFTP server.

Once you've opted to access a TFTP server, the phone will ask for IP address, this is the IP address you want to assign to the PHONE (for now).

Depending on the phone model, you may need to press the "up" key or "right" key to access the next screens, which ask you to enter IP for the TFTP server, gateway and subnmet mask. If you aren't asked for these, you haven't chosen the right options!

Once you've added all those details, press the Tick button, and you should be away.

Friday, September 02, 2016

 

Autoaid Breakdown - award for most stupid email policy?

If you buy insurance from Autoaid, you will get an acknowledgment email. If you're lucky, you may get attachments that you can open and read. I was less lucky and needed to ask for the attachments to be resent.

So I checked the email address that the acknowledgment had come from: contactus@autoaidbreakdown.co.uk

That sounded fine, so I replied - only to get a bounceback.

A temporary problem? No - Autoaid told me that "contactus" is the name of a mailbox that deliberatel does not accept incoming emails.

You couldn't make it up.



Wednesday, August 31, 2016

 

CAF Bank - not brilliant

We're a few months into using CAF Bank for our village hall.

The basics are good - the ability to follow Good Practice by having all payments authorised by two people, including online payments. Many other banks fall down on this.

But it's been a pretty miserable business. I forgot to send copies of bank statements with our application form - so the whole package was sent back. Not only more expensive, but slower too as they didn't bother to email or phone to ask for the info.

Setting up secondary users was miserable. Despite setting them up online, you then have to phone CAF Bank to have them activated (I didn't see any sign of this on the website). It is meant to take two working days for this to happen, but it took longer for us ("pressure of work": done while we waited when I rang to complain). And when you do get a user activated, they must log in and change their temporary password before 9am the next morning or you have to start again.

And don't expect them to instigate collection of the balance in your old account at another bank (which some banks apparently do) - that is left to you.

Transferring Standing Orders and Direct Debits - didn't happen: they had given us a list, we had agreed it, then nothing happened. When I complained, they said it was now sorted: no apology or explanation. When I asked why, the answer was, again, "pressure of work".

Paying in - at a Post Office if you ask nicely for special envelopes. In our case, their first attempt involved sending a letter with a covering note but no envelopes.

All in all, a pretty sloppy outfit. It's nice that they are a non-profit, but that doesn't excuse poor service delivery.


Wednesday, June 08, 2016

 

Not such a Delight

Delight Mobile offer attractive PAYG data rates (at time of writing - 8 Jun 2016: 1p/Mb) using the EE network.

But their Customer Service seems to be non-existent. I phoned them (no landline number, so more expensive) - no answer after 20 minutes. Filled in their online form on two occasions - no response either time. Emailed their parent company to say "do you realise how badly Delight's Customer Service is performing?" and got no response to that either.

And it isn't as if their online offering is so good that you can do without Customer Service: a Delight Mobile number which is good enough to accept credit for (and which works in use) is apparently not a valid Delight mobile when it comes to setting up an online account.

Nice prices, shame about the service.

Thursday, May 19, 2016

 

Cambridge and Counties Bank - no good for charities?

Cambridge and Counties Bank is a UK bank that offers an attractive deposit account that could appear suitable for charities.

But take care - they do not (currently: May 2016) have any way of requiring two signatures on transfers. Is that a problem? Not necessarily - all transactions out of the account are only to a specified linked account (and changes to which account is linked require two signatures).

So as long as you set up a linked account that requires two signatures, it looks watertight - but perhaps worth checking with your auditor first!

Sunday, March 06, 2016

 

RDM Shuttle Data logger - installing on Window 10

Had a bad time with this, but got there eventually.

Not sure whether it is happy installing on other than "C" drive - my final success was on C drive, but other changes made too.

The key step was to follow instructions here (Change advanced startup options) then to restart Windows with "Disable driver signing enforcement“ set.

Then connect logger to USB port, open Device Manager, find the Logger, right-click and choose to reinstall drivers. Navigate to the "Drivers" folder within the "RDM USBLogger" folder and it should find the driver!

Sunday, December 20, 2015

 

Buffalo WHR-G300N - updated password problem (doesn't work!)

Black mark to Buffalo.

Their WHR-G300N has an 8-character limit on root (admin) password. It does say that in the help text, but some of us think we understand about passwords without reading instructions. And so we paste in a nice secure password of (say) 12 characters, reboot - and find that we can't log in with the new password. Because Buffalo don't cope with a sensibly-long password. And they don't even bother to warn you if you try to paste in too long a password. They don't even truncate the length of password that you type in to match the maximum 8 characters. They simply truncate the password that you save (without any option to see the password entered, of course).

So - make sure your password is max 8 characters. And if you find yourself locked out of an Airstation unit for which you thought you knew the password, try using just the first 8 characters.

Thursday, December 03, 2015

 

Windows 10 - adding a tile for your Printers Folder

Windows 10 has its upsides, but the "Do it our way or suffer" mentality from other new releases persists in access to the Control Panel and its contents.

It has taken me a good while to find out how to add a "Control Panel" tile:

start -> all apps -> windows system [pull-down] -> right click "Control Panel" -> click pin to start

And it took me even longer to work out how to create a tile that takes me straight to my Printers folder. (This mattered to me because opening "Devices and Printers" is very very slow (about 25 seconds) - some suggest ditching the Realtek HD Audio Driver, or testing each device in turn (including reinstalling their drivers) to get to the bottom of it.)

Hold down the "Windows" button on your keyboard (between Ctrl and Alt) and press the letter R, to bring up the "Run" box. In this, type:

shell:PrintersFolder

and press Enter.

Now, drag the Printers icon (not top-left, the next one in - highlighted here - by me - in red) to your desktop:



Now Right-Click the shortcut, and choose "Pin to Start". Wait a few seconds, and it should appear as a new tile on your Start Screen.

Voila!

Wednesday, November 18, 2015

 

Using a foreign SIM to roam between UK networks

I have this week recorded a short piece for Radio 4's "You and Yours", explaining how a German SIM allows my mobile to roam across three of the four UK networks.

Here in the Peak District, coverage on each mobile network is very patchy: different networks offer coverage in different spots (with much of the area without any coverage at all).

So, wouldn't it be useful always to be able to pick the best signal, whichever network was offering it?

The cheapskate's answer is to buy a foreign SIM on eBay. I bought a "blau.de" SIM, which offers calls at 9c per minute to anywhere in the EU, and doesn't charge to receive calls from the UK or any other EU country.

It isn't perfect:
The biggest challenge is explaining to your friends and contacts that - despite having given them a German phone number - you aren't actually in Germany, and can be down the road to see them within a few minutes of their call.

There are better services, but at a higher price. Auracall's Traveltalk gives you an Isle of Man mobile number (starting 07452) which should roam to all four UK networks, and also looks like a standard UK mobile number. To start, you need to spend £25 on a SIM (£5 for the SIM and £20 of credit) - calls to the UK (or anywhere else in the EU) cost 15p per minute and there is no charge for receiving calls. Be aware that calls to an 07452 mobile will cost callers more than other 07 mobile numbers  - the Isle of Man isn't in the EU and so EU price protections don't work, and calls won't be included in peoples' call bundles. For an extra £1 per month Auracall will also give you an 0344 UK phone number, which your callers can use at standard phone rates.

A more complicated solution, but cheaper than Auracall, is SIP2SIM from the highly-rated telecoms experts Andrews & Arnold. You need a SIP phone connection first (and not all SIP operators will play ball - Sipgate apparently won't). But once you have this sorted, you can then have those SIP calls diverted to/from your mobile for 2.4p per minute each way, plus £2.40 monthly standing charge - and it will roam away from its preferred O2 network when this would make the difference in getting you a signal.

[Please do check the details before signing up to any of these options: I have described them as I understand them, but it's a complicated business, so make sure you are happy before committing].


Why do we need these solutions?

These are all clumsy workarounds to the real problem: that UK governments have been greedy in the money they have looked to extract from mobile companies when auctioning radio spectrum: they have set very low obligations to provide service in less-populated areas. So, the government gets a good fee, but the networks do the minimum they feel they can get away with about serving rural areas.

Having mucked that up, sticking plasters have been sought. In late 2014, the government set the oh-so-ambitious target of 90% geographic coverage, to be achieved by the end of 2017. And in return for that, they abandoned the idea that the networks should allow roaming between their services in rural areas.

Proper "National Roaming" isn't problem free: it would need some financial incentive/penalty system to make it worth networks erecting masts in rural areas (to replace the better-coverage boast that is their current reward). That isn't beyond the wit of man - but too much for our government to ask of these highly profitable businesses: leaving 10% of our land mass without a mobile signal seems to be quite acceptable to their metropolitan minds.

Having no signal in a rural area isn't just a problem for those who live there. It is a problem for those in well-served cities who might want to talk to people in rural areas. It is a problem for those in cities who might sometimes drive through rural areas and would like to be in touch in case someone needs to tell them that their meeting has been cancelled and they are heading in the wrong direction. It is a problem for every citizen if inadequate infrastructure sees people moving away from rural areas because it is too difficult to run a business there. I could go on, but won't.




Tuesday, November 03, 2015

 

Business Accountz Basic - reinstalling the original version 10

I bought the Basic version of Business Accountz in early 2011 and had been using it happily for three years when Accountz decided it was time to milk me for more money: my version would no longer be supported and it was time to buy a new version.

Their end-of-life policy isn't explicit, but a look at their Product Lifecycle page showing release dates and current support status shows what they have done in the past. Today (2 November 2015) they are showing that a product that was the newest available just two years ago (Business Accountz 2013) is no longer supported. I wouldn't buy again from them - even if they were only as mean as they are now, I would be looking at a permanent licence that became difficult to use after a matter of a couple of years, and if one of their shareholders needed a yacht, there would be nothing to stop them trying to gouge me for a following version even sooner.

Things are even worse for Business Accountz Basic which only dates from 2010, but for which you will really struggle to find installers if you need to update your PC. The files for version 10.2.1.0 are availabl here  (today at least) - but Accountz really don't seem to want you to find them: there doesn't seem to be any link to that page from elsewhere on their site.

And your woes don't end there. Armed with your reinstalled program, and a file with a "tex" extension, how do you restore it?

Replacing the newly-installed BAK directory with your archived BAK directory seems like a good start, and then try the restore program "BA Restore.exe". But no - that only spots BAK files and not tex files. (Which is a bit scary - at a first glance you fear that all your more recent work has been lost).

How to restore a tex file? Who knows?- Accountz, having moved on from this version, seem to have no interest in helping you (not from their website, anyway). Perhaps a phone call or email will elicit some help, despite their "end of support" decision. Luckily, I found another way ...

In  my case, I had the full installed file structure available from my old hard drive, so on the new PC, I installed the 10.2.1.0 legacy installer (link above) which was more recent than the disk version that I had. Then, without running Business Accountz, I went to that new PC's "Program Files (x86)" folder and renamed the "Business Accountz" folder to "Business Accountz DO NOT USE". I then copied the whole "Business Accountz" folder (programs, data, settings, the lot) from my old drive to my new PC's Program Files (x86) folder.

In due course, I can delete the "Business Accountz DO NOT USE" folder and all will be tidy, but I'll leave it there for a few days in case of complications.

But as far as I can tell, all is working happily.



Thursday, October 29, 2015

 

ATI HD4650 Graphics card working for Windows 10 (64-bit, Pro)

Having read lots of reports that this card won't work with Windows 10, I downloaded the Windows 8 64-bit package (linked from index page) and saved it. Then chose Windows 8 for Compatability Mode and Run as Administrator - and that was it.

Saturday, August 22, 2015

 

Music from the Railway Children - BBC 1968

I had always remembered the closing music from the 1968 BBC production of the Railway Children as being the piece that inspired me to take up the oboe. It can't have been, because the timing was wrong: I started in 1967. But I still remember the piece with great affection and want it as the curtain-track for my funeral.

The Piece is by Grieg - Symphonic Dances, Op. 64: II. Allegretto grazioso. The full piece runs to something over 6 minutes, depending on version, but it is the opening sequence (about 1 min 30 - repeated at the end) that was used for the TV series, and which I find so hauntingly beautiful.

Monday, April 27, 2015

 

Fake DS1302 chips

After wasting many hours trying to set the Trickle Charge parameters on my otherwise-obedient DS1302 chips, I eventually realised that I had counterfeit chips.


I've knocked up an Arduino sketch that will try to set the Trickle Charge byte, reporting back on success or failure - users of other hardware can still get the gist:

//written for Uno R3 or Mega
//Tests whether a DS1302 will process a change of the byte controlling Trickle Charge settings (if not, may be a fake)
//John Geddes, February 2016


#include
#include //http://playground.arduino.cc/uploads/Main/DS1302RTC.zip

const int PIN_1302_CE   = A0;   //5;  // Chip Enable
const int PIN_1302_IO   = A1;   //6;  // Input/Output
const int PIN_1302_SCLK = A2;   //7;  // Serial Clock


#define OPTION_TRICKLE_CHARGE_BYTE 0
#define OPTION_YEAR_BYTE 1
byte testResult=0;//score 1 for rtc byte ok, 2 for yeat byte ok. value of 3 means all ok
DS1302RTC my1032rtc(PIN_1302_CE, PIN_1302_IO, PIN_1302_SCLK);

void printPaddedBin(unsigned long thisValue, byte outputLength=8, boolean endLine=false){
  String thisString;
  String netString=String(thisValue,BIN);//no leading zeroes
  byte padCharsRequired=outputLength-netString.length();
  for (byte padCount=0; padCount<(padCharsRequired);padCount++){
    thisString.concat("0");
  }
  Serial.print(thisString);
  Serial.print(netString);
  if (endLine){
    Serial.println();
  }
}

byte toggleByteAndReportOutcome(byte whichByte){
  //returns 1 if ok, otherwise 0
  byte addressWriteByte; //read byte has address one higher
  byte retValIfOK=0;
  String descString;
  byte maxValueBeforeReturningTo1;
  byte valueA;
  byte valueB;
  switch (whichByte){
    case OPTION_TRICKLE_CHARGE_BYTE:
      descString="TRICKLE-CHARGE";
      addressWriteByte=0x90;
      retValIfOK=1;
      valueA=165;
      valueB=166;
      break;
    case OPTION_YEAR_BYTE:
      descString="YEAR";
      addressWriteByte=0x8c;
      retValIfOK=2;
      valueA=B10100001;
      valueB=B10100111;
      break;    
  }
  byte startingByteValue=my1032rtc.readRTC((addressWriteByte+1));
  byte targetByteValue=startingByteValue+1;

  if (startingByteValue==valueA){
    targetByteValue=valueB;
  } else {
    targetByteValue=valueA;
  }

  Serial.print("Attempt to update ");
  Serial.print(descString);
  Serial.print(" byte which currently holds value of ");
  Serial.print(startingByteValue);
  Serial.print(", ie ");
  printPaddedBin(startingByteValue, 8, false);
  Serial.print(" to new value of ");
  Serial.print(targetByteValue);
  Serial.print(", ie ");
  printPaddedBin(targetByteValue, 8, true);

  my1032rtc.writeRTC(addressWriteByte,targetByteValue);
  byte revisedByteValue=my1032rtc.readRTC((addressWriteByte+1));
  if (revisedByteValue==targetByteValue){
    Serial.print("SUCCESS - new value is ");
    Serial.print(revisedByteValue);
    Serial.print(", ie ");
    printPaddedBin(revisedByteValue, 8, true);
    return retValIfOK;
  } else if (revisedByteValue==startingByteValue){
    Serial.print("ERROR - updating has failed: value stayed at ");
    Serial.print(revisedByteValue);
    Serial.print(", ie ");
    printPaddedBin(revisedByteValue, 8, true);
    return 0;
  } else {
    Serial.print("ERROR - updating has failed: value changed but wrong -  at ");
    Serial.print(revisedByteValue);
    Serial.print(", ie ");
    printPaddedBin(revisedByteValue, 8, true);
    return 0;
  }
}


void setup() {
  delay (2000);//time to open Serial Monitor
  Serial.begin(9600);
  Serial.println("DS1302 test started");
  //initialise RTC to be writeable but clock STOPPED
  my1032rtc.writeEN(1);
  Serial.println("DS1302 set to write-enabled");
  my1032rtc.haltRTC(1);//in case this helps
  Serial.println("DS1302 halted");
  testResult+=toggleByteAndReportOutcome(OPTION_TRICKLE_CHARGE_BYTE);
  
  Serial.print("testResult=");
  Serial.println(testResult);
  
  testResult+=toggleByteAndReportOutcome(OPTION_YEAR_BYTE);
  
  Serial.print("testResult=");
  Serial.println(testResult);

  Serial.println("\n");
  switch(testResult){
    case 0:
      Serial.println("Failed both tests: could not update trickle-charge byte or year byte. Check connections");
      break;
    case 1:
      Serial.println ("OK on updating trickle-charge byte but failed on year byte - looks like genuine-but-faulty chip");
      break;
    case 2:
      Serial.println ("Failed to update trickle-charge byte but succeeded with change of year byte - this is the result you get with a FAKE DS1302");
      break;
    case 3:
      Serial.println ("OK on both tests - GENUINE DS1302 working properly");
      break;
  }
}

void loop() {}


 

BBC iPlayer Radio - for older Androids

The BBC disgracefully abandoned older Android users in 2014 when they "upgraded" their iPlayer app to use separate versions for TV and for Radio. The Radio app demanded Android 4 upwards - justified on the basis that over 80% of users had suitable devices. Tough luck for the rest of us.

We were intended to use the iPlayer radio feature on the BBC website, but I found this unusable - most browsers refused to load an appropriate driver, and when I did find a workable combination, programmes might take 15 attempts to start - or not start at all.

Eventually, I found a way to get near-100% availability, and offer it here. It works on my Samsung Galaxy Player 4.2 running Android 2.3.6 - and I hope it will work for you too.




Happy listening

Friday, January 30, 2015

 

TC74 temperature sensor - A0, A2, A5

What's the difference between variants A0, A2, A5 of the Microchip "Tiny Serial Digital Thermal Sensor" TC74?

Simply their I2C addresses, which are 0, 2 and 5 respectively!

Source: http://ww1.microchip.com/downloads/en/DeviceDoc/21462c.pdf

Friday, January 23, 2015

 

TCPDF - coordinates are measured from Top Left ...

... or to be precise:

The origin of the coordinate system is at the top-left corner (or top-right for RTL) and increasing ordinates go downwards.

Wednesday, January 14, 2015

 

Google Calendar - invitee cannot edit

When you specify a new person to be invited to share a Google Calendar (eg with editing rights) be aware that they only get sent an email (with the link to get them set up as an editor) after you press Save - just adding them to the list does nothing!

 

Upgrading to Windows 8.1 - "We couldn't update the System Reserved partiton"

I hit this repeatedly, and tried several suggested fixes that made no difference.

In my case, it turned out that the partition was virtually full (try Control Panel, then Computer Management, then Disk Management to see) and the solution was to increase the size of the partition. My suggestion is to grow it generously, then shrink it back most of the way (still leaving 100Mb or so free) once the installation is complete.

 

Windows 7 to 8 to 8.1 upgrade - tackling "Failure Configuring ..."

Wretched Microsoft insist that anyone with an upgrade licence from 7 to 8 must still - even with 8.1 available - update to Windows 8 first, then update Windows 8, and only then upgrade to Windows 8.1.

Can one use a Windows 8 upgrade key to upgrade direct to 8.1  - No, say their helpline.

So it is a particular misery to hit problems with the Windows 8 upgrades that Microsoft inflicts upon you - I hit "Failure Configuring Windows Updates: Reverting Changes" repeatedly as the most frequently suggested fix attempts proved to make no difference.

What worked for me? 

Turning off automatic updating, then sorting the long list (140 or more) in alphabetical order (so that the "Update for Windows" files are all together in one bunch). Then click the "Name" button to unselect all the updates, and re-select the first "Update for Windows ..." updates and apply those. 

Repeat until all those are done, then try the Windows Store and see if it considers your Windows 8 is in a fit state to do the 8.1 update. Mine was, having avoided all the other updates (at least one of which must have been responsible for my updates failing en masse).


Friday, January 02, 2015

 

Panasonic Microwave - connections on Timer Panel

Here - for my reference as much as anyone else's - is a photo of how the connections look on the back of the timer panel on a Panasonic Microwave (my model, anyway). Note the two two-pin connector plugs: the red one goes on the inside (nearer the oven area) and the white one on the outside (nearer the outer casing). If you get them wrong, then the grill comes on when you should be microwaving (and presumably vice versa).

To remove the timer panel (I had to do this because the door release got stuck: broken plastic post), first remove the power plug - there are dangerous voltages inside a microwave. Now go and do something else for a while - voltages can be stored even after disconnection - see this useful article

Now, remove the two screws close to each other at the top, release the two white plastic tabs on the vertical edge, then pull out and upwards to release the two white plastic tabs at the bottom.



Wednesday, December 17, 2014

 

Powerline mains sockets

For anyone looking to extract a network connection from the mains without the "horizontal overhead" of a plug-in adapter, Powerline Wall Sockets sound like a clever idea - apart from the price (Dec 2014 - £79 upwards!).

But there is another snag which had not dawned on me until mentioned by a really helpful chap at Solwise. If your network locks up, plug-in adapters can be removed and replaced to achieve a reboot, just as other networking elements can be turned off and on again. But your Powerline Wall Socket will have no facility for powering down the Powerline part, leaving you to turn off the whole mains circuit at your fuse box if you want to reboot it!


Tuesday, December 09, 2014

 

Public transport on a dwindling subsidy budget

My local authority, Derbyshire County Council, is facing big cuts in the money it can afford for public transport subsidy, and has asked the public which bus services to cut and which to keep.

I have rather more radical ideas:



Wednesday, November 19, 2014

 

Minimum margins for Brother HL-4510CDN

In case this helps anyone else (why can't manufacturers volunteer this data in their spec sheets) here are the minimum margins for HL4150CDN in Portrait mode (for A4 paper, as reported by my system):

Top: 0.42cm
Bottom: 0.43cm
Left: 0.6cm
Right: 0.61cm

This page is powered by Blogger. Isn't yours?