Teensy 4.0 - based Audio Guestbook

mic wire1.jpgmic wire2.jpgmic wire3.jpg

Not very elegant, but it is working . . .
Make the inner (shielded) cable a little longer than the wound cable, so you have some flexibility.
I added a special black microphone windshield foam to avoid pops in the audio.
 
eugh...

this is becoming a frustration. I'm still unable to eliminate the buzzing completely... I have removed excess wiring, twisted the cabling and re-soldered joints to ensure it's as good as can be. The only thing i havent done is use jumper cabling on the mic input pins - i have soldered wiring to the pins.

One thing i have noticed is that I have got an error with the arduino IDE library :

Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries

doubt this is an issue, but could it be?

I did try using a different mic from a different handheld phone and wired directly to the audio pcb inputs and that also had buzzing - perhaps it's interference from somewhere else - maybe a ground loop issue? Is there anything in the o.g. code that I could alter? I feel like if I can eliminate those frequencies I will be happy

thanks all
 
One thing i have noticed is that I have got an error with the arduino IDE library :

Code:
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\libraries\libraries
Invalid library found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries: no headers files (.h) found in C:\Users\x\Desktop\arduino-1.8.19\hardware\teensy\avr\libraries\libraries

doubt this is an issue, but could it be?

I would not think that the error report is in any way connected to your buzzing, but it is certainly an issue that needs to be cleaned up by re-installing TeensyDuino.

Mark J Culross
KD5RXT
 
Has anyone attempted to connect into the dialing system to add functionalities like playing back the last message (replacing the replay button) or being able to set the last message as your new greeting? I have gotten my phone functioning with the base code but am definitely more beginner level of coding and not sure where to start to get those extra functions.
 
As Mark mentioned, the buzzing will probably not be caused by the software, but the wiring of your microphone. You could try changing the following:
* try to power the Teensy by a power bank. Do that in a room (or even outside) where you can be certain that there is no computer, laptop, TV or switching power supply running.
* if the noise remains the same: use a good and shielded microphone cable and wire it as stated here: https://github.com/DD4WH/audio-guestbook
* if the noise remains: discard the built-in mic and use a new electret mic, like the AOM-5024

It would be nice to have someone explore using the dialing system. However, this will probably be highly dependent on the dialing system used and the status (dust, oil, rust etc.), so this would probably be only possible for advanced users having knowledge about dialing systems. (I personally have no idea how they work...)

Finished a new build yesterday:
W61 telephone audio guestbook DD4WH.PNG
It is a Nordfern W61 Fernsprech-Tischapparat, German Democratic Republic, built 1962, case made of duroplast Bakelit. Luckily, the handheld switch was in good condition and also the white pushbutton could be used without problems. Built-in mic capsule discarded, using AOM-5024 electret instead.
 
Making Audio Guestbook, Issues with the code; MTP_Teensy.h: no such file

Hey, I am making this aswell. I am currently stuck at another section;

In the beginning of the code it says:
#include <Bounce.h>
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <TimeLib.h>
#include <MTP_Teensy.h>

however, the MTP_Teensy is fully black, not red like 'bounce' and the others. Somehow this is missing and I dont know how to add it to my pc or where to download it.
SO when trying to verify, I get the following result:

C:\Users\ianvi\OneDrive\Documenten\Arduino\Audioguistbook\Audioguistbook.ino:31:24: fatal error: MTP_Teensy.h: No such file or directory
compilation terminated.
Error compiling for board Teensy 4.0.

Does anyone know how to fix this? I am very new to coding, so if you could explain it in a way you would explain a 3 year old that would be appreciated.
Thanks in advance
 
#error "You need to select USB Type

Thanks @DD4WH, hadnt seen your reply.
Okay, so now ive installed it, but I get the following error message;

In file included from C:\Users\ianvi\Arduino\hardware\teensy\avr\libraries\AudioGuestbook\AudioGuestbook.ino:31:0:
C:\Users\ianvi\Arduino\hardware\teensy\libraries\MTP_Teensy-main\src/MTP_Teensy.h:32:2: error: #error "You need to select USB Type: 'MTP Disk (Experimental)' or 'Serial + MTP Disk (Experimental)'"
#error "You need to select USB Type: 'MTP Disk (Experimental)' or 'Serial + MTP Disk (Experimental)'"
^
Error compiling for board Teensy 4.0.

How do I fix this?
thanks in advance
 
Thanks @DD4WH, hadnt seen your reply.
Okay, so now ive installed it, but I get the following error message;

In file included from C:\Users\ianvi\Arduino\hardware\teensy\avr\libraries\AudioGuestbook\AudioGuestbook.ino:31:0:
C:\Users\ianvi\Arduino\hardware\teensy\libraries\MTP_Teensy-main\src/MTP_Teensy.h:32:2: error: #error "You need to select USB Type: 'MTP Disk (Experimental)' or 'Serial + MTP Disk (Experimental)'"
#error "You need to select USB Type: 'MTP Disk (Experimental)' or 'Serial + MTP Disk (Experimental)'"
^
Error compiling for board Teensy 4.0.

How do I fix this?
thanks in advance

In the Tools drop down menu, select USB TYPE, and within that drop down menu select Serial + MTP Disk (Experimental). You need Teensydunio 1.57 for this. In earlier Teensydunio's, you could only select MTP Disk (Experimental) which does not provide a serial device to see debug messages.
 
In the Tools drop down menu, select USB TYPE, and within that drop down menu select Serial + MTP Disk (Experimental). You need Teensydunio 1.57 for this. In earlier Teensydunio's, you could only select MTP Disk (Experimental) which does not provide a serial device to see debug messages.

Tanks; That solved that issue, but now I have again another issue. This is what I get when i verify:

AudioGuestbook:49: error: redefinition of 'AudioSynthWaveform waveform1'
AudioSynthWaveform waveform1; // To create the "beep" sfx
^
C:\Users\ianvi\Arduino\hardware\teensy\avr\libraries\AudioGuestbook\AudioGuestbook.ino:43:25: note: 'AudioSynthWaveform waveform1' previously declared here
AudioSynthWaveform waveform1; // To create the "beep" sfx
^
AudioGuestbook:50: error: redefinition of 'AudioInputI2S i2s2'
AudioInputI2S i2s2; // I2S input from microphone on audio shield
^
C:\Users\ianvi\Arduino\hardware\teensy\avr\libraries\AudioGuestbook\AudioGuestbook.ino:44:25: note: 'AudioInputI2S i2s2' previously declared here
AudioInputI2S i2s2; // I2S input from microphone on audio shield
^
AudioGuestbook:51: error: redefinition of 'AudioPlaySdWav playWav1'
AudioPlaySdWav playWav1; // Play 44.1kHz 16-bit PCM greeting WAV file
^
C:\Users\ianvi\Arduino\hardware\teensy\avr\libraries\AudioGuestbook\AudioGuestbook.ino:45:25: note: 'AudioPlaySdWav playWav1' previously declared here
AudioPlaySdWav playWav1; // Play 44.1kHz 16-bit PCM greeting WAV file
^
AudioGuestbook:52: error: redefinition of 'AudioRecordQueue queue1'
AudioRecordQueue queue1; // Creating an audio buffer in memory before saving to SD
^
C:\Users\ianvi\Arduino\hardware\teensy\avr\libraries\AudioGuestbook\AudioGuestbook.ino:46:26: note: 'AudioRecordQueue queue1' previously declared here
AudioRecordQueue queue1; // Creating an audio buffer in memory before saving to SD
^
AudioGuestbook:53: error: redefinition of 'AudioMixer4 mixer'
AudioMixer4 mixer; // Allows merging several inputs to same output
^
C:\Users\ianvi\Arduino\hardware\teensy\avr\libraries\AudioGuestbook\AudioGuestbook.ino:47:26: note: 'AudioMixer4 mixer' previously declared here
AudioMixer4 mixer; // Allows merging several inputs to same output
^
AudioGuestbook:54: error: redefinition of 'AudioOutputI2S i2s1'
AudioOutputI2S i2s1; // I2S interface to Speaker/Line Out on Audio shield
^
C:\Users\ianvi\Arduino\hardware\teensy\avr\libraries\AudioGuestbook\AudioGuestbook.ino:48:26: note: 'AudioOutputI2S i2s1' previously declared here
AudioOutputI2S i2s1; // I2S interface to Speaker/Line Out on Audio shield
^
AudioGuestbook:61: error: redefinition of 'AudioControlSGTL5000 sgtl5000_1'
AudioControlSGTL5000 sgtl5000_1;
^
C:\Users\ianvi\Arduino\hardware\teensy\avr\libraries\AudioGuestbook\AudioGuestbook.ino:60:26: note: 'AudioControlSGTL5000 sgtl5000_1' previously declared here
AudioControlSGTL5000 sgtl5000_1;
^
AudioGuestbook:75: error: redefinition of 'float beep_volume'
float beep_volume = 0.04f; // not too loud :)
^
C:\Users\ianvi\Arduino\hardware\teensy\avr\libraries\AudioGuestbook\AudioGuestbook.ino:74:7: note: 'float beep_volume' previously defined here
float beep_volume = 0.04f;
^
Exception in thread "Thread-31" java.lang.Error: Error: could not match input
at org.fife.ui.rsyntaxtextarea.modes.CPlusPlusTokenMaker.zzScanError(CPlusPlusTokenMaker.java:2095)
at org.fife.ui.rsyntaxtextarea.modes.CPlusPlusTokenMaker.yylex(CPlusPlusTokenMaker.java:2343)
at org.fife.ui.rsyntaxtextarea.modes.CPlusPlusTokenMaker.getTokenList(CPlusPlusTokenMaker.java:1919)
at org.fife.ui.rsyntaxtextarea.RSyntaxDocument.getTokenListForLine(RSyntaxDocument.java:431)
at org.fife.ui.rsyntaxtextarea.SyntaxView.modelToView(SyntaxView.java:541)
at javax.swing.plaf.basic.BasicTextUI$RootView.modelToView(BasicTextUI.java:1509)
at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1047)
at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1022)
at javax.swing.text.JTextComponent.modelToView(JTextComponent.java:1377)
at org.fife.ui.rtextarea.RTextAreaBase.possiblyUpdateCurrentLineHighlightLocation(RTextAreaBase.java:778)
at org.fife.ui.rtextarea.RTextArea.fireCaretUpdate(RTextArea.java:614)
at org.fife.ui.rsyntaxtextarea.RSyntaxTextArea.fireCaretUpdate(RSyntaxTextArea.java:835)
at javax.swing.text.JTextComponent$MutableCaretEvent.fire(JTextComponent.java:4394)
at javax.swing.text.JTextComponent$MutableCaretEvent.stateChanged(JTextComponent.java:4416)
at javax.swing.text.DefaultCaret.fireStateChanged(DefaultCaret.java:802)
at javax.swing.text.DefaultCaret.changeCaretPosition(DefaultCaret.java:1274)
at javax.swing.text.DefaultCaret.handleSetDot(DefaultCaret.java:1173)
at javax.swing.text.DefaultCaret$DefaultFilterBypass.setDot(DefaultCaret.java:1913)
at javax.swing.text.NavigationFilter.setDot(NavigationFilter.java:64)
at org.fife.ui.rtextarea.ConfigurableCaret$FoldAwareNavigationFilter.setDot(ConfigurableCaret.java:724)
at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1151)
at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1051)
at javax.swing.text.JTextComponent.setCaretPosition(JTextComponent.java:1631)
at processing.app.Editor.addLineHighlight(Editor.java:1687)
at processing.app.Editor.statusError(Editor.java:2611)
at processing.app.Editor$BuildHandler.run(Editor.java:1662)
at java.lang.Thread.run(Thread.java:748)

