Author Topic: Fully functional on NanoPi Neo 2 ... most of the time  (Read 4911 times)

ElderOfPsion

  • NewMember
  • *
  • Posts: 9
Fully functional on NanoPi Neo 2 ... most of the time
« on: May 22, 2019, 10:50:41 PM »
The ATXRaspi is more versatile than I could have imagined. It is compatible not only with the Raspberry Pi series but also with the Nano Pi Neo series (Neo, Neo 2, Neo Air, and probably the Neo Plus 2, although I haven't tested it with that one yet). Three times out of four, the ATXRaspi works perfectly with the Neo 2.

From time to time, something strange happens. After the on/off button is pushed (to switch the device off), the single-board computer shuts down; the ATXRaspi's status list pulses/flashes; and eventually all the lights on the ATXRaspi circuit board go out (as is typical after shutdown). Of course, all the lights on the Neo2 go out (as is typical of any gadget when the power has been cut). However, my status LED — a multi-color LED that has two signal lines attached to it from the Neo2 in addition to the +/– lines attached to the ATXRaspi — remains lit. The ATXRaspi and the Neo2 are keeping the LED illuminated. The ATXRaspi's on/off button ceases to function. I have to disconnect and reconnect the PowerBoost 1000C to reset the ATXRaspi board.

Now, I recognize that the ATXRaspi was not built for any single-board computer series besides the Raspberry Pi. I am not expecting someone else to solve the problem for me.  :) It may be that I've made a mistake with the wiring somewhere. Still, if the problem is occurring with a NanoPi computer, perhaps it has occurred with a Raspberry Pi as well.

