{"id":3482,"date":"2018-07-01T12:29:03","date_gmt":"2018-07-01T12:29:03","guid":{"rendered":"http:\/\/www.richardmudhar.com\/blog\/?p=3482"},"modified":"2018-07-01T12:29:03","modified_gmt":"2018-07-01T12:29:03","slug":"raspberry-pi-zero-audio-recording-with-the-audioinjector-hat","status":"publish","type":"post","link":"https:\/\/www.richardmudhar.com\/blog\/2018\/07\/raspberry-pi-zero-audio-recording-with-the-audioinjector-hat\/","title":{"rendered":"Raspberry Pi Zero audio recording with the AudioInjector hat"},"content":{"rendered":"<p>Just when I thought the<a href=\"http:\/\/www.richardmudhar.com\/blog\/2016\/10\/olympus-ls10-diy-wired-remote\/\"> remote Olympus recorder<\/a> is the way to go here, along comes a promising new Pi solution for remote recording &#8211; this looks to be low cost and small. What more could a fellow want?<\/p>\n<p>Decent instructions and specs, for a start \ud83d\ude09 Australia seems to have a vibrant electronics tinkering community, and Matt Flax of <a href=\"http:\/\/www.audioinjector.net\/rpi-zero\">audio-injector<\/a> has come up with a dinky little recording sound card suitable for the Pi Zero, without the sort of stupendous kernel-compiling hurt associated with the now discontinued, <a href=\"http:\/\/www.richardmudhar.com\/blog\/2014\/10\/testing-the-wolfson-audio-board-and-raspberry-pi\/\">Wolfson<\/a>\/<a href=\"http:\/\/www.richardmudhar.com\/blog\/2018\/02\/cirrus-logic-audio-card-for-the-raspberry-pi-revisited\/\">Cirrus<\/a> sound card. Matt even used Cirrus tech under the hood, kudos to him for making it work in the Pi environment- I guess the Pi has advanced in standardising add-on gizmos too.<\/p>\n<p>You can buy the AudioInjector Zero from Australia, only to discover postage is about as much as the sound card, so Google helped me discover that you can get it in the UK <a href=\"https:\/\/amzn.to\/2tNNVTm\">from Amazon<\/a>, who drop-ship it at a much more acceptable price of \u00a312.50 delivered free if the total order is &gt; \u00a320. So I go get one.<\/p>\n<figure id=\"attachment_3483\" aria-describedby=\"caption-attachment-3483\" style=\"width: 550px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/DSCN3340_lzn.jpg\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3483\" src=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/DSCN3340_lzn-550x440.jpg?resize=550%2C440\" alt=\"\" width=\"550\" height=\"440\" srcset=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/DSCN3340_lzn.jpg?resize=550%2C440&amp;ssl=1 550w, https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/DSCN3340_lzn.jpg?resize=768%2C614&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/DSCN3340_lzn.jpg?w=873&amp;ssl=1 873w\" sizes=\"auto, (max-width: 550px) 85vw, 550px\" \/><\/a><figcaption id=\"caption-attachment-3483\" class=\"wp-caption-text\">The Pi Zero sound card &#8211; tiny. Look ma, zero connectors!<\/figcaption><\/figure>\n<p>Nice. No GPIO connectors, though you get a nice bunch of extra audio connectors to make this connect to phono jacks. How does that work, then?<!--more--><\/p>\n<p>The Pi Zero has the same problem of no GPIO, but at least there&#8217;s some rationale, you can use a Pi Zero without the GPIO, but the Zero sound card is as much use as a chocolate teapot without GPIO connector. Ebay was my friend, for some reason CPC don&#8217;t do the 40-way header and male pins. So far so good. I then spark up the Pi Zero I had to play with, great, hello world. Howsabout some audio, then?<\/p>\n<p>Unlike the Wolfson, you have a delightfully small amount of choice here, it&#8217;s mic or line input. I initially assumed the side marked input was the input, so mic and line were setting the gain and sensitivity, and perhaps the mic bias voltage. But it was not to be, like so many of these audio chips, they assume you only ever want to record mono mics, and the mic input is the mono pads for the electret insert supplied. The chip is the <a href=\"https:\/\/www.cirrus.com\/products\/wm8731\/\">WM8731S<\/a>, which is from Cirrus\/Wolfson, so hat tip to our Australian friends for making this workable in a Pi. However, the block diagram shows there&#8217;s only one mic channel, allocated to both sides<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/1806_cirrus.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3485\" src=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/1806_cirrus-550x337.png?resize=550%2C337\" alt=\"\" width=\"550\" height=\"337\" srcset=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/1806_cirrus.png?resize=550%2C337&amp;ssl=1 550w, https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/1806_cirrus.png?resize=768%2C470&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/1806_cirrus.png?w=810&amp;ssl=1 810w\" sizes=\"auto, (max-width: 550px) 85vw, 550px\" \/><\/a>so I am SOL on stereo mic capability. In theory I could pick off the mic bias voltage and inject that onto the line inputs with an isolating capacitor, but this seems to be switched with recording, and intelligently &#8211; when recording from line it&#8217;s not on.<\/p>\n<p>You have two provided scripts, to use mic or line. Alsamixer is reasonably friendly<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/1806_pizeroalsa.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3486\" src=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/1806_pizeroalsa-550x305.png?resize=550%2C305\" alt=\"\" width=\"550\" height=\"305\" srcset=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/1806_pizeroalsa.png?resize=550%2C305&amp;ssl=1 550w, https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/1806_pizeroalsa.png?w=659&amp;ssl=1 659w\" sizes=\"auto, (max-width: 550px) 85vw, 550px\" \/><\/a>56 on capture is about right for a 0dBu input level on line, which records in stereo.<\/p>\n<h5>Specs &#8211; what specs?<\/h5>\n<p>Cirrus quote a line level of 1Vrms for 0dBFS as 0dB gain, and I don&#8217;t see anything I recognise as an op-amp on the board, so I presume AudioInjector present the line input of the chip straight to the board inputs, <a href=\"http:\/\/www.audioinjector.net\/rpi-hat\">they are sketchy<\/a> on signal levels and all that jazz. Let&#8217;s try and get some science into this subject.<\/p>\n<p>You always have to run<\/p>\n<p>alsactl &#8211;file \/usr\/share\/doc\/audioInjector\/asound.state.RCA.thru.test restore<\/p>\n<p>after powering up, else you&#8217;re not seeing anything, it doesn&#8217;t persist across power cycles. I used a Tek 2245A scope bridged across the signal generator &amp; input.\u00a0 I ran this for the test<\/p>\n<p>arecord -c 2 -f S16_LE -d 10 -V stereo -r 48000 \/run\/shm\/test.wav<\/p>\n<p>using the temporary RAMdisk to save the SD card. On line in, I get where <em>shown<\/em> and <em>dBvalue<\/em> from the alsamixer display, <em>VPPmax<\/em> is the total peak to peak measured, <em>dBu<\/em> is calculated from <em>VPPmax<\/em><\/p>\n<table style=\"border-collapse: collapse; width: 192pt;\" border=\"0\" width=\"256\" cellspacing=\"0\" cellpadding=\"0\">\n<colgroup>\n<col style=\"width: 48pt;\" span=\"4\" width=\"64\" \/> <\/colgroup>\n<tbody>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt; width: 48pt;\" width=\"64\" height=\"20\">shown<\/td>\n<td style=\"width: 48pt;\" width=\"64\">db value<\/td>\n<td style=\"width: 48pt;\" width=\"64\">vPPmax<\/td>\n<td style=\"width: 48pt;\" width=\"64\">dBu<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">100<\/td>\n<td align=\"right\">12<\/td>\n<td class=\"xl63\" align=\"right\">0.7<\/td>\n<td class=\"xl63\" align=\"right\">-10.0<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">93<\/td>\n<td align=\"right\">10.5<\/td>\n<td class=\"xl63\" align=\"right\">0.8<\/td>\n<td class=\"xl63\" align=\"right\">-8.4<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">87<\/td>\n<td align=\"right\">9<\/td>\n<td class=\"xl63\" align=\"right\">1.0<\/td>\n<td class=\"xl63\" align=\"right\">-7.2<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">81<\/td>\n<td align=\"right\">7.5<\/td>\n<td class=\"xl63\" align=\"right\">1.2<\/td>\n<td class=\"xl63\" align=\"right\">-5.6<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">75<\/td>\n<td align=\"right\">6<\/td>\n<td class=\"xl63\" align=\"right\">1.3<\/td>\n<td class=\"xl63\" align=\"right\">-4.3<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">70<\/td>\n<td align=\"right\">4.5<\/td>\n<td class=\"xl63\" align=\"right\">1.6<\/td>\n<td class=\"xl63\" align=\"right\">-2.7<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">65<\/td>\n<td align=\"right\">3<\/td>\n<td class=\"xl63\" align=\"right\">1.9<\/td>\n<td class=\"xl63\" align=\"right\">-1.3<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">60<\/td>\n<td align=\"right\">1.5<\/td>\n<td class=\"xl63\" align=\"right\">2.2<\/td>\n<td class=\"xl63\" align=\"right\">0.2<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">56<\/td>\n<td align=\"right\">0<\/td>\n<td class=\"xl63\" align=\"right\">2.8<\/td>\n<td class=\"xl63\" align=\"right\">2.0<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">51<\/td>\n<td align=\"right\">-1.5<\/td>\n<td class=\"xl63\" align=\"right\">3.2<\/td>\n<td class=\"xl63\" align=\"right\">3.3<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">47<\/td>\n<td align=\"right\">-3<\/td>\n<td class=\"xl63\" align=\"right\">3.8<\/td>\n<td class=\"xl63\" align=\"right\">4.8<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">44<\/td>\n<td align=\"right\">-4.5<\/td>\n<td class=\"xl63\" align=\"right\">4.5<\/td>\n<td class=\"xl63\" align=\"right\">6.3<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt;\">\n<td style=\"height: 15.0pt;\" align=\"right\" height=\"20\">40<\/td>\n<td align=\"right\">-6<\/td>\n<td>clip<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Below 44 I can&#8217;t reach 0dBFS without clipping the input signal, presumably into the input protection diodes. So I didn&#8217;t go any further.<\/p>\n<p>Taking the gain=100 I then term the input with a 50 ohm term and record silence. Audition tells me the rms noise is at -84dBFS. If I A-weight it I would probably get down to Cirrus&#8217;s -85dBFS in the spec.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/07\/1807_audnoise.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3497\" src=\"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/07\/1807_audnoise.png?resize=430%2C463\" alt=\"\" width=\"430\" height=\"463\" \/><\/a>Does what it says on the tin, there. The lowest two or three bits are noise. I&#8217;m not going to get 0.7V p-p from an electret mic in ambient noise, unless I&#8217;m bootlegging a rock concert. I need a mic preamp.<\/p>\n<h5>A 5V supply mic preamp isn&#8217;t as easy as it looks&#8230;<\/h5>\n<p>It&#8217;s surprisingly tough to come up with a 5V electret mic amp using normal opamps, the LM358 would do but is noisy and notable for crossover distortion. Many decent audio opamps just need more than 5V to do their stuff, I don&#8217;t want to put in an inverter for the front-end, although I suppose I could use the control PIC to generate a square wave and use a Cockroft-Walton multiplier, once you get past about 8V the opamp selection opens up widely. Messy.<\/p>\n<p>Then there&#8217;s the vexed question of the microphone bias supply &#8211; there&#8217;s no PSRR at all, because the mic is a sort of audio variable current source working into the drain resistance. You don&#8217;t want to be running this off 3.3V running a Pi, perhaps with 100 ohms in series and a 100uF to ground, it ain&#8217;t gonna cut enough of the hash out, BTDT.<\/p>\n<p>Fortunately those nice fellows at Maxim have applied themselves to this conundrum with the <a href=\"https:\/\/www.maximintegrated.com\/en\/products\/analog\/audio\/MAX9812L.html\">MAX9812L<\/a>, and there is an army of industrious folk in Shenzen saving me the faff of laying out my own boards and sourcing the MAX chip, <a href=\"https:\/\/www.ebay.co.uk\/itm\/401125944276\">\u00a31.60 a throw<\/a> from ebay. I need two for stereo, I probably couldn&#8217;t start to lay out the board for three times that much. I had hoped the MAX9813 would give me two channels, but no, it lets me select one of two mics. Oh well. If I ever do lay out my own boards then it&#8217;s not too much of a hardship to drop in two of these tiny SC70 packages, though hand-soldering them might make me swear.<\/p>\n<p>Maxim spec noise en as 40nV\/\u221aHz which is not stellar, a NE5534A is good for 5nV\/\u221aHz\u00a0 so the MAX chip is about 18dB worse, not one for dynamic mics then. A fixed 20dB plus the internal 12dB is enough to get a mic up to line level on ambient sounds. The WM8731 measured about -84dB noise on 0.25Vrms in at full gain, so about 14\u03bcV rms. The MAX9812&#8217;s 5\u03bcV across the audio band is a worthwhile reduction of ~9dB in noise, less in practice because of the modest gain.<\/p>\n<p>I could wish for more gain, as it appears the WM8731 noise will still contribute. I am almost tempted in the direction of a single transistor amplifier, which could give me more gain, but the low noise mic bias voltage is a headache, so I&#8217;ll only go that way if the MAX9812 is too noisy. The single transistor tends to have a low input impedance of around 2-5k, which will needlessly shunt the electret mic more than the bias resistor, reducing signal levels which is bad for noise performance. Messy in a different way.<\/p>\n<p>This rig needs powering, and I am thinking of using the <a href=\"https:\/\/blog.pimoroni.com\/zero-lipo\/\">Pimoroni Zero LiPo<\/a> for that. This interfaces with the battery and the pi to provide a shutdown on low battery function. <a href=\"http:\/\/scruss.com\/blog\/2017\/10\/01\/installing-the-pimoroni-onoff-shim-the-hard-way\/\">This is a way<\/a> of wiring that to still use the GPIO. This is where I need to hope the AudioInjector doesn&#8217;t use GPIO4. It&#8217;s likely to use GPIO 2 and 3 with are I2C SDA and SCL to control the WM8731, the sketchy description doesn&#8217;t really say much else.<\/p>\n<h5>Trials and tribulations of installation<\/h5>\n<p>First off, this is nowhere near the amount of grief that the Wolfson and Cirrus were. You&#8217;re not installing custom kernels or compiling code from scratch. You have a good chance of getting there, but information is sketchy, IMO. Dunno what it is about recording-capable sound cards for the Pi, but they all seem to assume you are experienced and the documentation\u00a0 is to that level. Let&#8217;s take a look at <a href=\"http:\/\/forum.audioinjector.net\/viewforum.php?f=5\">audioinjector forums<\/a>. First they say you can get support on github, well perhaps you can, but I am too dense to see how that works. No problem, back to the forums, how to <a href=\"http:\/\/forum.audioinjector.net\/viewtopic.php?f=5&amp;t=3\">setup and test<\/a>. Actually the first place I fell was how to solder the audio connectors, which way round should the PCB connectors go? It doesn&#8217;t strictly matter as GND is the middle of three pins, but one way the colours won&#8217;t match the channels.<\/p>\n<p>Anyway, Matt nonchalantly says download<\/p>\n<p>audio.injector.scripts_0.1-1_all.deb.tar.gz<\/p>\n<p>file, extract and run it. I don&#8217;t know how to run a deb file on a Pi, I&#8217;ve only used apt-get upgrade and apt-get update. <a href=\"https:\/\/unix.stackexchange.com\/questions\/159094\/how-to-install-a-deb-file-by-dpkg-i-or-by-apt\">Google is my friend<\/a> here, fine. So here is where I see guru-dom and a lack of kindness to noobs &#8211;<\/p>\n<p>I go tar -xzf audio.injector.scripts_0.1-1_all.deb.tar.gz, to find<\/p>\n<pre>-rw-r--r-- 1 pi pi 3864 Jul 24 2016  audio.injector.scripts_0.1-1_all.deb\n-rw-r--r-- 1 pi pi 3990 Jul 24 2016 audio.injector.scripts_0.1-1_all.deb.tar.gz<\/pre>\n<p>the original is a teeny bit smaller than the tar.gz, so why have that initial step at all?<\/p>\n<p>then I run<\/p>\n<p>sudo apt install .\/audio.injector.scripts_0.1-1_all.deb<\/p>\n<p>and it works fine<\/p>\n<pre>Reading package lists... Done\nBuilding dependency tree\nReading state information... Done\nNote, selecting 'audio.injector.scripts' instead of '.\/audio.injector.scripts_0.1-1_all.deb'\nThe following NEW packages will be installed:\naudio.injector.scripts\n0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.\nNeed to get 0 B\/3,864 B of archives.\nAfter this operation, 22.5 kB of additional disk space will be used.\nGet:1 \/home\/pi\/audio.injector.scripts_0.1-1_all.deb audio.injector.scripts all 0.1-1 [3,864 B]\nSelecting previously unselected package audio.injector.scripts.\n(Reading database ... 34322 files and directories currently installed.)\nPreparing to unpack ...\/audio.injector.scripts_0.1-1_all.deb ...\nUnpacking audio.injector.scripts (0.1-1) ...\nSetting up audio.injector.scripts (0.1-1) ...<\/pre>\n<p>I kind of figure a reboot wouldn&#8217;t do any harm here. Well, it might brick the whole thing, but here goes. He then recommends to run audioInjector-setup.sh, buggered if I can see it anywhere but I try it anyway-<\/p>\n<pre>audioInjector-setup.sh\nupdating the kernel\n*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom\n*** Performing self-update\n*** Relaunching after update\n*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom\n*** Your firmware is already up to date\n\nThe audio injector sound card is now setup.\nPlease reboot to enable the correct device tree.<\/pre>\n<p>grand. I reboot, then I run the next recommended commands<\/p>\n<pre>pi@piZero:~ $ audioInjector-test.sh\ncouldn't find the sox command please install the sox pacakge\npi@piZero:~ $ sudo apt-get install sox<\/pre>\n<p>and get a load of hurt about sox being missing. Some screenfuls of cruft later I get to try again<\/p>\n<pre>pi@piZero:~ $ audioInjector-test.sh\nplay: no process found\narecord: no process found\ngpicview: no process found\nRecording WAVE '\/tmp\/test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo\n\nEncoding: n\/a\nChannels: 2 @ 16-bit\nSamplerate: 48000Hz\nReplaygain: off\nDuration: unknown\n\nIn:0.00% 00:00:03.07 [00:00:00.00] Out:144k [ =====|===== ] Hd:5.9 Clip:0\nDone.\n\/usr\/bin\/audioInjector-test.sh: line 43: xdg-open: command not found\nRecording WAVE '\/tmp\/test.mic.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo\n\nEncoding: n\/a\nChannels: 2 @ 16-bit\nSamplerate: 48000Hz\nReplaygain: off\nDuration: unknown\n\nIn:0.00% 00:00:03.07 [00:00:00.00] Out:144k [ | ] Hd:5.9 Clip:0\nDone.\n\/usr\/bin\/audioInjector-test.sh: line 53: xdg-open: command not found\npress enter to test again, any other key then enter to exit<\/pre>\n<p>I think most of that aggravation is because I am running headless, after a while I get to hear a ghastly noise coming out of the headphones, some sort of pulsed 10k. Now I can still hear 10kHz but I presume audioinjector is in his 20s to have chosen that frequency &#8211; what&#8217;s wrong with the time-honoured 1kHz, FFS&#8230; But it works. And with a lot less hurt than for the <a href=\"http:\/\/www.richardmudhar.com\/blog\/2014\/10\/testing-the-wolfson-audio-board-and-raspberry-pi\/\">Wolfson sound card<\/a>, but not exactly noob-friendly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Just when I thought the remote Olympus recorder is the way to go here, along comes a promising new Pi solution for remote recording &#8211; this looks to be low cost and small. What more could a fellow want? Decent instructions and specs, for a start \ud83d\ude09 Australia seems to have a vibrant electronics tinkering &hellip; <a href=\"https:\/\/www.richardmudhar.com\/blog\/2018\/07\/raspberry-pi-zero-audio-recording-with-the-audioinjector-hat\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Raspberry Pi Zero audio recording with the AudioInjector hat&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":3488,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[2,10],"tags":[],"class_list":["post-3482","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-audio","category-raspberry-pi"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.richardmudhar.com\/blog\/wp-content\/uploads\/2018\/06\/DSCN3344.jpg?fit=1024%2C768&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5aOO7-Ua","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/posts\/3482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/comments?post=3482"}],"version-history":[{"count":14,"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/posts\/3482\/revisions"}],"predecessor-version":[{"id":3501,"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/posts\/3482\/revisions\/3501"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/media\/3488"}],"wp:attachment":[{"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/media?parent=3482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/categories?post=3482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.richardmudhar.com\/blog\/wp-json\/wp\/v2\/tags?post=3482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}