These photos were sent over to me by a friend, an interesting piece of tech that’s used in the retail industry. This is a BluVision BLE Beacon, which as far as I can tell is used to provide some automated customer assistance. From their website it seems they can also be used for high-price asset protection & tracking. These units don’t appear to be serviceable, being completely sealed & only having a primary cell. I’m not sure what they cost but it seems to be an expensive way to contact clients with adverts etc.
There’s not much populated on this PCB, the main component here is the CC2640 SimpleLink ultra-low-power wireless microcontroller for Bluetooth Low Energy. It’s a fairly powerful CPU, with an ARM Cortex M3 core, 129KB of flash & up to 48MHz clock speed. There’s a couple of crystals, one of which is most likely a 32,768kHz low-power sleep watch crystal, while the other will be the full clock frequency used while it’s operating. Unfortunately I can’t make the markings out from the photos. There doesn’t appear to be any significant power supply components, so this must be running direct from the battery underneath.
The other side of the PCB has a single primary lithium cell, rated at 3.6v, 2.2Ah. The factory spec sheet specifies a 2.2 year life at 0dBm TX Power, Running 24/7, 100ms advertisement rate.
Since I’ve been working on the backend servers a lot over the past few days, I’ve decided it was time to get some broken things on the blog fixed.
Firstly, the radiation monitor graphs. Originally I was using a Raspberry Pi to grab the data from the local monitor, and that was connecting via FTP to the server over in the datacentre to push it’s graph images. Since the server is now on the same local network as the monitor, there’s no need to faff about with FTP servers, so I’ve rejigged things with some perl scripts from cristianst85 over on GitHub, running on the web server itself.
I deviated from the suggested place to put the scripts on the server & opted to store everything within the Experimental Engineering hosting space, so it gets backed up at the same time as everything else on a nightly basis.
This is also accessible from the menu at top left, the script pulls data from the monitor & updates the images every 60 seconds via a cron job.
I’ve removed a couple of dead pages from the blog system, along with some backend tidying of the filesystem. Over the years things have gotten quite messy behind the scenes. This blog is actually getting quite large on disk, I’ve hit the 15GB mark, not including the database!
Caching is enabled for all posts on the blog now, this should help speed things up for repeat visitors, but as most of my content is (large) image based, this might be of limited help. I’m currently tuning the MySQL server for the load conditions, but this takes time, as every time I change some configuration settings I have to watch how things go for a few days, before tweaking some more.
Server Control Panels – More Of The Same
Sorry Sentora. I tried, and failed to convert over to using it as my new server control panel. Unfortunately it just doesn’t give me the same level of control over my systems, so I’ll be sticking with Virtualmin for the foreseeable future. Sentora stores everything in, (to me at least), very odd places under /var/ and gave me some odd results with “www.” versions of websites – some www. hosts would work fine, others wouldn’t at all & just redirect to the Sentora login interface instead. This wasn’t consistient between hosting accounts either, and since I didn’t have much time to get the migration underway, this problem was the main nail in the coffin.
Just storing everything under the sun in /var/ makes life a bit more awkward with the base CentOS install, as it allocates very little space to / by default, (no separate /var partition in default CentOS), giving most of the disk space to /home. Virtualmin on the other hand, stores website public files & Maildirs under /home, saving /var for MySQL databases & misc stuff.
The backup system provided is also utterly useless, there’s no restore function at all, and just piles everything in the account into a single archive. By comparison, Virtualmin has a very comprehensive backup system built in, that supports total automation of the process, along with full automatic restore functionality for when it’s needed.
Sentora did have some good points though:
It handled E-Mail logins & mail filters much more gracefully than Virtualmin does, and comes with Roundcube already built into the interface ready to use. With Virtualmin the options are to use the Usermin side of the system for E-Mail, which I find utterly awful to use, or install a webmail client under one of the hosted domains (my personal choice).
Mail filtering is taken care of with Sieve under Sentora, while Procmail does the job under Virtualmin.
Sentora does have a nicer, simpler, more friendly interface, but it hides most of the low-level system stuff away, while under Virtualmin *everything* on the system is accessible, and it provides control interfaces for all the common server daemons.
It’s been 4 months since I did a rejig of my storage server, installing a new 16-port SATA HBA to support the disk drives. I mentioned the factory fan the card came with in my previous post, and I didn’t have many hopes of it surviving long.
The heatsink card has barely had enough time to accumulate any grime from the air & the fan has already failed!
There’s no temperature sensing or fan speed sensing on this card, so a failure here could go unnoticed, and under load without a fan the heatsink becomes hot enough to cause burns. (There are a total of 5 large ICs underneath it). This would probably cause the HBA to overheat & fail rather quickly, especially when under a high I/O load, with no warning. In my case, the bearings in the fan failed, so the familiar noise of a knackered sleeve bearing fan alerted me to problems.
A replacement 80mm Delta fan has been attached to the heatsink in place of the dead fan, and this is plugged into a motherboard fan header, allowing sensing of the fan speed. The much greater airflow over the heatsink has dramatically reduced running temperatures. The original fan probably had it’s bearings cooked by the heat from the card as it’s airflow capability was minimal.
Here’s the old fan removed from the heatsink. The back label, usally the place where I’d expect to find some specifications has nothing but a red circle. This really is the cheapest crap that the manufacturer could have fitted, and considering this HBA isn’t exactly cheap, I’d expect better.
Peeling off the back label reveals the back of the bearing housing, with the plastic retaining clip. There’s some sign of heat damage here, the oil has turned into gum, all the lighter fractions having evaporated off.
The shaft doesn’t show any significant damage, but since the phosphor bronze bearing is softer, there is some dirt in here which is probably a mix of degraded oil & bearing material.
There’s more gunge around the other end of the bearing & it’s been worn enough that side play can be felt with the shaft. In ~3000 hours running this fan is totally useless.
Here the pipework feeding the matrix of the blower unit has been tapped into the heating circuit, the first radiator on the loop is just out of shot to the right, this is all tucked away under the bed in one of the cabins. The pipestat is attached to the flow from the boiler, this will switch on the blower once hot water starts flowing through the system. Isolation valves have been fitted to make the inevitable maintenance of the matrix unit easier, as the system is pressurised to 14PSI, dropping the pressure out of the system without making quite a mess is difficult.
The heater itself is mounted on the other side of a wooden partition in the small space left under a shelf. This made installing the unit like trying to plumb in a radiator through a letterbox ;). 4 60mm ducts snake off to the vents mounted in the wall.
The hot water hoses appear through a hole in the timber to connect to the matrix unit, with some 15mm pipe in between as reducers from the 3/4″ hose to the 1/2″ attached to the matrix itself. The blower is wired in low speed mode only, as running it any faster makes far too much noise from the vents.
As a heating solution, this unit works well onboard. Within a 10 minutes of the diesel heater firing up, the blower automatically comes on thanks to the thermostat, and blows plenty of hot air into the saloon to keep the cold at bay.
For some time now I’ve been running a large disk array to store all the essential data for my network. The current setup has 10x 4TB disks in a RAID6 array under Linux MD.
Up until now the disks have been running in external Orico 9558U3 USB3 drive bays, through a PCIe x1 USB3 controller. However in this configuration there have been a few issues:
Congestion over the USB3 link. RAID rebuild speeds were severely limited to ~20MB/s in the event of a failure. General data transfer was equally as slow.
Drive dock general reliability. The drive bays are running a USB3 – SATA controller with a port expander, a single drive failure would cause the controller to reset all disks on it’s bus. Instead of losing a single disk in the array, 5 would disappear at the same time.
Cooling. The factory fitted fans in these bays are total crap – and very difficult to get at to change. A fan failure quickly allows the disks to heat up to temperatures that would cause failure.
Upgrade options difficult. These bays are pretty expensive for what they are, and adding more disks to the USB3 bus would likely strangle the bandwidth even further.
Disk failure difficult to locate. The USB3 interface doesn’t pass on the disk serial number to the host OS, so working out which disk has actually failed is difficult.
To remedy these issues, a proper SATA controller solution was required. Proper hardware RAID controllers are incredibly expensive, so they’re out of the question, and since I’m already using Linux MD RAID, I didn’t need a hardware controller anyway.
A quick search for suitable HBA cards showed me the IOCrest 16-port SATAIII controller, which is pretty low cost at £140. This card breaks out the SATA ports into standard SFF-8086 connectors, with 4 ports on each. Importantly the cables to convert from these server-grade connectors to standard SATA are supplied, as they’re pretty expensive on their own (£25 each).
This card gives me the option to expand the array to 16 disks eventually, although the active array will probably be kept at 14 disks with 2 hot spares, this will give a total capacity of 48TB.
Here’s the card installed in the host machine, with the array running. One thing I didn’t expect was the card to be crusted with activity LEDs. There appears to be one LED for each pair of disks, plus a couple others which I would expect are activity on the backhaul link to PCIe. (I can’t be certain, as there isn’t any proper documentation anywhere for this card. It certainly didn’t come with any ;)).
I’m not too impressed with the fan that’s on the card – it’s a crap sleeve bearing type, so I’ll be keeping a close eye on this for failure & will replace with a high quality ball-bearing fan when it finally croaks. The heatsink is definitely oversized for the job, with nothing installed above the card barely gets warm, which is definitely a good thing for life expectancy.
Update 10/02/17 – The stock fan is now dead as a doornail after only 4 months of continuous operation. Replaced with a high quality ball-bearing 80mm Delta fan to keep things running cool. As there is no speed sense line on the stock fan, the only way to tell it was failing was by the horrendous screeching noise of the failing bearings.
Above is the final HBA installed in the PCIe x1 slot above – a parallel SCSI U320 card that handles the tape backup drives. This card is very close to the cooling fan of the SATA card, and does make it run warmer, but not excessively warm. Unfortunately the card is too long for the other PCIe socket – it fouls on the DIMM slots.
The tape drives are LTO2 300/600GB for large file backup & DDS4 20/40GB DAT for smaller stuff. These were had cheap on eBay, with a load of tapes. Newer LTO drives aren’t an option due to cost.
The main disk array is currently built as 9 disks in service with a single hot spare, in case of disk failure, this gives a total size after parity of 28TB:
/dev/md0:
Version : 1.2
Creation Time : Wed Mar 11 16:01:01 2015
Raid Level : raid6
Array Size : 27348211520 (26081.29 GiB 28004.57 GB)
Used Dev Size : 3906887360 (3725.90 GiB 4000.65 GB)
Raid Devices : 9
Total Devices : 10
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Nov 14 14:28:59 2016
State : active
Active Devices : 9
Working Devices : 10
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Name : Main-PC:0
UUID : 266632b8:2a8a3dd3:33ce0366:0b35fad9
Events : 773938
Number Major Minor RaidDevice State
0 8 48 0 active sync /dev/sdd
1 8 32 1 active sync /dev/sdc
9 8 96 2 active sync /dev/sdg
10 8 112 3 active sync /dev/sdh
11 8 16 4 active sync /dev/sdb
5 8 176 5 active sync /dev/sdl
6 8 144 6 active sync /dev/sdj
7 8 160 7 active sync /dev/sdk
8 8 128 8 active sync /dev/sdi
12 8 0 - spare /dev/sda
The disks used are Seagate ST4000DM000 Desktop HDDs, which at this point have ~15K hours on them, and show no signs of impending failure.
Here’s a screenshot with the disk array fully loaded running over USB3. The aggregate speed on the md0 device is only 21795KB/s. Extremely slow indeed.
This card is structured similarly to the external USB3 bays – a PCI Express bridge glues 4 Marvell 9215 4-port SATA controllers into a single x8 card. Bus contention may become an issue with all 16 ports used, but as far with 9 active devices, the performance increase is impressive. Adding another disk to the active array would certainly give everything a workout, as rebuilding with an extra disk will hammer both read from the existing disks & will write to the new.
With all disks on the new controller, I’m sustaining read speeds of 180MB/s. (Pulling data off over the network). Write speeds are always going to be pretty pathetic with RAID6, as parity calculations have to be done. With Linux MD, this is done by the host CPU, which is currently a Core2Duo E7500 at 2.96GHz, with this setup, I get 40-60MB/s writes to the array with large files.
Since I don’t have a suitable case with built in drive bays, (again, they’re expensive), I’ve had to improvise with some steel strip to hold the disks in a stack. 3 DC-DC converters provides the regulated 12v & 5v for the disks from the main unregulated 12v system supply. Both the host system & the disks run from my central battery-backed 12v system, which acts like a large UPS for this.
The SATA power splitters were custom made, the connectors are Molex 67926-0001 IDC SATA power connectors, with 18AWG cable to provide the power to 4 disks in a string.
These require the use of a special tool if you value your sanity, which is a bit on the expensive side at £25+VAT, but doing it without is very difficult. You get a very well made tool for the price though, the handle is anodised aluminium & the tool head itself is a 300 series stainless steel.
Here’s a useful tool for testing both power supplies & batteries, a dummy load. This unit is rated up to 60W, at voltages from 1v to 25v, current from 200mA to 9.99A.
This device requires a 12v DC power source separate from the load itself, to power the logic circuitry.
Like many of these modules, the brains of the operation is an STM8 microcontroller. There’s a header to the left with some communication pins, the T pin transmits the voltage when the unit is operating, along with the status via RS232 115200 8N1. This serial signal is only present in DC load mode, the pin is pulled low in battery test mode. The 4 pins underneath the clock crystal are the programming pins for the STM8.
The main heatsink is fan cooled, the speed is PWM controlled via the microcontroller depending on the temperature.
The main load MOSFET is an IRFP150N from Infineon. This device is rated at 100v 42A, with a max power dissipation of 160W. On the right is a dual diode for reverse polarity protection, this is in series with the MOSFET. On the left is the thermistor for controlling fan speed.
The load is usually connected via a rising clamp terminal block. I’ve replaced it with a XT60 connector in this case as all my battery holders are fitted with these. This also removes the contact resistance of more connections for an adaptor cable. The small JST XH2 connector on the left is for remote voltage sensing. This is used for 4-wire measurements.
Powering the device up while holding the RUN button gets you into the menu to select the operating modes. Function 1 is simple DC load.
The rotary encoder is used to select the option. Function 2 is battery capacity test mode.
After the mode is selected, an option appears to either turn the beeper on or off.
When in standby mode, the threshold voltage & the load current can be set. Here the Amps LED is lit, so the load current can be set. The pair of LEDs between the displays shows which digit will be changed. Pressing the encoder button cycles through the options.
With the Volts LED lit, the threshold voltage can be changed.
When in DC load mode (Fun1), the device will place a fixed load onto the power source until it’s manually stopped. The voltage setting in this mode is a low-voltage alarm. The current can be changed while the load is running.
When in battery discharge test mode (Fun2), the voltage set is the cutoff voltage – discharge will stop when this is reached. Like the DC load mode, the current can be changed when the load is running. After the battery has completed discharging, the capacity in Ah & Wh will be displayed on the top 7-segment. These results can be selected between with the encoder.
Below are tables with all the options for the unit, along with the error codes I’ve been able to decipher from the Chinese info available in various places online. (If anyone knows better, do let me know!).
Option
Function
Fun1
Basic DC Load
Fun 2
Battery Capacity Test
BeOn
Beeper On
BeOf
Beeper Off
Error Code
Meaning
Err1
Input Overvoltage
Err2
Low Battery Voltage / No Battery Present / Reverse Polarity
Err3
Battery ESR Too High / Cannot sustain selected discharge current
Err4
General Failure
Err6
Power Supply Voltage Too Low / Too High. Minimum 12v 0.5A.
To do some upgrades to my NAS, I needed some SATA power adaptors, to split the PSU out to the planned 16 disk drives. eBay has these for very little money, however there’s a good reason for them being cheap.
The marking on the wire tells me it’s 18AWG, which should be good for 9.5A at an absolute maximum. However these adaptors are extremely light.
Here’s the cheapo eBay wire compared to proper 18AWG wire. The cores in the eBay adaptor are tiny, I’d guess about 24AWG, only good for about 3A. As disk drives pull about 2A from the +12v rail on startup to spin the platters up to speed, this thin wire is going to cause quite the volt drop & possibly prevent the disk from operating correctly.
As one of my current projects involves a small petrol engine – a Honda GX35 clone, I figured an hour counter would be very handy to keep an eye on service intervals. (More to come on the engine itself later on). I found a device that would suit my needs on good old eBay.
These engine monitors are pretty cheap, at about £4. The sensing is done by a single heat-resistant silicone wire, that wraps around the HT lead to the spark plug. The unit can be set for different firing intervals via the buttons. In the case of most single-cylinder 4-stroke engines, the spark plug fires on every revolution – wasted-spark ignition. This simplifies the ignition system greatly, by not requiring the timing signal be driven from 1/2 crankshaft speed. The second “wasted” spark fires into the exhaust stroke, so has no effect.
The back cover is lightly glued into place with a drop of cyanoacrylate in opposite corners, but easily pops off. The power is supplied by a soldered-in 3v Lithium cell. The main microcontroller has no number laser etched on to it at all – it appears it skipped the marking machine.
The input from the sensing wire comes in through a coupling capacitor & is amplified by a transistor. It’s then fed into a 74HC00D Quad 2-Input NAND gate, before being fed into the microcontroller.
The pickup wire is simply wound around the spark plug lead. I’ve held it in position here with some heatshrink tubing. Heat in this area shouldn’t be an issue as it’s directly in the airflow from the flywheel fan.
Time foe some more retro tech! This is a 1980’s vintage CCD-based VHS camcorder from Panasonic, the NV-M5. There are a lot of parts to one of these (unlike modern cameras), so I’ll split this post into several sections to make things easier to read (and easier to keep track of what I’m talking about :)).
The left side of the camera holds the autofocus, white balance, shutter speed & date controls.
The lens is fully adjustable, with either manual or motorized automatic control.
The back panel has the battery slot, a very strange looking DC input connector, remote control connector & the earphone jack.
The top panel of the camera holds the main power controls, manual tape tracking & the tape transport control panel.
The viewfinder is mounted on a swivel mount. There’s a CRT based composite monitor in here. Hack ahoy!
Camera Section
Here’s the camera section of the camcorder, and is totally packed with electronics! There’s at least half a dozen separate boards in here, all fitted together around the optics tube assembly.
On the top of the assembly is the Automatic White Balance PCB. Many adjustments here to get everything set right. Not much on the other side of this board other than a bunch of Op-Amps. The iris stepper motor is fitted in a milled opening in the PCB, this connects to one of the other PCBs in the camera module.
Here’s the AWB sensor, mounted next to the lens. I’m not all to certain how this works, but the service manual has the pinout, and there are outputs for all the colour channels, RGB. So it’s probably a trio of photodiodes with filters.
Focus & Zoom are controlled with a pair of DC gear motors. The manual operation is feasible through the use of slip clutches in the final drive pinion onto the lens barrel.
The main camera section process board is above. This board does all the signal processing for the CCD, has the bias voltage supplies and houses the control sections for the motorized parts of the optics assembly. There are quite a few dipped Tantalum capacitors on pigtails, instead of being directly board mounted. This was probably done due to space requirements on the PCB itself.
Under the steel shield on this board is some of the main signal processing for the CCD.
The back of the optics tube is a heavy casting, to supress vibration. This will be more clear later on.
The position of the lens elements is determined by reflective strips on the barrel & sensors on this flex PCB.
There’s another small board tucked into the side of the tube, this hooks into the process PCB.
According to the schematic, there’s nothing much on this board, just a delay line & a few transistors.
Here’s the reason for the heavy alloy casing at the CCD mounting end of the optics: the fine focus adjustment is done with a piezoelectric disc, the entire CCD assembly is mounted to this board. Applying voltage to the electrodes moves the assembly slightly to alter the position of the CCD. The blue glass in the centre of the unit is the IR filter.
The barrel position sensors are these IR-reflective type.
The iris is mounted just before the CCD, this is controlled with a galvanometer-type device with position sensors incorporated.
Pushing on the operating lever with the end of my screwdriver opens the leaves of the iris against the return spring.
Tape Transport & Main Control
Tucked into the side of the main body of the unit is the main system control board. This PCB houses all the vital functions of the camera: Power Supply, Servo Control, Colour Control,Video Amplifiers, etc.
Here’s the main tape transport mechanism, this is made of steel & aluminium stampings for structural support. The drum used in this transport is noticeably smaller than a standard VHS drum, the tape is wrapped around more of the drum surface to compensate.
The VHS tape sits in this carriage & the spools drive the supply & take up reels in the cartridge.
Here’s the component side of the main control PCB. This one is very densely packed with parts, I wouldn’t like to try & troubleshoot something like this!
The left side has the video head amp at the top, a Panasonic AN3311K 4-head video amp. Below that is video processing, the blue components are the analogue delay lines. There are a couple of hybrid flat-flex PCBs tucked in between with a couple of ICs & many passives. These hybrids handle the luma & chroma signals.
Top left is the capstan motor driver a Rohm BA6430S. The transport motors are all 3-phase brushless, with exception of the loading motor, which is a brushed DC type.
Here’s what is inside the delay lines for the analogue video circuits. The plastic casing holds a felt liner, inside which is the delay line itself.
The delay is created by sending an acoustic signal through the quartz crystal inside the device by a piezoelectric transducer, bouncing it off the walls of the crystal before returning it to a similar transducer.
Here’s the centre of the board, the strange crystal at bottom centre is the clock crystal for the head drum servo. Why it has 3 pins I’m not sure, only the two pins to the crystal inside are shown connected on the schematic. Maybe grounding the case?
The main servo controls for the head drum & the capstan motor are top centre, these get a control signal from the tape to lock the speed of the relative components.
Here’s the right hand side. The main power supply circuitry is at top right, with a large can containing 4 switching inductors & a ferrite pot core transformer. All these converters are controlled by a single BA6149 6-channel DC-DC converter controller IC via a ULN2003 transistor array.
The ceramic hybrid board next to the PSU has 7 switch transistors for driving various indicator LEDs.
The large tabbed IC bottom centre is the loading motor drive, an IC from Mitsubishi, the M54543. This has bidirectional DC control of the motor & built in braking functions. The large quad flat pack IC on the right is the MN1237A on-screen character generator, with the two clock crystals for the main microcontroller.
The full erase head has it’s power supply & oscillator on board, applying 9v to this board results in an AC signal to the head, which erases the old recording from the tape before the new recording is laid down by the flying heads on the drum.
The Audio & Control head is connected to this PCB, which handles both reading back audio from the tape & recording new audio tracks. The audio bias oscillator is on this board, & the onboard microphone feeds it’s signal here. The control head is fed directly through to the servo section of the main board.
The motor that drives the head drum is another DC brushless 3-phase type.
These 3 Hall sensors are used by the motor drive to determine the rotor position & time commutation accordingly.
The stator on this motor is of interesting construction, with no laminated core, the coils are moulded into the plastic holder. The tach sensor is on the side of the stator core. This senses a small magnet on the outside of the rotor to determine rotational speed. For PAL recordings, the drum rotates at 1500 RPM.
Not much under the stator other than the bearing housing & the feedthrough to the rotary transformer.
The heads are mounted onto the top disc of the drum, 4 heads in this recorder. The signals are transmitted to the rotating section through the ferrite rotary transformer on the bottom section.
The tiny winding of the ferrite video head can just about be seen on the end of the brass mounting.
The capstan motor is similar to the drum motor, only this one is flat. The rotor has a ferrite magnet, in this case it wasn’t glued in place, just held by it’s magnetic field.
The PCB on this motor has a steel backing to complete the magnetic circuit, the coils for the 3 motor phases are simply glued in place. The Hall sensors on this motor are placed in the middle of the windings though.
Again there is a tach sensor on the edge of the board that communicates the speed back to the controller. This allows the servo to remain locked at constant speed.
Viewfinder
As usual with these cameras, this section is the CRT based viewfinder. These units take the composite signal from the camera to display the scene. This one has many more pins than the usual viewfinder. I’ll hack a manual input into this, but I’ll leave that for another post.
Being an older camera than the ones I’ve had before, this one is on a pair of PCBs, which are both single-sided.
The main board has all the power components for driving the CRT & some of the adjustments. The main HV flyback transformer is on the right. This part creates both the final anode voltage for the tube & the focus/grid voltages.
The viewfinder control IC is on a separate daughter board in this camera, with two more controls.
The control IC is a Matsushita AN2510S, this has all the logic required to separate the sync pulses from the composite signal & generate an image on the CRT.
The recording indicator LEDs are mounted in the frame of the CRT & appear above the image in the viewfinder.
Here the CRT has been separated from the rest of the circuitry with just the deflection yoke still attached.
The electron gun in this viewfinder CRT is massive in comparison to the others that I have seen, and the neck of the tube is also much wider. These old tubes were very well manufactured.
A simple mirror & magnifying lens completes the viewfinder unit.
This is something I’ve never seen before. Yesterday, on the Lower Peak Forest Canal, a bunch of kids on off-road bikes came thundering down the towpath – one even pulled a wheelie.
There’s considerable motion blur in the photos, as they were doing some speed, at least 30MPH at that stage.
I did get significant verbal abuse of them for having a camera on them, but thee didn’t bother stopping. This happened at the Romiley side of Woodley Tunnel, just past the portal.
Here’s another Dyson teardown, in my efforts to understand how marketing have got hold of relatively simple technology & managed to charge extortionate amounts of money for it.
This is the DC35, the model after the introduction of the brushless digital motor.
On this version the mouldings have been changed, and the back cover comes off, after removing the battery retaining screw. It’s attached with some fairly vicious clips, so some force is required. Once the cap is removed, all the electronics are visible. On the left is the motor itself, with it’s control & drive PCB. There’s another PCB on the trigger, with even more electronics. The battery connector is on the right.
Here’s the trigger PCB, which appears to deal with DC-DC conversion for powering the brush attachments. The QFN IC with yellow paint on it is an Atmel ATTiny461 8-bit microcontroller. This is probably controlling the DC-DC & might also be doing some battery authentication.
Here’s the motor & it’s board. The windings on the stator are extremely heavy, which makes sense considering it’s rated at 200W. The main control IC is a PIC16F690 from Microchip. Instead of using an off the shelf controller, this no doubt contains software for generating the waveforms that drive the brushless motor. It also appears to communicate with the other PCBs for battery authentication.
Desoldering the board allows it to be removed from the motor itself. The pair of windings are connected in anti-phase, to create alternating North-South poles depending on polarity. Since the existing controller is unusable due to software authentication with the other parts, I might have a go at building my own driver circuit for this with an Arduino or similar.
The blower assembly is simple plastic mouldings, pressed together then solvent welded at the seam.
The impeller is just a centrifugal compressor wheel, identical to what’s used in engine turbochargers.
The inside face of the control PCB holds the 4 very large MOSFETs, IRFH7932PbF from International Rectifier. These are rated at 30v 20A a piece, and are probably wired in a H-Bridge. There’s a bipolar Hall switch to sense rotor position & rotation speed, and an enormous pair of capacitors on the main power bus.
Not much on the other side of the PCB other than the microcontroller and associated gate drive stuff for the FETs.
The battery pack is similar to the DC16 in it’s construction, a heavily clipped together plastic casing holding 6 lithium cells. In this one though there’s a full battery management system. The IC on the top of the board above is a quad Op-Amp, probably for measuring cell voltages.
The other side of the BMS board is packed with components. I wasn’t able to identify the QFN IC here, as it’s got a custom part number, but it’s most definitely communicating with the main motor MCU via I²C over the two small terminals on the battery connector.
Now the controllers have arrived, I can rejig the supplies to have proper thermal control on their cooling.
Here’s the top off the PSU. The board has been added to the back panel, getting it’s 12v supply from the cable that originally fed the fan directly. Luckily there was just enough length on the temperature probe to fit it to the output rectifier heatsink without modification.
To connect to the standard 4-pin headers on the controller, I’ve spliced on a PC fan extension cable, as these fans spent their previous lives in servers, with odd custom connectors.
Here’s the controller itself, the temperature probe is inserted between the main transformer & the rectifier heatsink.
I’ve set the controller to start accelerating the fan at 50°C, with full speed at 70°C.
Under a full load test for 1 hour, the fan didn’t even speed up past about 40% of full power. The very high airflow from these fans is doing an excellent job of keeping the supply cool. Previously the entire case was very hot to the touch, now everything is cool & just a hint of warm air exits the vents. As the fan never runs at full speed, the noise isn’t too deafening, and immediately spools back down to minimum power when the load is removed.
Finally, after a couple of weeks wait time, the fan controllers for the power supplies have arrived. They’re small boards, which is good for the small space left inside the case of the supply.
Here they are. I’m not certain what the pair of potentiometers are for – there’s no mention of them in the documentation. Possibly for calibration.
Beepers are supplied so an alarm can be heard if the fan fails – very useful for this application.
Here’s a closeup of the PCB. Options are set with the DIP switch bank on the left, details for that below. The main IC is a STM8S103F3 flash microcontroller.
The only issue at the moment is that the temperature probe leads are much too short. I’ll have to make a small modification to get enough length here.
Here’s all the details on the boards, more for future reference when they undoubtedly vanish from eBay 😉
Specifications
Working voltage:DC12V
Circuit load capacity: maximum current per output 5A, the bus currents up 9A
Output Range: The first channel 20% -100%, or 40% -100% (TFL = ON)
The second channel and the third channel 10% -100%
(Note: Above range only for PWM range, the actual control effect will vary depending on the fan.)
Temperature probe parameters: 50K B = 3950
Thermostat temperature zone error: error depending on the temperature probe, generally 3-5%
Stall alarm minimum speed: 700-800 rpm
Function setting switch Description:
TFL (No. 1): The lowest temperature channel PWM setting, when ON state FAN1 PWM minimum is 40%, when OFF the minimum PWM of FAN1 is 20%.
TP1 TP2 (No. 2,3): Temperature channel control temperature zones are interpreted as follows (need to used with the temperature probe):
TP1
TP2
Accelerating temperature
Full speed temperature
OFF
OFF
35℃
45℃
ON
OFF
40℃
55℃
OFF
ON
50℃
70℃
ON
ON
60℃
90℃
When the temperature lower than the accelerated temperature, then output at the minimum rotation speed; when it exceed over the full temperature, then always output at full speed.
BF1 BF2 (No. 4,5): corresponds FAN1 FAN2 stall alarm function switch, when the corresponding open channel fan break down, the controller will alarm with soundand light (works with buzzle), alarm will automatically eliminated when the fan is rotated recovery . If BF1 and BF2 both are open (ON), the FAN1, FAN2 have any one or both stops, the controller will alarm!
Since I have a fair few 750GB disks sat doing nothing, I figured I’d get some USB3 caddies for them. Back when USB -> IDE caddies appeared, they were hideously expensive. Not so much these days!
For £6 on eBay, you get a basic plastic box with the required bridge circuitry.
Here’s the PCB – a very basic affair, with only 2 ICs. The large QFN IC on the left is the USB-SATA bridge. It’s a JMicron JMS567. Unfortunately JMicron are rather secretive about their bridge chips & I can’t find much information about it, nor a datasheet.
Here’s the other side of the bridge PCB – not much on here, the activity indicator LED is a bit of a bodge job, but it’s functional. The IC on the right is a Pm25LD512 512Kbit SPI EEPROM. This is used to store things like the USB device & vendor IDs, device name, type, etc. Here’s what dmesg spits out when the disk is connected on my standard Linux system:
[snippet id=”1769″]
Here’s some speed benchmarks:
First attached to a USB2 port, above
And finally attached to a USB3 port, above
Tests were done with a 320GB 5400RPM Samsung HM321HI drive, direct into the root hub, for the shortest possible signal length.
While I’m waiting for the fan controllers to arrive for the new cooling fans, I figured I’d get them fitted into the cases of the supplies & just have them run at minimum speed for now.
After removing the original small fan, I cut a larger square hole in the panel to fit the 60mm version. These fans only fit with some minor adjustment to the top & bottom mouldings, but the look isn’t too bad once the covers are back on. The wiring is routed through a small hole next to the fan itself.
I’ve also upgraded on the fans again – these are PFC0612DE, with a higher airflow of ~70CFM at 12,000RPM.
To get the fans to run at minimum speed, the PWM control wire is connected directly to GND.
The power supplies I have recently built from surplus Cisco switch boards have started displaying a rather irritating problem – continual load of over 9A causes the supplies to shut down on overheat.
This was partially expected, as the original switches that these supplies came from are cooled by a monster of a centrifugal blower that could give a Dyson a run for it’s money. The problem with these fans is that they’re very loud, draw a lot of power (3-4A) and aren’t small enough to fit into the case I’ve used for the project.
The solution of course, is a bigger fan – I’ve got some Delta AFB0612EHE server fans, these are very powerful axial units, shifting 60CFM at 11,000RPM, with a power draw of 1.12A.
They’re 60mm diameter, so only just fit into the back of the case – although they stick out of the back by 40mm.
Here’s the fan, not the beefiest I have, but the beefiest that will fit into the available space.
These will easily take fingers off if they get too close at full speed, so guards will definitely be required.
To reduce the noise (they sound like jet engines at full pelt), I have ordered some PWM controllers that have a temperature sensor onboard, so I can have the fan run at a speed proportional to the PSU temperature. I will probably attach the sensor to the output rectifier heatsink, since that’s got the highest thermal load for it’s size.
Following on from my recent power supply build, I’ve added on a couple of improvements:
I’ve added on my standard SpeakOn type 30A connector, a bank of push terminals for quick connecting test leads, and a 15A FSD ammeter.
Due to the limited space inside the supply, I’ve had to improvise some insulation on the mains-side heatsink to prevent a nasty accident. The heatsinks are tied to the supply’s HVDC bus negative, so they are energized at -145v DC relative to mains earth. This fact has given me a nasty surprise! The insulation is several layers of Kapton tape, with a couple of layers of Duct Tape. This along with trirated wire to the SpeakOn & the panel meter should ensure safety.
The Ammeter itself was sourced from eBay, for £2. It seems pretty accurate so far!
The shunt is built into the rear of these meters, in an ultrasonically welded part of the case, so I can’t examine it. Hopefully it is indeed rated to 15A!
The only things left to make this supply complete are a mains power switch, and a fan speed control, as the fan I have used is a little noisy at full speed. It will be good to get the speed based from the internal temperature, so the fan only runs at full speed when the supply is under load.
To accompany the previous two posts about hydraulic generators & their components, here is the actual generator unit itself.
Rated at 8.5kVa 230v AC, this will providea mains supply while the narrowboat is away from her home mooring.
This unit will be attached to the side of the hull in the engine room on rubber vibration isolation mounts, behind the main hydraulic oil tank & is driven from the small gear pump attached to the back of the main propulsion hydraulic pump unit.
Operating pressure is 175 bar, 21L/m flow rate to achieve the 3,000RPM rotor speed for 50Hz mains frequency.
Finally, after months of messing about with the original seller of the generator unit, (Mike Webb from hydraulicgenerators.co.uk, more to come about the nightmare I had dealing with this man), we have had to purchase a new hydraulic control valve for the genset, as the original unit supplied was missing parts.
Thanks to Martin Bullock from BSP Hydraulics for supplying this at short notice!
This unit contains a pressure relief valve, to set system operating pressure, a throttle/flow control valve to set generator motor speed & a solenoid controlled spool valve to control general oil flow to the generator. This last section effectively operates as an ON/OFF control.
System pressure will be ~175 Bar at 21 litres/minute.
More to come soon with the final assembly, hosing up & system commissioning.
After seeing these on eBay for £8.99 I thought it might be a good deal – interfacing with the RasPi’s GPIO & it has built in power supplies.
As a kit, it was very easy to assemble, the PCB quality is high, and is a fairly good design. It worked first time, the regulators hold the rails at the right voltages.
However there are some issues with this board that bug me.
The documentation for the kit is *AWFUL*. No mention of the regulators on the parts list & which goes where – I had to carefully examine the schematics to find out those details.
The 4x 1N1007 diodes required weren’t even included in the kit! Luckily I had some 1N4148 high speed diodes lying around & even though they’re rated for 200mA continuous rather than the specified part’s 1A rating, the lack of heatsinking on the regulators wouldn’t allow use anywhere near 1A, so this isn’t much of a problem.
Component numbering on the silkscreen isn’t consistent – it jumps from R3 straight to R6! These issues could be slightly confusing for the novice builder, and considering the demographic of the RasPi, could be seen as big issues.
On the far left of the board are the 5v & 3.3v regulators, well placed on the edge of the board in case a heatsink may be required in the future. However the LM317 adjustable regulator is stuck right in the middle of the PCB – no chance of being able to fit a heatsink, & the device itself seems incredibly cheap – the heatsink tab on the back of the TO-220 is the thinnest I have ever seen. Not the usual 2-3mm thick copper of the 5v & 3.3v parts – but barely more than a mm thick, so it’s not going to be able to cope with much power dissipation without overheating quickly.
As the adjustable rail can go between ~2.5v – 10v, at the low end of the range the power dissipation is going to shoot through the roof.
The GPIO connector – this could have been done the other way, at the moment the ribbon cable has to be twisted to get both the Pi & the GPIO board the same way up. Just a slight fail there. See the image below
The power rails are not isolated out of the box – there is no connection between the 5v & 3.3v rails & the Pi’s GPIO, but the GND connections are linked together on the board.
Getting the ribbon cable through the hole in the ModMyPi case was a bit of a faff – the connector is too big! I had to squeeze the connector through at a 45° angle. The case is also remarkably tight around the connector once it’s fitted to the board – clearly the designers of the case didn’t test the an IDC connector in the case before making them!
Everything does fit though, after a little modification.
Here is the unit all built up with the case. The top cover just about fits with the IDC connector on the GPIO header.
More to come once I get some time to do some interfacing!
This unit was bought from eBay to experiment with Magnetic Stripe cards, for little money. This unit is capable of reading & writing all 3 tracks, & both Hi-Co & Lo-Co card types.
Interfaced to a PC through USB, this has a built in PL2303 USB-Serial IC & requires 3A at 9v DC to operate.
The 3 Indicator LEDs on the top of the unit can be toggled by the included software for Power/OK/Fault condition signalling.
Bottom of the unit with the model labels.
Closeup of the model label & serial number.
Here the bottom cover has been removed, showing the main PCB. The pair of large ICs bottom center interface with the magnetic heads. The IC above them has had the markings sanded off.
Closeup of the Prolific PL-2303 USB-Serial converter IC.
Here the connections to the R/W heads are visible, current limiting resistors at the left for the write head, a pair of signal relays, a pair of optoisolators & a LM7805 linear voltage regulator.
Here is the trio of indicator LEDs on a small sub-board.
The PCB has been removed from the main frame here, the only component visible is the rotary encoder.
The rotary encoder has a rubber wheel fitted, which reads the speed of the card as it is being swiped for writing. This allows the control logic to write the data to the stripe at the correct rate for the speed of the card. This allows the unit to write cards from 5-50 inches per second speed.
The Write head is directly behind the rubber pressure roller.
Here you can see the R/W head assembly. The write head is on the right, read on the left. When a card is written to, it immediately gets read by the second head for verification.
Here is a label maker, bought on offer at Maplin Electronics. Full Qwerty keyboard with 1 line dot matrix LCD display visible here. Power is 4 AAA cells or a 6v DC Adaptor.
Rear cover removed. Battery compartment is on the left hand side, space for the tape cartridge on the right. Ribbon cable leading to the thermal print head is on the far right, with rubber tape drive roller.
PCB under the top cover with the main CPU, a MN101C77CBM from Panasonic. This CPU features 48K Mask ROM & 3K of RAM. Max clock frequency is 20MHz. 32kHz clock crystal visible underneath a Rohm BA6220 Electronic speed controller IC.
This is used to drive the printer motor at a constant accurate speed, to feed the tape past the thermal head. Miniature potentiometer adjusts speed.
Ribbon cable at the bottom of the board connects to the print head, various wiring at the left connects to the battery & DC Jack.
Printer drive mechanism. Small DC motor drives the pinch roller though a gear train. DC Jack & reverse polarity protection diode is on the right.
This unit uses a centre negative DC jack, which is unusual.
Thermal tape cartridge, black text on white background.
An early speed radar detector from the early 90’s. Pictures showing the front of the unit with the option buttons.
Bottom of the unit showing label. Unlike the newer plastic detectors, the whole casing of this unit is cast aluminium.
Model Uniden Stalker RD-6000W.
PCB removed from the casing. Volume/power control on the left. Option tactile switches on the edge of the PCB, with the indicator LEDs. Power input jack on the right hand side of the PCB. Large aluminium can is the detector assembly, containing the detector diodes. Waveguide horn is at the top.
Shot down the waveguide, showing the detector diodes at the end.
Indicators on the front of the unit, X, K & Ka band detection LEDs on the left, Power & detection level (1-4) LEDs in centre. City (C) (Audio (A) & Mute (M) LEDs on the right.
Bottom of the PCB, showing detection logic. Piezo buzzer top left.
Custom Uniden CPU. Marking UC1465.
Tip Jar
If you’ve found my content useful, please consider leaving a donation by clicking the Tip Jar below!
All collected funds go towards new content & the costs of keeping the server online.