Anyone know what I need to do to fix it?
 
There is now a new software version available:

* it is now possible to record the greeting message directly on the phone the first time you use the telephone
* the software checks whether there is a "greeting.wav" file on the SD card
* if not, the telephone makes a two-tone beep, the next time you lift the handheld
* if yes, the telephone behaves as usual
* if you want to change the greeting message, just rename or delete it, next time the telephone will prompt again (two-tone beep) for the new message

Please use this download link for the new features:

https://github.com/DD4WH/audio-guestbook

Please read carefully all the details in the readme concerning hardware and software!
 
The code has been updated again:
* user configuration is now very easy, because I structured some precompile options at the top of the sketch

1.) does your handheld OPEN or CLOSE the switch when you lift the handheld ? Use a voltmeter to find out !

2.) do you want the telephone to be able to record the greeting message automatically, if there is no "greeting.wav" present on the SD card ?

3.) do you use Teensy 4.0 (SD card slot of the audio board) or do you use Teensy 4.1 (SD card slot of the Teensy 4.1) ?


Your answers to these questions are put into the sketch by commenting/uncommenting the #defines at the top of the sketch.

https://github.com/DD4WH/audio-guestbook

Code:
/***************************************************************************************************************************************************/
/**USER CONFIGURATION ******************************************************************************************************************************/
/**COMMENT / UNCOMMENT ACCORDING TO YOUR HARDWARE **************************************************************************************************/
/***************************************************************************************************************************************************/

// comment this out, if your handheld OPENS the contact on lift
// use a digital voltmeter to find out
#define HANDHELD_CLOSES_ON_LIFT

// comment this out, if you want to record your greeting message with an external recorder
// leave as-is if you want to have the telephone automatically switch to recording the greeting message, in case there is no "greeting.wav" on the SD card 
#define AUTO_GREETING_MESSAGE

// comment out, if you use a Teensy 4.0 (and thus the SD card slot on the audio board)
// if you leave this as-is, you have to use the built-in SD card slot on the Teensy 4.1, NOT the SD card slot on the audio board 
#define TEENSY_41

/***************************************************************************************************************************************************/
/**END OF USER CONFIGURATION ***********************************************************************************************************************/
/***************************************************************************************************************************************************/
/***************************************************************************************************************************************************/
 
