Close
0%
0%

Pi Portable Recorder

A portable recorder, using a Pi Zero, which also has extra functionality for birding (listing, location logging for sighting etc.)

Public Chat
Similar projects worth following
This is a portable recorder that:

- Is a high quality recording and playback device
- Is completely open source
- Is easily replicated
- Is easily modified (software or hardware)
- Is reliable in the field

Costs are kept to a minimum whilst not sacrificing quality and many of the sensors are optional.

Please note these are all aims of the project that I am working hard to fulfil.

A fully open source portable recorder. Its main use case is for recording bird song and also having a few other birding related features - creating lists (patch list, day list etc.), recording verbal field notes (very useful in the event of discovering a rarity or possible rarity), a counting feature (for example for WeBS counts - https://www.bto.org/volunteer-surveys/webs), conditions logging (temperature, humidity and pressure using the BME388 and SHT35-D) and if the user decides to solder one on a u-blox CAM-M8 GPS which comes with an integrated antenna for location logging used to log where certain birds were seen.  I also plan on having a BNO005 nine axis absolute orientation sensor as I like cramming on sensors =D. All sensors will be optional, with footprints that can be populated if desired. 

Also, in the future, I plan on adding a function for easy sea watching with which you can log each bird of a certain species you see and which direction via a few buttons - for example, one button for Guillemot, one for Common Scoter, one for East and one for West.

  • 1 × 128 x 128 SPI LCD - ST7735 LCD Screen
  • 1 × AXP209 PMIC - Battery Management
  • 1 × 12.288MHz crystal 3mm x 5.3mm Frequency Control / Crystals
  • 1 × Blue 3.5 mm audio jack Audio Jack
  • 1 × Green 3.5 mm audio jack Audio Jack

View all 30 components

  • New Counter App Basic Version Complete

    Louis Parkerson02/28/2019 at 22:57 0 comments

    Hey, I have finished a very basic counter app which increases the counter by an pre-selected amount each time. Useful for WEBS counts or just anything which requires recording numbers of species. It can be found here - https://github.com/LouisPi/piportablerecorder/blob/devel/apps/ppr_gui/counter/main.py

    Here are the features I plan to implement next in the counter apps:

    • Name counts (by species)
    • Save counts
    • Multiple counts at the same time
    • Whatever else I think of as I go along

  • App Updated, New App On The Way and More

    Louis Parkerson02/26/2019 at 20:07 0 comments

    Firstly, I have updated the app. The main changes/additions are:

    • Use of dictionaries to make referencing different lists easier by the key
    • Search by date and location as well as bird species (although the input message still reads "What bird are you looking for? ")
    • Lots of code rewritten to allow for the dictionary approach

    The app still has loads of improvements I have planned but it does work.

    Another app in development is a simple counter app, to keep a tally of the amount of species seen in a day or the amount of one bird etc. and to be able to name and save the tallies to a .csv file.

    Finally, I am finally putting together my components order for the pre amp and audio board as well as the power management board and a few other things to try out.

    As always, if you have any questions or suggestions, just ask.

  • First App and Electret Pre Amp Finished and More

    Louis Parkerson02/05/2019 at 00:03 0 comments

    Hey, finally time for an update. Firstly, I have just finished a basic bird list app which can be found here - https://github.com/LouisPi/piportablerecorder/blob/devel/apps/ppr_gui/bird_lists/main.py. It is far from perfect but finally all features are at least working. For development purposes input is still taken from a normal keyboard and some text is still output on my monitor. This should change as I will be receiving a Zerophone soon which has all the hardware required for testing my apps as well of course being a oober cool Pi Zero phone. 

    Also, I have finished a basic pre amp for the electret microphone using a TLC272. This is an old chip but from what I have heard and read it is still a decent op amp. The easyeda project for this can be seen here - https://easyeda.com/granbobbi22/mini-pre-amp and a picture of the PCB can be seen below. Note - the TLC272 supports two input and outputs and a future version will be made to support two electret mics.

    Unfortunately, the Pi Zero version of this audio board I found is on hold as I investigate why the the schematic file isn't loading =(. I have also put the Super Sensor Breakout on hold as I have sensibly decided that sensors will probably not fit and are definitely not the priorities of my project right now. Some good news is that I have a schematic for a MP2636 based lipo/li-ion booster for the project finished and am now in the process of developing a PCB for it.

    Meanwhile, if you have any question of course just ask in the comments.

    P.S - A more detailed PMIC log is planned with info on the MP2636 and the AXP209.

  • Schematic For Sensor Breakout Released

    Louis Parkerson01/24/2019 at 07:28 0 comments

    See here for the first schematic.

  • New Sensors Being Used and First App Nearly Finished

    Louis Parkerson01/15/2019 at 23:14 0 comments

    In the past few days I have been further researching sensors to be used with the Pi Portable Recorder and I am currently making a breakout board which will contain them all (for easy prototyping). The first sensor are a BNO005 9-axis absolute orientation sensor which contains an accelerometer, magnetometer and a gyroscope as well as a 32-bit cortex M0+ microcontroller which processes all the sensor data using Bosch's sensor fusion software before passing on the data to the Pi. I am also using a BMP388, an accurate pressure sensor which can be used to work out altitude to within around half a meter. I am also using an SHT35-D chip to measure temperature and humidity. This is also super accurate (maybe too accurate for my usecase =D) to within 1.5% relative humidity and within 0.1°C. It is likely the sensors used will change again, probably due to space constraints, but I at least plan to make and tests a breakout with all of these sensors.

    As well as hardware, I have started developing my first Pi Portable Recorder app. As I have not got the hardware to create and test a recording app yet, I have been working on an app to create bird lists. This will allow the user to manage lots of lists (patch lists, year lists, day lists, life lists etc.) through menus and add new items to the lists as well as information about them (dates, locations and notes), search the lists for items and of course create new lists. These lists are saved as csv files and opened by the built in csv python library. I have currently created the basic app, added the ability to open the csv file for editing and reading (and put the data into Python lists) and added the search feature. I just need to add the feature of creating and adding to lists as well as making the UI more user friendly before I commit the app to the GitHub page (in the devel branch) - https://github.com/LouisPi/piportablerecorder/tree/devel

    Meanwhile, if anyone has any suggestions or comments regarding the Pi Portable Recorder please do start a discussion on Hackaday.

  • Another Quick Update

    Louis Parkerson01/10/2019 at 20:06 0 comments

    Just a quick update to say I have updated the Hackaday description and components list (added the I2S Audio Phat components). Also, although I said I would be ordering components, I have started designing a 'quick and easy' BME680 and LIS3DH breakout and want to finish that before ordering components. Also, I don't know if I am going to finish my CAM-M8 breakout before ordering components or order the CAM-M8 components at a later date as I really want my GPS breakout to be usable first try (got to stick to loads of design guidelines with copper pours etc.) and possibly saleable if I decide to sell it (not really sure if I will yet). As well as all that, I am designing a SAMD51 dev board/breakout (did I not warn you I am breakout obsessed?!) as I will probably end up using an Arduino chip to easily get input from lots of buttons. I know the SAMD51 is overpowered for my usecase but a powerful chip with lots of additional features (see the list here - https://www.microchip.com/wwwproducts/en/ATSAMD51P20A) is means anyone can mod Pi Portable Recorder and practically add whatever they want with the best of both worlds (Pi and Arduino). Let's just see if I can fit all these sensors, audio chips, PCBs, resistors, capacitors, screens, battery and whatever else in a pocket sized recorder! 

  • Loading Screen/Logo

    Louis Parkerson01/06/2019 at 10:47 0 comments

    Hello everyone I have made a loading screen/logo for this project which will display as the device boots up. As I am not very artistic, I any comments on it our appreciated - don't be afraid to criticise it =D. I am currently still waiting for parts and then next update will hopefully be showing a fully assembled and working I2S Audio Phat.

  • Hardware Update

    Louis Parkerson12/14/2018 at 01:11 0 comments

    Hello everyone. It has been a while since I posted and in that time I have done a lot of research for the Pi Portable Recorder and I should be ordering components this week! Firstly, I bought a new screen - a SPI ST7735 128 x 128 LCD to try out. I favoured this screen over other screens I have tried due to it's cost (£2.54 on Ebay), colour (not just two colours like a SSD1306 OLED), speed (uses SPI not I2C) as well as ease of use (already supported by luma.lcd) and easy to use pinout (no pins we do not need or SD card sockets on the underside of the screen etc.). 

    Secondly, I have decided on a audio board. After searching for a good I2S audio board for the Pi (with high quality input of course), I decided I was going to design my own PCB using the WM8731 chip which supports I2C commands, stereo audio output and stereo audio input, electret mic bias and much more . However, whilst researching how to design a good WM8731 breakout for the Pi, I came across this amazing board created by Github user skiselev. It uses the WM8731 as I wanted and breaks out all the inputs and outputs I wanted - big thanks to skiselev for making this board available! The board is so perfect, I don't need to make any PCB changes but I will try out an EM172 instead of the average electret mic included in the BOM - I say 'try out' because despite the EM172 being popular within the bird recording community, information of how well it works at a lower mic bias voltage (around 2.5V for the WM8731 if I recall correctly) is thin on the ground. I plan on assembling this board this side of the New Year and will post when I have finished.  

    Next up is the RTC, I like a recorder that keeps time so your recordings are easily timestamped. I noticed on the Zoom H1 taking out the battery resets the time which I find very annoying. For this reason I decided on the precision DS3231 RTC chip using a supercapacitor as backup power. I will try out a simple cheap breakout to start but plan to add it to the main board in the future.

    Another thing I thought about was battery type used. I decided on using 1 18650 due to ease of use (booster and chargers easily available), capacity (around 2500 mah) and size (not too big). I decided not to use lipo as they are easily punctured and bent and more difficult to source (18650 is are readily available and can easily be bought from vape shops). This leads me onto the power management integrated circuit (PMIC) I plan to use. I currently plan on using the AXP209 (you may not of heard of it). As I have recently become involved in the Zerophone project a little bit (good experience for making Linux portable projects like mine), I was alerted to the presence of the cool AXP209 PMIC by the creator of Zerophone. It is 'China only' chip but very cheap! The AXP209 supports the charging and boosting of an 18650 whilst also supporting soft and head resets/shutdowns, under/over voltage protection and more. To see all the features of this chip go here. A breakout for this chip is being designed and made at the moment but it has not currently been made to work but when/if it does the breakout should be available to buy on Tindie in the near future.

    Of course, as well as output (the LCD) we need input, I have decided to use some through hole 4 pin tactile push buttons for prototyping but in the future I plan to use these buttons and maybe a bigger button to start recording. These buttons were chosen for their tall caps and low cost.

    As well as the essentials the Pi Portable Recorder allows for use of add ons. There should be a template in the future for users to create their own add on boards. Useful pins that are can be shared or are not used (any spare SPI pins, power pins, I2C etc.) will be broken out from the Pi on the main board to allow the easy addition of add on boards.

    As well as the possibility of adding your own sensors etc., I am also designing a Premium...

    Read more »

  • Problem Number One

    Louis Parkerson07/16/2018 at 16:33 0 comments

    Not far in and I have already encountered a problem. When running my simple script that worked out the frames per second of the screen the CPU usage averaged at 86%. Whilst running other scripts (mainly recording audio), this could be a problem with not having enough processing power to run the program. 

    Solution - A SPI OLED uses more GPIO pins but has a higher refresh rate and lower CPU usage. Adding one of these instead of the I2C screen would help.

  • OLED Setup Guide

    Louis Parkerson07/15/2018 at 22:42 0 comments

    I started of by trying to get the OLED (see components list) for the recorder working after following this (https://www.raspberrypi-spy.co.uk/2018/04/i2c-oled-display-module-with-raspberry-pi/) guide. However, I then got an error saying I needed to install Adafruit PureIO. This was fixed by entering 

    git clone https://github.com/adafruit/Adafruit_Python_PureIO.git

    After this I entered 

    cd Adafruit_Python_PureIO

    Then to install everything I entered 

    sudo python3 setup.py install

    I could then use the OLED as described in the excellent post by Matt. I then coded a program (which I will upload to Github) based loosely on the example image.py script to measure the frames per second the screen could display. I worked out the the screen averaged at around 3.7 frames per second. However, I then wanted to increase the performance of the screen so I followed another great guide by Matt (https://www.raspberrypi-spy.co.uk/2018/02/change-raspberry-pi-i2c-bus-speed/). I then ran my program again and my results averaged at around 5.6 frames per second - an increase of 1.9 frames per second. This was tested on a Pi Zero v1.3 running Raspbian and then retested on a Pi Zero W as well.

    Update - After more testing, I have recorded the frames per second displayed on the OLED as high as 5.9, although the average is still just over 5.6.

    Thanks for reading my first post.

    Next post planned - How to create your own images to display on the OLED using GIMP.

View all 10 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates