The goto program for audio measurement in the Internet age is RightMark Audio Analyzer (RMAA). It’s not an easy program to use in isolation, and is used best with some old-skool analogue technology. In particular, it doesn’t really do absolute level in any way – everything is referenced to 0dBFS.
RMAA testing is deconstructed by NwAvGuy here. His thesis is that it is impossible to use RMAA right. particularly if you have no experience of analogue electronics and no other test gear. And I’m guilty as charged of publishing RMAA test results on the internet 🙂
It saddens me a little bit that measurement has now become go out and buy £x,000 worth of test gear, plug it it, attach to D.U.T. press the button and report the result. And if you can’t do that, well, no Audio Precision test kit, no comment. I’m not dissing NwAvGuy’s observation – it’s the loss of other ways of testing audio gear I regret. I don’t test for distortion – I scan for it. That’s because I’m testing finished gear usually for how noisy it is with mics at low levels. If distortion/frequency response looks okay/reasonable with RMAA that’s great, if it doesn’t I look for what I have done wrong in setup. Most manufacturers get the distortion and frequency response basics right, but mic preamp noise does vary because most audio recording is music and therefore has plenty of signal, so preamp noise is not usually a key parameter in a field recorder.
Way back when I was working at BBC Designs, using their EP14/1 test set things were a little more from first principles than ‘press the button of this expensive gear and report back’. The EP14/1 was basically a tone source and a meter with a precision attenuator in front of it.The meter was used comparatively – you would adjust the attenuators to make it read the same as a reference reading, and the wanted information was in the different setting of the attenuators. This way any nonlinearity of the meter scale was greatly minimised. Continue reading “Audio Measurements and beyond rightMark”
The smartphone/iDevice is the preferred window to the world of many people – it’s small, it’s handy, it does everything. It’s always with you. And it will do field recording, of sorts.
The internal microphone is usually a noise cancelling microphone designed to favour nearby sounds over ones far away – usually by letting ambient sounds sneak onto the back of the mic capsule to cancel out the ambient sounds impinging on the front. You, being closer to the front and shaded from the back cancel out less. Crude, but it sort of works.
Use an external microphone, not the handset one
That’s not where you want to go as a field recordist, indeed if you could discriminate against your fumbling and breathing noises you’d be better off 🙂
You want to be able to use an external mic. Omni for general run and gun ambient drive-by recordings, and a directional/shotgun mic if you want to pick out a particular birds. To use the latter well you need to be able to hear what you’re doing. Shame, is one of the big failings of smartphone audio is that your can’t record and monitor at the same time. It’s not unreasonable, you rarely want to hear that much of yourself in a phone conversation.
You need an external adaptor lead to convert the 4 pole headphone socket to a stereo headphone + mono microphone connector, these are cheap enough on ebay
You can’t do stereo microphone recording this way, it’s mono only. The input provides plug-in-power to energise electret mic capsules, because this is the typical active device in a phone headset.
Testing frequency response and sensitivity
I tested the frequency response using Rightmark audio analyser, and it looks good enough
The big trouble, however, is that you can’t hear anything through the headphones, so you can’t aim a directional mic. Which makes the whole rig a bit crap to use in the field, and this doesn’t seem to be fixable.
There are other bits that grate – for instance the iPod doesn’t always pick up there’s an external microphone, so you can end up viewing the internal mic instead. Then there’s the usual rattiness of apps all round, about 1 in 30 times it just hangs outputting trash on the screen. In general, as a field recorder, smartphones suck. They can be used, but anyone who has used a real field recorder will miss the positive action of real buttons, real record level controls, real metering, and yes, being able to hear what they are doing.
Wild Mountain Echoes has a good summary of the sort of hurt associated with smartphone audio recording. Dr Johnson was right. It can be done, just not well.
Big WIN in the field – live spectrum display
Being able to watch a live sonogram using spectrumview is pretty awesome, and it’s a good sonogram, too, quite well suited to general bird sounds.
The best of all worlds, use a field recorder before the iPod!
It is not done well; but you are surprised to find it done at all.
Best not argue with Dr Johnson 🙂 As a recorder my iPod was flaky and with an input noise level some 20dB off what it could be and mono it’s nothing special even when it does record.
You can get the sonogram by feeding the iPod or smartphone/i-Device downstream of your field recorder – simply use a headphone y-splitter out of the recorder with one side going to your headphones and the other to the iDevice input, and set the gain of the iDevice waaaay down. You don’t have to record with it.
You now have a reliable recorder, decent mic preamps, you get to monitor what you record and if the iDevice throws a wobbly then you still have a good recording. But you how get a lovely spectrogram in live real-time. This is something that’s really excellent. In an ideal world the spectrogram would be built into the field recorder, however running it really hammers battery life so it’s good to have it optional. And it needs to be in colour.
Mill Stream is a local nature reserve running along the boundary between Rushmere St Andrew and Foxhall Heath, starting from Rushmere Golf course and running through to Foxhall Road dip, opposite the Nuffield Hospital. I started from the Brendon Drive access parking my bike there – there is no car parking for this local nature reserve, and followed the Jubilee path marker 12
There’s some interesting local history – the large Oak trees mark the boundary between the parishes.
Goldfinch flock feeding near the old shooting range
Further towards Bixley there was a Boer War/WW1 shooting range, with the large sandbank there to catch any stray projectiles. Apparently brave souls hoisted targets above the wall that gave them some protection.
Robin, with long-tailed tits flock at the start
The reserve is surprisingly quiet, particularly at the northern end, though you’re never that far away from human habitation here.There are some muddy parts to the path where it runs close to the stream, particularly at the Rushmere common end.
It gets noisier towards the Foxhall Road Dip – the path does carry on across the road but it’s a fast road and visibility is dreadful.
This was a pleasant little gem – I’d driven past the Foxhall Road dip many times for years without knowing this was here
Sightings
If I will show up at noon I’m not going to see/hear that much 😉
Robin
Blue Tit
Great Tit
Blackbird
Dunnock
Starling
Jay
Magpie
Goldfinch
long-tailed Tit
Chaffinch
Woodpigeon
Info
Parking: none
dogs: present. Should be on leads according to the leaflet to avoid disturbing the wildlife
condtions: mostly dry but some parts were muddy across the width of the path. You don’t need wellies but decent walking boots help.
Is covering a 12-acre farm with WiFi a reasonable idea? If so, I could run multiple cameras, say have one on the cows and one on the pigs, all connected to a central location, On the upside, the farm is roughly square and with a mild slope to the ridge at the top. Everything is pretty much line of sight. On the downside, there’s no good central location, which would be the obvious way to service the farm with 2.4GHz WiFi. Distances are long – the field is about 250m wide/long, and I could easily pick up a 300m path length feeding from the edge.
Earlier experiments showed that I could in theory use native WiFi, using a router to receive BTFon from a broadband connection in the town over a high-gain antenna and redistributing it from a WiFi AP. The trouble is I am desperately short of power – every extra piece of kit means more frequent battery changing. In the end I went with a more powerful MiFi access point – one that supported an external WiFi aerial. I used a 9dB TP-Link patch antenna
This feed the farm from one edge, as it happens the antenna is furthest away from the most likely camera sites but slightly higher than the target sites. The signal pattern fans out quite well, serving the likely points of interest. I was chuffed with the performance of the aerial – it gives the right balance of directionality, as I don’t need to bother to serve the field behind me, but it gives very useful gain in the wanted direction – I can just about get a wifi connection with the internal antenna of my iPod touch from the opposite corner of the field. As the forest garden and some of the windbreak trees grow I may experience problems, but that is for another day. By then perhaps we have a site with mains power 🙂
For the MiFi unit I used a TP-Link MR3220 – it’s surprisingly hard to find a MiFi box with an external WiFi aerial socket, because not unreasonably they anticipate you using this sort of thing as a personal cloud. I had to live with the 9V powering and used a Chinese Ebay 12V to 9V converter switchmode converter to efficiently turn the 12V battery power to 9VDC
The other part of improving range is to upgrade the camera end with a WiFi card with an external rather than internal antenna; since the Pice case has been withdrawn I need another solution for that. The PICE case also still exposes the Raspberry Pi camera lens to the elements which is Not a Good Thing leading to the lens haziness problem.
It doesn’t really matter how big the camera is, so I took the opportunity of using a much larger box – a Hammond case 1599 to fit it all in.
If you’re going to put something outside then the fewer holes you can drill the better, hence the use of sticky pads and cable ties as mounts, and the single 2.1mm power socket on the base, so water could drain out that way if necessary, and could be standing 0.5cm without affecting the electronics.
The case has several mounting lugs in the lid, but in the end I will have to drill a hole for the camera. I placed an O ring on the case and a microscope slide pressed down by foam and the camera to make a watertight seal but keep the elements out of the lens; that way hopefully I get to either clean or replace the microscope slide after a season is out rather than the camera.
The 12V to 5V converter is mounted in the case; that way any cable losses aren’t too bad and the current in the supply cable is reduced, it is about 200mA max.
Setting it up in the field
The paving slab is there because the first version of the tripod ended up flat on its back in the morning. At least the construction can survive a fall of 2m. Perhaps the neoprene sunshade and the extra area at the top of the pole presents too much wind loading.
Controlling the Pi
I postulated all sorts of complex feedback when first considering this, letting the Pi tell the microcontroller to turn the Pi off with a GPIO pin, but it’s been massively simplified. A microcontroller powers up the Pi, and pulls the power after 5 minutes. Then it waits 10 minutes and does it again, provided that the 12V supply is enough (>11.5V) and it is daylight.
I use similar Python code to the first cut, but this time I start running the takepic.py camera code on startup. I look for a switch closed on the GPIO, and if so, abort uploading the picture because the Pi is in service mode1. This switch is a reed switch mounted on the inside of the case and activated by sticking a magnet to it, this saves a hole. It lets me get onto the Pi and configure it. Normally the switch is open, in which case the Pi tells the system to do a shutdown in 4 minutes, which is enough to connect, get Wifi network DHCP and SFTP the picture to the website. 5 minutes after powerup, the microcontroller managing power pulls the power from the Pi.
The shutdown command on the Pi minimizes the chance of corrupting the SD card, and the picture is written to the /run/shm/ ramdisk prior to uploading, since there is no point using up SD card write cycles with ephemeral data like that.
#!/usr/bin/python
#$Id: takepic.py 58 2014-11-06 20:54:02Z ermine $
import time
import picamera
import paramiko
import os
import socket
import datetime
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD) # USE Pi BOARD pins, not the BCM ver
GPIO.setup(7, GPIO.IN, pull_up_down=GPIO.PUD_UP) # 7 is next to gnd on pin 9, so set pull up
# defs
camerafail=False;
DIR='/run/shm/'
imagename=socket.gethostname()+'.jpg'
remotename='WEBSITE.COM' # assuming this is reachable by ssh and www
try :
   with picamera.PiCamera() as camera:
       #camera.resolution = (2592, 1944)
       # The following is equivalent
       #camera.resolution = camera.MAX_IMAGE_RESOLUTION
       # run half res to test out connectivity etc and save money
       #camera.led = False
       camera.resolution = camera.MAX_IMAGE_RESOLUTION
       #camera.resolution = (1296, 972) # do half real to eliminate Bayer softness and save TX bandwidth
       camera.exposure_mode='night'
       camera.meter_mode='matrix'
       camera.start_preview()
       time.sleep(2)
       camera.capture(DIR+imagename, resize=(1296,972), format='jpeg', quality=20)
except picamera.PiCameraError,e :
   print e
   camerafail=True
finally :
       camera.close()
time.sleep(10) # hopefully nw is up by now
if(GPIO.input(7) ==1):
   #print "will shutdown"
   os.system("/usr/bin/sudo /sbin/shutdown -h +4 &")
   if not(camerafail) :
       timedout=False
       connected=False
       counter=0
       while (not timedout) and not connected :
           try :
               s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
               s.connect((remotename,80))
               print(s.getsockname()[0])
               connected=True
           except socket.error,e :
              Â
               counter += 1
               print counter
           finally:
               s.close()
           time.sleep(5)
           if counter >= 5:
               timedout=True
               print 'Failed to connect to ',remotename,' ',datetime.datetime.now().strftime("%y/%m/%d %H:%M")
      Â
      Â
       Â
       #upload
       if not timedout:
           print 'ftp image starting ',datetime.datetime.now().strftime("%y/%m/%d %H:%M")
           try :
               ssh = paramiko.SSHClient()
               ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
               ssh.connect(remotename, port=2222, username='USERNAME', password='PASSWORD')
               sftp = ssh.open_sftp();
               sftp.put(DIR+imagename, '/home/DIR/'+imagename)
               sftp.close()
               print "closed SFTP"
           except paramiko.AuthenticationException,e :
               print e
           except socket.error,e :
               print e
else :
   print "manually aborted by jumper 7 to 9"
Power savings
This has massively reduced the power drain of the camera – it is < 200mA for a third of the time, with an outage during the night of about 1/3 of the time, so about 1/3 × 2/3 × 200mA average, ie ~50mA. The original power drain was about 300mA 24×7.This power drain is much less than an electric fence which is usually about 150mA, so it could be used from the fence battery, which would then let us monitor the fence battery voltage as a bonus.
It also suits solar panel charging well, as the power drain is proportional to day length. The WiFi node draws more (a sustained 200mA during the day) but at least it is just one place where the battery needs changing more often – about once every two weeks. That’s livable with, but if I’d used a WiFi long-distance connect and a WiFi high power AP that would be shortened too much, particularly as logging into BT Fon would require another Pi to keep the connection open. GiffGaff run about £7.50 per Gb PAYG which isn’t bad.
Got pigs
So far so good. The new pigcam
works all over the likely sites on the farm
concentrates the data through one GiffGaff SIM[ref]data service gets cheaper with volume, so this is much better than each camera having a SIM[/ref]
reduces power at camera sites to minimal
lets me add more than one camera to the system
which is a success compared to the single site version which had a very high power drain because it wasn’t being power-managed.
In service mode I get to ssh into the Pi to configure it, and issue the shutdown command manually – I bypass the microcontroller shutdown for that ↩
I went to university at Imperial College, in the chi-chi London district of South Kensington. The area has much to offer the field recordist in terms of resonant public spaces. If you want to avoid the rain or simply enjoy the soundscape you can take the long pedestrian tunnel under Exhibition Road from the tube station to the museums.
I recently returned to Imperial and went to the Alumni reception who served excellent coffee, gratis. It’s a world away from the machine coffee and plastic cups and ‘coffee whitener’ that fuelled my studies in the Physics department many years ago. The entrance to the College from Exhibition Road is now an enclosed space with lots of glass and hard surfaces, it has an interesting acoustic of its own – I recorded this space from next to the statue of Queen Mary
Footfall Foley wizards will hear the tapping aren’t high heels which most people would associate with the percussive sound but Blakeys on a man’s shoes.
South Kensington has three lovely Victorian museums. Massive galleried spaces over several floors and often a curved vaulting ceiling. These are just made for binaural stereo!
I went to the Science Museum in Exhibition Road, part of a cluster of Victorian Museum buildings. The others are the Victoria and Albert and the Natural History Museum. The latter has an amazing curved atrium and a fine acoustic space.
In the Science Museum on the ground floor near the space exhibition
the next recording is from the Energy exhibition on the second floor, looking over the massive open space to the steam engines on the ground floor
the sharp snap at 00:32 is an art exhibit marked do not touch, which of course everyone touches, resulting in a spark and a slight shock to the curious.
I enjoyed the visit and the incidental soundscapes. It is also good that Britain ended its dalliance with charging for museum entry.
The trouble with birds is they get up earlier than I do, so a time-delay start recorder lets me scout locations without loads of early starts.Autonomous recorders are sometimes known as frogloggers in the nature recording community. Commercial variants and great, reliable, but dear. I want something I’m prepared to take the risk of losing to some inquisitive dog-walker, and preferably something I can make enough of to scout several locations.
A Raspberry Pi via Wifi is also a good remote startable recorder over WiFi . A bit like the Tascam DR-44WL but without the nice display. the trouble is the Raspberry Pi has no record facilty. If it had, you can start recording by logging in via SSH and issuing the arecord function. The audio can even be transferred off the Pi remotely via SFTP over WiFi. Enter the Wolfson Audio board – a piggyback audio card for the Pi, which takes over all the IO so you aren’t going to be running any other custom hardware on that Pi.
Installing the Wolfson
Physical installation is easy enough, the Wolfson board uses the bizarre approach of connecting to the GPIO using a standard header and the P5 header using a set of pogo pins.[ref]I did have trouble with these once – what happens is you issue the record for x seconds command and in simply sits there and never times out. Then you press the GPIO down again and it comes good… P5 carries the i2c bus SCL0 and SDA0 pins which control the Wolfson, lose contact on one of those and you aren’t talking to it any more.[/ref] I’d have been easy with soldering an extra set of pins or a header myself and this is probably a reliability hazard, but I’ll run with it for now. Just as well I’m not going to use the badly aligned yellow and white SPDIF sockets, eh?
I started with a Model A running a stock Raspbian image, 2014-06-20-wheezy-raspbian.zip and ignored Wolfson’s recommendation to avoid a USB hub, because I needed that to see what I was doing to set up WiFi.
No standard Raspberry Pi Drivers for the Wolfson
Unlike other bits of hardware, to run up the Wolfson card you can’t use the stock Raspbian and do an apt-get install some-sort-of-wolfson-driver. You’re in for a world of hurt here.
You either download the SD card image which is recommended by Wolfson. It’s 8Gb and it means 8Gb, and wouldn’t fit on my 8Gb card, because it requires a card with no dead sectors presumably.
Maybe time to compile the drivers myself following this? Nope – life is too short and I do not have the skillz to firefight what goes wrong. And what with the takeover of Wolfson by Cirrus it looks like the drivers are delayed still more. I like the Torygraph’s opener
Wolfson Microelectronics, the struggling Scottish microchip company, has been acquired by its American rival Cirrus Logic for £278m.[…] Wolfson has become increasingly reliant on a few big customers including BlackBerry, which as seen sales of its smartphones collapse. The company reported flat revenues of $179m and mounting losses of $13m last year. Wolfson admitted it had been blindsided by the rate at which consumers were adopting 4G smartphones, which gave Qualcomm an advantage because it had developed an all-in-one 4G microchip that included an audio processor.
Damn. Those drivers aren’t going to happen any time soon, or maybe ever… I then used Ragnar Jensen’s zip described in this post, and the usage instructions here to install it. Which worked for me. I have no real idea how.
Don’t get the Wolfson card if you want playback until there are normal drivers available
My only interest in the card is to record – everyone else seems to want to take advantage of the whizzy playback options. To be honest there are alternatives if you want playback only, and it looks like the product is at risk of getting orphaned, since it is Pi Model A or B Rev 2 only, not B+, and is still driverless. You run the risk of getting stuck on an old version of Raspbian. That doesn’t bother me, as I will only use this for recording and not run anything else exotic on the Pi. If you want to run a media centre then you could start to hate being stuck on older versions of Raspbian.
How does it record, then?
I made the mistake of firing up ALSAmixer after installing, it certainly showed a lot of options and stuff going on which gave me a good feeling that the Wolfson card was present. But it is easier to adopt their installed ‘use cases’ that are installed in /home/pi
to record a 10 second stereo track from Line in (that’s the -d 10 seconds, -d3600 would do you an hour, etc)
I experienced random buffer errors every 30s or so. Mindful of Wolfson’s warning about USB hubs I removed the keyboard (which has a hub) though I still used a hub to power the device, and because this was a Model A I had the wifi on the hub, and still took overruns
arecord -c 2 -f S16_LE -d 130 -r 44100 record_from_line_in1.wav
Recording WAVE 'record_from_line_in1.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
overrun!!! (at least 90.703 ms long)
overrun!!! (at least 50.601 ms long)
overrun!!! (at least 15.111 ms long)
Although it looks ghastly here is an MP3 of the original file that I played into the Pi –
and here is the file recorded with the overruns above, converted to MP3
Which doesn’t sound so terrible to me at all. I should still not be such a cheapskate and buy SD cards from ebay, if a Class 6 card is what’s needed for audio 😉
I still got overruns with FLAC but they were shorter, which points towards disk IO as being the problem, since FLAC ups CPU load a lot but reduces disk writing, because that’s its job
arecord -c 2 -f S16_LE -d 130 -r 44100 | flac -o test1.flac - --channels=2 --sample-rate=44100 -f
flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007Â Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
-: 23% complete, ratio=0.468overrun!!! (at least 20.023 ms long)
-: 69% complete, ratio=0.513overrun!!! (at least 0.553 ms long)
-: wrote 11620131 bytes, ratio=0.507
Using FLAC (free lossless audio compression)
you must apt-get install flac
to get the codec first
Pipe the output of the record chain into FLAC to reduce file sizes by about 40% on field recordings
 arecord -c 2 -f S16_LE -d 130 -r 44100 | flac -o test.flac - --channels=2 --sample-rate=44100 -f
flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007Â Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
-: wrote 11692886 bytes, ratio=0.510
with the flac command the single – means process stdin and -f means overwrite existing file
FLAC used to be a resource hog so I thought I’d look at the CPU usage, which seems to run about 12-15% on a stock Raspbian (no overclocking etc)
top - 18:07:28 up 1:54, 2 users, load average: 0.05, 0.04, 0.05
Tasks: 74 total,  1 running, 73 sleeping,  0 stopped,  0 zombie
%Cpu(s): 12.4 us, 2.3 sy, 0.0 ni, 84.9 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem:   187592 total,  145604 used,   41988 free,   14664 buffers
KiB Swap:  102396 total,       0 used,  102396 free,   98588 cached
 PID USER     PR NI VIRT RES SHR S %CPU %MEM   TIME+ COMMAND
 2713 pi       20  0 7488 1380 940 S 12.1 0.7  0:03.71 flac
 2710 pi       20  0 4672 1372 1036 R  1.0 0.7  0:00.50 top
 2676 root     20  0    0   0   0 S  0.7 0.0  0:03.14 kworker/u2:3
  13 root     20  0    0   0   0 S  0.3 0.0  0:00.96 kworker/0:1
 2683 root     20  0    0   0   0 S  0.3 0.0  0:01.61 kworker/u2:0
 2695 pi       20  0 9260 1584 1000 S  0.3 0.8  0:00.12 sshd
 2711 root     20  0    0   0   0 S  0.3 0.0  0:00.18 kworker/u2:1
 2712 pi       20  0 4944 1336 1128 S  0.3 0.7  0:00.19 arecord
   1 root     20  0 2148 720 616 S  0.0 0.4  0:04.29 init
   2 root     20  0    0   0   0 S  0.0 0.0  0:00.00 kthreadd
   3 root     20  0    0   0   0 S  0.0 0.0  0:00.46 ksoftirqd/0
   5 root      0 -20    0   0   0 S  0.0 0.0  0:00.00 kworker/0:0H
   7 root     20  0    0   0   0 S  0.0 0.0  0:00.75 rcu_preempt
   8 root     20  0    0   0   0 S  0.0 0.0  0:00.00 rcu_bh
   9 root     20  0    0   0   0 S  0.0 0.0  0:00.00 rcu_sched
  10 root      0 -20    0   0   0 S  0.0 0.0  0:00.00 khelper
  11 root     20  0    0   0   0 S  0.0 0.0  0:00.00 kdevtmpfs
Wolfson Card Analogue Line-up
So it’s time to line the card up and find out what analogue levels it takes. I’m going to need outboard audio processing anyway to bring mic level up to line level, and to be honest that’s probably better done off the board anyway away from all the digital power-supply sizzle. I can control levels in the analogue domain, so no need ot run alsamixer unless I want to do remote live recording.
I injected 1kHz tone from a Farnell Wien bridge oscillator ad found that the default gain setting is exactly right for a 1V rms input
When I ftp the file to my PC and look at it with a WAV player I see it is as close to 0dBFS as you can get
The audio doesn’t start recording instantly, there is an elegant fade in combined with an inelegant DC shift
It isn’t a big deal, but you probably want to start it .1s before the desired sound. That’s neither here nor there with a manual start but if auto-started from a sensor trigger that would be a bear.
Audio performance
I terminated both inputs with 150 ohms and used Audition to gather the stats on silence, starting 3s in, a reasonable way past the initial DC bump.
I then scanned the spectrum of the quiet recording to look for any frequency spurs etc, on a fairly narrow IF bandwidth (wide scanning window). I’m not going to argue with the results –
For reference here is the 1kHz tone (if you analyse it all the distortion comes from my 1970s era Wien Bridge oscillator)
and here is the quiet recording
I didn’t run rightmark on it since I don’t have anything good enough to generate the test signal and don’t know how to play and record at the same time on the Pi.
Since I want this for recording I didn’t bother to test playback – here’s a description of replay.
Time delay recording
The way to use this as a time delay recorder is to set cron to start on boot:
Then power on the Pi and the microphone preamplifier about half an hour before dawn and pull the power after about an hour and a quarter – the Pi should have halted by then. I will use a PIC microcontroller for that job, because it draws a very low power in the rest state, but an Arduino would work too, though it’s typically 7mA drain is higher than it has to be.
Conclusion
The Wolfson audio card records well, with low noise. You need to use a fast SD card otherwise you will get overruns. But it is poorly supported and the devil’s own job to get going. However, it seems the only game in town for high-quality recording.
Since that’s what I want to go I have to put up with the poor support and idiosyncrasies, it works well enough.
The old pig camera is due for a rebuild. I went with the Pice outdoor case for the new one, but it’s interesting to see how the old one stood up to the weather. It was still operating when I decommissioned it because I needed to scavenge some of the network parts for the new one. In particular I now use a central WiFi/Mobile node to cover the whole farm, and use Wifi to upload the pictures for each camera via that node.
The original one ran the Mifi node and the Pi all the time, which was hard on battery power. Hence the rebuild, but if the case held up over a season I may as well use it rather than splash out for a new Pice…. The original case was larger than it needed to be, but I can now use this space to put the light sensor and 12V to 5V DC-DC converter inside it.
So how did it stand up to the ravages of the elements. When it was new it looked like this
and the innards looked like this
So from the outside it now looks like this
Which isn’t bad. It vindicates one of the things i did, which was to use plastic screws for mounting. Unfortunately the camera needed M2 screws which were steel, and these rusted. The sun bleached the tape, but the box itself stood up to the light well.
The cheap Chinese DIN socket is starting to rust
I had fitted this on the underneath of the case. There are two philosophies when it comes to trying to run electronics outside. One is to go IP65 all the way and keep water out, which means waterproof enclosures, Dri-Plugs for power etc – you’re looking at about £20 to get the power through the case and maybe another £20 for the case itself. Farm hacks don’t really need that sort of ruggedness, which brings me ot the other philosophy
Accept water is going to get in. Mount all connectors on the bottom so it can drain out. I actually picked this up from the PICE guys – they mount the raspberry Pi on the lid of the case, so water could be standing on the bottom half and it would be okay.
As it was no water seems to have penetrated, no creepy-crawlies seem to have got in. The latter are a pain with electronics outside- they seem to be attracted to the heat, or maybe the power itself. It certainly helps to lift the device into the air, or simply put it on a stick a metre or so high, compared with ground mounting. But this looks clean, there’s a little bit of evidence ingress on the seam, and the PVC tape degraded in the UV so this may be worth some thought. I will re-use this box, mounting the microcontroller timer and the light sensor on a board set into the rails, so I don’t have to drill the box for mounting.
However, one thing has been impaired, and that is the lens of the camera, which gives a hazy effect – it was clear and not foggy when this picture was taken
Normally a CCTV camera is behind a piece of glass to keep the elements out and now i know why. Cleaning the lens with IPA didn’t help. I am tempted to glue a piece of microscope coverslide over the tiny lens in future this would have the optical quality and would be cleanable/replaceable. Continue reading “a Raspberry Pi camera after a season outdoors in the British weather”
This amplifier is used for parties at The Oak Tree where we have no power on site – a 12V leisure battery is good for about 7 hours. I’d noticed one of the pots getting scratchy so one of the four channels was low. This is a four-channel amplifier, and I use it bridged 2×2 as my speakers are 8 ohm. The amp works but I’m losing power, experience tells me this sort of fault doesn’t fix itself.
The go-to site for car audio tech is Basic Car Audio Electronics so if you’ve blown your amplifier and are looking to fix it then that’s a good place to start. The tl;dr version is it’s probably not worth your while, get a new one. The trouble with blowing the amp is not only do you have to find and change the blown part, but also establish the rest of the parts are okay. I’m just fixing a passive part in an otherwise normally functioning amplifier. It’s probably still not worth my time but it’s criminal to junk the amp for the sake of £2 worth of parts.
I did get a meter on one section of the pot and established that it is intermittent and ratty. So I didn’t need the schematic. It’s nice to have, though, but knowing Maplin I figure it’s probably not worth calling them up and asking them to send a PDF or a dead-tree version through the post. I’m still sore about the way they washed their hands of a portable TV that failed after 15 months. On investigation it has clearly not worked right and been incompetently hand-repaired at the factory leading to the screen failure.
Inspection of the circuit board and a bit of Googling turns up some leads. I observe the circuit board is marked APA-450 Rev 2 and Googling APA-450 tells me that Clarion used to make one of these, and the control panel looks suspiciously similar. So now I know what a Maplin EAP450 is – presumably they bought the rights to rebadge this discontinued Clarion amp in a different housing. Or perhaps there’s some noname Chinese company in Shenzhen hawking their production line to whoever will pay 🙂
I got the service manual and schematic from those nice guys at Elektrotanya and established that the part numbers tally with the board.
plan A – changing the pot
Ebay was my friend in sourcing the pot, as it happens also from China. One of the great things about Ebay is the variety – it’s important to get the length of the splined shaft right so it doesn’t stick out too far and this is a slightly oddball length. A 6mm spline shaft is close enough.
I got that right, but I was caught out by the pitch of the pins being smaller than normal. I’d already dismantled the amp before I spotted that. D’oh.
Take a photo before you dismantle the amp
You can’t have too many decent photos of the gear before you take it apart . Once I had taken out the screws I got to see the PCB – it’s clearly not the finest reflow job I’ve ever seen
plan B – fix the original pot
Time for Plan B – dismantle the offending wafer of the pot.
By carefully bending the tabs I could get the wafer out and look for the problem – there’s a faint patch of shiny something not right at the top left of this, which I cleaned off with some isopropyl alcohol. Plan C was going to be replace this pot and the other one with two fixed resistors per wafer. There’s no real need for this sort of control on a power amp. Ideally I want to line the amp up for full-scale output at +4dBu – there’s far too much gain and it needs pulling well back. the line level input sensitivity is specified as 200mV to 6V
final test – success
This is the amplifier at just over 40V p-p showing the two bridge amplifier outputs which are out of phase (I am too cheap to get the probes to set the read out right, so it shows 1/10 of the real sensitivity)
and the final trace shows both bridged sides going into clipping at the same time.
There’s a satisfying noise to be had from this apple crusher – the first stages of making cider
The crunch has some of the biting into an apple sound. The ripping apart sound is ever so slightly ghoulish, one for Halloween…
After this was recorded a bunch of people joined in with their kids. Kids aren’t usually conducive to easy recording, though they did a grand job turning the handle, so I switched to using a stereo contact mic on the mechanism. My contact mic has a strong magnet on it so it’ easy to get noises from ferrous metal objects.
After a long break, I looked at getting back to using Birdtrack. When I used it before, I used an audio recorder and a GPS, taking a waypoint with the GPS and identifying the bird and waypoint in the audio note. The advantage of this is I could automate taking in the position data, and just transcribe the bird and count.The obvious way to do that now is to use something like the Birdtrack app. Trouble is this wouldn’t run on my device. That wasn’t the main problem, to be honest, it’s easy enough to solve by chasing the upgrade cycle. There’s a deeper problem – it’s not what I want to get out into the field to do, to spend more time peering at an illuminated screen. Not only would Eckhart Tolle disapprove, but you also have to take your eye off the birds. Don’t get me wrong, the BTO have probably done a great job with the app, and if that’s how you want to list birds that’s great, each to their own. It’s just doesn’t do that much for me. But it’s a continuum – after all, what is the real point of recording what you see anyway, particularly as I’m not particularly good with ID so have to pass on a lot?Surveying an area repeatedly does mean I get to build up a spatial map of territories and get to know some of the birds by the foibles of their song. Now this is made easier I will see if a picture of territories does build up over time in the breeding season. GPS audio mapping isn’t a new idea, I came across it from the OpenMap community, who had largely solved this problem with audio mapping. They simply leave the recorder on capturing a stream of consciousness, because they want to capture data about the whole environment, that’s what a map is. It makes the synchornisation problem easier, as they set a datum at the start of the run, doing the same job as the clapperboard in shooting a movie. The GPS track is a log of where you go, with the sections individually timestamped, which I hadn’t realised. So start the recording at a datum point, and you know that the audio runs in sychronism with the GPS. Modern digital field recorders are crystal controlled to about 100ppm – about 4 seconds off in 10 hours.Now I don’t really want to spend as much time writing up a trip as doing it, so I took a leaf from their book and used a Perl script to parse the GPX data tracklog, find the nearest section to the audio clip timestamp and create a waypoint there, with a link to the audio file in the same directory. Rather than making one massive recording, I can simply make short audio notes when I see the bird, and the Perl script will tally the record time and sort out where I am. It’s easier to find a record and there is much less audio data to process.
Due to the vagaries of real-life devices you have to be able to put in an offset to take out summertime and any slight differences, but an error of 1 minute at walking speed isn’t so bad for bird logging. At a steady 3mph it’s about 80m uncertainty, but in practice you tend to slow down when observing birds, improving the accuracy. File timestamps do go down to the second, but keeping the clocks within a minute is a big ask. The GPS timestamp is always very accurate because it is set to an atomic clock, so it’s down to setting the recorder properly. Or identifying the skew properly at the combining stage.
As an added bonus, this can work on my field recordings too, I can just save the GPX file and I know where they were made too. Using something like GPS Visualiser I can see where everything is on a Google map.
For bird logs, I need to open the audio and edit the waypoint names to the BTO two letter short codes of the sightings, comma separated if there are several at one point. A second run through another script expands these into the long names and creates an Excel file suitable for uploading to Birdtrack.