This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Google Play Store installed on Clean TinkerOS_Android 7 Nougat V14.3.2.82
#11
(03-16-2020, 05:59 PM)chiefmoe617 Wrote: Is there a reliable quick root guide/tut to root for this build of android I've been breaking my noggin trying to root this version .
Open for criticism as well I'm no hater and fairly new to the forum so I understand if one gets frustrated with this question .

I feel your pain ;-]..
I only have, had root under termux, which I use for GPIO... 
lobo... recommends.. to Install Magisk, if you need root..
I have been re-reading lobo 's instructions ]]]].....
[Howto] Root TB Android Nougat with Magisk

I got as far as.. oem unlock.. 
once I figured out.. you had to connect USB cable 
to OTG micro USB port on tinker board and 
power the tinker board via GPIO pins ;-]..
 
also.. please NOTE..
#########################
oem unlock.. will reset your tinker board.. 
make sure you have backup of SD card.. ]]]]].....

as for powering the tinker board via GPIO.. 
I do not have power supply unit that can connect direct to GPIO.. 
sooo.. I'm using USB to TTL Serial Cable - Debug / Console Cable for Raspberry Pi
red & black cable end.. connected to tinker board GPIO pins 4 & 6 
and the USB-A port end .. connected to an old Asus Zenfone charger (2A)..
then.. usb cable connected from tinker board micro usb to USB-A of laptop..

note.. tinker board was stuck in boot loop.. because I had USB thumb drives connected to tinker board..
& USB to TTL Serial Cable.. was only passing 0.5A ]]]... from the Asus Zenfone charger.. 

soooo I removed all USBs except for the keyboard dongle.. 
& tinker board booted up ok ]]]...

then.. from laptop with adb install..
Code:
adb devices -l
adb shell reboot bootloader
fastboot -i 0x2207 devices -l  
fastboot -i 0x2207 oem unlock
fastboot -i 0x2207 oem unlock_accept
note [oem unlock_accept] command.. has to be entered within the 5 seconds period...
wait a bit.. 10sec.. and tinkerboard will reboot.. & be reset ]]]]]]

As for flashing the tinker board.. I have had nooo luck at all... ie..
Code:
fastboot -i 0x2207 flash boot magisk_patched.img
[[....
Code:
k247@YOGA700-11ISK:~$ adb shell reboot bootloader
k247@YOGA700-11ISK:~$ lsusb
...
Bus 001 Device 052: ID 2207:0006
...
k247@YOGA700-11ISK:~$ adb devices -l
List of devices attached

k247@YOGA700-11ISK:~$ fastboot -i 0x2207 devices -l
0123456789             fastboot usb:1-2
k247@YOGA700-11ISK:~$
k247@YOGA700-11ISK:~$ fastboot -i 0x2207 getvar unlocked
unlocked: yes
finished. total time: 0.000s
k247@YOGA700-11ISK:~$
k247@YOGA700-11ISK:~$ fastboot -i 0x2207 getvar secure
secure: no
finished. total time: 0.000s
k247@YOGA700-11ISK:~$
k247@YOGA700-11ISK:~$ fastboot -i 0x2207 flashing get_unlock_ability
...
FAILED (remote failure)
finished. total time: 0.000s
k247@YOGA700-11ISK:~$ fastboot -i 0x2207 flashing unlock
...
FAILED (remote failure)
finished. total time: 0.000s
k247@YOGA700-11ISK:~$ fastboot -i 0x2207 reboot
rebooting...

finished. total time: 1.154s
k247@YOGA700-11ISK:~$  
note.. FAILED (remote failure) for flashing get_unlock_ability & flashing unlock.. ???

I've ordered & waiting for some USB Micro-B Connector Breakout Board.. 
Female to Female Breadboard Jumper Wires Ribbon Cables..
[Image: PNUfAP4.jpg:]
I'm hoping its a power problem.. not enough Amps ;-]... now have stable power supply from
NorthPada Power Supply AC Charger Adapter 5V 3A Micro USB 5 Feet with Power On / Off Switch.
note.. reboot / restart.. works ok.. but if you shutdown tinker board.. on / off switch did not power on 
tinker board back on again.. I had to disconnect micro USB cable end, connected to USB-A of laptop first.. 
then switch on power & reconnect cable to micro USB again.. very strange ;-]..

Also.. I think as tinker board is a development board, it does not need to be oem unlock ]]]...
but @ least now I can power tinker board via GPIO and fastboot...
lots of fun..
############################-------------]]]]]

Great News... lobo instructions works ]]]]........
download APK... Magisk Manager 6.1.0 for Android
https://magisk-manager.en.uptodown.com/a...ad/1793092
& use.. 
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ adb push magisk-manager-6-1-0.apk /sdcard/Download
magisk-manager-6-1-0.apk: 1 file pushed. 13.5 MB/s (2218329 bytes in 0.157s)
k247@YOGA700-11ISK:~/temp/tinkerboard$
to push apk to /sdcard/Download on tinker board..

then before you install magisk-manager-6-1-0.apk.. 
download & push other files..

Magisk-v17.1.zip
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ adb push Magisk-v17.1.zip /sdcard/Download
Magisk-v17.1.zip: 1 file pushed. 16.5 MB/s (4268787 bytes in 0.247s)
note from Magisk Manager 7 & up.. they all use.. Magisk-v18 & higher.. ;-[[[...

I also download from lobo.. newboot.imgboot.img
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ adb push newboot.img /sdcard/Download
newboot.img: 1 file pushed. 11.7 MB/s (1750385 bytes in 0.142s)
k247@YOGA700-11ISK:~/temp/tinkerboard$ adb push boot.img /sdcard/Download
boot.img: 1 file pushed. 15.1 MB/s (10076160 bytes in 0.638s)

now ready to flash...

I first try..
Code:
sudo rkflashtool w boot < newboot.img
but got error...
Code:
rkflashtool: info: rkflashtool v5.2
rkflashtool: fatal: cannot open device

sooo.. for Rockusb...
Code:
adb reboot loader
* daemon not running; starting now at tcp:5037
* daemon started successfully

check with lsusb..
Code:
k247@YOGA700-11ISK:~$ lsusb
...
Bus 001 Device 021: ID 2207:320a
...
k247@YOGA700-11ISK:~$

read chip version..
Code:
sudo rkflashtool v
rkflashtool: info: rkflashtool v5.2
rkflashtool: info: Detected RK3288...
rkflashtool: info: interface claimed
rkflashtool: info: chip version: 320A-    .  .  -

then... flash file..
Code:
sudo rkflashtool w boot < newboot.img
rkflashtool: info: rkflashtool v5.2
rkflashtool: info: Detected RK3288...
rkflashtool: info: interface claimed
rkflashtool: info: working with partition: boot
rkflashtool: info: found offset: 0x0001c000
rkflashtool: info: found size: 0x00010000
rkflashtool: info: writing flash memory at offset 0x0001cd60... Done!
rkflashtool: info: premature end-of-file reached.

to reboot... 
Code:
sudo rkflashtool b
rkflashtool: info: rkflashtool v5.2
rkflashtool: info: Detected RK3288...
rkflashtool: info: interface claimed
rkflashtool: info: rebooting device...

note.. I'm using laptop with Ubuntu Mate 18.04, adb & rkflashtool installed,
connected USB-A to tinker board micro USB port & tinker board powered via
GPIO pins 4 & 6.......
 
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ which rkcrc
/usr/bin/rkcrc
k247@YOGA700-11ISK:~/temp/tinkerboard$ which rkflashtool
/usr/bin/rkflashtool
k247@YOGA700-11ISK:~/temp/tinkerboard$ which mkbootimg
/usr/bin/mkbootimg

after flashing.. ready to install magisk-manager-6-1-0 with adb..
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ adb install -g -r magisk-manager-6-1-0.apk
Success
k247@YOGA700-11ISK:~/temp/tinkerboard$
-g: Grant all permissions listed in the app manifest....
-r:  Replace existing application, keeping its data.
------------------------------------------------------------

note.. when you first open Magisk Manager App.. it might ask you to update.. 
don't update.. & make sure to disable check Updates from settings... 
I also.. set Automatic Response to [Grant] ;-].....
disable.. [Magisk Hide]...
& restart tinker board..

after tinker board restarts.. 
clear cache.. [Settings].. [Storage].. click on [Cached data] to clear cached data..
restart tinker board in recovery to Wipe Cache Partition...
Code:
adb reboot recovery
Note.. use keyboard arrow keys to selected [Wipe cache partition]... [Yes]...
then... select [reboot system]... ;-]...
################################

to install adb and flashing tools in Ubuntu Mate 18.04 / 64Bit OS..
Code:
sudo apt-get update
sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf libc6-dev-i386 adb mkbootimg rkflashtool
I have not tested this in windows VM... yet ;-]..tbc..

root-checker-6-4-8.apk
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ adb push root-checker-6-4-8.apk /sdcard/Download
root-checker-6-4-8.apk: 1 file pushed. 7.9 MB/s (10542668 bytes in 1.279s)

once you push APK files to /sdcard/Download on tinker board, 
you can then enable Unknown sources from Security settings..
and use Files Manager from Apps to install... ;-]..
or you can use..
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ adb install -g -r root-checker-6-4-8.apk
Success
k247@YOGA700-11ISK:~/temp/tinkerboard$
to install apk from adb..

Thank You lobo... ;-]..
[Image: yI7h2BWm.png][Image: wRBTwSFm.png][Image: hX59hYvm.png]
-----------------
hope it helps,
k,

next> make own boot.img file & use with Magisk Manager Latest Version 7.5.1 For Android 2020... tbc..
well... much fun to come.. ;-]...
Reply
#12
rooting TinkerOS_Android 7 Nougat V14.3.2.82 using lobo's boot.img file...

following [Howto] Root TB Android Nougat with Magisk

sooo.. I still haven't figured out how to make boot.img file..
but.. by following lobo's instructions..  [Howto] Root TB Android Nougat with Magisk..
you can install Magisk Manager Latest Version 7.5.1 For Android 2020 with Magisk-v20.3(20300).zip ;-]..

[Image: J9ZVOXH.png:]

if you have already installed magisk-manager-6-1-0.apk & 
have lobo's boot.img file in /sdcard/Download on tinker board..
then just run Magisk Manager from apps & update App when asked ]]]]....

once updated.. you will get warning that Magisk-V17 is out of date & not supported..
you need to upgrade... click on [install].. [Do you want to install Magisk v20.3(20300) now?]
then.. [Select and Patch a File].. use File Manager to find and click on boot.img in Download folder..
[Image: 8sxIVlI.png]
after boot.img is patched.. click on [reboot] ;-]..
note..  magisk_patched.img file will be in /sdcard/Download...

download tool [UTIL] unmkbootimg.gz... & extract to unmkbootimg folder....
on laptop.. then cd unmkbootimg &.. 
Code:
adb pull /sdcard/Download/magisk_patched.img
to get patched_boot.img on the host machine..

now you have to run unmkbootimg tool so to undo what mkbootimg did.. ;-]..
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimg$ ./unmkbootimg magisk_patched.img
unmkbootimg version 1.2 - Mikael Q Kuisma <kuisma@ping.se>
Kernel size 8544024
Kernel address 0x60408000
Ramdisk size 1764651
Ramdisk address 0x62000000
Secondary size 0
Secondary address 0x60f00000
Kernel tags address 0x60088000
Flash page size 16384
Board name is ""
Command line "buildvariant=userdebug"

*** WARNING ****
This image is built using NON-standard mkbootimg!
OFF_KERNEL_ADDR is 0x00380100
OFF_RAMDISK_ADDR is 0x01F78100
OFF_SECOND_ADDR is 0x00E78100
Please modify mkbootimg.c using the above values to build your image.
****************

Extracting kernel to file zImage ...
Extracting root filesystem to file initramfs.cpio.gz ...
All done.
---------------
To recompile this image, use:
 mkbootimg --kernel zImage --ramdisk initramfs.cpio.gz --base 0x60087f00 --cmdline 'buildvariant=userdebug' --pagesize 16384 -o new_boot.img
---------------
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimg$

re-pack the ramdisk to our new boot.img..
Code:
rkcrc -k initramfs.cpio.gz newbootK.img

now you have everything you need to flash..
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimg$ ll
total 22M
drwxrwxr-x 2 k247 k247 4.0K Mar 20 01:21 ./
drwxrwxr-x 5 k247 k247 4.0K Mar 20 02:35 ../
-rw-rw-r-- 1 k247 k247 1.7M Mar 20 01:17 initramfs.cpio.gz
-rw-r--r-- 1 k247 k247 9.9M Mar 20 01:11 magisk_patched.img
-rw-r--r-- 1 k247 k247 1.7M Mar 20 01:21 newbootK.img
-rwxr--r-- 1 k247 k247 568K Mar 17 06:41 unmkbootimg*
-rw-rw-r-- 1 k247 k247 8.2M Mar 20 01:17 zImage
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimg$

U-Boot Rockusb mode - Run "reboot loader" command in kernel
Code:
adb reboot loader

use lsusb.. to check for.. 
Code:
...
Bus 001 Device 062: ID 2207:320a
...

read chip version..
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimg$ sudo rkflashtool v
rkflashtool: info: rkflashtool v5.2
rkflashtool: info: Detected RK3288...
rkflashtool: info: interface claimed
rkflashtool: info: chip version: 320A-    .  .  -
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimg$

then... flash file..
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimg$ sudo rkflashtool w boot < newbootK.img
rkflashtool: info: rkflashtool v5.2
rkflashtool: info: Detected RK3288...
rkflashtool: info: interface claimed
rkflashtool: info: working with partition: boot
rkflashtool: info: found offset: 0x0001c000
rkflashtool: info: found size: 0x00010000
rkflashtool: info: writing flash memory at offset 0x0001cd80... Done!
rkflashtool: info: premature end-of-file reached.
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimg$

to reboot... 
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimg$ sudo rkflashtool b
rkflashtool: info: rkflashtool v5.2
rkflashtool: info: Detected RK3288...
rkflashtool: info: interface claimed
rkflashtool: info: rebooting device...
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimg$

note.. I'm using laptop with Ubuntu Mate 18.04, adb & rkflashtool installed,
connected USB-A to tinker board micro USB port & tinker board powered via
GPIO pins 4 & 6.......

open Magisk Manager App.. from Settings.. set Automatic Response to [Grant] ;-].....
disable.. [Magisk Hide]... & restart tinker board..

after tinker board restarts.. 
clear cache.. [Settings].. [Storage].. click on [Cached data] to clear cached data..
restart tinker board in recovery to Wipe Cache Partition...
Code:
adb reboot recovery
Note.. use keyboard arrow keys to selected [Wipe cache partition]... [Yes]...
then... select [reboot system]... ;-]...
################################

to install adb and flashing tools in Ubuntu Mate 18.04 / 64Bit OS..
Code:
sudo apt-get update
sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf libc6-dev-i386 adb mkbootimg rkflashtool

other Apps to install...
root-checker-6-4-8.apk
DiskInfo_v4.9.9 (build 10)_apkpure.com.apk
RAR_v5.80.build78_apkpure.com.apk
APK Info_v1.2.11_apkpure.com.apk

Many Thanks again, lobo... ur a STAR... ;-]...

[Image: SNWQIO2.png:]
----------------
hope it helps,
k,
Reply
#13
make boot.img file to use with Magisk Manager Latest Version 7.5.1 For Android 2020


to make your own boot.img file to use Magisk [Select and Patch a File] when installing Magisk v20.3(20300)
I had to use rkflashtool... ;-]..

after a clean install of Android 7 Nougat V14.3.2.82 ( 05-31-2019)..
setup tinker board.. and add UK keyboard.. etc..
clear cache.. [Settings].. [Storage].. click on [Cached data] to clear cached data..
restart tinker board in recovery to Wipe Cache Partition...

note.. I'm using laptop with Ubuntu Mate 18.04, adb & rkflashtool installed,
connected USB-A to tinker board micro USB port & tinker board powered via
GPIO pins 4 & 6.......

so.. 
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ adb devices -l
List of devices attached
170604358400234        device usb:1-2 product:rk3288 model:Tinker_Board device:rk3288 transport_id:92

k247@YOGA700-11ISK:~/temp/tinkerboard$  

adb reboot loader
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ lsusb
...
Bus 001 Device 108: ID 2207:320a
...
k247@YOGA700-11ISK:~/temp/tinkerboard$

sudo rkflashtool v
Code:
rkflashtool: info: rkflashtool v5.2
rkflashtool: info: Detected RK3288...
rkflashtool: info: interface claimed
rkflashtool: info: chip version: 320A-    .  .  -

sudo rkflashtool r boot >bootK_rkF.img
Code:
rkflashtool: info: rkflashtool v5.2
rkflashtool: info: Detected RK3288...
rkflashtool: info: interface claimed
rkflashtool: info: working with partition: boot
rkflashtool: info: found offset: 0x0001c000
rkflashtool: info: found size: 0x00010000
rkflashtool: info: reading flash memory at offset 0x0002bfe0... Done!

list all boot.img files to compare..
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ ll boot*
-rwxr--r-- 1 k247 k247 9.7M Mar 17 07:03 boot.img*
-rwxr--r-- 1 k247 k247 3.2M Mar 24 01:38 bootK.img*
-rw-rw-r-- 1 k247 k247  32M Mar 24 02:09 bootK_rkF.img
-rwxr--r-- 1 k247 k247 9.7M Feb 24 13:19 boot_with_kernel.img*
note... boot.img & boot_with_kernel.img are lobo's files.. ;-]..
& bootK.img.. I made using.. 
Code:
sudo dd if=/dev/sdb of=boot.img bs=512 skip=122880 count=65536 && sync
but this did not work with Magisk [Select and Patch a File] ;-[[[...

stat boot.img
Code:
 File: boot.img
 Size: 10076160        Blocks: 19680      IO Block: 4096   regular file
Device: 807h/2055d      Inode: 14945191    Links: 1
Access: (0744/-rwxr--r--)  Uid: ( 1000/    k247)   Gid: ( 1000/    k247)
Access: 2020-03-17 07:03:35.710546059 +0000
Modify: 2020-03-17 07:03:17.592145200 +0000
Change: 2020-03-17 07:03:36.638547989 +0000
Birth: -

sudo chmod 0744 bootK_rkF.img
sudo chown k247:k247 bootK_rkF.img
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ ll boot*
-rwxr--r-- 1 k247 k247 9.7M Mar 17 07:03 boot.img*
-rwxr--r-- 1 k247 k247 3.2M Mar 24 01:38 bootK.img*
-rwxr--r-- 1 k247 k247  32M Mar 24 02:09 bootK_rkF.img*
-rwxr--r-- 1 k247 k247 9.7M Feb 24 13:19 boot_with_kernel.img*
everything looked ok.. 

sudo rkflashtool b
Code:
rkflashtool: info: rkflashtool v5.2
rkflashtool: info: Detected RK3288...
rkflashtool: info: interface claimed
rkflashtool: info: rebooting device...

now we have boot.img file to use with Magisk [Select and Patch a File] 
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard$ adb push bootK_rkF.img /sdcard/Download

bootK_rkF.img: 1 file pushed. 8.1 MB/s (33554432 bytes in 3.959s)
push file to tinker board, /sdcard/Download...

on tinker board.. use Lightning Browser to download 
Magisk Manager Latest Version 7.5.1 For Android 2020
then enable Unknown sources from Security settings..
and use Files Manager from Apps to install... ;-]..

now open Magisk Manager App &
click on [install].. [Do you want to install Magisk v20.3(20300) now?]
then.. [Select and Patch a File].. use File Manager to find and click on bootK_rkF.img in Download folder..
note..  magisk_patched.img file will be in /sdcard/Download...

download tool [UTIL] unmkbootimg.gz... & extract to unmkbootimgK folder...
on laptop.. cd unmkbootimgK &
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimgK$ adb pull /sdcard/Download/magisk_patched.img
/sdcard/Download/magisk_patched.img: 1 file pulled. 10.9 MB/s (10436608 bytes in 0.912s)
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimgK$ ll
total 11M
drwxrwxr-x 2 k247 k247 4.0K Mar 24 02:18 ./
drwxrwxr-x 6 k247 k247 4.0K Mar 24 02:16 ../
-rw-r--r-- 1 k247 k247  10M Mar 24 02:18 magisk_patched.img
-rwxr--r-- 1 k247 k247 568K Mar 24 02:17 unmkbootimg*
-rwxr--r-- 1 k247 k247 271K Mar 24 02:16 unmkbootimg.gz*

./unmkbootimg magisk_patched.img
Code:
unmkbootimg version 1.2 - Mikael Q Kuisma <kuisma@ping.se>
Kernel size 8546336
Kernel address 0x60408000
Ramdisk size 1764725
Ramdisk address 0x62000000
Secondary size 87040
Secondary address 0x60f00000
Kernel tags address 0x60088000
Flash page size 16384
Board name is ""
Command line "buildvariant=userdebug"

*** WARNING ****
This image is built using NON-standard mkbootimg!
OFF_KERNEL_ADDR is 0x00380100
OFF_RAMDISK_ADDR is 0x01F78100
OFF_SECOND_ADDR is 0x00E78100
Please modify mkbootimg.c using the above values to build your image.
****************

Extracting kernel to file zImage ...
Extracting root filesystem to file initramfs.cpio.gz ...
Extracting second to file second.gz ...
All done.
---------------
To recompile this image, use:
 mkbootimg --kernel zImage --ramdisk initramfs.cpio.gz --base 0x60087f00 --cmdline 'buildvariant=userdebug' --pagesize 16384 -o new_boot.img
---------------

rkcrc -k initramfs.cpio.gz newbootK.img
Code:
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimgK$ ll
total 23M
drwxrwxr-x 2 k247 k247 4.0K Mar 24 02:20 ./
drwxrwxr-x 6 k247 k247 4.0K Mar 24 02:16 ../
-rw-rw-r-- 1 k247 k247 1.7M Mar 24 02:18 initramfs.cpio.gz
-rw-r--r-- 1 k247 k247  10M Mar 24 02:18 magisk_patched.img
-rw-r--r-- 1 k247 k247 1.7M Mar 24 02:20 newbootK.img
-rw-rw-r-- 1 k247 k247  85K Mar 24 02:18 second.gz
-rwxr--r-- 1 k247 k247 568K Mar 24 02:17 unmkbootimg*
-rwxr--r-- 1 k247 k247 271K Mar 24 02:16 unmkbootimg.gz*
-rw-rw-r-- 1 k247 k247 8.2M Mar 24 02:18 zImage
k247@YOGA700-11ISK:~/temp/tinkerboard/unmkbootimgK$
now you have everything you need to flash. ;-]..

adb reboot loader
lsusb
sudo rkflashtool v
sudo rkflashtool w boot < newbootK.img
sudo rkflashtool b

when tinker board restarts.. 
open Magisk Manager App.. from Settings.. set Automatic Response to [Grant] ;-].....
disable.. [Magisk Hide]... & restart tinker board..

then..  
clear cache.. [Settings].. [Storage].. click on [Cached data] to clear cached data..
restart tinker board in recovery to Wipe Cache Partition...

note.. safer to install RAR_v5.80.build78_apkpure.com.apk
before to try to use Magisk [Select and Patch a File].. as some 
have said magisk might fail if it does not find zip or rar..

Also.. it looks like.. you do not have to oem unlock, tinker board ]]]]].......
[Image: 2OoS22q.png]
----------------;-]..
hope it helps,
k,
Reply
#14
Node-RED in debian-on-Termux via debootstrap & proot working on TinkerOS_Android 7 Nougat V14.3.2.82

since C GPIO library & Python GPIO library both are working in debian-on-termux environment, 
[Image: PjZNAyF.png]
I thought I try to see if Node-RED will work ;-]..

I first tried to install via snap..
but failed.. as I could not get snapd service to work in debian-on-termux environment...

so.. I try Running Node-RED locally & Install with npm, from inside debian-on-termux..

note.. make sure input PINs 23 & 33 are setup correctly..
Code:
bash:5.0][u0_a60]@~:$ sudo gpio readall
+-----+-----+---------+------+---+--Tinker--+---+------+---------+-----+-----+
| CPU | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | CPU |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
|     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
| 252 |   8 |   SDA.1 |  I2C | 1 |  3 || 4  |   |      | 5v      |     |     |
| 253 |   9 |   SCL.1 |  I2C | 1 |  5 || 6  |   |      | 0v      |     |     |
|  17 |   7 | GPIO0C1 |  OUT | 0 |  7 || 8  | 0 | SERL | TxD.1   | 15  | 161 |
|     |     |      0v |      |   |  9 || 10 | 1 | SERL | RxD.1   | 16  | 160 |
| 164 |   0 | GPIO5B4 |  OUT | 0 | 11 || 12 | 0 | I2S  | I2S_CLK | 1   | 184 |
| 166 |   2 | GPIO5B6 |  OUT | 0 | 13 || 14 |   |      | 0v      |     |     |
| 167 |   3 | GPIO5B7 |  OUT | 0 | 15 || 16 | 0 | OUT  | GPIO5B2 | 4   | 162 |
|     |     |    3.3v |      |   | 17 || 18 | 0 | OUT  | GPIO5B3 | 5   | 163 |
| 257 |  12 |  MOSI.2 |  SPI | 0 | 19 || 20 |   |      | 0v      |     |     |
| 256 |  13 |  MISO.2 |  SPI | 1 | 21 || 22 | 0 | OUT  | GPIO5C3 | 6   | 171 |
| 254 |  14 | GPIO8A6 |   IN | 0 | 23 || 24 | 1 | SPI  | CE0.2   | 10  | 255 |
|     |     |      0v |      |   | 25 || 26 | 1 | IN   | GPIO8A3 | 11  | 251 |
| 233 |  30 |   SDA.4 |  I2C | 1 | 27 || 28 | 1 | I2C  | SCL.4   | 31  | 234 |
| 165 |  21 |  RTSN.4 | SERL | 1 | 29 || 30 |   |      | 0v      |     |     |
| 168 |  22 | GPIO5C0 |   IN | 1 | 31 || 32 | 1 | SERL | GPIO7C7 | 26  | 239 |
| 238 |  23 | GPIO7C6 |   IN | 1 | 33 || 34 |   |      | 0v      |     |     |
| 185 |  24 |  I2S_FS |  I2S | 0 | 35 || 36 | 1 | SERL | RxD.3   | 27  | 223 |
| 224 |  25 |   TxD.3 | SERL | 1 | 37 || 38 | 1 | I2S  | I2S_SDI | 28  | 187 |
|     |     |      0v |      |   | 39 || 40 | 0 | I2S  | I2S_SDO | 29  | 188 |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| CPU | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | CPU |
+-----+-----+---------+------+---+--Tinker--+---+------+---------+-----+-----+
bash:5.0][u0_a60]@~:$

sometimes.. I have to use..
Code:
sudo gpio mode 14 alt0
before..
Code:
sudo gpio mode 14 in
sudo gpio mode 14 down
sudo gpio mode 23 in
note.. you can also do this from termux Debian & without sudo....

to start termux Debian from home folder..
Code:
bash:5.0][u0_a60]@~:$ ~/bin/enter_deb

apt update
then install npm.. note.. this will take some time ;-]..
Code:
apt install npm
about.. 262 newly installed.. ;-]..

now that npm is installed, you can install Node-RED..
Code:
root@localhost:~# npm install -g --unsafe-perm node-red
npm WARN npm npm does not support Node.js v10.15.2
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/
npm WARN deprecated mkdirp@0.5.4: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated request@2.88.0: request has been deprecated, see https://github.com/request/request/issues/3142
/usr/local/bin/node-red-pi -> /usr/local/lib/node_modules/node-red/bin/node-red-pi
/usr/local/bin/node-red -> /usr/local/lib/node_modules/node-red/red.js

> bcrypt@3.0.6 install /usr/local/lib/node_modules/node-red/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.6/bcrypt_lib-v3.0.6-node-v64-linux-arm-glibc.tar.gz
node-pre-gyp WARN Pre-built binaries not found for bcrypt@3.0.6 and node@10.15.2 (node-v64 ABI, glibc) (falling back to source compile with node-gyp)
make: Entering directory '/usr/local/lib/node_modules/node-red/node_modules/bcrypt/build'
 CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
 CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o
 CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt_node.o
In file included from ../src/bcrypt_node.cc:1:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2232:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
    , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                             ^
In file included from ../../nan/nan.h:53,
                from ../src/bcrypt_node.cc:1:
../src/bcrypt_node.cc: At global scope:
/usr/include/nodejs/src/node.h:570:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
      (node::addon_register_func) (regfunc),                          \
                                          ^
/usr/include/nodejs/src/node.h:604:3: note: in expansion of macro ‘NODE_MODULE_X’
  NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
  ^~~~~~~~~~~~~
../src/bcrypt_node.cc:378:1: note: in expansion of macro ‘NODE_MODULE’
NODE_MODULE(bcrypt_lib, init);
^~~~~~~~~~~
In file included from /usr/include/nodejs/src/node.h:63,
                from ../../nan/nan.h:53,
                from ../src/bcrypt_node.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/usr/include/nodejs/src/node_object_wrap.h:85:78:   required from here
/usr/include/nodejs/deps/v8/include/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
               reinterpret_cast<Callback>(callback), type);
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/nodejs/deps/v8/include/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/usr/include/nodejs/deps/v8/include/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
 SOLINK_MODULE(target) Release/obj.target/bcrypt_lib.node
 COPY Release/bcrypt_lib.node
 COPY /usr/local/lib/node_modules/node-red/node_modules/bcrypt/lib/binding/bcrypt_lib.node
 TOUCH Release/obj.target/action_after_build.stamp
make: Leaving directory '/usr/local/lib/node_modules/node-red/node_modules/bcrypt/build'
+ node-red@1.0.4
added 331 packages from 340 contributors in 85.568s
root@localhost:~#
it looks like it worked ]]]]]... note.. npm WARN npm.. need to install Node.js Latest LTS Version: 12.16.1..

run Node-RED...
Code:
root@localhost:~# node-red
31 Mar 02:12:19 - [info]

Welcome to Node-RED
===================

31 Mar 02:12:19 - [info] Node-RED version: v1.0.4
31 Mar 02:12:19 - [info] Node.js  version: v10.15.2
31 Mar 02:12:19 - [info] Linux 4.4.112 arm LE
31 Mar 02:12:22 - [info] Loading palette nodes
31 Mar 02:12:29 - [info] Settings file  : /root/.node-red/settings.js
31 Mar 02:12:29 - [info] Context store  : 'default' [module=memory]
31 Mar 02:12:29 - [info] User directory : /root/.node-red
31 Mar 02:12:29 - [warn] Projects disabled : editorTheme.projects.enabled=false
31 Mar 02:12:29 - [info] Flows file     : /root/.node-red/flows_localhost.json
31 Mar 02:12:29 - [info] Creating new flow file
31 Mar 02:12:29 - [warn]

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

31 Mar 02:12:29 - [info] Server now running at http://127.0.0.1:1880/
31 Mar 02:12:29 - [info] Starting flows
31 Mar 02:12:29 - [info] Started flows
31 Mar 02:15:17 - [info] Installing module: red-contrib-tinkeros-gpio, version: 1.0.0
31 Mar 02:15:31 - [info] Installed module: red-contrib-tinkeros-gpio
31 Mar 02:15:31 - [info] Added node types:
31 Mar 02:15:31 - [info]  - red-contrib-tinkeros-gpio:asus gpio in
31 Mar 02:15:31 - [info]  - red-contrib-tinkeros-gpio:asus gpio out
31 Mar 02:21:44 - [info] Stopping flows
31 Mar 02:21:44 - [info] Stopped flows
ctrl+c will stop server..

now you can go to browser on same LAN as tinker board & open the Node-RED editor 
http://ip_address_of_tinkerboard:1880/
[Image: 0LYnzkY.png]

to get GPIO to work with Node-RED.. open menu & select [Manage palette]
then install.. search modules for tinker & install red-contrib-tinkeros-gpio
[Image: 1yAz9ABm.png]

I could not get GPIO inputs to work.. but outputs / only digital out worked...
[Image: dRuqoSD.png]

then.. install dashboard.. from menu select [Manage palette]
then install.. search modules for dashboard & install node-red-dashboard
[Image: w0i3JnGm.png]
Note.. http://ip_address_of_tinkerboard:1880/ui

now have live data dashboard... ;-]..
[Image: 29yoFt7m.png][Image: FUuHs71m.png][Image: HWM4AEIm.png]

its a start.. I never thought I'd get this far ]]]]].... but to be really useful.. 
need to find working Asus GPIO inputs for Node-RED.. & need pwm outputs also.. tbc..


hope it helps,
-----------------
k,
[Image: G5zP4eR.jpg]
Reply
#15
Node-RED in debian-on-Termux, cont..


this might help with using Node-RED on tinker board..
[Image: Y6R9Ta5m.png][Image: iZ2uIwQm.png][Image: S4pxTV4m.png]
[Image: YKBiUHgm.png][Image: G31wD7lm.png][Image: nwC4rKzm.png]
[Image: XRFV5iFm.png][Image: iPBH80Wm.png][Image: 8Rt5iHPm.png]

Just found out.. you can import flow json from clipboard in menu ]]]]...
Code:
[{"id":"1ca7165d.c5635a","type":"tab","label":"Tinker Board - Pibrella","disabled":false,"info":"This is my first Node-RED flow for Tinker Board Pibrella, testing LEDs & Asus GPIO outputs with dashboard ;-].."},{"id":"389c6a12.aea466","type":"tab","label":"Tinker Board - Other","disabled":false,"info":""},{"id":"a46ff0b6.d288a","type":"tab","label":"Tinker Board - HW Info","disabled":false,"info":""},{"id":"1990fb84.b4b674","type":"tab","label":"Tinker Board - GPIO","disabled":false,"info":""},{"id":"159f21a7.6e83ee","type":"ui_base","theme":{"name":"theme-dark","lightTheme":{"default":"#0094CE","baseColor":"#8080c0","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#8000ff","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"},"themeState":{"base-color":{"default":"#097479","value":"#8000ff","edited":true},"page-titlebar-backgroundColor":{"value":"#8000ff","edited":false},"page-backgroundColor":{"value":"#111111","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#a64dff","edited":false},"group-borderColor":{"value":"#555555","edited":false},"group-backgroundColor":{"value":"#333333","edited":false},"widget-textColor":{"value":"#eeeeee","edited":false},"widget-backgroundColor":{"value":"#8000ff","edited":false},"widget-borderColor":{"value":"#333333","edited":false},"base-font":{"value":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey"}},"site":{"name":"Node-RED Dashboard","hideToolbar":"true","allowSwipe":"true","lockMenu":"false","allowTempTheme":"true","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"f27819fe.91d5f8","type":"ui_tab","z":"","name":"Tinker Board - Pibrella","icon":"dashboard","order":1,"disabled":false,"hidden":false},{"id":"9598424e.656a2","type":"ui_group","z":"","name":"Pibrella LEDs","tab":"f27819fe.91d5f8","order":1,"disp":true,"width":"6","collapse":false},{"id":"d1ed5205.9977e","type":"ui_group","z":"","name":"2ndGroup","tab":"f27819fe.91d5f8","order":2,"disp":true,"width":"6","collapse":false},{"id":"faf3178f.48fff8","type":"ui_tab","z":"","name":"Tinker Board - Other","icon":"dashboard","order":2,"disabled":false,"hidden":false},{"id":"16852094.62162f","type":"ui_group","z":"","name":"Other","tab":"faf3178f.48fff8","order":1,"disp":true,"width":"6","collapse":false},{"id":"db421575.768ae8","type":"ui_group","z":"","name":"Col1","tab":"9c1ebe58.28797","order":1,"disp":false,"width":"6"},{"id":"f779a9d0.8200d8","type":"ui_group","z":"","name":"Actions","tab":"9c1ebe58.28797","order":4,"disp":true,"width":"6"},{"id":"b75f2537.11c038","type":"ui_group","z":"","name":"Col2","tab":"9c1ebe58.28797","order":2,"disp":false,"width":"6"},{"id":"a38c82.099d238","type":"ui_group","z":"","name":"Col3","tab":"9c1ebe58.28797","order":3,"disp":false,"width":"6"},{"id":"9c1ebe58.28797","type":"ui_tab","z":"","name":"TB Control","icon":"dashboard","order":4,"disabled":false,"hidden":false},{"id":"8b86bd58.f3f4c","type":"ui_spacer","name":"spacer","group":"b75f2537.11c038","order":2,"width":1,"height":1},{"id":"a2479436.c008a8","type":"debug","z":"389c6a12.aea466","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":640,"y":560,"wires":[]},{"id":"2c37fd8f.6c7e92","type":"asus gpio out","z":"1ca7165d.c5635a","name":"GreenLED","pin":"7","set":false,"level":"0","x":610,"y":320,"wires":[]},{"id":"3b157617.cff58a","type":"inject","z":"1ca7165d.c5635a","name":"ON","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":240,"wires":[["6598654b.93b5cc"]]},{"id":"d299f18b.a4492","type":"inject","z":"1ca7165d.c5635a","name":"OFF","topic":"0","payload":"false","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":300,"wires":[["6598654b.93b5cc"]]},{"id":"979c22fc.8a07","type":"asus gpio out","z":"1ca7165d.c5635a","name":"YellowLED","pin":"11","set":false,"level":"0","x":610,"y":240,"wires":[]},{"id":"84066182.831a4","type":"asus gpio out","z":"1ca7165d.c5635a","name":"RedLED","pin":"13","set":false,"level":"0","x":600,"y":160,"wires":[]},{"id":"e29763e2.37bb8","type":"ui_text","z":"1ca7165d.c5635a","group":"9598424e.656a2","order":5,"width":0,"height":0,"name":"LEDs Output","label":"LEDs output state...","format":"{{msg.payload}}","layout":"row-spread","x":370,"y":320,"wires":[]},{"id":"458f2046.f6938","type":"ui_gauge","z":"1ca7165d.c5635a","name":"LEDs Gauge","group":"9598424e.656a2","order":1,"width":0,"height":0,"gtype":"gage","title":"Power","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":590,"y":420,"wires":[]},{"id":"856b8245.61b97","type":"ui_slider","z":"1ca7165d.c5635a","name":"LEDs slider","label":"","tooltip":"","group":"9598424e.656a2","order":2,"width":0,"height":0,"passthru":true,"outs":"all","topic":"","min":0,"max":"100","step":1,"x":170,"y":420,"wires":[["84b012b4.b69d9"]]},{"id":"6598654b.93b5cc","type":"ui_switch","z":"1ca7165d.c5635a","name":"LEDs switch","label":"LEDs switch","tooltip":"","group":"9598424e.656a2","order":4,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":370,"y":240,"wires":[["84066182.831a4","979c22fc.8a07","2c37fd8f.6c7e92","e29763e2.37bb8"]]},{"id":"6624f50e.489fcc","type":"asus gpio in","z":"1ca7165d.c5635a","name":"ButtonPIN33","pin":"33","intype":"tri","debounce":"25","read":false,"x":150,"y":160,"wires":[["6598654b.93b5cc"]]},{"id":"3de1ea7d.7d1606","type":"asus gpio in","z":"1ca7165d.c5635a","name":"REDbutton","pin":"23","intype":"down","debounce":"25","read":false,"x":200,"y":100,"wires":[["6598654b.93b5cc"]]},{"id":"e34c3171.2ebba","type":"ui_button","z":"1ca7165d.c5635a","name":"button","group":"9598424e.656a2","order":6,"width":0,"height":0,"passthru":false,"label":"button","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"date","topic":"","x":150,"y":540,"wires":[["c8204676.e1d548"]]},{"id":"84b012b4.b69d9","type":"ui_numeric","z":"1ca7165d.c5635a","name":"","label":"Power %","tooltip":"","group":"9598424e.656a2","order":3,"width":0,"height":0,"wrap":false,"passthru":true,"topic":"","format":"{{value}}","min":0,"max":"100","step":1,"x":380,"y":420,"wires":[["458f2046.f6938","856b8245.61b97"]]},{"id":"9d2fb1f6.0a142","type":"ui_button","z":"1ca7165d.c5635a","name":"","group":"d1ed5205.9977e","order":1,"width":0,"height":0,"passthru":false,"label":"button","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"date","topic":"","x":150,"y":640,"wires":[["5c5984dd.7d4fec"]]},{"id":"6e5b74f0.1b5b0c","type":"debug","z":"1ca7165d.c5635a","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":640,"y":640,"wires":[]},{"id":"c8204676.e1d548","type":"debug","z":"1ca7165d.c5635a","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":370,"y":540,"wires":[]},{"id":"993dbe1c.7cda8","type":"change","z":"389c6a12.aea466","name":"","rules":[{"t":"set","p":"toggle-me","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":410,"y":260,"wires":[["ddf1c79d.01bb48","a2479436.c008a8"]]},{"id":"cd172b61.e35688","type":"switch","z":"389c6a12.aea466","name":"","property":"toggle-me","propertyType":"flow","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":190,"y":360,"wires":[["456d0cee.415c04"],["8c375dd4.3c0c8"]]},{"id":"4566f623.532bf8","type":"change","z":"389c6a12.aea466","name":"","rules":[{"t":"set","p":"toggle-me","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":650,"y":400,"wires":[["ddf1c79d.01bb48","a2479436.c008a8"]]},{"id":"da4a62a4.9dad3","type":"change","z":"389c6a12.aea466","name":"","rules":[{"t":"set","p":"toggle-me","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":650,"y":320,"wires":[["ddf1c79d.01bb48","a2479436.c008a8"]]},{"id":"bf992c41.ac559","type":"inject","z":"389c6a12.aea466","name":"","topic":"","payload":"false","payloadType":"bool","repeat":"","crontab":"","once":true,"onceDelay":0.1,"x":100,"y":200,"wires":[["993dbe1c.7cda8"]]},{"id":"8c375dd4.3c0c8","type":"change","z":"389c6a12.aea466","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":400,"wires":[["4566f623.532bf8"]]},{"id":"456d0cee.415c04","type":"change","z":"389c6a12.aea466","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":320,"wires":[["da4a62a4.9dad3"]]},{"id":"3aacb1e8.b25c0e","type":"ui_button","z":"389c6a12.aea466","name":"","group":"16852094.62162f","order":1,"width":0,"height":0,"passthru":true,"label":"On / Off","tooltip":"","color":"","bgcolor":"","icon":"","payload":"true","payloadType":"bool","topic":"","x":110,"y":300,"wires":[["cd172b61.e35688"]]},{"id":"e4f30d36.802c9","type":"comment","z":"389c6a12.aea466","name":"At startup set default value (false)","info":"","x":430,"y":220,"wires":[]},{"id":"def28801.7bc4f8","type":"comment","z":"389c6a12.aea466","name":"if flow.state is true set it to false, if flow.state is false set it to true","info":"","x":510,"y":360,"wires":[]},{"id":"b9e35d08.0ba6a","type":"inject","z":"389c6a12.aea466","name":"","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":96.5,"y":247,"wires":[["3aacb1e8.b25c0e"]]},{"id":"ddf1c79d.01bb48","type":"ui_text","z":"389c6a12.aea466","group":"16852094.62162f","order":1,"width":0,"height":0,"name":"","label":"On / Off button state...","format":"{{msg.payload}}","layout":"row-spread","x":670,"y":480,"wires":[]},{"id":"e184e47f.bb0da8","type":"ui_gauge","z":"389c6a12.aea466","name":"","group":"16852094.62162f","order":2,"width":0,"height":0,"gtype":"wave","title":"","label":"","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":640,"y":660,"wires":[]},{"id":"5818b707.d599e8","type":"ui_slider","z":"389c6a12.aea466","name":"","label":"","tooltip":"","group":"16852094.62162f","order":3,"width":0,"height":0,"passthru":true,"outs":"all","topic":"","min":0,"max":"100","step":1,"x":250,"y":660,"wires":[["871aa9fb.3a89d8"]]},{"id":"871aa9fb.3a89d8","type":"ui_numeric","z":"389c6a12.aea466","name":"","label":"","tooltip":"","group":"16852094.62162f","order":6,"width":0,"height":0,"wrap":false,"passthru":true,"topic":"","format":"{{value}}","min":0,"max":"100","step":1,"x":410,"y":660,"wires":[["5818b707.d599e8","e184e47f.bb0da8"]]},{"id":"e3286cff.46f83","type":"ui_gauge","z":"a46ff0b6.d288a","name":"","group":"db421575.768ae8","order":2,"width":0,"height":0,"gtype":"donut","title":"CPU Temperature","label":"°C","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":630,"y":120,"wires":[]},{"id":"782c3e0e.bd79c","type":"exec","z":"a46ff0b6.d288a","command":"cat /sys/devices/virtual/thermal/thermal_zone0/temp | cut -c1-3","addpay":false,"append":"","useSpawn":"","timer":"","name":"TB Temp.","x":300,"y":140,"wires":[["76dcd395.4b09bc"],[],[]]},{"id":"c49040bf.642f6","type":"inject","z":"a46ff0b6.d288a","name":"","topic":"","payload":"","payloadType":"date","repeat":"5","crontab":"","once":false,"x":110,"y":160,"wires":[["782c3e0e.bd79c","99c72f0f.99b8c","d2322e20.5ca13"]]},{"id":"76dcd395.4b09bc","type":"function","z":"a46ff0b6.d288a","name":"","func":"str = msg.payload\nmsg.payload = Number(msg.payload)/10;\nreturn msg;","outputs":1,"noerr":0,"x":450,"y":140,"wires":[["e3286cff.46f83","5be209a9.f3cbf8"]]},{"id":"c81c78f4.d94948","type":"ui_button","z":"a46ff0b6.d288a","d":true,"name":"","group":"f779a9d0.8200d8","order":2,"width":0,"height":0,"passthru":false,"label":"Reboot","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":120,"y":520,"wires":[["bc0df605.ddf668"]]},{"id":"bc0df605.ddf668","type":"exec","z":"a46ff0b6.d288a","command":"reboot","addpay":false,"append":"","useSpawn":"","timer":"","name":"Reboot","x":298,"y":520,"wires":[[],[],[]]},{"id":"caf90f7e.067e4","type":"ui_button","z":"a46ff0b6.d288a","d":true,"name":"","group":"f779a9d0.8200d8","order":3,"width":0,"height":0,"passthru":false,"label":"Shutdown","tooltip":"","color":"","bgcolor":"red","icon":"","payload":"","payloadType":"str","topic":"","x":110,"y":580,"wires":[["45bc9667.4aec08"]]},{"id":"45bc9667.4aec08","type":"exec","z":"a46ff0b6.d288a","command":"shutdown -h now","addpay":false,"append":"","useSpawn":"","timer":"","name":"Shutdown","x":309.5,"y":582.25,"wires":[[],[],[]]},{"id":"5be209a9.f3cbf8","type":"ui_chart","z":"a46ff0b6.d288a","name":"","group":"b75f2537.11c038","order":3,"width":0,"height":0,"label":"CPU Temperature °C - 24Hrs","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"0","ymax":"100","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":true,"outputs":1,"x":660,"y":160,"wires":[[]]},{"id":"99c72f0f.99b8c","type":"exec","z":"a46ff0b6.d288a","command":"top -d 0.5 -b -n2 | grep \"Cpu(s)\"|tail -n 1 | awk '{print $2 + $4}'","addpay":false,"append":"","useSpawn":"","timer":"","name":"CPU Load","x":310,"y":220,"wires":[["dcf2cf2e.32e4c"],[],[]]},{"id":"d2322e20.5ca13","type":"exec","z":"a46ff0b6.d288a","command":"free | grep Mem | awk '{printf \"%.1f\\n\", 100*($3)/$2}'","addpay":false,"append":"","useSpawn":"","timer":"","name":"Memory Load","x":320,"y":300,"wires":[["c3826b9a.c19918"],[],[]]},{"id":"dcf2cf2e.32e4c","type":"ui_gauge","z":"a46ff0b6.d288a","name":"","group":"db421575.768ae8","order":1,"width":0,"height":0,"gtype":"donut","title":"Processor","label":"CPU %","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":660,"y":220,"wires":[]},{"id":"c3826b9a.c19918","type":"ui_gauge","z":"a46ff0b6.d288a","name":"","group":"b75f2537.11c038","order":1,"width":0,"height":0,"gtype":"donut","title":"Memory","label":"RAM %","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":660,"y":300,"wires":[]},{"id":"b94d8f4c.c0fb5","type":"exec","z":"a46ff0b6.d288a","command":"df -h","addpay":false,"append":"","useSpawn":"","timer":"","name":"Disk Usage","x":310,"y":380,"wires":[["cbd4fe06.2812a"],[],[]]},{"id":"7060e615.ee1e28","type":"ui_gauge","z":"a46ff0b6.d288a","name":"","group":"a38c82.099d238","order":1,"width":0,"height":0,"gtype":"donut","title":"Disk","label":"Usage %","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":650,"y":380,"wires":[]},{"id":"cbd4fe06.2812a","type":"function","z":"a46ff0b6.d288a","name":"","func":"var re = /([0-9]{2})%/\nvar idx = msg.payload.search(re);\nvar str = msg.payload;\nif (idx >=0) {\n str = msg.payload.substring(idx, idx + 2);\n}\nmsg.payload = str;\nreturn msg;","outputs":1,"noerr":0,"x":470,"y":380,"wires":[["7060e615.ee1e28"]]},{"id":"4b719a9c.0a5074","type":"inject","z":"a46ff0b6.d288a","name":"","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":false,"x":110,"y":380,"wires":[["b94d8f4c.c0fb5"]]},{"id":"a2ab098f.91cfe8","type":"ui_button","z":"a46ff0b6.d288a","d":true,"name":"","group":"f779a9d0.8200d8","order":0,"width":0,"height":0,"passthru":false,"label":"Clear Cache","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":110,"y":660,"wires":[["956c6ef9.d7a5e"]]},{"id":"956c6ef9.d7a5e","type":"exec","z":"a46ff0b6.d288a","command":"sh -c \"sync; echo 3 > /proc/sys/vm/drop_caches\"","addpay":false,"append":"","useSpawn":"","timer":"","name":"Clear Cache","x":310,"y":660,"wires":[[],[],[]]},{"id":"bf5a2911.7b5118","type":"inject","z":"a46ff0b6.d288a","d":true,"name":"","topic":"","payload":"","payloadType":"date","repeat":"43200","crontab":"","once":false,"onceDelay":"","x":110,"y":700,"wires":[["956c6ef9.d7a5e"]]},{"id":"df244937.c3a6f8","type":"debug","z":"1990fb84.b4b674","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":600,"y":80,"wires":[]},{"id":"309d1680.d6856a","type":"inject","z":"1990fb84.b4b674","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":80,"wires":[["1d6d02a.44803fd"]]},{"id":"25e8e795.7db6f8","type":"inject","z":"1990fb84.b4b674","name":"","topic":"","payload":"pwmLED.py","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":130,"y":140,"wires":[["c8f2e412.020ab8"]]},{"id":"1d6d02a.44803fd","type":"exec","z":"1990fb84.b4b674","command":"/root/code/pibrella/pwmLED.py","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"pin164PWM","x":330,"y":80,"wires":[["df244937.c3a6f8"],[],[]]},{"id":"5c5984dd.7d4fec","type":"exec","z":"1ca7165d.c5635a","command":"/root/code/pibrella/pwmLED.py","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"pin164PWM","x":370,"y":640,"wires":[["6e5b74f0.1b5b0c"],["d3df81f8.b91df"],["f289d4b3.1f61c8"]]},{"id":"8d2587be.bdbb28","type":"function","z":"1990fb84.b4b674","name":"exit","func":"msg.payload = msg.kill;\nmsg.kill =\"SIGINT\";\nreturn msg;","outputs":1,"noerr":0,"x":130,"y":180,"wires":[[]]},{"id":"46b2c23e.a3b97c","type":"inject","z":"1990fb84.b4b674","name":"","topic":"","payload":"pibrella","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":420,"wires":[["2c55c912.194936"]]},{"id":"392865d.f30729a","type":"inject","z":"1990fb84.b4b674","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":480,"wires":[["71977b00.721ec4"]]},{"id":"2c55c912.194936","type":"exec","z":"1990fb84.b4b674","command":"pkill -f --signal SIGINT ","addpay":true,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":360,"y":420,"wires":[[],[],["ec24a592.f052d8"]]},{"id":"7fd35e22.acf09","type":"debug","z":"1990fb84.b4b674","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":580,"y":300,"wires":[]},{"id":"8d574200.1c30a","type":"python3-function","z":"1990fb84.b4b674","name":"pwmPIN#","func":"#!/usr/bin/env python3\n#Testing for software PWM\nimport ASUS.GPIO as GPIO\nimport unittest\nimport time\nPIN=msg['payload']\nLED = PIN\nGPIO.setmode(GPIO.ASUS)\nGPIO.setup(LED, GPIO.OUT)\npwm = GPIO.PWM(LED, 50)\npwm.start(100)\n\n#while True:\nfor i in range(0,3):\n        for x in range(0,101,5):\n                pwm.ChangeDutyCycle(x)\n                time.sleep(0.1)\n        for x in range(100,-1,-5):\n                pwm.ChangeDutyCycle(x)\n                time.sleep(0.1)\nreturn msg","outputs":1,"x":340,"y":300,"wires":[["7fd35e22.acf09"]]},{"id":"6046037a.bb153c","type":"inject","z":"1990fb84.b4b674","name":"PIN#164","topic":"","payload":"164","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":130,"y":300,"wires":[["8d574200.1c30a"]]},{"id":"2b4cee4d.3a2b72","type":"inject","z":"1990fb84.b4b674","name":"PIN#166","topic":"","payload":"166","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":130,"y":260,"wires":[["8d574200.1c30a"]]},{"id":"de5ccddd.5a8c","type":"inject","z":"1990fb84.b4b674","name":"PIN#17","topic":"","payload":"17","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":340,"wires":[["8d574200.1c30a"]]},{"id":"71977b00.721ec4","type":"exec","z":"1990fb84.b4b674","command":"~/code/pibrella/pibrella","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":360,"y":480,"wires":[["a2de31c.2f297d"],[],[]]},{"id":"a2de31c.2f297d","type":"debug","z":"1990fb84.b4b674","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":620,"y":480,"wires":[]},{"id":"c8f2e412.020ab8","type":"exec","z":"1990fb84.b4b674","command":"pkill -f --signal SIGINT ","addpay":true,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":360,"y":140,"wires":[[],[],["8166038b.fbf4d"]]},{"id":"bd7af5fd.e7fbf8","type":"exec","z":"1990fb84.b4b674","command":"gpio read 2","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":330,"y":580,"wires":[["e9411da5.b8523"],[],[]]},{"id":"e9411da5.b8523","type":"debug","z":"1990fb84.b4b674","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":620,"y":580,"wires":[]},{"id":"7e0e537d.90610c","type":"inject","z":"1990fb84.b4b674","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":"1","x":120,"y":580,"wires":[["bd7af5fd.e7fbf8","2475b17c.e7321e","2d437132.fee6ce","f47e200a.9a15d"]]},{"id":"2475b17c.e7321e","type":"exec","z":"1990fb84.b4b674","command":"gpio read 0","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":330,"y":640,"wires":[["d890de41.b94fb"],[],[]]},{"id":"d890de41.b94fb","type":"debug","z":"1990fb84.b4b674","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":620,"y":640,"wires":[]},{"id":"2d437132.fee6ce","type":"exec","z":"1990fb84.b4b674","command":"gpio read 7","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":330,"y":700,"wires":[["fe5727f1.28ef38"],[],[]]},{"id":"fe5727f1.28ef38","type":"debug","z":"1990fb84.b4b674","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":620,"y":700,"wires":[]},{"id":"f47e200a.9a15d","type":"exec","z":"1990fb84.b4b674","command":"gpio read 14","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":330,"y":760,"wires":[["79794f16.f5975"],[],[]]},{"id":"79794f16.f5975","type":"debug","z":"1990fb84.b4b674","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":620,"y":760,"wires":[]},{"id":"81220665.6003e8","type":"comment","z":"1990fb84.b4b674","name":"redLED","info":"","x":450,"y":580,"wires":[]},{"id":"a3979259.9435e","type":"comment","z":"1990fb84.b4b674","name":"yellowLED","info":"","x":460,"y":640,"wires":[]},{"id":"923c48b1.0d5c98","type":"comment","z":"1990fb84.b4b674","name":"greenLED","info":"","x":460,"y":700,"wires":[]},{"id":"41d12a8.5716cd4","type":"comment","z":"1990fb84.b4b674","name":"redBUTTON","info":"","x":470,"y":760,"wires":[]},{"id":"ec24a592.f052d8","type":"debug","z":"1990fb84.b4b674","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":620,"y":420,"wires":[]},{"id":"8166038b.fbf4d","type":"debug","z":"1990fb84.b4b674","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":600,"y":140,"wires":[]},{"id":"d3df81f8.b91df","type":"debug","z":"1ca7165d.c5635a","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":640,"y":700,"wires":[]},{"id":"f289d4b3.1f61c8","type":"debug","z":"1ca7165d.c5635a","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":640,"y":760,"wires":[]}]
this is nuts.... ;-]..
-----------------
hope it helps,
k,
----

much to learn about this node-RED, I'm going to be busy for a while ;-]]..........
[-] The following 1 user Likes k247tEK's post:
  • lobo
Reply
#16
I worked for Home-Assistant to make GPIO usable. Then I could manage it by the use of gpio (the program) launched on a sub-shell.
Currently I installed Home-Assistant over Armbian, in order to access the bluetooth. But even with Arch is feasible (without BT). The only case not available is to call the gpio_python library, as long as it requires the root privileges.

My congratulation for your great work and sharing with the Tinker Board community.
Light blue words might be a link. Have you try to click on them? Big Grin
Reply
#17
Install Node.Js Latest LTS Version: 12.16.1...

following... How to install Node.js via binary archive on Linux...


the Node.Js install from Termux-Debian  apt package manager is.. v10.15.2.. 
better to uninstall &  install Node.js via binary archive on Linux..

download file.. node-v12.16.1-linux-armv7l.tar.xz Linux Binaries (ARM) ARMv7

now remove old installed node-red & npm..
Code:
npm remove -g --unsafe-perm node-red
apt remove npm

check node.js not intalled...
Code:
which node

Unzip the binary archive to any directory you wanna install Node, I use 
/usr/local/lib/nodejs
Code:
VERSION=v12.16.1
DISTRO=linux-armv7l
mkdir -p /usr/local/lib/nodejs
tar -xJvf node-$VERSION-$DISTRO.tar.xz -C /usr/local/lib/nodejs

Set the environment variable ~/.profile, add below to the end
Code:
# Nodejs
VERSION=v12.16.1
DISTRO=linux-armv7l
export PATH=/usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin:$PATH

Refresh profile
Code:
. ~/.profile

Test installation using..
node -v
npm version
npx -v

now that npm is installed, you can install Node-RED..
Code:
npm install -g --unsafe-perm node-red

Note.. Upgrading Node-RED.. also use..
Code:
npm install -g --unsafe-perm node-red


check python is pointing to python3..
Code:
ln -s /usr/bin/python3 /usr/bin/python

check with..
Code:
root@localhost:~/code/pibrella# python -V
Python 3.7.3

for a light weight database.. install SQLite
Code:
apt update
apt install sqlite3

now install Node-RED modules...
Code:
npm install red-contrib-tinkeros-gpio
npm install node-red-contrib-python3-function
npm install node-red-dashboard
npm install node-red-node-sqlite

Securing Node-RED..
Code:
npm install -g node-red-admin
use to Generating the password hash
Code:
node-red-admin hash-pw
enter password you want to use.. & make a note of it's hash ;-]]]...

cd ~/.node-red & nano settings.js
Code:
   ....
   adminAuth: {
       type: "credentials",
       users: [{
           username: "admin",
           password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",                                                                                               permissions: "*"
       }]
   },
   ...

    httpNodeAuth: {user:"userxxx",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
    httpStaticAuth: {user:"userxxx",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
save edit... note.. I only add admin & userxxxx login access to node editor and dashboard UI.. (NO HTTPS)...

then..
Code:
root@localhost:~/.node-red# node-red-admin target http://localhost:1880/admin
Target: http://localhost:1880/admin

install modules... 
Code:
npm install node-red-contrib-auth
npm install node-red-contrib-http-auth0
npm audit fix

please note.. if node.js is upgraded at any point you will need to rebuild the native part manually, 
for example.
Code:
cd ~/.node-red
npm rebuild

If we wanted to check for packages that have updates, 
you can use the npm outdated commands:
Code:
npm update
npm outdated
ncu --upgrade request
npm list request
npm install -g npm-check-updates
npm install -g mkdirp
npm install mkdirp
;-]...

Note.. on running Node-RED.. 
run Node-RED server in termux-Debian,  TMUX.. & detach from session..
ie.. open Termux from Apps..
Code:
Welcome to Termux!

Wiki:            https://wiki.termux.com
Community forum: https://termux.com/community
Gitter chat:     https://gitter.im/termux/termux
IRC channel:     #termux on freenode

Working with packages:

* Search packages:   pkg search <query>
* Install a package: pkg install <package>
* Upgrade packages:  pkg upgrade

Subscribing to additional repositories:

* Root:     pkg install root-repo
* Unstable: pkg install unstable-repo
* X11:      pkg install x11-repo

Report issues at https://termux.com/issues

bash:5.0][u0_a60]@~:$

then... 
Code:
tmux
~/bin/enter_deb
node-red
once Node-RED server is running.. you can detach from session.. with (ctrl+b) (d) 
to reattach to running sessions.. use..
tmux ls
tmux a
& to kill the Node-RED server (ctrl+c)... ;-]..

now.. exit.. termux-Detain.. then exit termux & restart tinker Board..

[Image: gS93HGe.png]

managed to run python PWM function & pass it PIN# from Node [msg].. lot's of fun]]]]].......
also.. managed to lockup Node-RED server. so it would not restart :-[..
Code:
node-red --safe
will let you start server.. without running flows.. so you can remove offending nodes...
-----------------
hope it helps,
k,
---
ps.. the  json flow on post#15 above has all the tinkering ;-]..
Reply
#18
Really nice and amazing guide i really like it!

regards

thanks,

Doc
GBWhatsapp is the most popular and amazing app which provides amazing feature and function's rather then Official whatsapp
Reply
#19
Great
Reply
#20
thanks

how to get this?

Hello i am new to this.

Thanks for the detailed information about this. I would love to see more such awesome blog posts from you. Keep up the Good Work!
Can someone tell me which version of whatsapp is better? I am really confused between GBWhatsApp APK and FMWhatsApp APK? Please share your views on this.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)