uSD Breakout
#21
Thanks, machinehum !
No need to populate MCP or header, I've tons of them ...
PM has been sent !
#22
machinehum, i searched on seeed studio for pinebook/machinehum terms and it did not show a project so i'm guessing you did not set it up as one. anyway, pm was sent a moment ago, hope i was not too late. and if you have 2 spare boards it would be great. thanks.
#23
Going to the post office today, MarkHaysHarris777 if you get me your address in the next couple of hours I'll get one to you as well.
#24
Just sent everything out.

Warning: I've been swamped and have not had time to test. Please proceed with caution.
#25
Thank you machinehum!

Shy


The uSD Breakout blanks R0.1 came in the mails today from Canada;  I'll begin full testing tomorrow when preliminary continuity and SD header testing is complete with the meter. The boards look great;  looking forward to getting them into the Pinebook soon.

edit:  The latching mechanism works brilliantly;  tested on my SD card tester and SD sniffer;  quite nice.

Thanks again !


Continuity tests checkout on the SD header;  all pins accounted for, no shorts, all pins line up in the latching mechanism precisely (perfect) on the micro scope, card specs are precise and the latching mechanism actually works well ( out of all the cards that I have tested for this purpose this is the first card that meets the specs ).

nice job, will begin the SD header tests now...
marcushh777    Cool

please join us for a chat @  irc.pine64.xyz:6667   or ssl  irc.pine64.xyz:6697

( I regret that I am not able to respond to personal messages;  let's meet on irc! )
#26
   


The trial run of the uSD Breakout ( by machinehum ) is proving to be brilliant ! 

...  the in-machine latching mechanism works flawlessly;  clicks in place, is positioned correctly, and inspection under scope indicates that the contacts are tracking right down the center of the pin pads precisely ( perfect ). 

The trial run was flawless;  all six gpio pins functioned normally -- the pins are in the right order and the led_lab functioned as expected ( and somewhat better, I might add, than the commercial card from Sparkfun ).

Of course I have not populated the board yet;  all in good time.   Tongue

Thank you machinehum;  brilliant !

Note:  ofc for the commercial version, I would recommend gold contacts.

Shy
marcushh777    Cool

please join us for a chat @  irc.pine64.xyz:6667   or ssl  irc.pine64.xyz:6697

( I regret that I am not able to respond to personal messages;  let's meet on irc! )
#27
Awesome to hear! I've been swamped these days so unfortunately have not had enough time for testing.

This is really good validation, I appreciate you testing it out!!
#28
Tonight I got my parts BOM ordered;  btw the 5x2 1.27 pitch J3 header may be purchased from Mouser.  

I have verified the rest of the schematic using a continuity tester;  All gpio breakouts from the mcp23s17 have been verified on header connections; the four SPI pins jumpered at J3 from the SD pins to the mcp23s17 SPI control lines are correct; the mcp hardware address lines are correctly tied to ground, and the two interrupt lines are brake-out but not connected -- will require careful soldering. 

The power supply pin is jumpered to the padi stamp;  all padi stamp breakouts are available on header connections; decoupling caps have been verified; not sure yet about the center 5mm x 5mm ground pad; 

VDD has been verified as 3v3 from the SD card slot;  VDD is hard-wired to the mcp23s17 and jumpered to the padi stamp; ground pins headers (2) have been provided; all grounds have been hard-wired across the board;

The J3 headers can be provided, or the jumpers could also alternatively be soldered in place as tiny zero ohm loops.  Alternatively the jumper headers may be cabled off to another card !  In such a configuration the hardware address lines would not be tied to ground (totally) but would have one pin biased high;  the control register could then be used to select the second card and the expansion port would now have 32bits !  In order to write to the chip the control register bits A0 A1 A2 must match the hardware bits A0 A1 A2 which must be externally biased;  the uSD has been designed for single card operation with all hardware lines soldered LOW;  on my cards I will choose to select one unique bit in the control register for each card for external bias HIGH.  

The surface soldering is going to be done with an airgun soldering station (low air about 370) and using chipquik soldering paste -- has fine tip applicator.

Note:  take care with the mcp ordering;  mcp23017 is I2C controlled! <=== we don't want this one

Note:  take care with the mcp ordering;  mcp23s17 is SPI controlled serial I|O  <=== THIS IS THE ONE

the datasheet is the same for both;  you need to pull out what you want for SPI operation  )
marcushh777    Cool

please join us for a chat @  irc.pine64.xyz:6667   or ssl  irc.pine64.xyz:6697

( I regret that I am not able to respond to personal messages;  let's meet on irc! )
#29
Wow, thanks for all the validation! I've never tried OSH stencils and might take this as an opportunity to try them out.
#30
                        


PIN-setup.sh
Code:
#!/bin/sh
echo 160 > /sys/class/gpio/export
echo 161 > /sys/class/gpio/export
echo 162 > /sys/class/gpio/export
echo 163 > /sys/class/gpio/export
echo 164 > /sys/class/gpio/export
echo 165 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio160/direction
echo out > /sys/class/gpio/gpio161/direction
echo out > /sys/class/gpio/gpio162/direction
echo out > /sys/class/gpio/gpio163/direction
echo out > /sys/class/gpio/gpio164/direction
echo out > /sys/class/gpio/gpio165/direction

example:  ./PIN-setup.sh

LED.sh
Code:
#!/bin/sh
echo $2 > /sys/class/gpio/gpio$1/value

example:  ./LED.sh  <gpio>  < 0|1 >     ./LED.sh  160  1     ./LED.sh  160  0

blinker.sh
Code:
#!/bin/sh

COUNTER=0
while [ $COUNTER -lt $2 ]; do
  echo 1 > /sys/class/gpio/gpio$1/value
  sleep .35
  echo 0 > /sys/class/gpio/gpio$1/value
  sleep .65
  COUNTER=$(($COUNTER+1))
done

example:  ./blinker.sh  <gpio> <count>     ./blinker.sh  160  7

led_all.sh
Code:
led_all.sh
#!/bin/sh

./LED.sh 160 $1
./LED.sh 161 $1
./LED.sh 162 $1
./LED.sh 163 $1
./LED.sh 164 $1
./LED.sh 165 $1

example:  ./led_all.sh  < 0|1 >     ./led_all.sh  1     ./led_all.sh  0

blink_all.sh
Code:
#!/bin/sh

./led_all.sh 1
sleep .256
./led_all.sh 0
sleep .256

example:  ./blink_all.sh

flasher.sh
Code:
#!/bin/sh

COUNTER=$3
while [ $COUNTER -gt 0 ]
do
    ./LED.sh 160 1
    ./LED.sh 161 0
    ./LED.sh 162 1
    ./LED.sh 163 0
    ./LED.sh 164 1
    ./LED.sh 165 0
    sleep $1
    ./LED.sh 160 0
    ./LED.sh 161 1
    ./LED.sh 162 0
    ./LED.sh 163 1
    ./LED.sh 164 0
    ./LED.sh 165 1
    sleep $1
    if [ "$2" = "1" ]
    then
       COUNTER=$((COUNTER -= 1))
    fi
done

example:  ./flasher.sh  <T_ms>  < 0|1 >  <count>
example:  ./flasher.sh  .047  0  7          (runs continuously)
example:  ./flasher.sh  .047  1  7          (loops only 7 times)

scanner.sh
Code:
#!/bin/bash

COUNTER=$3
while [ $COUNTER -gt 0 ]
do
    ./LED.sh 161 0
    ./LED.sh 160 1
    sleep $1
    ./LED.sh 160 0
    ./LED.sh 161 1
    sleep $1
    ./LED.sh 161 0
    ./LED.sh 162 1
    sleep $1
    ./LED.sh 162 0
    ./LED.sh 163 1
    sleep $1
    ./LED.sh 163 0
    ./LED.sh 164 1
    sleep $1
    ./LED.sh 164 0
    ./LED.sh 165 1
    sleep $1
    ./LED.sh 164 0
    ./LED.sh 165 1
    sleep $1
    ./LED.sh 165 0
    ./LED.sh 164 1
    sleep $1
    ./LED.sh 164 0
    ./LED.sh 163 1
    sleep $1
    ./LED.sh 163 0
    ./LED.sh 162 1
    sleep $1
    ./LED.sh 162 0
    ./LED.sh 161 1
    sleep $1
    ./LED.sh 161 0
    ./LED.sh 160 1
    sleep $1
    if [ "$2" = "1" ]
    then
       COUNTER=$((COUNTER -= 1))
    fi
done

example:  ./scanner.sh  <T_ms>  < 0|1 >  <count>
example:  ./scanner.sh  .047  0  7     (runs continuously)
example:  ./scanner.sh  .047  1  7     (loops only 7 times)

strober.sh
Code:
#!/bin/sh

COUNTER=$3
while [ $COUNTER -gt 0 ]
do
    ./LED.sh 165 0
    ./LED.sh 160 1
    sleep $1
    ./LED.sh 160 0
    ./LED.sh 161 1
    sleep $1
    ./LED.sh 161 0
    ./LED.sh 162 1
    sleep $1
    ./LED.sh 162 0
    ./LED.sh 163 1
    sleep $1
    ./LED.sh 163 0
    ./LED.sh 164 1
    sleep $1
    ./LED.sh 164 0
    ./LED.sh 165 1
    sleep $1
    if [ "$2" = "1" ]
    then
       COUNTER=$((COUNTER -= 1))
    fi
done

example:  ./strober.sh  <T_ms>  < 0|1 >  <count>
example:  ./strober.sh  .047  0  7      (runs continuously)
example:  ./strober.sh  .047  1  7      (loops only 7 times)

strober2.sh
Code:
#!/bin/sh

COUNTER=$3
while [ $COUNTER -gt 0 ]
do
    ./LED.sh 160 0
    ./LED.sh 165 1
    sleep $1
    ./LED.sh 165 0
    ./LED.sh 164 1
    sleep $1
    ./LED.sh 164 0
    ./LED.sh 163 1
    sleep $1
    ./LED.sh 163 0
    ./LED.sh 162 1
    sleep $1
    ./LED.sh 162 0
    ./LED.sh 161 1
    sleep $1
    ./LED.sh 161 0
    ./LED.sh 160 1
    sleep $1
    if [ "$2" = "1" ]
    then
       COUNTER=$((COUNTER -= 1))
    fi
done

example:  ./strober2.sh  <T_ms>  < 0|1 >  <count>
example:  ./strober2.sh  .047  0  7      (runs continuously)
example:  ./strober2.sh  .047  1  7      (loops only 7 times)

demo_LED.sh
Code:
#!/bin/sh

while [ true ]
do
  ./scanner.sh .037 1 $1
  ./flasher.sh .037 1 7
  ./strober.sh .043 1 $1
  ./blink_all.sh
  ./strober2.sh .057 1 $1
  ./flasher.sh .037 1 7
  ./led_all.sh 0
  ./strober2.sh .256 1 1
  ./led_all.sh 0
  sleep .175
  ./strober.sh .256 1 1
  ./led_all.sh 0
  sleep .175
  ./scanner.sh .019 1 $1
  ./flasher.sh .037 1 7
  ./strober.sh .027 1 $1
  ./blink_all.sh
  ./strober2.sh .077 1 $1
  ./flasher.sh .037 1 7
  ./led_all.sh 0
  ./strober.sh .256 1 1
  ./led_all.sh 0
  sleep .175
  ./strober2.sh .256 1 1
  ./led_all.sh 0
  sleep .175
done

example:  ./demo_LED.sh  <count>     ./demo_LED.sh  12       (each section of the demo loops 12 times)



For those of you testing the machinehum uSD Breakout,  the above scripts will give you something right-away to play with using an led_lab ( described below, see pics above ) and your Pinebook.  Place all ten (10) of the scripts above in a working directory on your gnu+linux Pinebook image, and use   sudo -i  to run the demo_LED.sh script ( or any of the other sub-scripts ).  Each script has been given a title ( important, since they call each other ) and examples following.

The led_lab is six (6) LED(s) on a common cathode ground plane;  the anodes are driven (sourced) by the six (6) SD pins. I used low power ( 2-3 ma ) LED(s) in the following combinations with ballast resistors listed in ohms:

white-330, white-330, yellow-180, yellow-180, white-330, white-330

gpio160 - gpio165

( at this point i am not using the MCP23S17, nor the Padi Stamp )

Note:  see this link to get the information regarding modification of the dts|dtb ( very important ) !

Shy
marcushh777    Cool

please join us for a chat @  irc.pine64.xyz:6667   or ssl  irc.pine64.xyz:6697

( I regret that I am not able to respond to personal messages;  let's meet on irc! )


Forum Jump:


Users browsing this thread: 2 Guest(s)