What might cause it? I'm guessing there's a circuit in the ATXRaspi that detects when its single-board computer (usually a R'Pi) is consuming so little current as to suggest that it has shut down. At that time, the ATXRaspi will fully shut down. However, that's the weird part. All the LEDs on the ATXRaspi are out. It appears to be dead. However, the power light on the NanoPi is still barely lit. Current is still being supplied to the single-board computer by the ATXRaspi, even though the latter appears to be switched off. Of course, if it were switched off, the actuation of the momentary on/off switch would switch it on.

My best guess is:-
- the NanoPi's GPIO header leaves pins 22 and 23 high at shutdown and there is nothing I can do about it
- ...and that means it keeps drawing current
- ...and that means ATXRaspi thinks the computer hasn't finished shutting down
- ...which is why the ATXRaspi's on/off switch stops working at that point

If other users have encountered similar problems when using the ATXRaspi with a Raspberry Pi, I would appreciate hearing about those experiences. I'll solve this problem one way or another. So far, it hasn't happened with my Raspberry Pi-based gadget (which uses ATXRaspi).

Edit: Oops. I wired a 'factory reset' switch to the 3.3V output instead of Ground. Problem solved. If anyone is interested in Nano Pi support, please let me know and I'll clean up the code and upload the scripts somewhere.
« Last Edit: May 23, 2019, 01:43:36 AM by ElderOfPsion »

Felix

  • Administrator
  • Hero Member
  • *****
  • Posts: 6866
  • Country: us
    • LowPowerLab
Re: Fully functional on NanoPi Neo 2 ... most of the time
« Reply #1 on: May 23, 2019, 08:37:58 AM »
Thanks for the detailed explanation, wish everyone would be so thorough!

Edit: Oops. I wired a 'factory reset' switch to the 3.3V output instead of Ground. Problem solved.

But ... it sounds like it's SOLVED? Can I mark the topic as such?

If anyone is interested in Nano Pi support, please let me know and I'll clean up the code and upload the scripts somewhere.

Please post here and/or add links and I will add a dedicated NanoPi page to the ATXRaspi guide,
Many thanks!

ElderOfPsion

  • NewMember
  • *
  • Posts: 9
Re: Fully functional on NanoPi Neo 2 ... most of the time
« Reply #2 on: May 24, 2019, 02:05:53 PM »
Quote
It sounds like it's SOLVED? Can I mark the topic as such?
Yes. The problem was caused by a flawed design (mine).

Further research is needed, but it does appear that the ATXRaspi is 100% compatible with the NanoPi Neo2 as long as the user has installed the correct Linux distro and tools. Given that I'm developing a gadget that relies on the ATXRaspi, the PowerBoost 1000C, and the NanoPi Neo2, I have a vested interest in getting this right (including documentation).

Quote
Please post here and/or add links and I will add a dedicated NanoPi page to the ATXRaspi guide
Will do.




Felix

  • Administrator
  • Hero Member
  • *****
  • Posts: 6866
  • Country: us
    • LowPowerLab
Re: Fully functional on NanoPi Neo 2 ... most of the time
« Reply #3 on: May 24, 2019, 02:14:43 PM »
Thank you, looking fwd to your progress & any docs/guide for the Neo2.

ElderOfPsion

  • NewMember
  • *
  • Posts: 9
Re: Fully functional on NanoPi Neo 2 ... most of the time
« Reply #4 on: May 24, 2019, 05:22:25 PM »
I think I've discovered an obscure bug. I'm not sure if it's in the GPIO Python library. the GPIO C library, the ATXRaspi itself, or my own code. Anyway, here's what I've noticed...

If I tap the on/off momentary switch (perhaps for 1/3 of a second), the LED begins to pulse. The Python GPIO library returns GPIO.input(POWEROFF) == 1. It never reverts to 0. What's more, even after the ATXRaspi has shut itself and the NanoPi down, the LED stays lit and the on/off switch becomes nonfunctional. The only solution is to unplug the power source.

This problem does not occur if there are no additional wires going from the LED to the NanoPi's GPIO header. You see, the LED that I've attached to the ATXRaspi is a three-color LED (or whatever the term is). It has a red one, a green one, and blue one, all in one package. If I don't wire those other two LED legs to two GPIO pins on the NanoPi, everything is as usual: Shutdown occurs, lights flash, etc. However, if I do wire any LED to any GPIO pins on the NanoPi, shutdown doesn't complete. The lights on the ATXRaspi go off, the lights on the NanoPi go off, but the LED remains lit... and it's being powered by the NanoPi, not the ATXRaspi, even though the ATXRaspi and the NanoPi appear to be off.

This does not occur if I hold down the on/off button for a second or so (instead of just tapping it). In other words, I can attach multiple GPIO pins to the LED and/or other LEDs and as long as I use a 1-second hold instead of a tap.

It gets weirder.

I've modified shutdownirq.py to treat a tap as a reboot. Don't ask me why, but (as I said) when I tap the on/off switch, the GPIO.input(POWEROFF) never goes back to 0. It stays at 1 until the NanoPi's power is cut... and after that, I'm not sure what happens. Anyway, I've modified the shutdown script to treat a tap and a 4-second hold as the same thing... and trigger a reboot instead of a shutdown. That causes the shutdown to be completely successful.

Well, the problem appears to have been solved, I'm documenting everything, and I'll post something more helpful in due course. Still, what are your thoughts? I checked the back of the ATXRaspi and the jumpers are in their default positions (nothing broken, nothing bridged). As I said, the problem has been solved, which means any analysis will be an academic exercise rather than a troubleshooting adventure.

ElderOfPsion

  • NewMember
  • *
  • Posts: 9
Re: Fully functional on NanoPi Neo 2 ... most of the time
« Reply #5 on: May 25, 2019, 07:03:15 PM »
To use ATXRaspi with a NanoPi Neo2:-
  • Wire the NanoPi Neo2 to the ATXRaspi
  • Install OS onto a micro-SD card
  • Tweak the card's OS and filesystem
  • Power up the ATXRaspi and run some tests

WIRING

If you are using the ATXRaspi in conjunction with a PowerBoost 1000C, wire pin #7 of the Neo2 to the PB1000C's LBO pin.

Wire pin 13 of the Neo2 to the BOOTOK pin of the ATXRaspi.
Wire pin 10 of the Neo2 to the SHUTDOWN pin of the ATXRaspi.
Wire pin 11 of the Neo2 to the SoftBtn pin of the ATXRaspi.

For extra points, create a factory reset button by wiring pins 16 and 6 of the Neo2 to a momentary switch (or whatever it is called).

Don't forget to wire a momentary switch to the ATXRaspi's on/off button pins.

Wire an LED (preferably pins 3 and 4) to the ATXRaspi's status LED pins. The LED's pins look like this: short (1), long (2), longest (3), short (4).

Consider wiring pins 1 and 2 of the LED to pins 23 and 22 of the Neo2 respectively.


SOFTWARE

Download FriendlyCore Linux OS from https://drive.google.com/open?id=1bS2_AgH0pOjuGxXjqFxQi6xdkUZEBjVH. Copy it to a micro-SD card ('dd' is your friend). Mount it using another Linux PC, thusly (assuming the micro-SD card was detected at /dev/sda; YMMV):-
Code: [Select]
# mkdir /tmp/a
# mount /dev/sda2 /tmp/a
# mount /dev/sda1 /tmp/a/boot
# chroot /tmp/a

Within the 'chroot' of /tmp/a, run these commands:-
Code: [Select]
# systemctl enable ssh
# apt-get -y remove hostapd
# apt -y update
# apt-get -y dist-upgrade
# apt -y install dosfstools usbutils pciutils util-linux parted apt-utils python-pip python3-pip busybox-static avahi-daemon
# systemctl enable avahi-daemon
# pip install wheel
# pip3 install wheel
# apt -y remove plymouth libreoffice* wolfram* || true
# apt -y install git-core python-dev python-smbus python-serial cmake busybox-static
# sed -i s/exit\ 0// /etc/rc.local
# echo -en "touch /tmp/.yesibootedok\nexit 0\n" >> /etc/rc.local
# echo -en "tmpfs /tmp tmpfs defaults 0 0\n" >> /etc/fstab
# cd /root
# git clone https://github.com/friendlyarm/BakeBit.git
# cd BakeBit/Script
# bash install.sh
# cd /root/WiringNP
# ./build
# cd /root
# mv old older || mkdir -p old
# mv RPi*GPIO* old/
# git clone https://github.com/chainsx/RPi.GPIO.NP.git
# cd RPi.GPIO.NP
# rm -Rf build; python2 setup.py install; sudo python2 setup.py install
# rm -Rf build; python3 setup.py install; sudo python3 setup.py install

Next, save this file to /usr/local/bin/shutdownirq.py:-
Code: [Select]
#!/usr/bin/python3

import RPi.GPIO as GPIO
import time
import sys
import os
PB1000C_LBO = 7
BOOTOK = 13
POWEROFF = 11
ATXRASPI_SOFTWARESHUTDOWN = 10
FACTORYRESET = 16
BLUE22 = 22
YELLOW23 = 23
WHITE, GREEN, PURPLE, RED = ('white', 'green', 'purple', 'red')

def setup_gpio():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(BLUE22, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(YELLOW23, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(BOOTOK, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(ATXRASPI_SOFTWARESHUTDOWN, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(POWEROFF, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(PB1000C_LBO, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(FACTORYRESET, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

def show_led_color(s):
dct = {'white': (0,0), 'green':(0,1), 'purple':(1,0), 'red':(1,1)}
a, b = dct[s]
GPIO.output(BLUE22, a)
GPIO.output(YELLOW23, b)

############################## MAIN ########################
print("shutdownirq.py is running. Yay.")
setup_gpio()
GPIO.output(BOOTOK, 1)
GPIO.output(ATXRASPI_SOFTWARESHUTDOWN, 0)
lbo_is_irrelevant = True if GPIO.input(PB1000C_LBO) == 0 else False
os.system('echo "%s" >> /out.out' % ('Waiting for POWEROFF (a.k.a. Shutdown) signal from #%d\n' % POWEROFF))
while not os.path.exists("/tmp/.yesibootedok"):
    show_led_color(GREEN)
    time.sleep(.2)
    show_led_color(PURPLE)
    time.sleep(.2)

show_led_color(GREEN)
print("shutdownirq.py is waiting for you to push the Shutdown button on the ATXRaspi thingy. Yay.")
while GPIO.input(POWEROFF) == 0 and GPIO.input(ATXRASPI_SOFTWARESHUTDOWN) == 0 and (lbo_is_irrelevant or GPIO.input(PB1000C_LBO) != 0):
time.sleep(.2)
if GPIO.input(FACTORYRESET) == 1:
os.system('/usr/local/bin/factoryreset.py')
print("shutdownirq.py notes that you have pushed the Shutdown button. Yay.")
os.system('''echo "$(date) %s" >> /out.out''' % ('POWER OFF' if GPIO.input(POWEROFF) != 0 else 'S/W SHUTDOWN' if GPIO.input(ATXRASPI_SOFTWARESHUTDOWN) != 0 else 'LOW BATTERY WARNING'))
show_led_color(PURPLE)
os.system('python3 /usr/local/bin/softshutdown.py')

Save this file to /usr/local/bin/softshutdown.py:-
Code: [Select]
#!/usr/bin/python3

import RPi.GPIO as GPIO
import time
import sys
import os
PB1000C_LBO = 7
BOOTOK = 13
POWEROFF = 10
ATXRASPI_SOFTWARESHUTDOWN = 11
FACTORYRESET = 16
BLUE22 = 22
YELLOW23 = 23
WHITE, GREEN, PURPLE, RED = ('white', 'green', 'purple', 'red')

def setup_gpio():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(BLUE22, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(YELLOW23, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(BOOTOK, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(ATXRASPI_SOFTWARESHUTDOWN, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(POWEROFF, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(PB1000C_LBO, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(FACTORYRESET, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

def show_led_color(s):
dct = {'white': (0,0), 'green':(0,1), 'purple':(1,0), 'red':(1,1)}
a, b = dct[s]
GPIO.output(BLUE22, a)
GPIO.output(YELLOW23, b)

############################## MAIN ########################
os.system('''echo "$(date) softshutdown.py called" >> /out.out''')
setup_gpio()
GPIO.output(ATXRASPI_SOFTWARESHUTDOWN, 1)
GPIO.output(BOOTOK, 0)
show_led_color(RED)
os.system('''echo "$(date) softshutdown.py is calling shutdown -h" >> /out.out''')
os.system('sudo shutdown -h now')

Save this file to /usr/local/bin/daemon_shutdownirq.sh:-
Code: [Select]
#!/bin/bash

doit() {
while true ; do
echo "$(date) Starting shutdownirq.py" >> /out.out
/usr/local/bin/shutdownirq.py >> /out.out 2>> /out.out
echo "$(date) Restarting shutdownirq.py ..." >> /out.out
sleep 30
done
}

doit &

Save this file to /usr/local/bin/factoryreset.py:-
Code: [Select]
 #!/usr/bin/python3

import RPi.GPIO as GPIO
import time
import sys
import os
PB1000C_LBO = 7
BOOTOK = 13
POWEROFF = 10
ATXRASPI_SOFTWARESHUTDOWN = 11
FACTORYRESET = 16
BLUE22 = 22
YELLOW23 = 23
WHITE, GREEN, PURPLE, RED = ('white', 'green', 'purple', 'red')

def setup_gpio():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(BLUE22, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(YELLOW23, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(BOOTOK, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(ATXRASPI_SOFTWARESHUTDOWN, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(POWEROFF, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(PB1000C_LBO, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(FACTORYRESET, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

def show_led_color(s):
dct = {'white': (0,0), 'green':(0,1), 'purple':(1,0), 'red':(1,1)}
a, b = dct[s]
GPIO.output(BLUE22, a)
GPIO.output(YELLOW23, b)

############################## MAIN ########################
os.system('''echo "$(date) factoryreset.py called" >> /out.out''')
setup_gpio()
os.system('''echo "$(date) QQQ INFERNAL PORPOISES" >> /out.out''')

Save this file to /etc/systemd/system/sayhello.service:-
Code: [Select]
[Unit]
Description=Show spinny thingy while loading
DefaultDependencies=no

[Service]
Type=forking
ExecStart=/usr/local/bin/daemon_shutdownirq.sh
#WorkingDirectory=/root/NanoHatOLED/BakeBit/Software/Python
#ExecStart=/root/NanoHatOLED/BakeBit/Software/Python/bakebit_nanohat_oled.py
#ExecStop=/usr/local/bin/softshutdown.py

[Install]
WantedBy=sysinit.target

Then run these commands:-
Code: [Select]
# systemctl enable sayhello
# chmod +x /usr/local/bin/*
# passwd                   # <== set your root password
# passwd -i pi              # <== set your user password
# exit
# mount /tmp/a/boot /tmp/a

Remove the micro-SD card. Insert it into the Neo2.

TESTING

Power up the ATXRaspi. Log into the Neo2 via ssh. Check /out.out (yes, the log file is saved to the root directory; that's easy enough to fix); use 'tail -f /out.out' to watch it. Then, push the on/off button briefly. Watch to see if everything shuts down properly.


KNOWN PROBLEMS

  • Soldering onto the Neo2's GPIO pins isn't easy and it isn't fun. I've had good results with single-core 24awg wire.
  • The FriendlyCore NPI/RPIO/etc. libraries can be finicky.
  • To work around a flaw in God-knows-what, I've made the script treat any short-push (of the button) shutdowns as reboots. For some reason, those reboots become shutdowns. This means (i) it all works out in the end and (ii) you can't do reboots.

And that's it.
« Last Edit: May 26, 2019, 04:40:31 PM by ElderOfPsion »

ElderOfPsion

  • NewMember
  • *
  • Posts: 9
NanoPi Neo2 + ATXRaspi = success (as long as you don't need to reboot)
« Reply #6 on: June 05, 2019, 08:50:24 PM »
Short version: Success! ... as long as you're OK with shutdowns only & no reboots. The OS image is hosted at https://www.dropbox.com/s/rkra0vwq3dzdsse/atxraspi_nanopineo2.img.xz.

Connect the pins as follows:-
BootOK ==> physical pin #7
ShutDown ==> physical pin #8
SoftBtn ==> physical pin #10

Ignore the usual GPIO charts, RPi charts, etc.  Just plug into the pins. Pin 1 is top-left, pin 2 is on its right, pin 3 is under pin 1, and so on.

Password (pi and root): blueberry
To configure a WiFi hotspot at boot-time, save the hotspot's name to /etc/WIFI_ID and its password to /etc/WIFI_PW; use chmod 600 to set read/write access to root-only; then, reboot.

The hostname defaults to atxraspi(.local); to change this, edit /etc/hostname
The log file is saved to /var/log/atxraspi.log
To change the pins that the scripts use, edit /usr/local/bin/atxraspisettings.py
The key scripts are /usr/local/bin/softshutdown.py and /usr/local/bin/shutdownirq.py
To initiate shutdown, either briefly connect the BTN pins or run /usr/local/bin/softshutdown.py from the command line.

Owing to a bug in RPi.GPIO.NP, reboot is not supported at this time. Push the button for half of a second, or one second, or four seconds; the result is the same. Approximately 1/5th of a second after the button was pushed down, the RPi.GPIO.NP library reports that the button has been released, even if it has not been released. Even weirder, if one taps the button for less than half a second, the switch latches permanently on (according to RPi.GPIO.NP). Therefore, you must choose between reboot-only and shutdown-only. By default, shutdown-only is the setting. To change it to reboot-only, edit /usr/local/bin/atxraspisettings.py and change NANOPI_NOREBOOT_HACK to False.

So, there you have it. ATXRaspi's compatibility with the NanoPi series is limited by the not-entirely-functional port of RPi.GPIO on which the NanoPi relies. I'll know more when I've taken a crack at adding ODroid support. Also, I'm minded to try rewriting the support script in C, just in case the NPWiring (WiringNP?) library has fewer bugs than the RPi.GPIO.NP library.

Everything else seems to work: software shutdown, shutdown-on-button-push, power-up from scratch, and graceful power-off.
« Last Edit: June 08, 2019, 03:11:22 AM by ElderOfPsion »

ElderOfPsion

  • NewMember
  • *
  • Posts: 9
Re: Fully functional on NanoPi Neo 2 ... most of the time
« Reply #7 on: June 12, 2019, 05:43:58 AM »
I shall have uploaded disk images for NanoPi Neo2, NanoPi Neo Plus2, ODroid C2, ODroid XU4, NanoPi Core4418 and (probably) Orange Pi PC by July 4th. A tutorial and a DIY guide will be available.

The button-triggered reboot function appears to work now. Button-triggered shutdown, button-triggered reboot, and software-triggered shutdown all work.

The non-Raspberry Pi ports of GPIO/Wiring/etc. are not feature-complete, but I was wrong to use the word 'bug'.

ElderOfPsion

  • NewMember
  • *
  • Posts: 9
Re: Fully functional on NanoPi Neo 2 ... most of the time
« Reply #8 on: June 18, 2019, 04:38:11 AM »
NanoPi Neo2 — 100% working
NanoPi Neo Plus2 — 100% working
ODroid C2 — 100% working
ODroid XU4 — 100% working
NanoPi Core4418 — the GPIO header is not supported by WiringNP or the GPIO library (Python or C); what a shame :(
ODroid C1 — to do
Orange Pi Zero — to do
Orange Pi PC — to do
Raspberry Pi Zero W — to do
Raspberry Pi 3 — to do

According to https://github.com/friendlyarm/WiringNP, the following Nano* boards are supported by the NanoPi port of the Raspberry Pi's wiring/GPIO libraries:-
  • NanoPi Neo
  • NanoPi Neo Air
  • NanoPi Duo
  • NanoPi Duo2
  • NanoPi NEO2
  • NanoPi NEO Plus2
  • NanoPi M1
  • NanoPi M1 Plus
  • NanoPi NEO Core
  • NanoPi NEO Core2
  • NanoPi K1 Plus

I own perhaps 1/3 of these. I can't test this software on the other 2/3, but I can build the disk images. The same is true of the ODroid models: I don't own them all, but I can build images for most of them (including the ones that I don't own).

I'm disappointed that the Core4418 isn't supported by the relevant Linux libraries. What's the point of selling a single-board computer equipped with a GPIO header, if the header isn't supported by the software on the computer?

I would like to add support for the NanoPi Neo4, but I've failed to find a ribbon cable compatible with the GPIO header on that board. I'll keep looking.

I'm on track to publish the prefab disk images, the manual installer script, and the tutorial on 7/4.

ElderOfPsion

  • NewMember
  • *
  • Posts: 9
Re: Fully functional on NanoPi Neo 2 ... most of the time
« Reply #9 on: June 21, 2019, 06:48:54 PM »
Non-Raspberry Support for ATXRaspi

NanoPi Core2 — https://www.dropbox.com/s/9n7xbgapkqg277f/atxraspi_core2.img.xz — OK
NanoPi N2 — https://www.dropbox.com/s/dykmgeh1gdrgvd1/atxraspi_n2.img.xz — untested
NanoPi Neo2 — https://www.dropbox.com/s/dzu9861lo7pmam6/atxraspi_npi2.img.xz — OK
NanoPi Neo Plus2 — https://www.dropbox.com/s/7ioq9cp0i0j9xgq/atxraspi_npiplus2.img.xz — OK
ODroid C1  https://www.dropbox.com/s/1esn9wjpa2xh3p8/atxraspi_odroidc1.img.xz — untested
ODroid C2 — https://www.dropbox.com/s/mn95fvm9q68ew9e/atxraspi_odroidc2.img.xz — OK
ODroid XU4 — https://www.dropbox.com/s/pgzgm7w8enit2jo/atxraspi_odroidxu4.img.xz — OK
DIY installer script (log into your single-board computer; then, run this at your own risk) — https://www.dropbox.com/s/tqyeavg2peniscs/atxraspi_setup_foreign.sh

Log file: /var/log/atxraspi.log
Wiring diagrams: https://www.dropbox.com/s/qrd4k0r8wjgszi3/alphainstructions.pdf

"OK" means that boot, reboot, shutdown, and software-off work properly.

Please note that the important pins are 11 (BootOK), 12 (SoftBtn -- see v3 of ATXRaspi), and 13 (Shutdown). These are the physical pin numbers, not the BCM or GPIO numbers. See diagram for details.

NanoPi Core4418 has a GPIO header that is not supported by GPIO/NP. I'm looking into modifying the library to support NanoPi s5p4418-basee motherboards (inc. Core4418), but please don't get your hopes up.

All feedback is appreciated. Felix, as always, has provided invaluable encouragement and technical support.

This (the non-Raspberry stuff) is not an official part of the ATXRaspi project.

By the way, for the Wifi-only motherboards, you can save the WiFi hotspot name and password to /etc/WIFI_ID and /etc/WIFI_PW respectively. This will cause the computer to log into that WiFi hotspot at boot-time. Also, if you have a preferred hostname, you can save it to /etc/hostname.default; from there, it will be copied to /etc/hostname at boot-time.

If you run additional LEDs from the single-board computer's GPIO header, ATXRaspi may be unable to shutdown properly. In that case, edit /usr/local/bin/atxraspisettings.py and change if MAPLEDRIVE: to if True: to solve the problem. This means you won't be able to reboot, but at least shutdown will work.

ElderOfPsion

  • NewMember
  • *
  • Posts: 9
Re: Fully functional on NanoPi Neo 2 ... most of the time
« Reply #10 on: June 28, 2019, 06:01:37 PM »
Oh, and
/etc/WIFI_ID and /etc/WIFI_PW
should read
/boot/WIFI_ID and /boot/WIFI_PW