Hi, I used the above codes with changing risingEdge and fallingEdge around and solved my previous issues.

However, while recording the message, after every 12-13 seconds there are noises for 1-2 seconds. This cycle repeats. I checked the recorded message and found the part of the message during 1-2 seconds noise was missing.

Any help to fix this would be appreciated.
 
Hi All,

Great to see so many people working on this and helping eachother! Ive also started on this project and when trying to run the code ran into a few issues. Fixed some, but got stuck in the end..
(Note i'm not experienced at all with coding etc.)

The error i get is:

....\Desktop\audioguestbook_code\audioguestbook_code.ino:30:24: fatal error: MTP_Teensy.h: No such file or directory
compilation terminated.

Any tips on how to fix this? I've downloaded this file from github: https://github.com/KurtE/MTP_Teensy. Then i get a file nammed MTP_Teensy-Main. I've unzipped this and update the name to be "MTP Teensy" (and tried a few variations). Finally i've tried to upload it & place it in the folders where the other libraries are but keep getting the same error.

EDIT:

Tried some more ways to upload the library and managed to get a different error code now. At least it finds the library, but no idea how to fix this now:

Code:
In file included from C:\Users\CJH\OneDrive\Bureaublad\audioguestbook_code\audioguestbook_code.ino:30:0:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\MTP_Teensy\src/MTP_Teensy.h:32:2: error: #error "You need to select USB Type: 'MTP Disk (Experimental)' or 'Serial + MTP Disk (Experimental)'"
 #error "You need to select USB Type: 'MTP Disk (Experimental)' or 'Serial + MTP Disk (Experimental)'"
  ^
Multiple libraries were found for "SD.h"
 Used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SD
 Not used: C:\Program Files (x86)\Arduino\libraries\SD
Error compiling for board Teensy 4.0.

(
 
Last edited:
EDIT:

Tried some more ways to upload the library and managed to get a different error code now. At least it finds the library, but no idea how to fix this now:

Code:
In file included from C:\Users\CJH\OneDrive\Bureaublad\audioguestbook_code\audioguestbook_code.ino:30:0:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\MTP_Teensy\src/MTP_Teensy.h:32:2: error: #error "You need to select USB Type: 'MTP Disk (Experimental)' or 'Serial + MTP Disk (Experimental)'"
 #error "You need to select USB Type: 'MTP Disk (Experimental)' or 'Serial + MTP Disk (Experimental)'"
  ^
Multiple libraries were found for "SD.h"
 Used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SD
 Not used: C:\Program Files (x86)\Arduino\libraries\SD
Error compiling for board Teensy 4.0.

(

If you look at post #87 in this thread that I did on August 11th, it has the directions to enable building MTP devices.
 
Arduino: 1.8.19 (Windows 10), TD: 1.57, Board: "Teensy 4.0, Serial + MTP Disk (Experimental), 150 MHz, Debug, US English"

Opening Teensy Loader...

Memory Usage on Teensy 4.0:

FLASH: code:99492, data:13612, headers:8748 free for files:1909764

RAM1: variables:18144, code:97112, padding:1192 free for local variables:407840

RAM2: variables:45440 free for malloc/new:478848

No Teensy boards were found on any USB ports of your computer.

Please press the PROGRAM MODE BUTTON on your Teensy to upload your sketch.

Board at usb:0/140000/0/2 is not available



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Can anyone please help with this?
 
@defragster - thanks for your comments. You are correct, the button press also did not work. The USB cable is good to transfer the previous versions of the codes - it is unlikely an issue. I would assume this is something to do with MTB_Teensy!
Please let me know your thoughts. If you confirm, I will buy another USB cable to try. Thanks.
 
Suggest: Unplug the Teensy and having Teensy Loader open and In the IDE do a Verify build. In the Teensy Loader open Help / Verbose info to see log of the USB messages it processes. In Verbose select the Log menu item to clear the the content to make it clear if activity appears.

Then holding the Button - plug in the Teensy - pause a second - release the button.

See if it programs properly and what is logged in the Loader Verbose window.

If that fails hold the Button on the powered Teensy for 15 seconds and release on the RED LED Flash to do the 15 second Restore that should return the Blink program.

Then repeat the above attempt to program - if that fails then perhaps it is the cable - and some portion of the Verbose log info may be useful?
 
I updated my Teensyduino and downloaded MTP, however under tools I don't have the option to select Serial + MTP, only the two separately. Am i missing something?
 
Ribbon Cable on Hook Switch

Has anyone successfully executed this build using a phone that has a ribbon cable from the hook switch? Mechanical engineer here and I’m completely at a loss for how to wire that up, any help would be greatly appreciated.
 
Back
Top