2025-11-01

My ultimate e-paper board...

I have stock of some very nice Waveshare 7.5" E-paper panels with bonded glass and black border. They are very cool. I made a driver board to fit on the back, and it works well. It is on Tindie.

I then made a new board with NFC reader through the glass which is very cool. I use for access control on the front door. But I think it can work as a card and so work as a WiFi NDEF NFC even - need to work on code for that.

But I am working on the next version, and am interested in comments.


One of the main uses of these is household displays for things, including environmental monitoring. So the NFC based panel controller board has...

  • ESP32-S3-MINI-1-N4-R2 (Dual CPU, 4M flash, 2M SPI RAM).
  • E-paper panel controller and power, obviously.
  • Micro SD card slot.
  • Power from USB-C (two positions) or WAGO DC 5V-17V.
  • Designed to work with button-fix clip on the back to mount easily on a wall.
  • 24 WS2812 RGB LEDs around the edge, plus one for status by SD slot, and one general status.
  • 2 pin WAGO contact input (e.g. for doorbell push).
  • PN532 NFC compatible with DESFire, and can work as a card to NDEF WiFi details, etc.
  • Separate WAGO power and control for PN532, and connected internally to allow local working.

But the new bits are...

  • SCD41 CO₂ and humidity (and temperature).
  • SHT40 temperature.
  • GZP6816D atmospheric pressure.
  • T3902 MEMS microphone for sound.
  • DS18B20 connection for external temperature sensors (WAGO).
  • Updated WS2812 LEDs that don't get easily knocked off the board.
  • Switched power control for PN532.
  • Switched power control for E-Paper.
  • Switched power output 3.3V (WAGO)

This adds some cost, but I think makes for a pretty awesome controller.

What do you think?

2025-10-29

More on VAT an Duty on imports

I explained PVA (Postponed VAT Accounting) - it is moderately simple, we need (a) a courier that is not brain dead (so don't use UPS), and (b) EORI or VAT stated on parcel - which a lot of senders allow for anyway but could just be squeezed in to address.

Courier declares the import to HMRC. HMRC do a monthly statement to allow for on VAT return. VAT all cancels out.

But duty is different!

We get duty much more rarely - some product types from some countries, and very much non obvious it will apply when you order. It depends on where supplier ships from, or possibly origin of goods (not sure which), and how they declare the goods.

It is usually small, meaning it can easily be way less than courier admin fee even! Very annoying.

Duty Deferment Account

The answer is a duty deferment account. Unlike VAT which cancels out on the VAT return, DDA is a separate account with HMRC where they charge you the duty due. There seems to be a pre-pay option but not clear how that works, and a direct debit option, and a need to guarantee the duty due. So a tad more messy. We have done all that.

But surely that is it - link to your EORI/VAT number on the parcel and have duty paid by monthly DD without any annoying courier admin fees.

No, not actually!

No, it is not so simple (WTF not?).

I have a DDA account number which has to be quoted, which is not the VAT or EORI number.

I have to complete a form and send to HMRC telling them the exact details of the import agent(s), i.e. couriers, I wish to use and authorising them to use the DDA account number.

I also have to tell the agent (e.g. DHL) to use the account and confirm they have the authority (copy of the form).

Why make is so bloody difficult! Arrrg!

Oh, icing on the cake, the form does not appear to actually be on gov.uk web sites anywhere!

I'll see how this all goes... Now to argue over a £5 admin fee with DHL.

Update:

Even though DHL, and web pages on gov.uk, all refer to this mystery form, apparently it is now an on-line thing - so simpler, but not as easy.

2025-10-23

The end of 17070 and serious consequences

I just read a very concerning article on BBC https://www.bbc.co.uk/news/articles/ckgknm8xrgpo

TL;DR BT crossed wires and so a criminal investigation led to wrong address causing a lot of issues for innocent parties.

Police

The decision is the police did nothing wrong.

I would argue police acting solely on IP address information is negligent of the police. So I disagree with the finding. There are a lot of reasons an IP may not identify a person - not least of which is "bill payer" is not "user", and also deliberately or accidentally open WiFI, and tor proxy, and hacked routers, and so on and so on. And, of course, crossed lines happen, so IP is never definitive. They should have more evidence before taking such drastic action, in my opinion. It is almost akin to reading the "return address" on an envelope and assuming it is genuine and raiding someone as a result.

The simplest test they could have done, if going as far as visiting the property, is checking the IP address on their Internet access matches the evidence.

Update: just to be clear, we (AAISP) have a policy in response to any request from police (or anyone else) under the Investigatory Powers Act, which we would expect to almost always just be a request to identify bill payer/address, to respond (as required) but to always include a very clear statement that you absolutely cannot rely on an IP or calling number as indicating the bill payer, or even someone at the address, instigated the traffic/calls. We would aim to try to educate police in the reply. We could perhaps even get some for numbers/IPs that are not ours, and would reply accordingly. To say we have had no requests would be implausible, but ironically the legal issues means we cannot say if we have had requests or not, which is, itself, somewhat crazy.

Crossed lines

But let's consider how crossed lines happen - it is simple, and literally crossed lines where one pair of wires is on wrong port on the DP.


So why was a crossed line not identified?

17070

BT engineer calling 17070

It used to be pretty easy to tell a line is crossed, pick up the phone and call 17070 and it reads your number. Also calls cost, and a wrong itemised bill arriving is a clue that your line is not being used by you.

However with broadband and fixed costs, and so on, it is very easy for two lines to have working broadband on the same ISP, that works based on circuit and needs no login (or router auto configures based on circuit when first connected). And with dynamic or CGNAT you cannot tell you have the wrong IP even.

So customers cannot tell, but this is actually a bigger issue for BT.

The telephone side is gone, and now it is broadband only.

We had a case at the pub with two lines and one was jumped wrong, and BT had no means to tell which line was which now there is no dial tone on the line. As an ISP on site (rare) I was able to confirm which physical line went off when unplugged. But BT need to be able to identify a line - how are they not screaming at management about this now?

So what instead?

So what BT need is a way to identify lines now. And actually it is not as hard as it sounds.

The way broadband works is using PPPoE over DSL. The same is true for FTTP now (PPPoE Ethernet on ONT).

PPPoE has a handy identifier which is sent before any sort of login. Without knowing the ISP or login details a hand held test device for DSL or FTTP working could show the ID it sees.

These IDs are not very exciting at present - my DSL here has acc-aln2.ag

But it could not be hard to make that a circuit ID, or a complete port ID of some sort that the BT engineer can identify. I mean it would be ideal if the full circuit ID in BT, but even just cab27-port43 it would help the BT engineer a lot and avoid crossed lines and a range of other errors.

BT could even expect other ISPs that use BT wiring to have a similar scheme, why not?

It seems to me this should be a standard for such services, and BT engineers test kit should be able to show it. This are only going to get worse as more and more phone lines are phased out.

So I wonder if BT will consider this?

2025-10-13

Oh, Amazon, you are crazy

They have lost a shipment from us, it seems, although getting a straight answer is not easy. They got it, but no more. What is annoying is I am 99% sure it showed the items as "found" and then changed to "0 found" - I may be wrong.

They state the shipment is eligible for investigation from 12th Oct, but no link to do that and opening tickets they kept saying it is not yet eligible yet. Latest was again insisting I check what the shipping page says and wait for that date. It still says 12th Oct. So I, er, checked the shipping page, waited (it is 13th already) for 12th to pass, and well, got back to them. What the fuck?

So finally a chat and they are talking of a claim - well I want to know if they have lost them first, but they would not answer and closed chat.

They then said for a claim they need loads of stuff including our purchase order from manufacturer, picking list, invoice, manufacture stamp or signature, all sorts.

They seem unable to cope with the fact that we are the manufacturer! So we have no shipping details of this product to us, or purchase order, or any such stuff.

They want a "picking list" for sending to Amazon. Well, I did not make one. But it seems they are happy for me to now make one! Well only if it is dated before we shipped, so I had to make one. Then it needs to be signed, FFS, so print, sign, and scan! Why! How is this a sane process?

I pointed out if I do not meet their criteria for a claim, I bet I meet the criteria of a county court.

Now, in next chat they are saying they will investigate. But only if they have documents for a claim.

At one point they say they need "Shipment or purchase order ID", after some to and fro, they want an Amazon shipping reference number. I was confused, how is that related to a "purchase order ID"? He sent me a screen shot. It is an Amazon reference, it seems.


So, err, I replied, "OK the Shipment or purchase order ID is 3IC25SUG"... Done... I mean, wow!

I had to make the "packing slip" at least three times to add more on to it. Apparently simply stating things on the chat does not count!

And then they want proof of delivery, so screen shot of the Amazon shipping page showing the tracking and receipt of the item getting to Amazon, from Royal Mail and Amazon point of view.

Bear in mind, all of this is in the context of a ticket about a specific shipment - such that he could get that screenshot to send me. So he has all of this information visible to him. I am sorry but this is really FUCKING STUPID, in so many ways.

However, lesson learned, next shipment I'll take pictures before sealing boxes. Maybe even a video with taping up and applying RM postage label.

Update: They agree lost, and agree to compensate, but some made up value that is not even the cost of the bare circuit boards!

Update: And I now feel this is even more special to be honest...

I sent a copy of the invoice for the circuit boards. Their response (though they did not actually email, just changed status on ticketing) is they cannot verify that this is for the item. The invoice lists the PCB file AUDIO_1. Well, it would. No reason for it to relate to the product listing name. They really do not cope with the concept of us being manufacturer.

The work around, suggested by Amazon agent, is change the listing to have AUDIO_1 in the title so it matches. Which means they are basically trusting me to say it is AUDIO_1, which is what I said in the first place when sending the invoice. But they may trust me if I change the name on the product title on their system! How is that remotely sane!!!

Update: They say they have accepted my evidence, which shows how much for the PCB, yay. They have revised the amount they are reimbursing to an amount that is around £3 LESS than the cost of the PCB. They keep referring to their "policy", one that clearly states that they will reimburse what it costs (not some random amount that is less). They won't explain their maths.

Update: They now show all the missing items as "located", yay, but oddly not in stock for sale or even "inbound".

Update: Apparently stating "Units located" is "not incorrect"!!!

2025-10-10

LED Strips

There a lot of options for colour LED strips.

I am talking pretty much entirely about 5x5mm individually addressable full colour LED modules on a 10mm wide flexible PCB with leads at each end. But even being that specific there are a lot of choices!

These things basically...

Covering/backing

Start with something simple - these strips often have options.

  • Black or white strip supporting the LEDs.
  • A domed flexible clear covering that is generally pretty waterproof.
  • A rectangular sleeve enclosing the string, which is more waterproof.

This is really a simple choice. I have some on a door frame which are the domed covering, because the strip or chips would snag otherwise. I have some on a shelf (image above) with no covering, as out off reach. You need to consider this if putting in some sort of diffuser, e.g. an aluminium strip with plastic cover - where no covering in the strip itself helps much under the diffuser. A diffuser is usually a good idea.

Now, some do come in a diffuse housing, which can be a good compromise. Bear in mind that any covering or enclosure makes cutting to length and joining harder. The simplest is the bare strip with LEDs on it (and the pads between them) allowing easily soldered joints to another strip. There are clips you can get but I do not recommend them - soldier it.

Note - the adhesive backing is pretty universally crap, not bad on aluminium, but on wood, etc, not good. I'd think about some nice 3M tape.

Density

Again a pretty simple one - how close the LEDs are - and that varies.

  1. Close together is great for sheer amount of light, and using inside any sort of diffuser strip as you can hide that there are individual LEDs.
  2. Close together means more LEDs and so more power needed.
  3. Close together adds to the cost.

Voltage

This is a bit more complex. The main choices are 5V, 12V or 24V. I am generally working towards 12V these days (with per pixel control on a WS2815).

  1. 5V can mean notable voltage drop on long runs, meaning power feed in at extra points. 12V can run longer and typically the modules can work on much less than the full 12V if they are per pixel 12V.
  2. 12V and 24V can be multiple pixels on one controller, e.g. 3 RGB pixels on one controller in a row are controlled together as the 12V is split over them. This is pretty shit, to be honest. It is not always the case, and WS2815 seem to be ideal with single 12V working pixels separately addressable.
  3. Higher voltage is lower current and can be a smaller power supply and less heavy duty power leads.

Current

This is one of the big issues, and not as simple as it looks - the LEDs do not use a lot of power, but there are a lot of them. Higher voltage means you can work with lower current. But you have to be careful, even with 5V DC levels, if you have hundreds of amps available - that can be nasty stuff (not that is unlikely to electrocute you, but can burn and melt stuff - a short at that power can melt copper wires).

The other issue, apart from not wanting to handle large currents (for which higher voltages help) is the power supply itself. A high current power supply is bulky and expensive.

A big challenge is working it out - and this can easily go wrong. There are guides and tools and data sheets. But you can easily find you are massively over specifying your requirements. As with any modern electronics, LEDs are getting more efficient and so lower power - the guides for 10 years ago do not apply now.

You also have the option of not lighting all LEDs full white all the time. So depends what you want. In practice you probably do want almost any system to work at all LEDs on full - but not always!

In short, my recommendation is to test the strips you are using, get a current meter, a strip and set to full power all on. Measure it. Note if can change on temperature, so leave a little overhead. But that tells you what you need.

Bear in mind voltage drop is also a thing - all white on a long strip could have more than enough current from the supply but still fade and lose colours at the end due to voltage drop - sometimes you need extra power feed in along the strip(s) to fix that. This is were 12V can help if the pixels can work down to half that (as seems the case) you can tolerate a lot of voltage drop.

I have a fence where along side the chain of strips I have a thick copper power pair, which taps in at each strip join. That works a treat as the thick copper power cable is low resistance and allows the current to get to the whole strip. The same power supply, which clearly has enough power, could not work the whole chain from just one end as the voltage drop would kill it after about the second strip. Bear in mind, whilst the data has to connect at one end, the power could always connect in the middle of your set up.

Never forget - power ends up as heat and has to go somewhere.

Colour options

There are two main colour options.

  • RGB - the simplest type - full colour using Red, Green, and Blue
  • RGBW - an extra 4th White LED.

There are some RGBWW with two different shades of white as well, but rare.

the main advantage of RGBW is that the extra white LED is usually very bright (and often available in a specific shades of white), but is also one LED, using less power than combining RGB to make white. Yes you can go overkill and try RGB and W for even more bright and even more power usage.

The general idea is if the strip it to be functional lighting as well as pretty effects, RGBW helps allowing the white to be lighting. You also often want to consider higher density of LEDs in such cases.

Chip type

There are a few chip types, and many odd chips that are compatible. There seem to be some subtle differences in the data sheets but in practice they all work the same way.

  • WS2812 is the main one, simple RGB 5V
  • SK6812 is another one, typically the order of colours is different in the data sent
  • WS2815 is the one that does RGB but using 12V
  • There are new WS2815 that are 12V and RGBW

Timing

Rarely an issue, but worth considering - each pixel on a strip takes time. So the maximum update rate of a whole strip depends how many pixels. Each bit is approx 1us long, so each colour is 8, and each RGB is 24us. That means 100 RGB takes 2400us or 2.4ms. RGBW is 4 colours, so takes longer. As you can see, once you have hundreds of pixels the refresh rate can come down and start to be more noticeable. The answer is more separate strips working in parallel if your controller can do that. I'm practice, it is rare for many hundreds of pixels and rare that the refresh rate matters that much. But bear in mind on large installations. 

Duff pixels

One of the reasons to look at the chip type is the WS2815 has a backup data line. The way this works is the data daisy chains from one module to another - any break, or any failed module means the whole of the rest of the strip dies. The WS2815 has a cunning plan - a backup data that goes directly on to the next pixel. The idea is that if a module fails, the next LED picks up the backup line, and delays one pixel, meaning it works and so does the rest of the strip. Only if two adjacent modules fail does the rest of the strip die. This is an excellent innovation, and I definitely recommend it.

Recommendation

The recommendation is simple...

  • For density - decide what you need.
  • For covering and strip PCB colour - decide what you need.
  • Recommend WS2815 RGBW 12V strips - only now available in 2025.

The reasons are simple.

  • 12V working is less current, so smaller power supply.
  • 12V allows more voltage drop, so longer strips just work.
  • WS2815 backup data allows a duff pixel.
  • RGBW allows more powerful white at lower power.

(I have some of these latest strips on order).

Update:

I have the new WS2815 12V strips. 96 LED/m. They state 23W/m (so around 2A/m), but tests are fun.

I usually expect each LED (R/G/B/W) to use power, so red is half yellow and a third of RGB White, but same as W White. But now.

Measuring a 100 LED test gave me roughly 1A for red or green or blue, but also 1A for yellow, or cyan, or magenta, and even 1A for RGB white, and 1A for W white. I only got more (1.75A) for RGB+W double white.

This is interesting. I assume they balance the currency for multiple LEDs somehow, which sort of makes sense - you do not want yellow twice as bright as red or green really. It makes things simple as well.

2025-10-09

Magic LEDs

There is a company called Xinglight that make some LEDs that I use. I call them magic LEDs because they are really so useful.

They cost 2p or less each, but they are RGB, so full colour LEDs. Now bear in mind some other single colour LEDs I use on some boards are more like 5p each, these are cheap.

So what makes them magic apart from they price?

  • They work from 3.3V (datasheet says 3.5V min, but my tests, room temp, 3.3V just works)
  • No need for extra series resistor as normally needed on an LED - no need for any extra component.
  • Uses WS2812 serial coding so one can have one or more of these on a single GPIO pin.
  • Full colour
  • Tiny

So if I want a simple status LED on a board, this is a tiny, 1x1mm component on a single GPIO on the 3.3V supply, and just works. Yes, it is more complex than a simple on/off GPIO, but in some ways that is better is it cannot be on accidentally - it needs the correct code to send the correct sequence to light it up. If this status LED lights up the code is running, meaning it all works, boot loader, signature check on code, code running.

The small ones are 1x1mm, and are really so small. I have used for years on many designs, but it is time for a change.

Why?

These tiny 1x1mm LEDs can snag and come off the PCB very easily.

So what is the alternative? Well, they do a 1.6mm x 1.5mm version and a 2x2mm version.

My current plan is changing all my designs to the SMD1615 (1.6mm x 1.5mm) version.


It has castellated pads, so some chance of solder coming up the sides, and is not that much bigger really.

I usually pack the 1x1mm LEDs at 45 degrees, space at 2x2mm, and can do that both ways, just. The new LEDs can do 2mm spacing straight and neatly. They can fit closer, just, but not both ways if I want to make a grid.

So for single status LED - no brainer, takes about the same space, and easier as a track can run under it.

For a row of LEDs at 2mm spacing, perfect.

Indeed, almost all of my designs work, even the coaster which is 124 LEDs in rings!

2025-09-28

Power saving on hot tub, and what not to do

I have posted much on the hot tub. It came with the house, and has been a huge lesson.

Hourly check, some heating, and 13:00 jets

I have also posted how it goes off, and how lately it is a lot better, and I think I finally have the answer.

So this is posted as a word of warning.

Saving power

Something I did early on was put the hot tub on a timer. On during day so I could use it, and on from 2 to 5am to use cheap electricity to top up. The logic of this saving time heating, vs constantly on and allowing thermostat to go on/off, is not clear, but the main saving was that it used cheap electricity at night for a big chunk of the daily usage. So even if heating as long, it was heating cheaper.

Initially this still meant a lot of use, but I have since insulated the internals (lots of pipes with no insulation in there), and moved to a heat pump (less time on, and less power used when on). But still on a timer.

Symtoms

The key problem was that every couple of months it would go off. Start going cloudy, dirty, and getting pH right was almost impossible. No, changing filter alone did not help. So I would empty, and refill, at some cost to reheat a whole tub. Some people were understandably puzzled I had this issue. I was resigned to it being just how it worked.

Obviously I had to add water due to evaporation, ensure chlorine and algicide, and change filter occasionally. But it would still go off after a few months regardless.

What was less obvious is the occasional use by someone that is not me. I would lie there and read, and it would last a few months with no issue. But some times, someone else (relative) would use. On one occasion I berated someone for leaving the tub filthy - so much so I emptied and refilled. It was dirty and cloudy after their one use. I hereby apologise, as I think not their fault.

One clue was Alice, my granddaughter, who uses it when she is here, and usually fine. But on one occasion, after the tub have been a couple months since a refill, she used it, with me as well, and she had a shower first, and I could see she had not dragged in dirt from the garden on her feet, and it was quite a short session. But after use, it was cloudy and dirty. How?

Using a timer

I believe I have solved it, and it is totally silly. Be warned!

The hot tub has water jets, as many do. And these have a lot of pipes (one reason I insulated them all). I don't use the jets when sat reading, but Alice likes them, and so do others.

The hot tub is not stupid, it runs all the water jets for a few minutes every day. In the early days this did surprise us when using it. It seems to do in the afternoon and not sure I can control when. It also has a circulation pump I can control for twice a day for the main tub.

But it has no persistent clock, so the timer meant that twice a day it started as midnight. And was not getting to what it considered afternoon. So did not run the jets, at all, ever!!!

You can imagine the effect, water in lots of pipes, never moving. Even with the chlorine and algicide, and changing filter, this did not help that water stagnating.

Even with no use of the water jets, after a few months it went off, but using the jets would just circulate that all and leave the tub dirty and cloudy. This explained why Alice, and others, using it (with water jets) made it dirty.

Not using a timer

The good news is that now I am not using a timer, it is not going off at all. Yes, I need to change the filter. If I leave it without topping up the chlorine, etc, it may go a tad cloudy, but immediately clear up when I top up (this did not work before). It just says clean, and clear, and nice.

As for cost, well, using heat pump and having battery, and the extra insulation, mean it uses way less power now, and when it does is often from battery that charged from solar, or cheap night electricity. So running 24/7 is nothing like the issue it was when I first started with it.

The house uses way more than average domestic, but even so, several months over the summer we had a negative electricity cost, even with a hot tub on 24/7.

So using a timer on your hot tub may be bad, be warned!

My ultimate e-paper board...

I have stock of some very nice Waveshare 7.5" E-paper panels with bonded glass and black border. They are very cool. I made a driver b...