Getting started with the 4D Systems SOMO 14D audio module

westaust55

Moderator
The following information is intended to help PICAXE users to get their SOMO 14D audio/sound modules working with a PICAXE microcontroller.

Introduction:
The 4D Systems SOMO 14D audio/Sound module is a small (~19mm x ~21mm) 14 pin drop-in module that can play back audio files stored on a micro SD memory card. The module supports 4-bit ADPCM audio files (.ad4 filename extension) with sample rates from 12Khz up to 32Khz

The SOMO 14D module has two modes of operation, SERIAL and KEY.
The Serial modules utilises an SPI type interface with two or three wires under the control of a separate microcontroller such as the PICAXE. The key mode allows stand alone operation without a host control device using three push button switches.

This post predominantly addresses the SERIAL mode of control using a PICAXE controller.

While two wire control is possible, if playing longer audio files and wishing to ensure that they are played to completion before starting to play a new file, then it will be necessary to use a third wire to monitor for completion of playback of a prior audio file.

Additionally some may wish to implement a hardwired RESET between the PICAXE and the SOMO module as discussed below.

Audio output can be derived using a speaker (8/16/32 Ohms suggested) connected directly across two pins of the SOMO 14D module or alternatively an audio output pin is provided for connection into an amplifier if desired.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
A few points of caution and information:

1. Power Supply:
While the SOMO 14D datasheet indicates that the module will operate from a single power supply in the range 2.7Vdc to 3.6Vdc, a few users have found that operation below 3.0/3.1Vdc may not be reliable.

Operation from a well regulated 3.3V power supply is recommended (eg a LP2950-33 as a 3.3V 100mA supply). The datasheet indicates the power consumption at 3.3V supply as 10uA typical at idle and a max of 45mA when playing an audio file).

I forced a voltage dip (by connecting a 220uF capacitor) to the power supply while the SOMO 14D was operating which caused the SOMO 14D to immediately change to playing another audio file.
Conclusion is that while I personally have operated a SOMO 14D module with only a 4.7uF electro type capacitor between the voltage regulator and SOMO module, the addition of the recommended electro capacitor is in the range 100uF to 470uF at/near the SOMO 14D terminals should be done.

If the environment is electrically noisy, it can also be useful to install a 100nF ceramic or mono type decoupling capacitor across the power supply close to the SOMO 14D module to help filter out switching disturbances.

2. uSD Memory Cards:
There have been problems with various makes of micro SD memory cards. Not all cards work well. A good sign of memory card problems is if you are having problems playing all songs, the SOMO 14D module “jumps” to another song before completing the previous song, the volume level changes for no apparent reason, or you hear pops/clicks particularly when using a speaker directly connected to the SPK terminals.

4D Systems has indicated that correct operation with:
- a Sandisk 2GB uSD card, . . . . . . . I (westaust55) have used a Sandisk 2GB uSD card without problems
- a Kingston 1GB uSD card . . . . . . . . . Grogster has reported success on this forum with a Kingston 1GB uSD card

uSD cards as found to work by others:
- a DSE 2GB uSD cards from Dick Smith Electronics in Australia (reported by WestAust55)
- an A-Data 2GB uSD card, (reported by Grogster)
- a Transcend 2GB uSD card (reported by Grogster)
- a Fujifilm 2GB uSDcard (reported by picIt)
- a Kingmax 256MB uSDcard (reported by goom)


- Kingston 2GB uSD card ( two examples tested and working by Westaust on 14Dec09).
These Kingston cards have the number 6603363B on the bottom right at rear of the retail packaging card. See attached image



The following cards are known to give problems (this is far from a complete list):
- Kingsmax – 64MB (reported by westaust55)
- Lexar 2GB (reported by westaust55)
- SanDisk 1.0GB (reported by goom)
- Kingston 2GB (reported by goom and Grogster) – seems 1GB cards work but both members had problems with the 2GB version
.. Goom reported that the Kingston 2GB that does not work has 6602523B on the bottom right of the rear of the retail package.
- Apacer 2GB uSD card (reported by Grogster)

(let me know by PM of any others you have success or failure with and I can add them to this post to keep the list as comprehensive as possible)

The uSD card MUST be formatted using the FAT/FAT16 format.
4D Systems recommend that when used with the SOMO 14D module, rather than just adding additional audio files to the uSD card, that the card be re-formatted and all required audio files be added at one time.


3. Direct Speaker Connection:
The datasheet (up to Rev 3) indicates that a speaker of 8, 16 or 32 Ohm 0.25W rating can be connected.
However, in a response to a post on the 4D systems forum, the 4D Systems technical people made the comment:
“Speaker: 8 ohm 1W (Not recommended), 16 ohm 0.5W, 32 ohm 0.25W”
While the 8 Ohm speaker is apparently not recommended, I have been using a higher quality 8 Ohm 3 Watt speaker without signs of any problems.

4.Using the SOMO Audio Output Pin (pin14):
Some users of the SOMO 14D module have reported audible click sounds between playback of files.
Seemingly this applies in the KEY mode operation resulting in a noticeable click when there is no sound file playing and you click Next, Previous or Play. As at Rev 3 of the datasheet, a transistor based switching circuit driven by the BUSY signal is now recommended by 4D systems to disable the audio line between playback of files.

The data sheet shows using a .1uF capacitor in series with the audio out pin (pin 14). Some users have indicated that this seriously reduced the bass response. A recommendation has been to use 2.2 uF bipolar electrolytic instead.

5. Audio File conversion:
Audio file names do not need to be in sequence. There can be gaps in the file name numbering.

Some users reported that converting their mp3 and .wav files to ad4 format resulted in pops and clicks being heard during playback with the SOMO module. The same users indicated that selecting the sample rate for conversion to ad4 equal to the original mp3/wav file sample rate resulted in playback without pops and clicks.

Sometimes when you convert the mp3/wav file to an ad4 file it becomes corrupted if you try to change the data rate. This can give the impression of clicks. Try converting the file back to the original format and see if it still sounds OK.

6. Operating with the PICAXE at 5Vdc
If you are powering your PICAXE at 5Vdc, then as per the datasheet, you need to include series resistors in the Clock and Data lines between the PICAXE and SOMO 14D module.
The datasheet indicates 470 Ohm resistors as adequate. I have used 1.2k Ohm and 4.7k Ohm resistors without disrupting control of the SOMO module.
There is no need for a resistor in the BUSY signal line from the SOMO 14D module to the PICAXE. In fact, adding a resistor of a relatively high value may cause problems.

7. PICAXE to SOME 14D circuits - some further recommendations:
If you are having problems getting your SOME 14D audio module to work correctly, here are some further recommendations

- Add a 100n cap across the PICAXE(as close as possible) to filter out PSU noise
- Add a 220uF or 470uF/16v cap across SOMO supply, as close to module as possible
- Add a 100n cap across SOMO supply, in parallel with the electro capacitor
- try wiring a RESET line control from the PICAXE – so the SOMO is reset before selecting any audio file.
- Do not include diagnostic LED's on CLK, DTA and RESET lines (but keep the 330R series resistors)
- if you have an LED connected to the SOMO 14D busy line, try removing that play indicator.
 

Attachments

Last edited:

westaust55

Moderator
Getting started with the 4D Systems SOMO 14D audio module - Part 2

(had to break the information over two posts due to text length limitations.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SOMO 14D Module Operation - Serial Mode:
The SERIAL mode for control includes five primary commands:
- Play
- Pause
- Stop
- Volume
- Audio file selection

Sending any command to the SOMO 14D results in that control/action being undertaken immediately.

There is no buffer to send filenames for several audio files to be played consecutively. If you send a new filename while one audio file is being played back, play back of the initial audio file stops and play back of the new file commences then and there.

When you send a new filename to the SOMO 14D, it will play immediately. There is no need to also send a PLAY command.
In fact, Grogster has reported on this forum that sending a PLAY/PAUSE command after selecting the file to play, results in the module going into pause mode and nothing plays

The SOMO 14D provides a BUSY signal that can be used to indicate when an audio file is being played back. By connecting this signal to a PICAXE input, the PICAXE program can detect when to start playback of a new audio file.
Once a filename has been passed to the SOMO 14D module, there is a brief delay before the BUSY signal line is taken high. My trial and error (using various values with the PAUSE command) suggests this is around 7mSec. In the new (Rev 3) version of the datasheet, it is now indicated that the delay timing is a minimum of 20msec. Accordingly, it is necessary to delay the checking of the BUSY line for around 20msec otherwise the PICAXE program will “see” the situation as the current file has completed playback and may then immediately pass a new filename to the SOMO 14D module.

My findings are that there is also a brief delay (~7msec) between when the BUSY signal goes low and the SOMO 14D module being ready to accept a new filename for playback. The Rev 3 datasheet does not address this but my recommendation is to include a similar 20msec delay after the BUSY signal has gone low before sending a new audio file name.

I have achieved reliable operation without the use of the RESET signal from the PICAXE to the SOMO 14D audio module. Notwithstanding this, others have found that using the PICAXE to perform a hardwired reset of the SOMO 14D module prior to sending each audio file name has overcome problems.

If you do use the SOMO module RESET pin, then it needs to be connected directly to a PICAXE IO line – a small value series resistor (330 Ohm) - tested and confirmed okay by groster. Don’t use a potential divider to drop from 5V to 3.3V. Due to the internal pull up resistor onboard the SOMO module, if a potential divider type circuit is used, the interaction with the SOMO on-board pull-up resistor voltage may cause the voltage not drop low enough to trigger a reset of the SOMO module.

The SOMO 14D module control uses a 16-bit word for all control and file selection as described in the datasheet. The most significant bit must be sent first.

For the PICAXE range of microcontrollers see the example program code under the SPIOUT (SHIFTOUT) command in PICAXE manual 2 as a starting point.

Below is a PICAXE program code listing that I have created and which will sequentially play the first 31 files (0000.ad4 to 0030.ad4) on the uSD card.
I have included a lot of comments so that others can understand the operation of the program. The program could be optimized further to reduce memory space but has been left in a more readable form for ease of understanding by those new to electronics and/or PICAXE.
 

Attachments

Last edited:

Grogster

Senior Member
Excellent report, westaust55. :)

Typo 1 - no bold type for the paragraph heading at the start of part 2.
Typo 2 - What is an OPICAXE? ;) 5th paragraph from the bottom of part 2.

I can confirm that I have been using a 330R series resistor on the RESET pin of the SOMO during all my testing with no problems whatsoever.(with respect to operation of RESET).

I have ordered a 2GB uSD card, SPECIFICALLY Kingston brand, to test myself, following reports that others were not able to get their 2GB Kingston cards to work, despite the fact that the 1GB Kingston card does work - strange. I will report back here with my findings.

EDIT: I have also purchased an A-Data 2GB uSD card too, to play with. Will post back with results.
 
Last edited:

Grogster

Senior Member
SMALL UPDATE: My two new 2GB uSD cards have arrived(Kingston and A-Data brands), but the project has now been disassembled off the breadboard while I designed and etched a PCB. This has been done, and I plan to assemble tonight, at which point, I will report back with results of using the other cards.
 

Grogster

Senior Member
Further uSD card information:

Test set of 40 tracks copied to the uSD card in one group(all at once), then the card inserted into the SOMO. uSD card renamed to SOMO - perhaps others should try that if they can't get any specific card to work - rename the card to something simple, but don't leave the card un-named, and don't exceed 8 characters for the card name - stick to 8-dot-3 DOS-style names for the name of the card. Anyway, on with the show...

A-Data 2GB uSD card; "Speedy series 2GB microSD Memory Card"
COMPATIBILITY: Yes
PLAYBACK: Perfect
POPS: None
CLICKS: None
SKIPPING: None
SERIAL MODE: Perfect
BUTTON MODE: Perfect


Kingston 2GB uSD card; "Kingston SDC/2GB"
COMPATIBILITY: No
PLAYBACK: None
POPS: ---
CLICKS: ---
SKIPPING: ---
SERIAL MODE: None
BUTTON MODE: None

In my case, I was unable to get the Kingston 2GB card to work AT ALL.
Buttons work, serial-commands work, but the SOMO refuses to even begin playback on this card, so I would advise others reading this to NOT use this card with the SOMO, unless you are doing so for the purposes of testing yourself - but don't expect it to work! :p I was not able to format the Kingston 2GB card no matter what - Windoze just reports: "Windows was unable to complete the format." - yay - another stupid Windoze error message that tells you NOTHING. How about telling us WHY you can't finish the format? I guess that would be too logical for Windoze...
 
Last edited:

nbw

Senior Member
That's a nice post Westie. Makes me want one of these little suckers for Christmas!
 

westaust55

Moderator
Stereo to Mono file conversion for SOMO 14D use

As mentioned by Grogster elsewhere, the SOMO 14D module is a mono audio device.

If you use existing stereo mp3 or wav files and convert these using the 4D Systems software to the ad4 format. you only utilise one channel from the stereo file which can result in loss of information.
I have been using the free software Audacity to pre-convert the mp3 and wav files from stereo to mono to overcome this loss of data/information. Audacity is available for free download from:
http://audacity.sourceforge.net/

If you wish to save the resultant mono audio file in mp3 format, you will also need to download the LAME mp3 converter ddl file. This is available from a link on the Soundforge Audacity webpage.
Run the LAME exe file, recommend that you place the resultant dll file in the same directory as Audacity then when you do an Export to MP3 format the first time you need to point Audacity to the mp3 converter dll file.

The steps to convert a Stereo file to an mono file are:

1. Load the stereo file into Audacity

2. Click on the file name in the top of the box at the left of the audio waveform and select Split Stereo track. You will now have two boxes (left and right channel) at the left side of the audio waveforms – one for each track.

3. Click on the file name at the top of the box again for each track and change the file type to mono .

4. from the Project menu, select Quick Mix which will convert the two mono tracks into a single mono track.

5. Adjust the should level in the box at the left side of the waveform. I find most audio tracks can be dropped -3 dBa (but try playing the new mono track first as some files are quiet and can be left of 0dBa and very occasionally there is a quiet file where a +3 dBa adjustment can be worthwhile.

6. If there are extended silent periods at either end of the audio file, use the mouse to select the silent period and press the “Delete” key.
These “silent periods may have pops or clicks in them from the recording source equipment and take up some file space so worthwhile trimming the audio files.

7. From the File menu, use the Export as MP3 or WAV to save your new mono file.

Then use the 4D-Systems audio file conversion software to convert the resultant mp3 or wav file to the ad4 format required by the SOMO-14D audio module.
 

westaust55

Moderator
Tried a LEXAR 2GB uSD card tonight.

Under serial operation mode controlled by an 18X there was no playback of any files at all.
Have updated my list in post 1 to reflect this.
 
Last edited:

westaust55

Moderator
I have just spent some time this evening doing tests with two Kingston 2GB micro SD memory cards courtesy of 4D Systems for testing the SOMO 14D under PICAXE control in view of the problems goom and Grogster experienced with these same make of cards.

One card was supplied complete with 16 ad4 audio files by 4D systems and on the other Kingston card a loaded a set of 30 songs that I have converted from mp3 to ad4 format.

In both cases, the SOMO 14D module has worked correctly with the 2GB Kingston micro SD module.

These Kingston cards have the number 6603363B on the bottom right at rear of the retail packaging card. See attached image

@goom and @Grogster,
I sent both of you a Personal Message last week on this topic.
Any feedback?
 

Attachments

Last edited:

Grogster

Senior Member
Have not checked in here for quite a while - My Dad died, so I have been dealing with that. :(

Have read your PM, but for public information, attached is an image of the 2GB card that WON'T work for me - I suspect that goom has the same card. I cannot show the packaging, as it was thrown out when I first got the card, but based on your image, it looks to be the same. Out of interest, do your Kingston cards have the same markings/codes? Perhaps ALL cards in use with the 14D module HAVE to be SD Spec 1.1 - newer cards(even some of the 2GB ones, so I understand) use the newer SD Spec 2, which probably is the root of the problem.

I have also ordered two more brands of uSD card: Trancend 2GB and Apacer 2GB - I will post back here with results.

Also, I found an SD card formatter - specific to SD cards, and quoting the website:
SD or SDHC memory card file systems formatted with generic operating system formatting software do not comply with official SD memory card requirements and optimum performance may not be experienced.
http://www.sdcard.org/consumers/formatter/

I know that OFTEN Windoze refuses to reformat my SD cards, simply saying the format cannot complete, but does not tell me WHY - INTENSLEY irritating, the fact that no hint is given as to why not...
 

Attachments

Last edited:

westaust55

Moderator
Thanks for the link to the SD Formatter software.

I have found there is a V2.0.0.3 at the Panasonic website:
http://panasonic.jp/support/global/cs/sd/download/sd_formatter.html

Attached is a photo of the various 2GB micro SD cards that I have had success with in the SOMO 14D audio module AND the non-useable LEXAR card.

Comparing Grogster’s Kingston photo, looking at the layout of details below the MicroSD logo there is quite a difference considering both cards come from Taiwan. But who knows for sure . . . . .
 

Attachments

Grogster

Senior Member
Additional card information:

Apacer 2GB uSD card; "Apacer 2GB Flash Card Mobile Series"
COMPATIBILITY: No
PLAYBACK: None
POPS: ---
CLICKS: ---
SKIPPING: ---
SERIAL MODE: None
BUTTON MODE: None


Transcend 2GB uSD card; "Transcend microSD card"
COMPATIBILITY: Yes
PLAYBACK: Perfect
POPS: None
CLICKS: None
SKIPPING: None
SERIAL MODE: Perfect
BUTTON MODE: Perfect
 

Attachments

westaust55

Moderator
Thanks for the update Grogster.

I have updated post 1 with your data and that by picIt from another thread in the active forum area.
 

russbow

Senior Member
Thank you for all this information Gentlemen. It has motivated me to buy a Somo!

I have it working on a breadboard in key mode and the results are pleasing. Interestingly enough, the Transcend card does not work but a cheap glee-bay one does.

I now want to Picaxe it to produce fun phrases from the robot. I understand the code kindly given, but a couple of questions.

Having looked at the assigned pins in the prog, I assume an 08m chip. Am I right?

Considering this code snip

Code:
For track = 0 to 30			
		dta = $FFF5				
		GOSUB Send2SOMO			
							
							

	 	dta	= track			
	 	GOSUB Send2SOMO			
		GOSUB Holdtilldone					
	NEXT track
I want pre-determined phrases to sound as the result of an "event" - IR resonse, bump switch, sonar etc.

I shall delete the track for / next loop ( and probably the volume instruction ), set a variable EVENT to a decimal number and then substitute dta=EVENT for dta=track above.

I cant see any reason to change the Send2SOMO or holdtilldone routines.

Am I on the right track ?

Thanks,

Russ
 

westaust55

Moderator
I was using an 18X at the time I wrote the program previously posted.
So happens that input 2 (pin2) is on the same side of the chip as outputs 0 to 3.

Should work on the 08M or any other "M" series chip.
Program space could be the sole determination if the "M" series chips are big enough.

Otherwise, yes, what you propose should work.
 

Grogster

Senior Member
... and I was using a 14M PICAXE in my experiments.

Code:
'SOMO sound module controller interface


'Version:	2A - [29/11/2009] Original code
'		3A - [28/12/2009] Pre-requisite changed to <SOMO>

'CHIP: 14M PICAXE, Firmware version 9D or higher - won't work on 9B firmware.
'                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           

'----------------
'PIN ASSIGNMENTS:
'----------------

'INPUT0 used for serial command input
'INPUT1,2,3 not used
'INPUT4 used for busy signal from SOMO module

'OUTPUT0 not used
'OUTPUT1 used for SOMO control(clock line)
'OUTPUT2 used for SOMO control(data line)
'OUTPUT3 used for SOMO control(reset line)
'OUTPUT4 used for 'Syntax Error' LED(not always used)
'OUTPUT5 used for piezo sounder(short beep for command acknowledge)


symbol control=b0	'Used for control bits - don't use for anything else
symbol dta=w6	'Data to module is a word(16-bit) value
symbol x=b5		'X marks the spot...
symbol mask=bit0	'Mask word for the shiftout proceedure
symbol MSB=$8000	'Most Significant Bit position is bit 16
symbol sda=2	'Serial data output is on pin2
symbol scl=1	'Serial clock output is on pin1


init:
 high scl		'Set clock idle state high
 low sda		'Set data idle state low
 wait 3
 gosub piezo
 'dta=$015F
 'gosub shiftout
 high scl
 low sda


start:
 serin 0,N1200,("<SOMO>"),b1,b2,b3,b4'Pre-requisite bytes + command bytes
 gosub piezo	'Sound piezo buzzer
 b13 = b1 * 16 + b2
 b12 = b3 * 16 + b4
 gosub shiftout
 high scl		'Set clock-line idle-high
 low sda		'Set data-line idle-low
 goto start		'Loop to start if no valid command byte
 


'================================
'CLOCK DATA TO MODULE SUBROUTINE:
'================================

shiftout:
  gosub rst		'Reset module first
  low scl		'Pull clock-line low
  pause 2		'Start-bit time
  for x = 1 to 16	'Start of shiftout code
  mask = dta and MSB / MSB
  low sda
  if mask=0 then skipMSB
  high sda
  
 skipMSB:
  if x = 16 then skippulse
  pulsout scl,20	'100uS minimum pulse-width for clock or data lines
  dta = dta * 2
  
  skippulse:
   next x		'End of shiftout code
   high scl		'Pull clock-line high
   pause 2		'End-bit time
 return
  
rst:
  low 3		'Reset module
  pause 5		'Reset pulse-width as per manual ver 3.0
  high 3		'"Release" reset
  pause 300		'Reset to first bit wait time as per manual ver 3.0
  return
  

'=======================
'BEEP PIEZO SUB-ROUTINE:
'=======================

piezo:
 high 5		'Turn on piezo beeper
 pause 150		'Wait some time
 low 5		'Turn off piezo beeper
 return
This code just waits for control bytes to be sent to the PICAXE at 1200 baud, and the 14M takes care of all the bit-banging etc. This works VERY well for me, and is dead easy to control with another PICAXE and a serout command.

I've also attached my schematic for you to look at how I have things wired up.
This circuit incorporates several ideas from this thread, and also the muting on the audio-out to stop clicks at the end of playback - the latter provided by 4D systems.

I'm not sure if this suits your purposes, but should give you and others something to go on, and what has been proven to work(for me) with the exception of some uSD cards...
 

Attachments

westaust55

Moderator
@ Grogster,

I know that the early 14M's could only serout variables on pin 0 and could only pulsout on outputs 0,1 and 2 but can you clarify what to your knowledge prevents the use of a 14M at Ver B.

Have recently been given a few Ver.B 14M's and aware of some of the limitations but though they might still be used.
 

Grogster

Senior Member
@ Grogster,

I know that the early 14M's could only serout variables on pin 0 and could only pulsout on outputs 0,1 and 2 but can you clarify what to your knowledge prevents the use of a 14M at Ver B.

Have recently been given a few Ver.B 14M's and aware of some of the limitations but though they might still be used.
From what I remember, it was a case of serin not working on anything but the serial-in pin with the early firmware. I know there was a known problem using the 14M like this if version 9B firmware was on the chip. Once you move to the later firmware, the problems went away. I know it was of some importance at the time, which is why it is mentioned in the comments.

Technical or one of the other members here in the know, will no doubt be able to give you a better explanation then I on the precise reasons for this...

This was the serout issue I was having:
http://www.picaxeforum.co.uk/showthread.php?t=13119
 
Last edited:

Kaindub

New Member
sosmo14d

Thanks Westaus55 for the tutorial. I didn't quite fall into all the traps as I read your guide first.
A couple of things I noted
Operation below 3 volts is dodgy.
The key mode for me worked but would not read all the files if they were not contiguously numbered. The files exist because I used your sample program and played them
My module stopped working after a little use. Muhammad at 4D systems was great (it turned out the module really was dead) and Don from Dontronics replaced the part no questions asked.
When I used your program (on a PICAXE 20X) I had to increase the start low and high pulse to 3ms from your 2 ms. At 2 ms the SOMO would miss the first or second files sent.
It does take some patience to get this working, but the SOMO does exactly what it says t does
 

westaust55

Moderator
@Kaindub

Welcome to the PICAXE forum.

Great to read that you have your SOMO 14D module working without too much drama. Also good to know that my tutorial has been of assistance.

Your indicate that the 20X needs a slightly longer pulse duration may also be helpful to others at a future date so thanks for letting the forum know.
 

Peterrey

New Member
I have been reading this thread with considerable interest, as I have been trying to get a little project of the ground. I have reached a bit of a stalemate and could do with some advice.

The project basically consists of a SOMO14D mounted on a PICAXE Shieldbase using a PICAXE 28X2 (OTT, I know...). What I want to be able to do it repeatedly play a single file on demand. However, I can't get any output from the SOMO unit at all. I bought 2x Sandisk 2Gb uSD cards as I had my doubts the original unbranded 512Mb was working. No joy. The Shieldbase motherboard is set to run at 3.3v, 220uF capacitor across the power supply, 8 ohm .25W loudspeaker. AD4 files converted from 32kB mp3 files as 32kB AD4 files using the 4D tool, and named as '000x.ad4'. I formatted the uSD cards FAT using the default allocation size option (I tried the other options too, just in case). I used my own program, and two programs borrowed from the forum, still no joy. Tried the reset before playing; no difference. In the end I disconnected the side of the shieldbase where the logic signals were, just leaving power and tried to get something that way using the manual option of operation. Still nothing; I am at the stage now where any advice would be most gratefully received.

Regards
 
Last edited:

Peterrey

New Member
After a look at the 4D Systems support forum I decided to try the 'sample files'. Everything seems to work now, in either mode too, which tends to suggest that the problem is with the file naming and/or file conversion, and not the hardware.
 

Peterrey

New Member
Ok, for some inexplicable reason everything works now! The only difference I can see is that the files were originally converted on my PC at home which is XP. The new files were converted on a windows 7 netbook; wierd, as i did them in the same way, and it is the same source file. Anyway, panic now over!!
 

westaust55

Moderator
Great to read that you managed to get the audio module working.
In the first case when you have problems, had you formatted the memory card and added the files in one download?
I recall that adding files one at a time and not in sequential "name" order gave grief.
What colour is the module PCB?
(green, brown or other)
 

thinktank

New Member
Thanks westaust55 and all others that have contributed here. I decided to purchase a SOMO14D from Dontronics and with all the information in this one thread it worked first time as described.
I just wanted to add my uSD card was a Verbatim 2GB, and once formatted to FAT it worked like a charm. I am now using the Line out to a Amplifier Module and the sound is quite good, even the SOMO's speaker out was better than expected.

Cheers all
 

westaust55

Moderator
@thinktank,

Welcome to the PICAXE forum.
Thanks for reporting your success with the 4D Systems SOMO-14D audio module and in particular the uSD card make you have used.
 

Grogster

Senior Member
Just a little update for this project/thread/thing.

SanDisk 64MB and 128MB cards both work fine.

See attached image of the cards.

My camera could not get the laser-engraved part numbers as well as keep the cards in focus.
The 64MB card ID is SDSDQ64, and the 128MB one had SDSDQ128 on it.

While at first glance 64MB and 128MB seem like piddly little cards with respect to capacity(and you'd be correct), they are plenty big enough for sound effects and annunciator systems. No so great if you want to play lots of songs, but then - I remember when you could buy 32MB MP3 players, and it was considered amazing that you could put an entire CD on this tiny little stick thing... ;)
 

Attachments

westaust55

Moderator
Hello,

I'm recently working on a project that involves the SOMO14-D and I came across the code from 2009 (blast from the past) here: http://www.picaxeforum.co.uk/showthr...to-do-it/page5

I understood most of the code just not the part where it says:

mask= dta AND MSB / MSB

I understand the function of the command but why MSB / MSB what does this mean?

Thanks!

Sush
If you consider that the most significant bit has a value of %10000000 (= $80)
then when we want to get the next most significant bit from a data byte (variable dta)
by logical AND'ing with the MSB value we will be left with the most significant bit but still in that position/ By next dividing by the MSB that bit is brought into bit0 of the mask variable.
Now we can quickly test if the resulting mask value is 0 or 1 rather than testing for 0 to $80.
 
Top