Jump to content

wdtz

Members
  • Posts

    49
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I'm not sure why you would do anything so complex or convoluted The bootrom search order is SPI, eMMC, SD,,, it nothing is on the medium it goes to next one, applys to ALL rk3399 Really, it is looking for signature of idbloader, at correct location, and assumes uboot will be on same media So, using dd, save emmc mbr(34 sectors if GPT) , save 1st 16M, blank 1st 16M (/dev/zero), restore emmc mbr, and then the only uboot is on SD to boot emmc,, a small sd with ONLY uboot installed, some uboot 'choke' if there is no fs on media, so make a fat fs on rest of card My pbp is a 'virgin',,, back has never been off, but I do know about "extra long press" (pwr button, 20+s) which acts as a hard reset (& have done > 10 times) ( a "long press" = hard power off = ~ 7s,,, this is NOT a hard reset,,, always try this 1st (7s)
  2. and, BTW, this will probably work on any SBC that has pwm and working port of wiringPi (wiringOP is much simpler than the dtbo method, IMO) WHY: I don't like fans that run full speed ALL the time pwm fans are a bit limited on the ground in small size, and expensive The SBC has pwm pins, so why not use them none of the examples I have found are adequate, either gpio off/full or excessive python scripts, 40 lines or more,, the bash script is ~ 10 lines Some of the wiringOP/gpio packages don't work (ubuntu-full desktop) try the commands in rc.local, if they don't work, then,,, dpkg -l |grep wiring; apt remove ..... git clone https://github.com/orangepi-xunlong/wiringOP.git,, also install lm-sensors (you may have to make link, this puts gpio in /usr/local/bin, this is branch next) in rc.local: gpio mode 0 pwm #using wPi pin #'s, from gpio readall sleep 500e-3 #pause needed gpio pwm 0 900 #starts for sure gpio pwm 0 380 #slow to MIN until cron adjusts ----- gpio pwm <pin> NNN ,,,, NNN is what I will call PWR, to get range give a PWR too large, the error will give range If the PWR is too low the the fan won't start, even 800 is only 90% start The fan turns all the time, but not at full speed, at MIN you can almost count the turns (maybe 150 rpm) You have to find the PWR number for MIN for your fan, start at 300, it should run for hours, if not add 20, retest When you get some #, then add 10%. With this number, fan should run forever the script that cron calls every minute or 2 #!/usr/bin/bash TEMP=`sensors|grep bigcore0 -A3 |grep temp1 |tr -s ' '| cut -d ' ' -f 2|cut -c 2-3` #adjust grep as suitable, fails >99 echo $TEMP #TEMP=$1 #for testing, will error if $1 is blank PWR=$(("$TEMP" * 11)) #or any other number you choose echo $PWR if [ "$PWR" -gt 999 ]; then #check to see if PWR is in 'correct' range PWR=999 elif [ "$PWR" -lt 380 ] ; then #if this number is suitable for YOUR fan PWR=380 fi gpio pwm 0 $PWR ----- obviously comment out echo lines when debugging finished And now the wiring, it is stupid simple (arrows are both connections AND current flow) (-ve) <-- E pwm --> R --> B (+ve) --> Fan --> C if R is 1k, not enough drive to turn on transistor, 330 is 'iffy', 220 is OK, I have 180, depends on transistor Oh, BTW, scope told me pulses are +, so transistor is NPN, if you couldn't follow circuit logic (TO92 OK, unless fan huge) ---- and now pwmTone,,, absolutely nothing on web gpio pwmTone <pin> <frequency> ,, sounds good, right. well range likely changes, neutral as long as you know plus: fan starts MUCH better, even 1/2 PWR minus: fan barely slows down even with very low PWR If anyone knows more, please reply..... maybe there should be 5-10k pwm --> (-ve) to ensure pwm turn-off??? ---- I guess if you don't have a scope you could feed a LED + R, see if it dims (? R=100?) as you change PWR PS I would suggest this be pinned, if it is considered suitable --------- And a better debugged script, better than off the top (of my head) paying more attention to the hw side and not forgetting anything ----- #!/usr/bin/bash TEMP=`sensors|grep bigcore0 -A3 |grep temp1 |tr -s ' '| cut -d ' ' -f 2|cut -c 2-3` #adjust grep as suitable, fails >9 echo $TEMP if [ $# -gt 0 ]; then TEMP=$1 #for testing fi PWR=$(($TEMP * 11)) #or any other number you choose if [ "$TEMP" -lt 50 ]; then PWR=$(($TEMP * 8)) elif [ "$TEMP" -lt 60 ]; then PWR=$(($TEMP * 9)) elif [ "$TEMP" -lt 70 ]; then PWR=$(($TEMP * 10)) fi echo $PWR if [ "$PWR" -gt 999 ]; then #check to see if PWR is in 'correct' range PWR=999 elif [ "$PWR" -lt 380 ]; then #if this number is suitable for YOUR fan PWR=380 fi echo $PWR gpio pwm 0 $PWR
  3. err unless this is specificly different ,, max-link-speed = <01> is pcie gen1 ,, = <02> is pcie gen2 ,, = <03> is pcie gen3 I doubt that rk3399 can do gen3 But if it works ...... ------more---- What you probably have happening is 2 lanes at pcie2 ... to find out.. lspci -nn (to get the bus #, somethiing like 00:00.0,,, then) lspci -s <bus#> -vvv|grep -i speed
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines