Page 2 of 4 FirstFirst 1 2 3 4 LastLast
Results 11 to 20 of 33

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

  1. #11
    Moderator
    Join Date
    Mar 2008
    Location
    Western Australia
    Posts
    11,238

    Default

    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?
    Attached Images Attached Images
    Last edited by westaust55; 14-12-2009 at 14:31.
    westaust55

    Hey Hamlet, 2B OR NOT 2B = $FF

  2. #12
    Senior Member
    Join Date
    Jan 1970
    Location
    Dunedin, NEW ZEALAND
    Posts
    1,547

    Default

    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...
    Attached Images Attached Images
    Last edited by Grogster; 15-12-2009 at 23:22. Reason: Added formatter link

  3. #13
    Moderator
    Join Date
    Mar 2008
    Location
    Western Australia
    Posts
    11,238

    Default

    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/c...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 . . . . .
    Attached Images Attached Images
    westaust55

    Hey Hamlet, 2B OR NOT 2B = $FF

  4. #14
    Senior Member
    Join Date
    Jan 1970
    Location
    Dunedin, NEW ZEALAND
    Posts
    1,547

    Default

    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
    Attached Images Attached Images

  5. #15
    Moderator
    Join Date
    Mar 2008
    Location
    Western Australia
    Posts
    11,238

    Default

    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.
    westaust55

    Hey Hamlet, 2B OR NOT 2B = $FF

  6. #16
    Senior Member
    Join Date
    Feb 2009
    Location
    st albans
    Posts
    988

    Default

    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

  7. #17
    Moderator
    Join Date
    Mar 2008
    Location
    Western Australia
    Posts
    11,238

    Default

    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.
    westaust55

    Hey Hamlet, 2B OR NOT 2B = $FF

  8. #18
    Senior Member
    Join Date
    Jan 1970
    Location
    Dunedin, NEW ZEALAND
    Posts
    1,547

    Default

    ... 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...
    Attached Images Attached Images

  9. #19
    Moderator
    Join Date
    Mar 2008
    Location
    Western Australia
    Posts
    11,238

    Default

    @ 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.
    westaust55

    Hey Hamlet, 2B OR NOT 2B = $FF

  10. #20
    Senior Member
    Join Date
    Jan 1970
    Location
    Dunedin, NEW ZEALAND
    Posts
    1,547

    Default

    Quote Originally Posted by westaust55 View Post
    @ 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 by Grogster; 07-04-2010 at 01:42.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •