https://wiki.beyondlogic.org/api.php?action=feedcontributions&user=Craig+Peacock&feedformat=atomBeyondLogic - User contributions [en]2024-03-19T11:53:54ZUser contributionsMediaWiki 1.22.3//wiki.beyondlogic.org/index.php?title=Cross_Compiling_iptables_for_ARMCross Compiling iptables for ARM2021-04-03T11:36:46Z<p>Craig Peacock: Updated to iptables 1.8.7</p>
<hr />
<div><br />
== iptables userspace tools ==<br />
<br />
[http://www.netfilter.org/projects/iptables/ iptables] is the userspace command line tool used to configure the packet filtering engine in the Linux kernel.<br />
<br />
Download, build and install:<br />
<br />
<PRE><br />
wget http://www.netfilter.org/projects/iptables/files/iptables-1.8.7.tar.bz2<br />
tar -xjf iptables-1.8.7.tar.bz2<br />
cd iptables-1.8.7<br />
./configure --host=arm-linux-gnueabi --target=arm-linux-gnueabi --prefix=/usr<br />
make<br />
make install DESTDIR=/home/export/rootfs<br />
</PRE><br />
<br />
== Download pre-built binaries ==<br />
<br />
The link below contains a bzip2 tarball of iptables compiled for ARM:<br />
<br />
* [http://wiki.beyondlogic.org/prebuilt/iptables-1.4.21-arm-linux-gnueabi.tar.bz2 iptables-1.4.21-arm-linux-gnueabi.tar.bz2] <br />
* Built using :<br />
** arm-linux-gnueabi-gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1)</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARMCross Compiling BusyBox for ARM2021-04-03T11:31:39Z<p>Craig Peacock: Remove space</p>
<hr />
<div><br />
== Building a minimal RootFS with Busybox, GLIBC and DropBear ==<br />
<br />
[http://www.busybox.net/ BusyBox] is a collection of cut down versions of common UNIX utilities compiled into a single small executable. This makes BusyBox an ideal foundation for resource constrained systems.<br />
<br />
=== Prerequisites ===<br />
<br />
Install the following prerequisites (assuming an Ubuntu 14.04 build machine):<br />
<br />
<PRE><br />
apt-get install gcc-arm-linux-gnueabi<br />
apt-get install libncurses5-dev<br />
apt-get install gawk<br />
</PRE><br />
<br />
=== BusyBox ===<br />
<br />
BusyBox can be built either as a single static binary requiring no external libraries, or built requiring shared libraries such as GLIBC (default). This setting can be found under BusyBox Settings -> Build Options -> Build BusyBox as a static binary (no shared libs). <br />
<br />
I generally choose to build BusyBox to require GLIBC as it is highly likely you will want to run additional applications that will require GLIBC sometime in the future. <br />
<br />
<PRE><br />
wget https://busybox.net/downloads/busybox-1.32.1.tar.bz2<br />
tar -xjf busybox-1.32.1.tar.bz2<br />
cd busybox-1.32.1/<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig<br />
</PRE><br />
<br />
At the menu, you can configure BusyBox options. Once configured, you can build BusyBox:<br />
<br />
<PRE><br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- <br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install CONFIG_PREFIX=/home/export/rootfs<br />
</PRE><br />
<br />
=== GLIBC ===<br />
<br />
GLIBC is the [http://www.gnu.org/software/libc/libc.html GNU C Library] and includes common system calls required by executables running on your system.<br />
<br />
Download, build and install GLIBC:<br />
<br />
<PRE><br />
wget http://ftp.gnu.org/gnu/libc/glibc-2.33.tar.xz<br />
tar -xJf glibc-2.33.tar.xz<br />
mkdir glibc-build<br />
cd glibc-build/<br />
../glibc-2.33/configure arm-linux-gnueabi --build=i686-pc-linux-gnu CXX=arm-linux-gnueabi-g++ --prefix= --enable-add-ons<br />
make<br />
make install install_root=/home/export/rootfs <br />
</PRE><br />
<br />
Some programs may require libgcc_s.so, otherwise you will receive an error:<br />
<PRE><br />
error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory <br />
</PRE><br />
<br />
libgcc_s.so.1 can be copied over from your arm-linux-gnueabi installation:<br />
<br />
<PRE><br />
cp /usr/lib/gcc-cross/arm-linux-gnueabi/4.7.3/libgcc_s.so.1 /home/export/rootfs/lib <br />
</PRE><br />
<br />
=== Preparing RootFS ===<br />
<br />
Once BusyBox and GLIBC has been cross-compiled, you will want to create the remainder of the root file system. Start by creating the necessary directory structure:<br />
<br />
<PRE><br />
mkdir proc sys dev etc/init.d usr/lib<br />
</PRE><br />
<br />
Now we must mount the /proc & /sys filesystem and populate the /dev nodes. This can be done at runtime by creating a file called etc/init.d/rcS and adding:<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
</PRE><br />
<br />
and make executable:<br />
<br />
<PRE><br />
chmod +x etc/init.d/rcS <br />
</PRE><br />
<br />
You should now have a basic, yet quite functional, BusyBox root file system.<br />
<br />
=== DropBear (Optional) ===<br />
<br />
[https://matt.ucc.asn.au/dropbear/dropbear.html DropBear] is a small SSH server and client and is useful to allow remote shell access to your system.<br />
<br />
Download, build and install DropBear:<br />
<br />
<PRE><br />
wget https://matt.ucc.asn.au/dropbear/releases/dropbear-2020.81.tar.bz2<br />
tar -xjf dropbear-2020.81.tar.bz2<br />
cd dropbear-2020.81<br />
./configure --host=arm-linux-gnueabi --prefix=/ --disable-zlib CC=arm-linux-gnueabi-gcc LD=arm-linux-gnueabi-ld<br />
make<br />
make install DESTDIR=/home/export/rootfs<br />
</PRE><br />
<br />
DropBear requires RSA and DSS (Digital Signature Standard) encryption keys to be generated. I normally do this on the target, but you could generate the keys on the host if you have the dropbearkey executable installed.<br />
<br />
To generate your keys:<br />
<PRE><br />
mkdir /etc/dropbear<br />
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key <br />
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key <br />
</PRE><br />
<br />
You will also require users and passwords to validate login credentials:<br />
<br />
<PRE><br />
touch /etc/passwd<br />
touch /etc/group<br />
adduser root -u 0<br />
</PRE><br />
<br />
Unless otherwise specified, root will be given a default home directory of /home/root. However as this doesn't exist, DropBear will close your connection immediately after successfully logging in. To address this, simply create a home directory for root:<br />
<br />
<PRE><br />
mkdir /home /home/root<br />
</PRE><br />
<br />
DropBear can now be started by running:<br />
<br />
<PRE><br />
dropbear<br />
</PRE><br />
<br />
and you should be able to remotely login to your system using the root user.<br />
<br />
If you get an error after logging in, "Server refused to allocate pty" check you have Device Drivers > Character devices > Legacy (BSD) PTY support enabled in your kernel. (Especially applicable to Beaglebone kernels)<br />
<br />
Alternatively, make sure you have mounted the /dev/pts filesystem (after /dev has been mounted) <br />
<br />
<PRE><br />
mkdir /dev/pts<br />
mount -t devpts none /dev/pts<br />
</PRE><br />
<br />
=== ldconfig ===<br />
<br />
ldconfig is used to configure dynamic linker run-time bindings. It creates symbolic links and a cache to the most recent shared libraries. As you build upon your root filesystem and add additional libraries, you may need to run ldconfig.<br />
<br />
ldconfig will search for libraries in the trusted directory /lib. Additional search paths can be added to the ld.so.conf configuration file. ldconfig looks for a configuration file in /etc/ld.so.conf and generates a warning if this cannot be found. Suppress the warning and extend the search range to include /usr/lib by:<br />
<br />
<PRE><br />
echo /usr/lib > etc/ld.so.conf<br />
</PRE><br />
<br />
ldconfig will also generate a cache at /etc/ld.so.cache. If this file doesn't exist, it will be automatically generated.<br />
<br />
Finally, to update the dynamic linker run-time bindings with verbose output, execute:<br />
<br />
<PRE><br />
ldconfig -v<br />
</PRE><br />
<br />
=== Read Only Filesystems ===<br />
<br />
If you are using a root file system residing on flash memory, to improve longevity it may be desirable to either mount your rootfs as read only, or to move as many of the frequently written to files (for example /var) to a temporary volatile file system stored in RAM. <br />
<br />
The following is an expanded etc/init.d/rcS file demonstrating this. <br />
<br />
We mount /var and /dev as tmpfs. The device nodes are generated using mdev at boot and from hotplug, hence we move these to a temp file system otherwise they could not be generated on a read only root filesystem.<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
mount -t tmpfs none /var<br />
mount -t tmpfs none /dev<br />
mkdir /dev/pts<br />
mount -t devpts none /dev/pts<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
mkdir /var/log<br />
syslogd<br />
dropbear<br />
</PRE><br />
<br />
syslogd writes system messages to /var/log/messages and is something you probably don't want constantly writing to flash. After mounting /var as a temp file system, we create the /var/log directory for systemd.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Cross_Compiling_SFTP-Server_DropBear_for_ARMCross Compiling SFTP-Server DropBear for ARM2021-04-03T11:25:12Z<p>Craig Peacock: Updated to zlib 1.2.11 & OpenSSH 8.5</p>
<hr />
<div><br />
== SFTP-Server ==<br />
<br />
If you have installed the [[Cross_Compiling_BusyBox_for_ARM#DropBear_.28Optional.29|DropBear]] SSH Server and now need to transfer files using SFTP (Secure File Transfer Protocol), the SFTP-server as part of OpenSSH is a good choice.<br />
<br />
=== zlib Data Compression Library ===<br />
<br />
sftp-server requires zlib. Download, cross compile and install the zlib compression libraries. Configure doesn't accept the --host parameter (reports unknown option), so you need to hack the makefile.<br />
<br />
<PRE><br />
wget http://zlib.net/zlib-1.2.11.tar.gz<br />
tar -xzf zlib-1.2.11.tar.gz<br />
cd zlib-1.2.11/<br />
./configure --prefix=/home/export/rootfs<br />
</PRE><br />
<br />
Edit the makefile and prefix the build tools with arm-none-linux-gnueabi-. <br />
<br />
<PRE><br />
CC=arm-linux-gnueabi-gcc<br />
LDSHARED=arm-linux-gnueabi-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map<br />
CPP=arm-linux-gnueabi-gcc -E<br />
AR=arm-linux-gnueabi-ar<br />
RANLIB=arm-linux-gnueabi-ranlib<br />
</PRE><br />
<br />
Make and install:<br />
<br />
<PRE><br />
make<br />
make install<br />
</PRE><br />
<br />
=== OpenSSH sftp-server ===<br />
<br />
Download and build the sftp-server component of OpenSSH:<br />
<br />
<PRE><br />
wget http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/openssh-8.5p1.tar.gz<br />
tar -xzf openssh-8.5p1.tar.gz<br />
cd openssh-8.5p1<br />
./configure --prefix= --host=arm-linux-gnueabi --sysconfdir=/etc --with-zlib=../zlib-1.2.11 --without-openssl<br />
make sftp-server<br />
</PRE><br />
<br />
Now copy sftp-server to /usr/libexec/ on your target system.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARMCross Compiling BusyBox for ARM2021-04-03T06:05:32Z<p>Craig Peacock: Fix for 'Server refused to allocate pty'</p>
<hr />
<div><br />
== Building a minimal RootFS with Busybox, GLIBC and DropBear ==<br />
<br />
[http://www.busybox.net/ BusyBox] is a collection of cut down versions of common UNIX utilities compiled into a single small executable. This makes BusyBox an ideal foundation for resource constrained systems.<br />
<br />
=== Prerequisites ===<br />
<br />
Install the following prerequisites (assuming an Ubuntu 14.04 build machine):<br />
<br />
<PRE><br />
apt-get install gcc-arm-linux-gnueabi<br />
apt-get install libncurses5-dev<br />
apt-get install gawk<br />
</PRE><br />
<br />
=== BusyBox ===<br />
<br />
BusyBox can be built either as a single static binary requiring no external libraries, or built requiring shared libraries such as GLIBC (default). This setting can be found under BusyBox Settings -> Build Options -> Build BusyBox as a static binary (no shared libs). <br />
<br />
I generally choose to build BusyBox to require GLIBC as it is highly likely you will want to run additional applications that will require GLIBC sometime in the future. <br />
<br />
<PRE><br />
wget https://busybox.net/downloads/busybox-1.32.1.tar.bz2<br />
tar -xjf busybox-1.32.1.tar.bz2<br />
cd busybox-1.32.1/<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig<br />
</PRE><br />
<br />
At the menu, you can configure BusyBox options. Once configured, you can build BusyBox:<br />
<br />
<PRE><br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- <br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install CONFIG_PREFIX=/home/export/rootfs<br />
</PRE><br />
<br />
=== GLIBC ===<br />
<br />
GLIBC is the [http://www.gnu.org/software/libc/libc.html GNU C Library] and includes common system calls required by executables running on your system.<br />
<br />
Download, build and install GLIBC:<br />
<br />
<PRE><br />
wget http://ftp.gnu.org/gnu/libc/glibc-2.33.tar.xz<br />
tar -xJf glibc-2.33.tar.xz<br />
mkdir glibc-build<br />
cd glibc-build/<br />
../glibc-2.33/configure arm-linux-gnueabi --build=i686-pc-linux-gnu CXX=arm-linux-gnueabi-g++ --prefix= --enable-add-ons<br />
make<br />
make install install_root=/home/export/rootfs <br />
</PRE><br />
<br />
Some programs may require libgcc_s.so, otherwise you will receive an error:<br />
<PRE><br />
error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory <br />
</PRE><br />
<br />
libgcc_s.so.1 can be copied over from your arm-linux-gnueabi installation:<br />
<br />
<PRE><br />
cp /usr/lib/gcc-cross/arm-linux-gnueabi/4.7.3/libgcc_s.so.1 /home/export/rootfs/lib <br />
</PRE><br />
<br />
=== Preparing RootFS ===<br />
<br />
Once BusyBox and GLIBC has been cross-compiled, you will want to create the remainder of the root file system. Start by creating the necessary directory structure:<br />
<br />
<PRE><br />
mkdir proc sys dev etc/init.d usr/lib<br />
</PRE><br />
<br />
Now we must mount the /proc & /sys filesystem and populate the /dev nodes. This can be done at runtime by creating a file called etc/init.d/rcS and adding:<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
</PRE><br />
<br />
and make executable:<br />
<br />
<PRE><br />
chmod +x etc/init.d/rcS <br />
</PRE><br />
<br />
You should now have a basic, yet quite functional, BusyBox root file system.<br />
<br />
=== DropBear (Optional) ===<br />
<br />
[https://matt.ucc.asn.au/dropbear/dropbear.html DropBear] is a small SSH server and client and is useful to allow remote shell access to your system.<br />
<br />
Download, build and install DropBear:<br />
<br />
<br />
<PRE><br />
wget https://matt.ucc.asn.au/dropbear/releases/dropbear-2020.81.tar.bz2<br />
tar -xjf dropbear-2020.81.tar.bz2<br />
cd dropbear-2020.81<br />
./configure --host=arm-linux-gnueabi --prefix=/ --disable-zlib CC=arm-linux-gnueabi-gcc LD=arm-linux-gnueabi-ld<br />
make<br />
make install DESTDIR=/home/export/rootfs<br />
</PRE><br />
<br />
DropBear requires RSA and DSS (Digital Signature Standard) encryption keys to be generated. I normally do this on the target, but you could generate the keys on the host if you have the dropbearkey executable installed.<br />
<br />
To generate your keys:<br />
<PRE><br />
mkdir /etc/dropbear<br />
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key <br />
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key <br />
</PRE><br />
<br />
You will also require users and passwords to validate login credentials:<br />
<br />
<PRE><br />
touch /etc/passwd<br />
touch /etc/group<br />
adduser root -u 0<br />
</PRE><br />
<br />
Unless otherwise specified, root will be given a default home directory of /home/root. However as this doesn't exist, DropBear will close your connection immediately after successfully logging in. To address this, simply create a home directory for root:<br />
<br />
<PRE><br />
mkdir /home /home/root<br />
</PRE><br />
<br />
DropBear can now be started by running:<br />
<br />
<PRE><br />
dropbear<br />
</PRE><br />
<br />
and you should be able to remotely login to your system using the root user.<br />
<br />
If you get an error after logging in, "Server refused to allocate pty" check you have Device Drivers > Character devices > Legacy (BSD) PTY support enabled in your kernel. (Especially applicable to Beaglebone kernels)<br />
<br />
Alternatively, make sure you have mounted the /dev/pts filesystem (after /dev has been mounted) <br />
<br />
<PRE><br />
mkdir /dev/pts<br />
mount -t devpts none /dev/pts<br />
</PRE><br />
<br />
=== ldconfig ===<br />
<br />
ldconfig is used to configure dynamic linker run-time bindings. It creates symbolic links and a cache to the most recent shared libraries. As you build upon your root filesystem and add additional libraries, you may need to run ldconfig.<br />
<br />
ldconfig will search for libraries in the trusted directory /lib. Additional search paths can be added to the ld.so.conf configuration file. ldconfig looks for a configuration file in /etc/ld.so.conf and generates a warning if this cannot be found. Suppress the warning and extend the search range to include /usr/lib by:<br />
<br />
<PRE><br />
echo /usr/lib > etc/ld.so.conf<br />
</PRE><br />
<br />
ldconfig will also generate a cache at /etc/ld.so.cache. If this file doesn't exist, it will be automatically generated.<br />
<br />
Finally, to update the dynamic linker run-time bindings with verbose output, execute:<br />
<br />
<PRE><br />
ldconfig -v<br />
</PRE><br />
<br />
=== Read Only Filesystems ===<br />
<br />
If you are using a root file system residing on flash memory, to improve longevity it may be desirable to either mount your rootfs as read only, or to move as many of the frequently written to files (for example /var) to a temporary volatile file system stored in RAM. <br />
<br />
The following is an expanded etc/init.d/rcS file demonstrating this. <br />
<br />
We mount /var and /dev as tmpfs. The device nodes are generated using mdev at boot and from hotplug, hence we move these to a temp file system otherwise they could not be generated on a read only root filesystem.<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
mount -t tmpfs none /var<br />
mount -t tmpfs none /dev<br />
mkdir /dev/pts<br />
mount -t devpts none /dev/pts<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
mkdir /var/log<br />
syslogd<br />
dropbear<br />
</PRE><br />
<br />
syslogd writes system messages to /var/log/messages and is something you probably don't want constantly writing to flash. After mounting /var as a temp file system, we create the /var/log directory for systemd.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARMCross Compiling BusyBox for ARM2021-04-03T06:04:14Z<p>Craig Peacock: Added fix for Server refused to allocate pty</p>
<hr />
<div><br />
== Building a minimal RootFS with Busybox, GLIBC and DropBear ==<br />
<br />
[http://www.busybox.net/ BusyBox] is a collection of cut down versions of common UNIX utilities compiled into a single small executable. This makes BusyBox an ideal foundation for resource constrained systems.<br />
<br />
=== Prerequisites ===<br />
<br />
Install the following prerequisites (assuming an Ubuntu 14.04 build machine):<br />
<br />
<PRE><br />
apt-get install gcc-arm-linux-gnueabi<br />
apt-get install libncurses5-dev<br />
apt-get install gawk<br />
</PRE><br />
<br />
=== BusyBox ===<br />
<br />
BusyBox can be built either as a single static binary requiring no external libraries, or built requiring shared libraries such as GLIBC (default). This setting can be found under BusyBox Settings -> Build Options -> Build BusyBox as a static binary (no shared libs). <br />
<br />
I generally choose to build BusyBox to require GLIBC as it is highly likely you will want to run additional applications that will require GLIBC sometime in the future. <br />
<br />
<PRE><br />
wget https://busybox.net/downloads/busybox-1.32.1.tar.bz2<br />
tar -xjf busybox-1.32.1.tar.bz2<br />
cd busybox-1.32.1/<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig<br />
</PRE><br />
<br />
At the menu, you can configure BusyBox options. Once configured, you can build BusyBox:<br />
<br />
<PRE><br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- <br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install CONFIG_PREFIX=/home/export/rootfs<br />
</PRE><br />
<br />
=== GLIBC ===<br />
<br />
GLIBC is the [http://www.gnu.org/software/libc/libc.html GNU C Library] and includes common system calls required by executables running on your system.<br />
<br />
Download, build and install GLIBC:<br />
<br />
<PRE><br />
wget http://ftp.gnu.org/gnu/libc/glibc-2.33.tar.xz<br />
tar -xJf glibc-2.33.tar.xz<br />
mkdir glibc-build<br />
cd glibc-build/<br />
../glibc-2.33/configure arm-linux-gnueabi --build=i686-pc-linux-gnu CXX=arm-linux-gnueabi-g++ --prefix= --enable-add-ons<br />
make<br />
make install install_root=/home/export/rootfs <br />
</PRE><br />
<br />
Some programs may require libgcc_s.so, otherwise you will receive an error:<br />
<PRE><br />
error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory <br />
</PRE><br />
<br />
libgcc_s.so.1 can be copied over from your arm-linux-gnueabi installation:<br />
<br />
<PRE><br />
cp /usr/lib/gcc-cross/arm-linux-gnueabi/4.7.3/libgcc_s.so.1 /home/export/rootfs/lib <br />
</PRE><br />
<br />
=== Preparing RootFS ===<br />
<br />
Once BusyBox and GLIBC has been cross-compiled, you will want to create the remainder of the root file system. Start by creating the necessary directory structure:<br />
<br />
<PRE><br />
mkdir proc sys dev etc/init.d usr/lib<br />
</PRE><br />
<br />
Now we must mount the /proc & /sys filesystem and populate the /dev nodes. This can be done at runtime by creating a file called etc/init.d/rcS and adding:<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
</PRE><br />
<br />
and make executable:<br />
<br />
<PRE><br />
chmod +x etc/init.d/rcS <br />
</PRE><br />
<br />
You should now have a basic, yet quite functional, BusyBox root file system.<br />
<br />
=== DropBear (Optional) ===<br />
<br />
[https://matt.ucc.asn.au/dropbear/dropbear.html DropBear] is a small SSH server and client and is useful to allow remote shell access to your system.<br />
<br />
Download, build and install DropBear:<br />
<br />
<br />
<PRE><br />
wget https://matt.ucc.asn.au/dropbear/releases/dropbear-2020.81.tar.bz2<br />
tar -xjf dropbear-2020.81.tar.bz2<br />
cd dropbear-2020.81<br />
./configure --host=arm-linux-gnueabi --prefix=/ --disable-zlib CC=arm-linux-gnueabi-gcc LD=arm-linux-gnueabi-ld<br />
make<br />
make install DESTDIR=/home/export/rootfs<br />
</PRE><br />
<br />
DropBear requires RSA and DSS (Digital Signature Standard) encryption keys to be generated. I normally do this on the target, but you could generate the keys on the host if you have the dropbearkey executable installed.<br />
<br />
To generate your keys:<br />
<PRE><br />
mkdir /etc/dropbear<br />
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key <br />
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key <br />
</PRE><br />
<br />
You will also require users and passwords to validate login credentials:<br />
<br />
<PRE><br />
touch /etc/passwd<br />
touch /etc/group<br />
adduser root -u 0<br />
</PRE><br />
<br />
Unless otherwise specified, root will be given a default home directory of /home/root. However as this doesn't exist, DropBear will close your connection immediately after successfully logging in. To address this, simply create a home directory for root:<br />
<br />
<PRE><br />
mkdir /home /home/root<br />
</PRE><br />
<br />
DropBear can now be started by running:<br />
<br />
<PRE><br />
dropbear<br />
</PRE><br />
<br />
and you should be able to remotely login to your system using the root user.<br />
<br />
If you get an error after logging in, "Server refused to allocate pty" check you have Device Drivers > Character devices > Legacy (BSD) PTY support enabled in your kernel. (Especially applicable to Beaglebone kernels)<br />
<br />
Alternatively, make sure you have mounted the /dev/pts filesystem (after /dev has been mounted) <br />
<br />
<PRE><br />
mkdir /dev/pts<br />
mount -t devpts none /dev/pts<br />
</PRE><br />
<br />
=== ldconfig ===<br />
<br />
ldconfig is used to configure dynamic linker run-time bindings. It creates symbolic links and a cache to the most recent shared libraries. As you build upon your root filesystem and add additional libraries, you may need to run ldconfig.<br />
<br />
ldconfig will search for libraries in the trusted directory /lib. Additional search paths can be added to the ld.so.conf configuration file. ldconfig looks for a configuration file in /etc/ld.so.conf and generates a warning if this cannot be found. Suppress the warning and extend the search range to include /usr/lib by:<br />
<br />
<PRE><br />
echo /usr/lib > etc/ld.so.conf<br />
</PRE><br />
<br />
ldconfig will also generate a cache at /etc/ld.so.cache. If this file doesn't exist, it will be automatically generated.<br />
<br />
Finally, to update the dynamic linker run-time bindings with verbose output, execute:<br />
<br />
<PRE><br />
ldconfig -v<br />
</PRE><br />
<br />
=== Read Only Filesystems ===<br />
<br />
If you are using a root file system residing on flash memory, to improve longevity it may be desirable to either mount your rootfs as read only, or to move as many of the frequently written to files (for example /var) to a temporary volatile file system stored in RAM. <br />
<br />
The following is an expanded etc/init.d/rcS file demonstrating this. <br />
<br />
We mount /var and /dev as tmpfs. The device nodes are generated using mdev at boot and from hotplug, hence we move these to a temp file system otherwise they could not be generated on a read only root filesystem.<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
mount -t tmpfs none /var<br />
mount -t tmpfs none /dev<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
mkdir /var/log<br />
syslogd<br />
dropbear<br />
</PRE><br />
<br />
syslogd writes system messages to /var/log/messages and is something you probably don't want constantly writing to flash. After mounting /var as a temp file system, we create the /var/log directory for systemd.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARMCross Compiling BusyBox for ARM2021-04-02T06:25:21Z<p>Craig Peacock: Upgraded dropbear</p>
<hr />
<div><br />
== Building a minimal RootFS with Busybox, GLIBC and DropBear ==<br />
<br />
[http://www.busybox.net/ BusyBox] is a collection of cut down versions of common UNIX utilities compiled into a single small executable. This makes BusyBox an ideal foundation for resource constrained systems.<br />
<br />
=== Prerequisites ===<br />
<br />
Install the following prerequisites (assuming an Ubuntu 14.04 build machine):<br />
<br />
<PRE><br />
apt-get install gcc-arm-linux-gnueabi<br />
apt-get install libncurses5-dev<br />
apt-get install gawk<br />
</PRE><br />
<br />
=== BusyBox ===<br />
<br />
BusyBox can be built either as a single static binary requiring no external libraries, or built requiring shared libraries such as GLIBC (default). This setting can be found under BusyBox Settings -> Build Options -> Build BusyBox as a static binary (no shared libs). <br />
<br />
I generally choose to build BusyBox to require GLIBC as it is highly likely you will want to run additional applications that will require GLIBC sometime in the future. <br />
<br />
<PRE><br />
wget https://busybox.net/downloads/busybox-1.32.1.tar.bz2<br />
tar -xjf busybox-1.32.1.tar.bz2<br />
cd busybox-1.32.1/<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig<br />
</PRE><br />
<br />
At the menu, you can configure BusyBox options. Once configured, you can build BusyBox:<br />
<br />
<PRE><br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- <br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install CONFIG_PREFIX=/home/export/rootfs<br />
</PRE><br />
<br />
=== GLIBC ===<br />
<br />
GLIBC is the [http://www.gnu.org/software/libc/libc.html GNU C Library] and includes common system calls required by executables running on your system.<br />
<br />
Download, build and install GLIBC:<br />
<br />
<PRE><br />
wget http://ftp.gnu.org/gnu/libc/glibc-2.33.tar.xz<br />
tar -xJf glibc-2.33.tar.xz<br />
mkdir glibc-build<br />
cd glibc-build/<br />
../glibc-2.33/configure arm-linux-gnueabi --build=i686-pc-linux-gnu CXX=arm-linux-gnueabi-g++ --prefix= --enable-add-ons<br />
make<br />
make install install_root=/home/export/rootfs <br />
</PRE><br />
<br />
Some programs may require libgcc_s.so, otherwise you will receive an error:<br />
<PRE><br />
error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory <br />
</PRE><br />
<br />
libgcc_s.so.1 can be copied over from your arm-linux-gnueabi installation:<br />
<br />
<PRE><br />
cp /usr/lib/gcc-cross/arm-linux-gnueabi/4.7.3/libgcc_s.so.1 /home/export/rootfs/lib <br />
</PRE><br />
<br />
=== Preparing RootFS ===<br />
<br />
Once BusyBox and GLIBC has been cross-compiled, you will want to create the remainder of the root file system. Start by creating the necessary directory structure:<br />
<br />
<PRE><br />
mkdir proc sys dev etc/init.d usr/lib<br />
</PRE><br />
<br />
Now we must mount the /proc & /sys filesystem and populate the /dev nodes. This can be done at runtime by creating a file called etc/init.d/rcS and adding:<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
</PRE><br />
<br />
and make executable:<br />
<br />
<PRE><br />
chmod +x etc/init.d/rcS <br />
</PRE><br />
<br />
You should now have a basic, yet quite functional, BusyBox root file system.<br />
<br />
=== DropBear (Optional) ===<br />
<br />
[https://matt.ucc.asn.au/dropbear/dropbear.html DropBear] is a small SSH server and client and is useful to allow remote shell access to your system.<br />
<br />
Download, build and install DropBear:<br />
<br />
<br />
<PRE><br />
wget https://matt.ucc.asn.au/dropbear/releases/dropbear-2020.81.tar.bz2<br />
tar -xjf dropbear-2020.81.tar.bz2<br />
cd dropbear-2020.81<br />
./configure --host=arm-linux-gnueabi --prefix=/ --disable-zlib CC=arm-linux-gnueabi-gcc LD=arm-linux-gnueabi-ld<br />
make<br />
make install DESTDIR=/home/export/rootfs<br />
</PRE><br />
<br />
DropBear requires RSA and DSS (Digital Signature Standard) encryption keys to be generated. I normally do this on the target, but you could generate the keys on the host if you have the dropbearkey executable installed.<br />
<br />
To generate your keys:<br />
<PRE><br />
mkdir /etc/dropbear<br />
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key <br />
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key <br />
</PRE><br />
<br />
You will also require users and passwords to validate login credentials:<br />
<br />
<PRE><br />
touch /etc/passwd<br />
touch /etc/group<br />
adduser root -u 0<br />
</PRE><br />
<br />
Unless otherwise specified, root will be given a default home directory of /home/root. However as this doesn't exist, DropBear will close your connection immediately after successfully logging in. To address this, simply create a home directory for root:<br />
<br />
<PRE><br />
mkdir /home /home/root<br />
</PRE><br />
<br />
DropBear can now be started by running:<br />
<br />
<PRE><br />
dropbear<br />
</PRE><br />
<br />
and you should be able to remotely login to your system using the root user.<br />
<br />
If you get an error after logging in, "Server refused to allocate pty" check you have Device Drivers > Character devices > Legacy (BSD) PTY support enabled in your kernel. (Especially applicable to Beaglebone kernels)<br />
<br />
=== ldconfig ===<br />
<br />
ldconfig is used to configure dynamic linker run-time bindings. It creates symbolic links and a cache to the most recent shared libraries. As you build upon your root filesystem and add additional libraries, you may need to run ldconfig.<br />
<br />
ldconfig will search for libraries in the trusted directory /lib. Additional search paths can be added to the ld.so.conf configuration file. ldconfig looks for a configuration file in /etc/ld.so.conf and generates a warning if this cannot be found. Suppress the warning and extend the search range to include /usr/lib by:<br />
<br />
<PRE><br />
echo /usr/lib > etc/ld.so.conf<br />
</PRE><br />
<br />
ldconfig will also generate a cache at /etc/ld.so.cache. If this file doesn't exist, it will be automatically generated.<br />
<br />
Finally, to update the dynamic linker run-time bindings with verbose output, execute:<br />
<br />
<PRE><br />
ldconfig -v<br />
</PRE><br />
<br />
=== Read Only Filesystems ===<br />
<br />
If you are using a root file system residing on flash memory, to improve longevity it may be desirable to either mount your rootfs as read only, or to move as many of the frequently written to files (for example /var) to a temporary volatile file system stored in RAM. <br />
<br />
The following is an expanded etc/init.d/rcS file demonstrating this. <br />
<br />
We mount /var and /dev as tmpfs. The device nodes are generated using mdev at boot and from hotplug, hence we move these to a temp file system otherwise they could not be generated on a read only root filesystem.<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
mount -t tmpfs none /var<br />
mount -t tmpfs none /dev<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
mkdir /var/log<br />
syslogd<br />
dropbear<br />
</PRE><br />
<br />
syslogd writes system messages to /var/log/messages and is something you probably don't want constantly writing to flash. After mounting /var as a temp file system, we create the /var/log directory for systemd.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARMCross Compiling BusyBox for ARM2021-04-02T06:15:02Z<p>Craig Peacock: Include CXX=arm-linux-gnueabi-g++ to prevent issue with "build-glibc/support/links-dso-program.o: file not recognized: file format not recognized"</p>
<hr />
<div><br />
== Building a minimal RootFS with Busybox, GLIBC and DropBear ==<br />
<br />
[http://www.busybox.net/ BusyBox] is a collection of cut down versions of common UNIX utilities compiled into a single small executable. This makes BusyBox an ideal foundation for resource constrained systems.<br />
<br />
=== Prerequisites ===<br />
<br />
Install the following prerequisites (assuming an Ubuntu 14.04 build machine):<br />
<br />
<PRE><br />
apt-get install gcc-arm-linux-gnueabi<br />
apt-get install libncurses5-dev<br />
apt-get install gawk<br />
</PRE><br />
<br />
=== BusyBox ===<br />
<br />
BusyBox can be built either as a single static binary requiring no external libraries, or built requiring shared libraries such as GLIBC (default). This setting can be found under BusyBox Settings -> Build Options -> Build BusyBox as a static binary (no shared libs). <br />
<br />
I generally choose to build BusyBox to require GLIBC as it is highly likely you will want to run additional applications that will require GLIBC sometime in the future. <br />
<br />
<PRE><br />
wget https://busybox.net/downloads/busybox-1.32.1.tar.bz2<br />
tar -xjf busybox-1.32.1.tar.bz2<br />
cd busybox-1.32.1/<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig<br />
</PRE><br />
<br />
At the menu, you can configure BusyBox options. Once configured, you can build BusyBox:<br />
<br />
<PRE><br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- <br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install CONFIG_PREFIX=/home/export/rootfs<br />
</PRE><br />
<br />
=== GLIBC ===<br />
<br />
GLIBC is the [http://www.gnu.org/software/libc/libc.html GNU C Library] and includes common system calls required by executables running on your system.<br />
<br />
Download, build and install GLIBC:<br />
<br />
<PRE><br />
wget http://ftp.gnu.org/gnu/libc/glibc-2.33.tar.xz<br />
tar -xJf glibc-2.33.tar.xz<br />
mkdir glibc-build<br />
cd glibc-build/<br />
../glibc-2.33/configure arm-linux-gnueabi --build=i686-pc-linux-gnu CXX=arm-linux-gnueabi-g++ --prefix= --enable-add-ons<br />
make<br />
make install install_root=/home/export/rootfs <br />
</PRE><br />
<br />
Some programs may require libgcc_s.so, otherwise you will receive an error:<br />
<PRE><br />
error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory <br />
</PRE><br />
<br />
libgcc_s.so.1 can be copied over from your arm-linux-gnueabi installation:<br />
<br />
<PRE><br />
cp /usr/lib/gcc-cross/arm-linux-gnueabi/4.7.3/libgcc_s.so.1 /home/export/rootfs/lib <br />
</PRE><br />
<br />
=== Preparing RootFS ===<br />
<br />
Once BusyBox and GLIBC has been cross-compiled, you will want to create the remainder of the root file system. Start by creating the necessary directory structure:<br />
<br />
<PRE><br />
mkdir proc sys dev etc/init.d usr/lib<br />
</PRE><br />
<br />
Now we must mount the /proc & /sys filesystem and populate the /dev nodes. This can be done at runtime by creating a file called etc/init.d/rcS and adding:<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
</PRE><br />
<br />
and make executable:<br />
<br />
<PRE><br />
chmod +x etc/init.d/rcS <br />
</PRE><br />
<br />
You should now have a basic, yet quite functional, BusyBox root file system.<br />
<br />
=== DropBear (Optional) ===<br />
<br />
[https://matt.ucc.asn.au/dropbear/dropbear.html DropBear] is a small SSH server and client and is useful to allow remote shell access to your system.<br />
<br />
Download, build and install DropBear:<br />
<br />
<br />
<PRE><br />
wget https://matt.ucc.asn.au/dropbear/releases/dropbear-2015.68.tar.bz2<br />
tar -xjf dropbear-2015.68.tar.bz2<br />
cd dropbear-2015.68<br />
./configure --host=arm-linux-gnueabi --prefix=/ --disable-zlib CC=arm-linux-gnueabi-gcc LD=arm-linux-gnueabi-ld<br />
make<br />
make install DESTDIR=/home/export/rootfs<br />
</PRE><br />
<br />
DropBear requires RSA and DSS (Digital Signature Standard) encryption keys to be generated. I normally do this on the target, but you could generate the keys on the host if you have the dropbearkey executable installed.<br />
<br />
To generate your keys:<br />
<PRE><br />
mkdir /etc/dropbear<br />
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key <br />
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key <br />
</PRE><br />
<br />
You will also require users and passwords to validate login credentials:<br />
<br />
<PRE><br />
touch /etc/passwd<br />
touch /etc/group<br />
adduser root -u 0<br />
</PRE><br />
<br />
Unless otherwise specified, root will be given a default home directory of /home/root. However as this doesn't exist, DropBear will close your connection immediately after successfully logging in. To address this, simply create a home directory for root:<br />
<br />
<PRE><br />
mkdir /home /home/root<br />
</PRE><br />
<br />
DropBear can now be started by running:<br />
<br />
<PRE><br />
dropbear<br />
</PRE><br />
<br />
and you should be able to remotely login to your system using the root user.<br />
<br />
If you get an error after logging in, "Server refused to allocate pty" check you have Device Drivers > Character devices > Legacy (BSD) PTY support enabled in your kernel. (Especially applicable to Beaglebone kernels)<br />
<br />
=== ldconfig ===<br />
<br />
ldconfig is used to configure dynamic linker run-time bindings. It creates symbolic links and a cache to the most recent shared libraries. As you build upon your root filesystem and add additional libraries, you may need to run ldconfig.<br />
<br />
ldconfig will search for libraries in the trusted directory /lib. Additional search paths can be added to the ld.so.conf configuration file. ldconfig looks for a configuration file in /etc/ld.so.conf and generates a warning if this cannot be found. Suppress the warning and extend the search range to include /usr/lib by:<br />
<br />
<PRE><br />
echo /usr/lib > etc/ld.so.conf<br />
</PRE><br />
<br />
ldconfig will also generate a cache at /etc/ld.so.cache. If this file doesn't exist, it will be automatically generated.<br />
<br />
Finally, to update the dynamic linker run-time bindings with verbose output, execute:<br />
<br />
<PRE><br />
ldconfig -v<br />
</PRE><br />
<br />
=== Read Only Filesystems ===<br />
<br />
If you are using a root file system residing on flash memory, to improve longevity it may be desirable to either mount your rootfs as read only, or to move as many of the frequently written to files (for example /var) to a temporary volatile file system stored in RAM. <br />
<br />
The following is an expanded etc/init.d/rcS file demonstrating this. <br />
<br />
We mount /var and /dev as tmpfs. The device nodes are generated using mdev at boot and from hotplug, hence we move these to a temp file system otherwise they could not be generated on a read only root filesystem.<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
mount -t tmpfs none /var<br />
mount -t tmpfs none /dev<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
mkdir /var/log<br />
syslogd<br />
dropbear<br />
</PRE><br />
<br />
syslogd writes system messages to /var/log/messages and is something you probably don't want constantly writing to flash. After mounting /var as a temp file system, we create the /var/log directory for systemd.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARMCross Compiling BusyBox for ARM2021-04-02T06:08:08Z<p>Craig Peacock: Updated for glibc 2.33</p>
<hr />
<div><br />
== Building a minimal RootFS with Busybox, GLIBC and DropBear ==<br />
<br />
[http://www.busybox.net/ BusyBox] is a collection of cut down versions of common UNIX utilities compiled into a single small executable. This makes BusyBox an ideal foundation for resource constrained systems.<br />
<br />
=== Prerequisites ===<br />
<br />
Install the following prerequisites (assuming an Ubuntu 14.04 build machine):<br />
<br />
<PRE><br />
apt-get install gcc-arm-linux-gnueabi<br />
apt-get install libncurses5-dev<br />
apt-get install gawk<br />
</PRE><br />
<br />
=== BusyBox ===<br />
<br />
BusyBox can be built either as a single static binary requiring no external libraries, or built requiring shared libraries such as GLIBC (default). This setting can be found under BusyBox Settings -> Build Options -> Build BusyBox as a static binary (no shared libs). <br />
<br />
I generally choose to build BusyBox to require GLIBC as it is highly likely you will want to run additional applications that will require GLIBC sometime in the future. <br />
<br />
<PRE><br />
wget https://busybox.net/downloads/busybox-1.32.1.tar.bz2<br />
tar -xjf busybox-1.32.1.tar.bz2<br />
cd busybox-1.32.1/<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig<br />
</PRE><br />
<br />
At the menu, you can configure BusyBox options. Once configured, you can build BusyBox:<br />
<br />
<PRE><br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- <br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install CONFIG_PREFIX=/home/export/rootfs<br />
</PRE><br />
<br />
=== GLIBC ===<br />
<br />
GLIBC is the [http://www.gnu.org/software/libc/libc.html GNU C Library] and includes common system calls required by executables running on your system.<br />
<br />
Download, build and install GLIBC:<br />
<br />
<PRE><br />
wget http://ftp.gnu.org/gnu/libc/glibc-2.33.tar.xz<br />
tar -xJf glibc-2.33.tar.xz<br />
mkdir glibc-build<br />
cd glibc-build/<br />
../glibc-2.33/configure arm-linux-gnueabi --build=i686-pc-linux-gnu --prefix= --enable-add-ons<br />
make<br />
make install install_root=/home/export/rootfs <br />
</PRE><br />
<br />
Some programs may require libgcc_s.so, otherwise you will receive an error:<br />
<PRE><br />
error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory <br />
</PRE><br />
<br />
libgcc_s.so.1 can be copied over from your arm-linux-gnueabi installation:<br />
<br />
<PRE><br />
cp /usr/lib/gcc-cross/arm-linux-gnueabi/4.7.3/libgcc_s.so.1 /home/export/rootfs/lib <br />
</PRE><br />
<br />
=== Preparing RootFS ===<br />
<br />
Once BusyBox and GLIBC has been cross-compiled, you will want to create the remainder of the root file system. Start by creating the necessary directory structure:<br />
<br />
<PRE><br />
mkdir proc sys dev etc/init.d usr/lib<br />
</PRE><br />
<br />
Now we must mount the /proc & /sys filesystem and populate the /dev nodes. This can be done at runtime by creating a file called etc/init.d/rcS and adding:<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
</PRE><br />
<br />
and make executable:<br />
<br />
<PRE><br />
chmod +x etc/init.d/rcS <br />
</PRE><br />
<br />
You should now have a basic, yet quite functional, BusyBox root file system.<br />
<br />
=== DropBear (Optional) ===<br />
<br />
[https://matt.ucc.asn.au/dropbear/dropbear.html DropBear] is a small SSH server and client and is useful to allow remote shell access to your system.<br />
<br />
Download, build and install DropBear:<br />
<br />
<br />
<PRE><br />
wget https://matt.ucc.asn.au/dropbear/releases/dropbear-2015.68.tar.bz2<br />
tar -xjf dropbear-2015.68.tar.bz2<br />
cd dropbear-2015.68<br />
./configure --host=arm-linux-gnueabi --prefix=/ --disable-zlib CC=arm-linux-gnueabi-gcc LD=arm-linux-gnueabi-ld<br />
make<br />
make install DESTDIR=/home/export/rootfs<br />
</PRE><br />
<br />
DropBear requires RSA and DSS (Digital Signature Standard) encryption keys to be generated. I normally do this on the target, but you could generate the keys on the host if you have the dropbearkey executable installed.<br />
<br />
To generate your keys:<br />
<PRE><br />
mkdir /etc/dropbear<br />
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key <br />
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key <br />
</PRE><br />
<br />
You will also require users and passwords to validate login credentials:<br />
<br />
<PRE><br />
touch /etc/passwd<br />
touch /etc/group<br />
adduser root -u 0<br />
</PRE><br />
<br />
Unless otherwise specified, root will be given a default home directory of /home/root. However as this doesn't exist, DropBear will close your connection immediately after successfully logging in. To address this, simply create a home directory for root:<br />
<br />
<PRE><br />
mkdir /home /home/root<br />
</PRE><br />
<br />
DropBear can now be started by running:<br />
<br />
<PRE><br />
dropbear<br />
</PRE><br />
<br />
and you should be able to remotely login to your system using the root user.<br />
<br />
If you get an error after logging in, "Server refused to allocate pty" check you have Device Drivers > Character devices > Legacy (BSD) PTY support enabled in your kernel. (Especially applicable to Beaglebone kernels)<br />
<br />
=== ldconfig ===<br />
<br />
ldconfig is used to configure dynamic linker run-time bindings. It creates symbolic links and a cache to the most recent shared libraries. As you build upon your root filesystem and add additional libraries, you may need to run ldconfig.<br />
<br />
ldconfig will search for libraries in the trusted directory /lib. Additional search paths can be added to the ld.so.conf configuration file. ldconfig looks for a configuration file in /etc/ld.so.conf and generates a warning if this cannot be found. Suppress the warning and extend the search range to include /usr/lib by:<br />
<br />
<PRE><br />
echo /usr/lib > etc/ld.so.conf<br />
</PRE><br />
<br />
ldconfig will also generate a cache at /etc/ld.so.cache. If this file doesn't exist, it will be automatically generated.<br />
<br />
Finally, to update the dynamic linker run-time bindings with verbose output, execute:<br />
<br />
<PRE><br />
ldconfig -v<br />
</PRE><br />
<br />
=== Read Only Filesystems ===<br />
<br />
If you are using a root file system residing on flash memory, to improve longevity it may be desirable to either mount your rootfs as read only, or to move as many of the frequently written to files (for example /var) to a temporary volatile file system stored in RAM. <br />
<br />
The following is an expanded etc/init.d/rcS file demonstrating this. <br />
<br />
We mount /var and /dev as tmpfs. The device nodes are generated using mdev at boot and from hotplug, hence we move these to a temp file system otherwise they could not be generated on a read only root filesystem.<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
mount -t tmpfs none /var<br />
mount -t tmpfs none /dev<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
mkdir /var/log<br />
syslogd<br />
dropbear<br />
</PRE><br />
<br />
syslogd writes system messages to /var/log/messages and is something you probably don't want constantly writing to flash. After mounting /var as a temp file system, we create the /var/log directory for systemd.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARMCross Compiling BusyBox for ARM2021-04-02T06:02:16Z<p>Craig Peacock: Updated versions</p>
<hr />
<div><br />
== Building a minimal RootFS with Busybox, GLIBC and DropBear ==<br />
<br />
[http://www.busybox.net/ BusyBox] is a collection of cut down versions of common UNIX utilities compiled into a single small executable. This makes BusyBox an ideal foundation for resource constrained systems.<br />
<br />
=== Prerequisites ===<br />
<br />
Install the following prerequisites (assuming an Ubuntu 14.04 build machine):<br />
<br />
<PRE><br />
apt-get install gcc-arm-linux-gnueabi<br />
apt-get install libncurses5-dev<br />
apt-get install gawk<br />
</PRE><br />
<br />
=== BusyBox ===<br />
<br />
BusyBox can be built either as a single static binary requiring no external libraries, or built requiring shared libraries such as GLIBC (default). This setting can be found under BusyBox Settings -> Build Options -> Build BusyBox as a static binary (no shared libs). <br />
<br />
I generally choose to build BusyBox to require GLIBC as it is highly likely you will want to run additional applications that will require GLIBC sometime in the future. <br />
<br />
<PRE><br />
wget https://busybox.net/downloads/busybox-1.32.1.tar.bz2<br />
tar -xjf busybox-1.32.1.tar.bz2<br />
cd busybox-1.32.1/<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig<br />
</PRE><br />
<br />
At the menu, you can configure BusyBox options. Once configured, you can build BusyBox:<br />
<br />
<PRE><br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- <br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install CONFIG_PREFIX=/home/export/rootfs<br />
</PRE><br />
<br />
=== GLIBC ===<br />
<br />
GLIBC is the [http://www.gnu.org/software/libc/libc.html GNU C Library] and includes common system calls required by executables running on your system.<br />
<br />
Download, build and install GLIBC:<br />
<br />
<PRE><br />
wget http://ftp.gnu.org/gnu/libc/glibc-2.23.tar.xz<br />
tar -xJf glibc-2.23.tar.xz<br />
mkdir glibc-build<br />
cd glibc-build/<br />
../glibc-2.23/configure arm-linux-gnueabi --build=i686-pc-linux-gnu --prefix= --enable-add-ons<br />
make<br />
make install install_root=/home/export/rootfs <br />
</PRE><br />
<br />
Some programs may require libgcc_s.so, otherwise you will receive an error:<br />
<PRE><br />
error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory <br />
</PRE><br />
<br />
libgcc_s.so.1 can be copied over from your arm-linux-gnueabi installation:<br />
<br />
<PRE><br />
cp /usr/lib/gcc-cross/arm-linux-gnueabi/4.7.3/libgcc_s.so.1 /home/export/rootfs/lib <br />
</PRE><br />
<br />
=== Preparing RootFS ===<br />
<br />
Once BusyBox and GLIBC has been cross-compiled, you will want to create the remainder of the root file system. Start by creating the necessary directory structure:<br />
<br />
<PRE><br />
mkdir proc sys dev etc/init.d usr/lib<br />
</PRE><br />
<br />
Now we must mount the /proc & /sys filesystem and populate the /dev nodes. This can be done at runtime by creating a file called etc/init.d/rcS and adding:<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
</PRE><br />
<br />
and make executable:<br />
<br />
<PRE><br />
chmod +x etc/init.d/rcS <br />
</PRE><br />
<br />
You should now have a basic, yet quite functional, BusyBox root file system.<br />
<br />
=== DropBear (Optional) ===<br />
<br />
[https://matt.ucc.asn.au/dropbear/dropbear.html DropBear] is a small SSH server and client and is useful to allow remote shell access to your system.<br />
<br />
Download, build and install DropBear:<br />
<br />
<br />
<PRE><br />
wget https://matt.ucc.asn.au/dropbear/releases/dropbear-2015.68.tar.bz2<br />
tar -xjf dropbear-2015.68.tar.bz2<br />
cd dropbear-2015.68<br />
./configure --host=arm-linux-gnueabi --prefix=/ --disable-zlib CC=arm-linux-gnueabi-gcc LD=arm-linux-gnueabi-ld<br />
make<br />
make install DESTDIR=/home/export/rootfs<br />
</PRE><br />
<br />
DropBear requires RSA and DSS (Digital Signature Standard) encryption keys to be generated. I normally do this on the target, but you could generate the keys on the host if you have the dropbearkey executable installed.<br />
<br />
To generate your keys:<br />
<PRE><br />
mkdir /etc/dropbear<br />
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key <br />
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key <br />
</PRE><br />
<br />
You will also require users and passwords to validate login credentials:<br />
<br />
<PRE><br />
touch /etc/passwd<br />
touch /etc/group<br />
adduser root -u 0<br />
</PRE><br />
<br />
Unless otherwise specified, root will be given a default home directory of /home/root. However as this doesn't exist, DropBear will close your connection immediately after successfully logging in. To address this, simply create a home directory for root:<br />
<br />
<PRE><br />
mkdir /home /home/root<br />
</PRE><br />
<br />
DropBear can now be started by running:<br />
<br />
<PRE><br />
dropbear<br />
</PRE><br />
<br />
and you should be able to remotely login to your system using the root user.<br />
<br />
If you get an error after logging in, "Server refused to allocate pty" check you have Device Drivers > Character devices > Legacy (BSD) PTY support enabled in your kernel. (Especially applicable to Beaglebone kernels)<br />
<br />
=== ldconfig ===<br />
<br />
ldconfig is used to configure dynamic linker run-time bindings. It creates symbolic links and a cache to the most recent shared libraries. As you build upon your root filesystem and add additional libraries, you may need to run ldconfig.<br />
<br />
ldconfig will search for libraries in the trusted directory /lib. Additional search paths can be added to the ld.so.conf configuration file. ldconfig looks for a configuration file in /etc/ld.so.conf and generates a warning if this cannot be found. Suppress the warning and extend the search range to include /usr/lib by:<br />
<br />
<PRE><br />
echo /usr/lib > etc/ld.so.conf<br />
</PRE><br />
<br />
ldconfig will also generate a cache at /etc/ld.so.cache. If this file doesn't exist, it will be automatically generated.<br />
<br />
Finally, to update the dynamic linker run-time bindings with verbose output, execute:<br />
<br />
<PRE><br />
ldconfig -v<br />
</PRE><br />
<br />
=== Read Only Filesystems ===<br />
<br />
If you are using a root file system residing on flash memory, to improve longevity it may be desirable to either mount your rootfs as read only, or to move as many of the frequently written to files (for example /var) to a temporary volatile file system stored in RAM. <br />
<br />
The following is an expanded etc/init.d/rcS file demonstrating this. <br />
<br />
We mount /var and /dev as tmpfs. The device nodes are generated using mdev at boot and from hotplug, hence we move these to a temp file system otherwise they could not be generated on a read only root filesystem.<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
mount -t tmpfs none /var<br />
mount -t tmpfs none /dev<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
mkdir /var/log<br />
syslogd<br />
dropbear<br />
</PRE><br />
<br />
syslogd writes system messages to /var/log/messages and is something you probably don't want constantly writing to flash. After mounting /var as a temp file system, we create the /var/log directory for systemd.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARMCross Compiling BusyBox for ARM2020-08-02T06:10:16Z<p>Craig Peacock: Updated to busybox 1.32.0</p>
<hr />
<div><br />
== Building a minimal RootFS with Busybox, GLIBC and DropBear ==<br />
<br />
[http://www.busybox.net/ BusyBox] is a collection of cut down versions of common UNIX utilities compiled into a single small executable. This makes BusyBox an ideal foundation for resource constrained systems.<br />
<br />
=== Prerequisites ===<br />
<br />
Install the following prerequisites (assuming an Ubuntu 14.04 build machine):<br />
<br />
<PRE><br />
apt-get install gcc-arm-linux-gnueabi<br />
apt-get install libncurses5-dev<br />
apt-get install gawk<br />
</PRE><br />
<br />
=== BusyBox ===<br />
<br />
BusyBox can be built either as a single static binary requiring no external libraries, or built requiring shared libraries such as GLIBC (default). This setting can be found under BusyBox Settings -> Build Options -> Build BusyBox as a static binary (no shared libs). <br />
<br />
I generally choose to build BusyBox to require GLIBC as it is highly likely you will want to run additional applications that will require GLIBC sometime in the future. <br />
<br />
<PRE><br />
wget https://busybox.net/downloads/busybox-1.32.0.tar.bz2<br />
tar -xjf busybox-1.32.0.tar.bz2<br />
cd busybox-1.32.0/<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig<br />
</PRE><br />
<br />
At the menu, you can configure BusyBox options. Once configured, you can build BusyBox:<br />
<br />
<PRE><br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- <br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install CONFIG_PREFIX=/home/export/rootfs<br />
</PRE><br />
<br />
=== GLIBC ===<br />
<br />
GLIBC is the [http://www.gnu.org/software/libc/libc.html GNU C Library] and includes common system calls required by executables running on your system.<br />
<br />
Download, build and install GLIBC:<br />
<br />
<PRE><br />
wget http://ftp.gnu.org/gnu/libc/glibc-2.22.tar.xz<br />
tar -xJf glibc-2.22.tar.xz<br />
mkdir glibc-build<br />
cd glibc-build/<br />
../glibc-2.22/configure arm-linux-gnueabi --target=arm-linux-gnueabi --build=i686-pc-linux-gnu --prefix= --enable-add-ons<br />
make<br />
make install install_root=/home/export/rootfs <br />
</PRE><br />
<br />
Some programs may require libgcc_s.so, otherwise you will receive an error:<br />
<PRE><br />
error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory <br />
</PRE><br />
<br />
libgcc_s.so.1 can be copied over from your arm-linux-gnueabi installation:<br />
<br />
<PRE><br />
cp /usr/lib/gcc-cross/arm-linux-gnueabi/4.7.3/libgcc_s.so.1 /home/export/rootfs/lib <br />
</PRE><br />
<br />
=== Preparing RootFS ===<br />
<br />
Once BusyBox and GLIBC has been cross-compiled, you will want to create the remainder of the root file system. Start by creating the necessary directory structure:<br />
<br />
<PRE><br />
mkdir proc sys dev etc/init.d usr/lib<br />
</PRE><br />
<br />
Now we must mount the /proc & /sys filesystem and populate the /dev nodes. This can be done at runtime by creating a file called etc/init.d/rcS and adding:<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
</PRE><br />
<br />
and make executable:<br />
<br />
<PRE><br />
chmod +x etc/init.d/rcS <br />
</PRE><br />
<br />
You should now have a basic, yet quite functional, BusyBox root file system.<br />
<br />
=== DropBear (Optional) ===<br />
<br />
[https://matt.ucc.asn.au/dropbear/dropbear.html DropBear] is a small SSH server and client and is useful to allow remote shell access to your system.<br />
<br />
Download, build and install DropBear:<br />
<br />
<br />
<PRE><br />
wget https://matt.ucc.asn.au/dropbear/releases/dropbear-2015.68.tar.bz2<br />
tar -xjf dropbear-2015.68.tar.bz2<br />
cd dropbear-2015.68<br />
./configure --host=arm-linux-gnueabi --prefix=/ --disable-zlib CC=arm-linux-gnueabi-gcc LD=arm-linux-gnueabi-ld<br />
make<br />
make install DESTDIR=/home/export/rootfs<br />
</PRE><br />
<br />
DropBear requires RSA and DSS (Digital Signature Standard) encryption keys to be generated. I normally do this on the target, but you could generate the keys on the host if you have the dropbearkey executable installed.<br />
<br />
To generate your keys:<br />
<PRE><br />
mkdir /etc/dropbear<br />
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key <br />
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key <br />
</PRE><br />
<br />
You will also require users and passwords to validate login credentials:<br />
<br />
<PRE><br />
touch /etc/passwd<br />
touch /etc/group<br />
adduser root -u 0<br />
</PRE><br />
<br />
Unless otherwise specified, root will be given a default home directory of /home/root. However as this doesn't exist, DropBear will close your connection immediately after successfully logging in. To address this, simply create a home directory for root:<br />
<br />
<PRE><br />
mkdir /home /home/root<br />
</PRE><br />
<br />
DropBear can now be started by running:<br />
<br />
<PRE><br />
dropbear<br />
</PRE><br />
<br />
and you should be able to remotely login to your system using the root user.<br />
<br />
If you get an error after logging in, "Server refused to allocate pty" check you have Device Drivers > Character devices > Legacy (BSD) PTY support enabled in your kernel. (Especially applicable to Beaglebone kernels)<br />
<br />
=== ldconfig ===<br />
<br />
ldconfig is used to configure dynamic linker run-time bindings. It creates symbolic links and a cache to the most recent shared libraries. As you build upon your root filesystem and add additional libraries, you may need to run ldconfig.<br />
<br />
ldconfig will search for libraries in the trusted directory /lib. Additional search paths can be added to the ld.so.conf configuration file. ldconfig looks for a configuration file in /etc/ld.so.conf and generates a warning if this cannot be found. Suppress the warning and extend the search range to include /usr/lib by:<br />
<br />
<PRE><br />
echo /usr/lib > etc/ld.so.conf<br />
</PRE><br />
<br />
ldconfig will also generate a cache at /etc/ld.so.cache. If this file doesn't exist, it will be automatically generated.<br />
<br />
Finally, to update the dynamic linker run-time bindings with verbose output, execute:<br />
<br />
<PRE><br />
ldconfig -v<br />
</PRE><br />
<br />
=== Read Only Filesystems ===<br />
<br />
If you are using a root file system residing on flash memory, to improve longevity it may be desirable to either mount your rootfs as read only, or to move as many of the frequently written to files (for example /var) to a temporary volatile file system stored in RAM. <br />
<br />
The following is an expanded etc/init.d/rcS file demonstrating this. <br />
<br />
We mount /var and /dev as tmpfs. The device nodes are generated using mdev at boot and from hotplug, hence we move these to a temp file system otherwise they could not be generated on a read only root filesystem.<br />
<br />
<PRE><br />
#!bin/sh<br />
mount -t proc none /proc<br />
mount -t sysfs none /sys<br />
mount -t tmpfs none /var<br />
mount -t tmpfs none /dev<br />
echo /sbin/mdev > /proc/sys/kernel/hotplug<br />
/sbin/mdev -s<br />
mkdir /var/log<br />
syslogd<br />
dropbear<br />
</PRE><br />
<br />
syslogd writes system messages to /var/log/messages and is something you probably don't want constantly writing to flash. After mounting /var as a temp file system, we create the /var/log directory for systemd.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=RAK833_LoRaWAN_Concentrator_Raspberry_PIRAK833 LoRaWAN Concentrator Raspberry PI2018-08-23T11:55:36Z<p>Craig Peacock: Added PinOut Table</p>
<hr />
<div><br />
http://wiki.beyondlogic.org/i/RAK833_LoraWAN_Concentrator_Raspberry_PI.png<br />
<br />
== Design Files ==<br />
<br />
Open source design files including Gerbers for the [https://workspace.circuitmaker.com/Projects/Details/Craig-Peacock-4/RAK833-LoRaWAN-Concentrator-Hat RAK833 LoRa Concentrator Hat] can be obtained from Circuit Maker. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
== Description ==<br />
<br />
This board is a Raspberry PI Hat for the RAK833 LoRa Concentrator Gateway Module.<br />
<br />
It is smaller version of the popular RAK831. The RAK831 is larger, about the same footprint than a Raspberry PI and requires a breakout board to convert the RAK831’s 24 pin connector to the Raspberry PI’s 40 pin connector. The RAK833 is a more elegant industry standard PCI Express Mini Card form factor (Type F2).<br />
<br />
The RAK833 module consists of a [https://www.semtech.com/products/wireless-rf/lora-gateways/SX1301 Semtech SX1301] Digital Baseband chip for outdoor LoRaWAN Macro Gateways and two [https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1257 Semtech SX1257] Transceivers. The USB interface is provided by an [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H].<br />
<br />
It supports both a USB and SPI interface selectable via the SPDT_SEL pin. This makes the module ideal for Raspberry PI and other Embedded Linux platforms that do no expose USB on the expansion connector.<br />
<br />
Variants of the module are available for four different frequency ranges, 433MHz, 470MHz (China), 868MHz (Europe) & 915MHz (North America) and with or without the USB interface (FT2232H).<br />
<br />
The RAK833-SPI/USB-xxx Mini PCie Module can be purchased from [https://www.aliexpress.com/item/RAK833-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-SX1301-FT2232H-Chip-433-470-868-915MHz/32867370031.html AliExpress for US$119]. The non-USB version, the RAK833-SPI-xxx is [https://www.aliexpress.com/store/product/RAK833-SPI-SX1301Chip-868-915MHz-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-support-SPI-Interface/2805180_32887664396.html US$99]<br />
<br />
== Pinout ==<br />
<br />
The following table provides details of the allocated I/O. <br />
<br />
{| class="wikitable"<br />
|Pin No.<br />
|PI Name<br />
|PI I/O Type<br />
|Net Name<br />
|Function<br />
|-<br />
|8<br />
|GPIO14/TXD0<br />
|OUTPUT<br />
|UART_TX<br />
|GPS Receive (For configuration)<br />
|-<br />
|10<br />
|GPIO15/RXD0<br />
|INPUT<br />
|UART_RX<br />
|GPS Transmit<br />
|-<br />
|19<br />
|GPIO10/SPI_MOSI<br />
|OUTPUT<br />
|PCIe_MOSI<br />
|SX1301 SPI Slave Input<br />
|-<br />
|21<br />
|GPIO09/SPI_MISO<br />
|INPUT<br />
|PCIe_MISO<br />
|SX1301 SPI Slave Output<br />
|-<br />
|22<br />
|GPIO25<br />
|OUTPUT<br />
|PCIe_RESET<br />
|SX1301 Reset<br />
|-<br />
|23<br />
|GPIO11/SPI_SCK<br />
|OUTPUT<br />
|PCIe_SCK<br />
|SX1301 SPI Clock<br />
|-<br />
|24<br />
|GPIO08/SPI_CE0_N<br />
|OUTPUT<br />
|PCIe_CSN<br />
|SX1301 Chip Select<br />
|}<br />
<br />
== Software == <br />
<br />
Instructions for installing the software can be found at https://github.com/Lora-net/packet_forwarder/wiki/Use-with-Raspberry-Pi<br />
<br />
The packet forwarder is configured via a global_conf.json file. Pre-prepared configuration files for different frequency plans/countries on The Things Network can be obtained from https://github.com/TheThingsNetwork/gateway-conf/</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=RAK833_LoRaWAN_Concentrator_Raspberry_PIRAK833 LoRaWAN Concentrator Raspberry PI2018-08-23T11:49:01Z<p>Craig Peacock: </p>
<hr />
<div><br />
http://wiki.beyondlogic.org/i/RAK833_LoraWAN_Concentrator_Raspberry_PI.png<br />
<br />
== Design Files ==<br />
<br />
Open source design files including Gerbers for the [https://workspace.circuitmaker.com/Projects/Details/Craig-Peacock-4/RAK833-LoRaWAN-Concentrator-Hat RAK833 LoRa Concentrator Hat] can be obtained from Circuit Maker. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
== Description ==<br />
<br />
This board is a Raspberry PI Hat for the RAK833 LoRa Concentrator Gateway Module.<br />
<br />
It is smaller version of the popular RAK831. The RAK831 is larger, about the same footprint than a Raspberry PI and requires a breakout board to convert the RAK831’s 24 pin connector to the Raspberry PI’s 40 pin connector. The RAK833 is a more elegant industry standard PCI Express Mini Card form factor (Type F2).<br />
<br />
The RAK833 module consists of a [https://www.semtech.com/products/wireless-rf/lora-gateways/SX1301 Semtech SX1301] Digital Baseband chip for outdoor LoRaWAN Macro Gateways and two [https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1257 Semtech SX1257] Transceivers. The USB interface is provided by an [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H].<br />
<br />
It supports both a USB and SPI interface selectable via the SPDT_SEL pin. This makes the module ideal for Raspberry PI and other Embedded Linux platforms that do no expose USB on the expansion connector.<br />
<br />
Variants of the module are available for four different frequency ranges, 433MHz, 470MHz (China), 868MHz (Europe) & 915MHz (North America) and with or without the USB interface (FT2232H).<br />
<br />
The RAK833-SPI/USB-xxx Mini PCie Module can be purchased from [https://www.aliexpress.com/item/RAK833-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-SX1301-FT2232H-Chip-433-470-868-915MHz/32867370031.html AliExpress for US$119]. The non-USB version, the RAK833-SPI-xxx is [https://www.aliexpress.com/store/product/RAK833-SPI-SX1301Chip-868-915MHz-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-support-SPI-Interface/2805180_32887664396.html US$99]<br />
<br />
== Software == <br />
<br />
Instructions for installing the software can be found at https://github.com/Lora-net/packet_forwarder/wiki/Use-with-Raspberry-Pi<br />
<br />
The packet forwarder is configured via a global_conf.json file. Pre-prepared configuration files for different frequency plans/countries on The Things Network can be obtained from https://github.com/TheThingsNetwork/gateway-conf/</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=RAK833_LoRaWAN_Concentrator_Raspberry_PIRAK833 LoRaWAN Concentrator Raspberry PI2018-08-23T11:48:00Z<p>Craig Peacock: /* Design Files */</p>
<hr />
<div><br />
http://wiki.beyondlogic.org/i/RAK833_LoraWAN_Concentrator_Raspberry_PI.png<br />
<br />
== Design Files ==<br />
<br />
Open source design files including Gerbers for the [https://workspace.circuitmaker.com/Projects/Details/Craig-Peacock-4/RAK833-LoRaWAN-Concentrator-Hat RAK833 LoRa Concentrator Hat] can be obtained from Circuit Maker. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
== Description ==<br />
<br />
This board is a Raspberry PI Hat for the RAK833 LoRa Concentrator Gateway Module.<br />
<br />
It is smaller version of the popular RAK831. The RAK831 is larger, about the same footprint than a Raspberry PI and requires a breakout board to convert the RAK831’s 24 pin connector to the Raspberry PI’s 40 pin connector. The RAK833 is a more elegant industry standard PCI Express Mini Card form factor (Type F2).<br />
<br />
The RAK833 module consists of a [https://www.semtech.com/products/wireless-rf/lora-gateways/SX1301 Semtech SX1301] Digital Baseband chip for outdoor LoRaWAN Macro Gateways and two [https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1257 Semtech SX1257] Transceivers. The USB interface is provided by an [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H].<br />
<br />
It supports both a USB and SPI interface selectable via the SPDT_SEL pin. This makes the module ideal for Raspberry PI and other Embedded Linux platforms that do no expose USB on the expansion connector.<br />
<br />
Variants of the module are available for four different frequency ranges, 433MHz, 470MHz (China), 868MHz (Europe) & 915MHz (North America) and with or without the USB interface (FT2232H).<br />
<br />
The RAK833-SPI/USB-xxx Mini PCie Module can be purchased from [https://www.aliexpress.com/item/RAK833-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-SX1301-FT2232H-Chip-433-470-868-915MHz/32867370031.html AliExpress for US$119]. The non-USB version, the RAK833-SPI-xxx is [https://www.aliexpress.com/store/product/RAK833-SPI-SX1301Chip-868-915MHz-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-support-SPI-Interface/2805180_32887664396.html US$99]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=RAK833_LoRaWAN_Concentrator_Raspberry_PIRAK833 LoRaWAN Concentrator Raspberry PI2018-08-23T11:46:42Z<p>Craig Peacock: </p>
<hr />
<div><br />
http://wiki.beyondlogic.org/i/RAK833_LoraWAN_Concentrator_Raspberry_PI.png<br />
<br />
== Design Files ==<br />
<br />
Open source design files for the [https://workspace.circuitmaker.com/Projects/Details/Craig-Peacock-4/RAK833-LoRaWAN-Concentrator-Hat RAK833 LoRa Concentrator Hat] can be obtained from Circuit Maker. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
== Description ==<br />
<br />
This board is a Raspberry PI Hat for the RAK833 LoRa Concentrator Gateway Module.<br />
<br />
It is smaller version of the popular RAK831. The RAK831 is larger, about the same footprint than a Raspberry PI and requires a breakout board to convert the RAK831’s 24 pin connector to the Raspberry PI’s 40 pin connector. The RAK833 is a more elegant industry standard PCI Express Mini Card form factor (Type F2).<br />
<br />
The RAK833 module consists of a [https://www.semtech.com/products/wireless-rf/lora-gateways/SX1301 Semtech SX1301] Digital Baseband chip for outdoor LoRaWAN Macro Gateways and two [https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1257 Semtech SX1257] Transceivers. The USB interface is provided by an [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H].<br />
<br />
It supports both a USB and SPI interface selectable via the SPDT_SEL pin. This makes the module ideal for Raspberry PI and other Embedded Linux platforms that do no expose USB on the expansion connector.<br />
<br />
Variants of the module are available for four different frequency ranges, 433MHz, 470MHz (China), 868MHz (Europe) & 915MHz (North America) and with or without the USB interface (FT2232H).<br />
<br />
The RAK833-SPI/USB-xxx Mini PCie Module can be purchased from [https://www.aliexpress.com/item/RAK833-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-SX1301-FT2232H-Chip-433-470-868-915MHz/32867370031.html AliExpress for US$119]. The non-USB version, the RAK833-SPI-xxx is [https://www.aliexpress.com/store/product/RAK833-SPI-SX1301Chip-868-915MHz-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-support-SPI-Interface/2805180_32887664396.html US$99]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=RAK833_LoRaWAN_Concentrator_Raspberry_PIRAK833 LoRaWAN Concentrator Raspberry PI2018-08-23T11:46:02Z<p>Craig Peacock: Added Photo</p>
<hr />
<div><br />
https://wiki.beyondlogic.org/i/RAK833_LoraWAN_Concentrator_Raspberry_PI.png<br />
<br />
== Design Files ==<br />
<br />
Open source design files for the [https://workspace.circuitmaker.com/Projects/Details/Craig-Peacock-4/RAK833-LoRaWAN-Concentrator-Hat RAK833 LoRa Concentrator Hat] can be obtained from Circuit Maker. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
== Description ==<br />
<br />
This board is a Raspberry PI Hat for the RAK833 LoRa Concentrator Gateway Module.<br />
<br />
It is smaller version of the popular RAK831. The RAK831 is larger, about the same footprint than a Raspberry PI and requires a breakout board to convert the RAK831’s 24 pin connector to the Raspberry PI’s 40 pin connector. The RAK833 is a more elegant industry standard PCI Express Mini Card form factor (Type F2).<br />
<br />
The RAK833 module consists of a [https://www.semtech.com/products/wireless-rf/lora-gateways/SX1301 Semtech SX1301] Digital Baseband chip for outdoor LoRaWAN Macro Gateways and two [https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1257 Semtech SX1257] Transceivers. The USB interface is provided by an [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H].<br />
<br />
It supports both a USB and SPI interface selectable via the SPDT_SEL pin. This makes the module ideal for Raspberry PI and other Embedded Linux platforms that do no expose USB on the expansion connector.<br />
<br />
Variants of the module are available for four different frequency ranges, 433MHz, 470MHz (China), 868MHz (Europe) & 915MHz (North America) and with or without the USB interface (FT2232H).<br />
<br />
The RAK833-SPI/USB-xxx Mini PCie Module can be purchased from [https://www.aliexpress.com/item/RAK833-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-SX1301-FT2232H-Chip-433-470-868-915MHz/32867370031.html AliExpress for US$119]. The non-USB version, the RAK833-SPI-xxx is [https://www.aliexpress.com/store/product/RAK833-SPI-SX1301Chip-868-915MHz-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-support-SPI-Interface/2805180_32887664396.html US$99]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Main_PageMain Page2018-07-04T09:47:56Z<p>Craig Peacock: Added link for RAK833 LoRa Concentrator HAT</p>
<hr />
<div>This site contains information on the following projects:<br />
<br />
* General Information<br />
** [[IPv6|IPv6 - Internet Protocol Version 6]]<br />
** [[Imaging_of_Windows_Based_Computers_using_DISM|Imaging Windows based Computers using DISM]]<br />
** [[Ubuntu14.04_Acer_Aspire_V5_571_Broadcom_BCM43228_WiFi|WiFi on ubuntu 14.04 using Broadcom BCM43228]]<br />
** [[Watts_Cleaver_INPLUG| Watts Clever INPLUG Smart Plug]]<br />
** [[TPLINK_Archer_T4U_RTL8812au_Linux_Drivers|TP-Link Archer T4U AC1200 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[DLINK_DWA-171_AC750_RTL8812au_Linux_Drivers|Dlink DWA-171 AC750 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[Setup_NFS_Server_RootNFS|Setup NFS Server for RootNFS]]<br />
** [[Setup_TFTP_Server|Setup TFTP Server for booting Kernel Images]]<br />
<br />
* Electronics <br />
** [[LT8490_MPPT_Buck_Boost_Solar_Regulator| LT8490 MPPT Buck Boost Solar Regulator]]<br />
** [[LT3652_Power_Tracking_2A_Battery_Charger_SLA_Lithium_MPPT| LT3652 Power Tracking 2A Battery Charger]]<br />
** [[12V_7AH_SLA_Low_Voltage_Disconnect| 12V 7Ah SLA Low Voltage Disconnect]]<br />
**[[WD2002SJ_LTC3780_Synchronous_Buck_Boost_Converter_Ebay_Automatic_lifting_pressure| LTC3780 Synchronous Buck Boost Converter, VIN 5-32V VOUT 1-30V, 80W]]<br />
** [[OV7670_Camera_Module_with_AL422_FIFO_Theory_of_Operation|OV7670 Camera Module with AL422 FIFO - Theory of Operation]]<br />
** [[EDISON_12VDC_TO_220_380VDC_CONVERTER|EDISON: The 12VDC to 220-380VDC Converter]]<br />
<br />
* 802.15.4 WPAN Radios<br />
** [[Microchip_MRF24J40_Explorer_2.4GHz_Wireless_UART_Development_Kit_(GP-GC500)|Microchip MRF24J40 Explorer 2.4GHz Wireless UART Development Kit (GP-GC500)]]<br />
** [[Budget_802.15.4_6LoWPAN_Protocol_Analyser_using_Wireshark| Budget 802.15.4 6LoWPAN Protocol Analyser using Wireshark for the Internet of Things (IoT)]]<br />
<br />
* SensorTag (802.15.4 / BLE SoC)<br />
** [[CC2650_SensorTag_BuildYourOwnDevPack|Build your own CC2650 SensorTag DevPack Notes]]<br />
** [[6LOWPAN_Contiki_6lbr_SLIP_Radio_CC2650_SensorTag|Building 6LoWPAN Border Router using CC2650 SensorTag as SLIP-radio]]<br />
<br />
* LoRaWAN<br />
** [[LoRaWAN_Mote_Firmware_Libraries| LoRaWAN Mote Firmware Libraries]]<br />
** [[AU_915_928_The_Things_Network_Australia_Frequency_Plan|The Things Network Frequency Plan for Australia]]<br />
** [[RAK833_LoRaWAN_Concentrator_Raspberry_PI| RAK833 LoRaWAN Concentrator Hat for Raspberry PI]]<br />
<br />
* 433MHz Radios<br />
**[[Reverse_engineering_the_RF_protocol_on_a_Kambrook_Power_Point_Controller| Reverse engineering the 433MHz RF protocol on a Kambrook Power Point Controller]]<br />
**[[Reverse_engineering_the_RF_protocol_on_a_4_outlet_powerboard|Reverse engineering the 433MHz RF protocol on a 4 outlet powerboard]]<br />
<br />
* GuruPlug Server Plus<br />
** [[GuruPlug_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Embedbian_rootfs|Building an Emdebian (Embedded Debian) root filesystem for GuruPlug/armel]]<br />
** [[GuruPlug_Building_RootFS|Creating an UBIFS Root Filesystem]]<br />
** [[GuruPlug_uBoot_USB_Commands|U-Boot USB Commands]]<br />
** [[GuruPlug_Libertas_SD8688|Enabling Libertas SD8688 802.11g WiFi]]<br />
** [[Updating_the_kernel_on_the_GuruPlug|Updating the Kernel on the GuruPlug]]<br />
<br />
* Hacking the Seagate FreeAgent GoFlex Home<br />
** [[Seagate_FreeAgent_GoFlex_Home_Internal_Photos|Teardown / Internal Photos]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Console_Port|Console Port]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Firmare_Recovery|Firmware Recovery Mechanism]]<br />
** [[Seagate_GoFlexHome_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_RootFS|Creating UBIFS Root FileSystem for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_MTDTests_Toshiba_TC58NVG1S3ETA00|MTD Tests on the Toshiba TC58NVG1S3ETA00 256Mbyte NAND]]<br />
<br />
* BeagleBone Black<br />
** [[BeagleBoneBlack_Upgrading_uBoot|Upgrading U-Boot for the BeagleBone Black]]<br />
** [[BeagleBoneBlack_Building_Kernel|Building the BeagleBone Black Kernel]] <br />
** [[BeagleBoneBlack_Default_uBoot_Environment_Variables|BeagleBone Black Default uBoot Environment Variables]]<br />
** [[BeagleBoneBlack_Boot_Process|Understanding the BeagleBone Black Boot Process]]<br />
** [[BeagleBoneBlack_Cape_Manager|BeagleBone Black Cape Manager]]<br />
** [http://elinux.org/BeagleBone_and_the_3.8_Kernel Beaglebone and the 3.8 Kernel - Device Tree (DT)]<br />
** [[BeagleBoneBlack_IEEE802154_Microchip_MRF24J40| Using the Microchip IEEE 802.15.4 Radio on the BeagleBone Black]]<br />
** [[Updating_DTC| Updating the Device Tree Compiler]]<br />
<br />
* Raspberry Pi<br />
** [[Understanding_RaspberryPi_Boot_Process|Understanding the Raspberry Pi Boot Process]]<br />
** [[RaspberryPi_RootNFS|Setting up the Raspberry Pi to boot from Root NFS]]<br />
** [[Compiling_uBoot_RaspberryPi|Compiling U-Boot with Device Tree Support for the Raspberry Pi]]<br />
** [[Raspberry_Pi_Building_Mainline_Kernel|Building the Linux Kernel with Device Tree Support for the Raspberry Pi]]<br />
<br />
* ARM Userland Applications<br />
** [[Cross_Compiling_BusyBox_for_ARM|Cross Compiling BusyBox & GLIBC for ARM]]<br />
** [[Cross_Compiling_SFTP-Server_DropBear_for_ARM|Cross Compiling SFTP-server for DropBear]]<br />
** [[Cross_Compiling_MTD_Utils_for_ARM|Cross Compiling MTD Utilities for ARM]]<br />
** [[Cross_Compiling_SAMBA_for_ARM|Cross Compiling Samba SMB/CIFS Server for ARM]]<br />
** [[Cross_Compiling_USBIP_for_ARM|Cross Compiling USB/IP for ARM]]<br />
** [[Cross_Compiling_Wide-DHCPv6_for_ARM|Cross Compiling Wide DHCPv6 for ARM]]<br />
** [[Cross_Compiling_ISC_dhcp_for_ARM|Cross Compiling ISC DHCP for ARM]]<br />
** [[Cross_Compiling_BIND_for_ARM|Cross Compiling BIND for ARM]]<br />
** [[Cross_Compiling_Radvd_for_ARM|Cross Compiling Radvd for ARM]]<br />
** [[Cross_Compiling_iptables_for_ARM|Cross Compiling IPTables for ARM]]<br />
** [[Cross_Compiling_Linux_wpan_tools_for_ARM|Cross Compiling wpan-tools (IEEE 802.15.4) User Space Tools]]<br />
** [[Cross_Compiling_RP-PPPOE_for_ARM|Cross Compiling RP-PPPoE for ARM]]<br />
** [[Cross_Compiling_BlueZ_Bluetooth_tools_for_ARM|Cross Compiling BlueZ Bluetooth Tools for ARM]]<br />
** [[Cross_Compiling_Asterisk_IPPBX_for_ARM|Cross Compiling Asterisk for ARM]]<br />
** [[Cross_Compiling_iw_wpa_supplicant_hostapd_rfkill_for_ARM|Cross Compiling iw, wpa_supplicant, hostapd and rfkill for ARM]]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=RAK833_LoRaWAN_Concentrator_Raspberry_PIRAK833 LoRaWAN Concentrator Raspberry PI2018-07-04T09:44:59Z<p>Craig Peacock: Initial Page</p>
<hr />
<div><br />
== Design Files ==<br />
<br />
Open source design files for the [https://workspace.circuitmaker.com/Projects/Details/Craig-Peacock-4/RAK833-LoRaWAN-Concentrator-Hat RAK833 LoRa Concentrator Hat] can be obtained from Circuit Maker. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
== Description ==<br />
<br />
This board is a Raspberry PI Hat for the RAK833 LoRa Concentrator Gateway Module.<br />
<br />
It is smaller version of the popular RAK831. The RAK831 is larger, about the same footprint than a Raspberry PI and requires a breakout board to convert the RAK831’s 24 pin connector to the Raspberry PI’s 40 pin connector. The RAK833 is a more elegant industry standard PCI Express Mini Card form factor (Type F2).<br />
<br />
The RAK833 module consists of a [https://www.semtech.com/products/wireless-rf/lora-gateways/SX1301 Semtech SX1301] Digital Baseband chip for outdoor LoRaWAN Macro Gateways and two [https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1257 Semtech SX1257] Transceivers. The USB interface is provided by an [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H].<br />
<br />
It supports both a USB and SPI interface selectable via the SPDT_SEL pin. This makes the module ideal for Raspberry PI and other Embedded Linux platforms that do no expose USB on the expansion connector.<br />
<br />
Variants of the module are available for four different frequency ranges, 433MHz, 470MHz (China), 868MHz (Europe) & 915MHz (North America) and with or without the USB interface (FT2232H).<br />
<br />
The RAK833-SPI/USB-xxx Mini PCie Module can be purchased from [https://www.aliexpress.com/item/RAK833-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-SX1301-FT2232H-Chip-433-470-868-915MHz/32867370031.html AliExpress for US$119]. The non-USB version, the RAK833-SPI-xxx is [https://www.aliexpress.com/store/product/RAK833-SPI-SX1301Chip-868-915MHz-Industrial-Grade-Mini-PCIe-LoRa-Gateway-Concentrator-Module-support-SPI-Interface/2805180_32887664396.html US$99]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Main_PageMain Page2018-05-06T03:11:42Z<p>Craig Peacock: Add link The Things Network Frequency Plan for Australia</p>
<hr />
<div>This site contains information on the following projects:<br />
<br />
* General Information<br />
** [[IPv6|IPv6 - Internet Protocol Version 6]]<br />
** [[Imaging_of_Windows_Based_Computers_using_DISM|Imaging Windows based Computers using DISM]]<br />
** [[Ubuntu14.04_Acer_Aspire_V5_571_Broadcom_BCM43228_WiFi|WiFi on ubuntu 14.04 using Broadcom BCM43228]]<br />
** [[Watts_Cleaver_INPLUG| Watts Clever INPLUG Smart Plug]]<br />
** [[TPLINK_Archer_T4U_RTL8812au_Linux_Drivers|TP-Link Archer T4U AC1200 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[DLINK_DWA-171_AC750_RTL8812au_Linux_Drivers|Dlink DWA-171 AC750 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[Setup_NFS_Server_RootNFS|Setup NFS Server for RootNFS]]<br />
** [[Setup_TFTP_Server|Setup TFTP Server for booting Kernel Images]]<br />
<br />
* Electronics <br />
** [[LT8490_MPPT_Buck_Boost_Solar_Regulator| LT8490 MPPT Buck Boost Solar Regulator]]<br />
** [[LT3652_Power_Tracking_2A_Battery_Charger_SLA_Lithium_MPPT| LT3652 Power Tracking 2A Battery Charger]]<br />
** [[12V_7AH_SLA_Low_Voltage_Disconnect| 12V 7Ah SLA Low Voltage Disconnect]]<br />
**[[WD2002SJ_LTC3780_Synchronous_Buck_Boost_Converter_Ebay_Automatic_lifting_pressure| LTC3780 Synchronous Buck Boost Converter, VIN 5-32V VOUT 1-30V, 80W]]<br />
** [[OV7670_Camera_Module_with_AL422_FIFO_Theory_of_Operation|OV7670 Camera Module with AL422 FIFO - Theory of Operation]]<br />
** [[EDISON_12VDC_TO_220_380VDC_CONVERTER|EDISON: The 12VDC to 220-380VDC Converter]]<br />
<br />
* 802.15.4 WPAN Radios<br />
** [[Microchip_MRF24J40_Explorer_2.4GHz_Wireless_UART_Development_Kit_(GP-GC500)|Microchip MRF24J40 Explorer 2.4GHz Wireless UART Development Kit (GP-GC500)]]<br />
** [[Budget_802.15.4_6LoWPAN_Protocol_Analyser_using_Wireshark| Budget 802.15.4 6LoWPAN Protocol Analyser using Wireshark for the Internet of Things (IoT)]]<br />
<br />
* SensorTag (802.15.4 / BLE SoC)<br />
** [[CC2650_SensorTag_BuildYourOwnDevPack|Build your own CC2650 SensorTag DevPack Notes]]<br />
** [[6LOWPAN_Contiki_6lbr_SLIP_Radio_CC2650_SensorTag|Building 6LoWPAN Border Router using CC2650 SensorTag as SLIP-radio]]<br />
<br />
* LoRaWAN<br />
** [[LoRaWAN_Mote_Firmware_Libraries| LoRaWAN Mote Firmware Libraries]]<br />
** [[AU_915_928_The_Things_Network_Australia_Frequency_Plan|The Things Network Frequency Plan for Australia]]<br />
<br />
* 433MHz Radios<br />
**[[Reverse_engineering_the_RF_protocol_on_a_Kambrook_Power_Point_Controller| Reverse engineering the 433MHz RF protocol on a Kambrook Power Point Controller]]<br />
**[[Reverse_engineering_the_RF_protocol_on_a_4_outlet_powerboard|Reverse engineering the 433MHz RF protocol on a 4 outlet powerboard]]<br />
<br />
* GuruPlug Server Plus<br />
** [[GuruPlug_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Embedbian_rootfs|Building an Emdebian (Embedded Debian) root filesystem for GuruPlug/armel]]<br />
** [[GuruPlug_Building_RootFS|Creating an UBIFS Root Filesystem]]<br />
** [[GuruPlug_uBoot_USB_Commands|U-Boot USB Commands]]<br />
** [[GuruPlug_Libertas_SD8688|Enabling Libertas SD8688 802.11g WiFi]]<br />
** [[Updating_the_kernel_on_the_GuruPlug|Updating the Kernel on the GuruPlug]]<br />
<br />
* Hacking the Seagate FreeAgent GoFlex Home<br />
** [[Seagate_FreeAgent_GoFlex_Home_Internal_Photos|Teardown / Internal Photos]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Console_Port|Console Port]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Firmare_Recovery|Firmware Recovery Mechanism]]<br />
** [[Seagate_GoFlexHome_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_RootFS|Creating UBIFS Root FileSystem for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_MTDTests_Toshiba_TC58NVG1S3ETA00|MTD Tests on the Toshiba TC58NVG1S3ETA00 256Mbyte NAND]]<br />
<br />
* BeagleBone Black<br />
** [[BeagleBoneBlack_Upgrading_uBoot|Upgrading U-Boot for the BeagleBone Black]]<br />
** [[BeagleBoneBlack_Building_Kernel|Building the BeagleBone Black Kernel]] <br />
** [[BeagleBoneBlack_Default_uBoot_Environment_Variables|BeagleBone Black Default uBoot Environment Variables]]<br />
** [[BeagleBoneBlack_Boot_Process|Understanding the BeagleBone Black Boot Process]]<br />
** [[BeagleBoneBlack_Cape_Manager|BeagleBone Black Cape Manager]]<br />
** [http://elinux.org/BeagleBone_and_the_3.8_Kernel Beaglebone and the 3.8 Kernel - Device Tree (DT)]<br />
** [[BeagleBoneBlack_IEEE802154_Microchip_MRF24J40| Using the Microchip IEEE 802.15.4 Radio on the BeagleBone Black]]<br />
** [[Updating_DTC| Updating the Device Tree Compiler]]<br />
<br />
* Raspberry Pi<br />
** [[Understanding_RaspberryPi_Boot_Process|Understanding the Raspberry Pi Boot Process]]<br />
** [[RaspberryPi_RootNFS|Setting up the Raspberry Pi to boot from Root NFS]]<br />
** [[Compiling_uBoot_RaspberryPi|Compiling U-Boot with Device Tree Support for the Raspberry Pi]]<br />
** [[Raspberry_Pi_Building_Mainline_Kernel|Building the Linux Kernel with Device Tree Support for the Raspberry Pi]]<br />
<br />
* ARM Userland Applications<br />
** [[Cross_Compiling_BusyBox_for_ARM|Cross Compiling BusyBox & GLIBC for ARM]]<br />
** [[Cross_Compiling_SFTP-Server_DropBear_for_ARM|Cross Compiling SFTP-server for DropBear]]<br />
** [[Cross_Compiling_MTD_Utils_for_ARM|Cross Compiling MTD Utilities for ARM]]<br />
** [[Cross_Compiling_SAMBA_for_ARM|Cross Compiling Samba SMB/CIFS Server for ARM]]<br />
** [[Cross_Compiling_USBIP_for_ARM|Cross Compiling USB/IP for ARM]]<br />
** [[Cross_Compiling_Wide-DHCPv6_for_ARM|Cross Compiling Wide DHCPv6 for ARM]]<br />
** [[Cross_Compiling_ISC_dhcp_for_ARM|Cross Compiling ISC DHCP for ARM]]<br />
** [[Cross_Compiling_BIND_for_ARM|Cross Compiling BIND for ARM]]<br />
** [[Cross_Compiling_Radvd_for_ARM|Cross Compiling Radvd for ARM]]<br />
** [[Cross_Compiling_iptables_for_ARM|Cross Compiling IPTables for ARM]]<br />
** [[Cross_Compiling_Linux_wpan_tools_for_ARM|Cross Compiling wpan-tools (IEEE 802.15.4) User Space Tools]]<br />
** [[Cross_Compiling_RP-PPPOE_for_ARM|Cross Compiling RP-PPPoE for ARM]]<br />
** [[Cross_Compiling_BlueZ_Bluetooth_tools_for_ARM|Cross Compiling BlueZ Bluetooth Tools for ARM]]<br />
** [[Cross_Compiling_Asterisk_IPPBX_for_ARM|Cross Compiling Asterisk for ARM]]<br />
** [[Cross_Compiling_iw_wpa_supplicant_hostapd_rfkill_for_ARM|Cross Compiling iw, wpa_supplicant, hostapd and rfkill for ARM]]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Main_PageMain Page2018-05-06T02:15:00Z<p>Craig Peacock: </p>
<hr />
<div>This site contains information on the following projects:<br />
<br />
* General Information<br />
** [[IPv6|IPv6 - Internet Protocol Version 6]]<br />
** [[Imaging_of_Windows_Based_Computers_using_DISM|Imaging Windows based Computers using DISM]]<br />
** [[Ubuntu14.04_Acer_Aspire_V5_571_Broadcom_BCM43228_WiFi|WiFi on ubuntu 14.04 using Broadcom BCM43228]]<br />
** [[Watts_Cleaver_INPLUG| Watts Clever INPLUG Smart Plug]]<br />
** [[TPLINK_Archer_T4U_RTL8812au_Linux_Drivers|TP-Link Archer T4U AC1200 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[DLINK_DWA-171_AC750_RTL8812au_Linux_Drivers|Dlink DWA-171 AC750 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[Setup_NFS_Server_RootNFS|Setup NFS Server for RootNFS]]<br />
** [[Setup_TFTP_Server|Setup TFTP Server for booting Kernel Images]]<br />
<br />
* Electronics <br />
** [[LT8490_MPPT_Buck_Boost_Solar_Regulator| LT8490 MPPT Buck Boost Solar Regulator]]<br />
** [[LT3652_Power_Tracking_2A_Battery_Charger_SLA_Lithium_MPPT| LT3652 Power Tracking 2A Battery Charger]]<br />
** [[12V_7AH_SLA_Low_Voltage_Disconnect| 12V 7Ah SLA Low Voltage Disconnect]]<br />
**[[WD2002SJ_LTC3780_Synchronous_Buck_Boost_Converter_Ebay_Automatic_lifting_pressure| LTC3780 Synchronous Buck Boost Converter, VIN 5-32V VOUT 1-30V, 80W]]<br />
** [[OV7670_Camera_Module_with_AL422_FIFO_Theory_of_Operation|OV7670 Camera Module with AL422 FIFO - Theory of Operation]]<br />
** [[EDISON_12VDC_TO_220_380VDC_CONVERTER|EDISON: The 12VDC to 220-380VDC Converter]]<br />
<br />
* 802.15.4 WPAN Radios<br />
** [[Microchip_MRF24J40_Explorer_2.4GHz_Wireless_UART_Development_Kit_(GP-GC500)|Microchip MRF24J40 Explorer 2.4GHz Wireless UART Development Kit (GP-GC500)]]<br />
** [[Budget_802.15.4_6LoWPAN_Protocol_Analyser_using_Wireshark| Budget 802.15.4 6LoWPAN Protocol Analyser using Wireshark for the Internet of Things (IoT)]]<br />
<br />
* SensorTag (802.15.4 / BLE SoC)<br />
** [[CC2650_SensorTag_BuildYourOwnDevPack|Build your own CC2650 SensorTag DevPack Notes]]<br />
** [[6LOWPAN_Contiki_6lbr_SLIP_Radio_CC2650_SensorTag|Building 6LoWPAN Border Router using CC2650 SensorTag as SLIP-radio]]<br />
<br />
* LoRaWAN<br />
** [[LoRaWAN_Mote_Firmware_Libraries| LoRaWAN Mote Firmware Libraries]]<br />
<br />
* 433MHz Radios<br />
**[[Reverse_engineering_the_RF_protocol_on_a_Kambrook_Power_Point_Controller| Reverse engineering the 433MHz RF protocol on a Kambrook Power Point Controller]]<br />
**[[Reverse_engineering_the_RF_protocol_on_a_4_outlet_powerboard|Reverse engineering the 433MHz RF protocol on a 4 outlet powerboard]]<br />
<br />
* GuruPlug Server Plus<br />
** [[GuruPlug_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Embedbian_rootfs|Building an Emdebian (Embedded Debian) root filesystem for GuruPlug/armel]]<br />
** [[GuruPlug_Building_RootFS|Creating an UBIFS Root Filesystem]]<br />
** [[GuruPlug_uBoot_USB_Commands|U-Boot USB Commands]]<br />
** [[GuruPlug_Libertas_SD8688|Enabling Libertas SD8688 802.11g WiFi]]<br />
** [[Updating_the_kernel_on_the_GuruPlug|Updating the Kernel on the GuruPlug]]<br />
<br />
* Hacking the Seagate FreeAgent GoFlex Home<br />
** [[Seagate_FreeAgent_GoFlex_Home_Internal_Photos|Teardown / Internal Photos]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Console_Port|Console Port]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Firmare_Recovery|Firmware Recovery Mechanism]]<br />
** [[Seagate_GoFlexHome_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_RootFS|Creating UBIFS Root FileSystem for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_MTDTests_Toshiba_TC58NVG1S3ETA00|MTD Tests on the Toshiba TC58NVG1S3ETA00 256Mbyte NAND]]<br />
<br />
* BeagleBone Black<br />
** [[BeagleBoneBlack_Upgrading_uBoot|Upgrading U-Boot for the BeagleBone Black]]<br />
** [[BeagleBoneBlack_Building_Kernel|Building the BeagleBone Black Kernel]] <br />
** [[BeagleBoneBlack_Default_uBoot_Environment_Variables|BeagleBone Black Default uBoot Environment Variables]]<br />
** [[BeagleBoneBlack_Boot_Process|Understanding the BeagleBone Black Boot Process]]<br />
** [[BeagleBoneBlack_Cape_Manager|BeagleBone Black Cape Manager]]<br />
** [http://elinux.org/BeagleBone_and_the_3.8_Kernel Beaglebone and the 3.8 Kernel - Device Tree (DT)]<br />
** [[BeagleBoneBlack_IEEE802154_Microchip_MRF24J40| Using the Microchip IEEE 802.15.4 Radio on the BeagleBone Black]]<br />
** [[Updating_DTC| Updating the Device Tree Compiler]]<br />
<br />
* Raspberry Pi<br />
** [[Understanding_RaspberryPi_Boot_Process|Understanding the Raspberry Pi Boot Process]]<br />
** [[RaspberryPi_RootNFS|Setting up the Raspberry Pi to boot from Root NFS]]<br />
** [[Compiling_uBoot_RaspberryPi|Compiling U-Boot with Device Tree Support for the Raspberry Pi]]<br />
** [[Raspberry_Pi_Building_Mainline_Kernel|Building the Linux Kernel with Device Tree Support for the Raspberry Pi]]<br />
<br />
* ARM Userland Applications<br />
** [[Cross_Compiling_BusyBox_for_ARM|Cross Compiling BusyBox & GLIBC for ARM]]<br />
** [[Cross_Compiling_SFTP-Server_DropBear_for_ARM|Cross Compiling SFTP-server for DropBear]]<br />
** [[Cross_Compiling_MTD_Utils_for_ARM|Cross Compiling MTD Utilities for ARM]]<br />
** [[Cross_Compiling_SAMBA_for_ARM|Cross Compiling Samba SMB/CIFS Server for ARM]]<br />
** [[Cross_Compiling_USBIP_for_ARM|Cross Compiling USB/IP for ARM]]<br />
** [[Cross_Compiling_Wide-DHCPv6_for_ARM|Cross Compiling Wide DHCPv6 for ARM]]<br />
** [[Cross_Compiling_ISC_dhcp_for_ARM|Cross Compiling ISC DHCP for ARM]]<br />
** [[Cross_Compiling_BIND_for_ARM|Cross Compiling BIND for ARM]]<br />
** [[Cross_Compiling_Radvd_for_ARM|Cross Compiling Radvd for ARM]]<br />
** [[Cross_Compiling_iptables_for_ARM|Cross Compiling IPTables for ARM]]<br />
** [[Cross_Compiling_Linux_wpan_tools_for_ARM|Cross Compiling wpan-tools (IEEE 802.15.4) User Space Tools]]<br />
** [[Cross_Compiling_RP-PPPOE_for_ARM|Cross Compiling RP-PPPoE for ARM]]<br />
** [[Cross_Compiling_BlueZ_Bluetooth_tools_for_ARM|Cross Compiling BlueZ Bluetooth Tools for ARM]]<br />
** [[Cross_Compiling_Asterisk_IPPBX_for_ARM|Cross Compiling Asterisk for ARM]]<br />
** [[Cross_Compiling_iw_wpa_supplicant_hostapd_rfkill_for_ARM|Cross Compiling iw, wpa_supplicant, hostapd and rfkill for ARM]]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaWAN_Mote_Firmware_LibrariesLoRaWAN Mote Firmware Libraries2018-04-08T10:49:17Z<p>Craig Peacock: /* Microchip LoRaWAN Stack */</p>
<hr />
<div><br />
== LoRaMAC in C (LMIC) ==<br />
<br />
LMIC was originally developed by the IBM Zurich Research Laboratory. IBM has ceased development since version 1.6 (13th July 2015), however it is provided as open source under the BSD License:<br />
[https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip]<br />
<br />
Matthijs Kooijman, Thomas Telkamp and Marcus Oestreicher (IBM) has since [https://www.thethingsnetwork.org/forum/t/lmic-v1-6-vs-lorawan-1-0-2/5779/3 declared the intent to take over maintenance].<br />
<br />
* [https://github.com/matthijskooijman/arduino-lmic https://github.com/matthijskooijman/arduino-lmic]<br />
<br />
== Semtech LoRaMAC Endpoint Stack ==<br />
<br />
The LoRaMAC-node project has been developed by Semtech to provide an example of the endpoint LoRaWAN stack implementation. The stack implements all regions defined in the LoRaWAN Regional Parameters v1.0.2rB.<br />
<br />
API documentation can be found at [http://stackforce.github.io/LoRaMac-doc/ http://stackforce.github.io/LoRaMac-doc/]<br />
<br />
The source code is available from the github repository below:<br />
<br />
* [https://github.com/Lora-net/LoRaMac-node https://github.com/Lora-net/LoRaMac-node]<br />
<br />
== Microchip LoRaWAN Stack ==<br />
<br />
Microchip has written a stack for their [https://www.microchip.com/RN2483 RN2483]/[https://www.microchip.com/RN2903 RN2903] modules incorporating an [https://www.semtech.com/products/wireless-rf/lora-transceivers SX127x] LoRa Transceiver and [https://www.microchip.com/PIC18F46K22 PIC18LF46K22] Microcontroller. While the source code for the ASCII command interface (default firmware installed on the module) is not available, Microchip has released a LoRAWAN Library plug-in for MPLAB Code Configurator. Developers can use this Library to develop custom firmware for the RN2483/RN2903 or to target their own PIC16/18 design.<br />
<br />
More details on the Library and API can be found in the [http://ww1.microchip.com/downloads/en/DeviceDoc/40001864B.pdf LoRaWAN Library Plug-in for MPLAB Code Configurator User’s Guide]<br />
<br />
The Library Plug-in (version [http://ww1.microchip.com/downloads/en/DeviceDoc/release_notes_lorawan_v01.10.00_beta.pdf 01.10.00_beta]) currently only supports 8-bit PIC devices (PIC16 and PIC18 Family), the EU 433/868 (Europe) and NA 915 (North America) ISM Bands.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaWAN_Mote_Firmware_LibrariesLoRaWAN Mote Firmware Libraries2018-04-08T10:39:58Z<p>Craig Peacock: /* Microchip LoRaWAN Stack */</p>
<hr />
<div><br />
== LoRaMAC in C (LMIC) ==<br />
<br />
LMIC was originally developed by the IBM Zurich Research Laboratory. IBM has ceased development since version 1.6 (13th July 2015), however it is provided as open source under the BSD License:<br />
[https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip]<br />
<br />
Matthijs Kooijman, Thomas Telkamp and Marcus Oestreicher (IBM) has since [https://www.thethingsnetwork.org/forum/t/lmic-v1-6-vs-lorawan-1-0-2/5779/3 declared the intent to take over maintenance].<br />
<br />
* [https://github.com/matthijskooijman/arduino-lmic https://github.com/matthijskooijman/arduino-lmic]<br />
<br />
== Semtech LoRaMAC Endpoint Stack ==<br />
<br />
The LoRaMAC-node project has been developed by Semtech to provide an example of the endpoint LoRaWAN stack implementation. The stack implements all regions defined in the LoRaWAN Regional Parameters v1.0.2rB.<br />
<br />
API documentation can be found at [http://stackforce.github.io/LoRaMac-doc/ http://stackforce.github.io/LoRaMac-doc/]<br />
<br />
The source code is available from the github repository below:<br />
<br />
* [https://github.com/Lora-net/LoRaMac-node https://github.com/Lora-net/LoRaMac-node]<br />
<br />
== Microchip LoRaWAN Stack ==<br />
<br />
Microchip has written a stack for their [https://www.microchip.com/RN2483 RN2483]/[https://www.microchip.com/RN2903 RN2903] modules incorporating an [https://www.semtech.com/products/wireless-rf/lora-transceivers SX127x] LoRa Transceiver and PIC18LF46K22 Microcontroller. While the source code for the ASCII command interface (default firmware installed on the module) is not available, Microchip has released a LoRAWAN Library plug-in for MPLAB Code Configurator. Developers can use this Library to develop custom firmware for the RN2483/RN2903 or to target their own PIC16/18 design.<br />
<br />
More details on the Library and API can be found in the [http://ww1.microchip.com/downloads/en/DeviceDoc/40001864B.pdf LoRaWAN Library Plug-in for MPLAB Code Configurator User’s Guide]<br />
<br />
The Library Plug-in (version [http://ww1.microchip.com/downloads/en/DeviceDoc/release_notes_lorawan_v01.10.00_beta.pdf 01.10.00_beta]) currently only supports 8-bit PIC devices (PIC16 and PIC18 Family), the EU 433/868 (Europe) and NA 915 (North America) ISM Bands.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaWAN_Mote_Firmware_LibrariesLoRaWAN Mote Firmware Libraries2018-04-08T10:37:43Z<p>Craig Peacock: /* Microchip LoRaWAN Stack */</p>
<hr />
<div><br />
== LoRaMAC in C (LMIC) ==<br />
<br />
LMIC was originally developed by the IBM Zurich Research Laboratory. IBM has ceased development since version 1.6 (13th July 2015), however it is provided as open source under the BSD License:<br />
[https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip]<br />
<br />
Matthijs Kooijman, Thomas Telkamp and Marcus Oestreicher (IBM) has since [https://www.thethingsnetwork.org/forum/t/lmic-v1-6-vs-lorawan-1-0-2/5779/3 declared the intent to take over maintenance].<br />
<br />
* [https://github.com/matthijskooijman/arduino-lmic https://github.com/matthijskooijman/arduino-lmic]<br />
<br />
== Semtech LoRaMAC Endpoint Stack ==<br />
<br />
The LoRaMAC-node project has been developed by Semtech to provide an example of the endpoint LoRaWAN stack implementation. The stack implements all regions defined in the LoRaWAN Regional Parameters v1.0.2rB.<br />
<br />
API documentation can be found at [http://stackforce.github.io/LoRaMac-doc/ http://stackforce.github.io/LoRaMac-doc/]<br />
<br />
The source code is available from the github repository below:<br />
<br />
* [https://github.com/Lora-net/LoRaMac-node https://github.com/Lora-net/LoRaMac-node]<br />
<br />
== Microchip LoRaWAN Stack ==<br />
<br />
Microchip has written a stack for their [https://www.microchip.com/RN2483 RN2483]/[https://www.microchip.com/RN2903 RN2903] modules incorporating an SX127x LoRa Transceiver and PIC18LF46K22 Microcontroller. While the source code for the ASCII command interface (default firmware installed on the module) is not available, Microchip has released a LoRAWAN Library plug-in for MPLAB Code Configurator. Developers can use this Library to develop custom firmware for the RN2483/RN2903 or to target their own PIC16/18 design.<br />
<br />
More details on the Library and API can be found in the [http://ww1.microchip.com/downloads/en/DeviceDoc/40001864B.pdf LoRaWAN Library Plug-in for MPLAB Code Configurator User’s Guide]<br />
<br />
The Library Plug-in (version [http://ww1.microchip.com/downloads/en/DeviceDoc/release_notes_lorawan_v01.10.00_beta.pdf 01.10.00_beta]) currently only supports 8-bit PIC devices (PIC16 and PIC18 Family), the EU 433/868 (Europe) and NA 915 (North America) ISM Bands.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaWAN_Mote_Firmware_LibrariesLoRaWAN Mote Firmware Libraries2018-04-08T10:36:36Z<p>Craig Peacock: /* Microchip */</p>
<hr />
<div><br />
== LoRaMAC in C (LMIC) ==<br />
<br />
LMIC was originally developed by the IBM Zurich Research Laboratory. IBM has ceased development since version 1.6 (13th July 2015), however it is provided as open source under the BSD License:<br />
[https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip]<br />
<br />
Matthijs Kooijman, Thomas Telkamp and Marcus Oestreicher (IBM) has since [https://www.thethingsnetwork.org/forum/t/lmic-v1-6-vs-lorawan-1-0-2/5779/3 declared the intent to take over maintenance].<br />
<br />
* [https://github.com/matthijskooijman/arduino-lmic https://github.com/matthijskooijman/arduino-lmic]<br />
<br />
== Semtech LoRaMAC Endpoint Stack ==<br />
<br />
The LoRaMAC-node project has been developed by Semtech to provide an example of the endpoint LoRaWAN stack implementation. The stack implements all regions defined in the LoRaWAN Regional Parameters v1.0.2rB.<br />
<br />
API documentation can be found at [http://stackforce.github.io/LoRaMac-doc/ http://stackforce.github.io/LoRaMac-doc/]<br />
<br />
The source code is available from the github repository below:<br />
<br />
* [https://github.com/Lora-net/LoRaMac-node https://github.com/Lora-net/LoRaMac-node]<br />
<br />
== Microchip LoRaWAN Stack ==<br />
<br />
Microchip has written a stack for their RN2483/RN2903 modules incorporating an SX127x LoRa Transceiver and PIC18LF46K22 Microcontroller. While the source code for the ASCII command interface (default firmware installed on the module) is not available, Microchip has released a LoRAWAN Library plug-in for MPLAB Code Configurator. Developers can use this Library to develop custom firmware for the RN2483/RN2903 or to target their own PIC16/18 design.<br />
<br />
More details on the Library and API can be found in the [http://ww1.microchip.com/downloads/en/DeviceDoc/40001864B.pdf LoRaWAN Library Plug-in for MPLAB Code Configurator User’s Guide]<br />
<br />
The Library Plug-in (version [http://ww1.microchip.com/downloads/en/DeviceDoc/release_notes_lorawan_v01.10.00_beta.pdf 01.10.00_beta]) currently only supports 8-bit PIC devices (PIC16 and PIC18 Family), the EU 433/868 (Europe) and NA 915 (North America) ISM Bands.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaWAN_Mote_Firmware_LibrariesLoRaWAN Mote Firmware Libraries2018-04-08T10:13:54Z<p>Craig Peacock: /* LoRaMAC in C (LMIC) */</p>
<hr />
<div><br />
== LoRaMAC in C (LMIC) ==<br />
<br />
LMIC was originally developed by the IBM Zurich Research Laboratory. IBM has ceased development since version 1.6 (13th July 2015), however it is provided as open source under the BSD License:<br />
[https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip]<br />
<br />
Matthijs Kooijman, Thomas Telkamp and Marcus Oestreicher (IBM) has since [https://www.thethingsnetwork.org/forum/t/lmic-v1-6-vs-lorawan-1-0-2/5779/3 declared the intent to take over maintenance].<br />
<br />
* [https://github.com/matthijskooijman/arduino-lmic https://github.com/matthijskooijman/arduino-lmic]<br />
<br />
== Semtech LoRaMAC Endpoint Stack ==<br />
<br />
The LoRaMAC-node project has been developed by Semtech to provide an example of the endpoint LoRaWAN stack implementation. The stack implements all regions defined in the LoRaWAN Regional Parameters v1.0.2rB.<br />
<br />
API documentation can be found at [http://stackforce.github.io/LoRaMac-doc/ http://stackforce.github.io/LoRaMac-doc/]<br />
<br />
The source code is available from the github repository below:<br />
<br />
* [https://github.com/Lora-net/LoRaMac-node https://github.com/Lora-net/LoRaMac-node]<br />
<br />
== Microchip ==</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaWAN_Mote_Firmware_LibrariesLoRaWAN Mote Firmware Libraries2018-04-08T01:41:22Z<p>Craig Peacock: </p>
<hr />
<div><br />
== LoRaMAC in C (LMIC) ==<br />
<br />
LMIC was originally developed by the IBM Zurich Research Laboratory. IBM has ceased development since version 1.6 (13th July 2015), however it is provided as open source under the BSD License:<br />
[https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip]<br />
<br />
Matthijs Kooijman, Thomas Telkamp and Marcus Oestreicher (IBM) has since [https://www.thethingsnetwork.org/forum/t/lmic-v1-6-vs-lorawan-1-0-2/5779/3 declared the intent to take over maintenance].<br />
<br />
* [https://github.com/matthijskooijman/arduino-lmic https://github.com/matthijskooijman/arduino-lmic]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaWAN_Mote_Firmware_LibrariesLoRaWAN Mote Firmware Libraries2018-04-08T01:39:09Z<p>Craig Peacock: /* LoRaMAC in C (LMIC) */</p>
<hr />
<div><br />
== LoRaMAC in C (LMIC) ==<br />
<br />
LMIC was originally developed by the IBM Zurich Research Laboratory. IBM has ceased development since version 1.6 (13th July 2015), however is provided as open source under the BSD License:<br />
[https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip]<br />
<br />
Matthijs Kooijman, Thomas Telkamp and Marcus Oestreicher (IBM) has since [https://www.thethingsnetwork.org/forum/t/lmic-v1-6-vs-lorawan-1-0-2/5779/3 declared the intent to take over maintenance].<br />
<br />
* [https://github.com/matthijskooijman/arduino-lmic https://github.com/matthijskooijman/arduino-lmic]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaWAN_Mote_Firmware_LibrariesLoRaWAN Mote Firmware Libraries2018-04-08T01:36:38Z<p>Craig Peacock: Created page with " == LoRaMAC in C (LMIC) == LMIC was originally developed by the IBM Zurich Research Laboratory. IBM has ceased development since version 1.6, however is provided as open sour..."</p>
<hr />
<div><br />
== LoRaMAC in C (LMIC) ==<br />
<br />
LMIC was originally developed by the IBM Zurich Research Laboratory. IBM has ceased development since version 1.6, however is provided as open source under the BSD License:<br />
[https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip https://www.zurich.ibm.com/pdf/lrsc/lmic-release-v1.6.zip]<br />
<br />
Matthijs Kooijman, Thomas Telkamp and Marcus Oestreicher (IBM) has since [https://www.thethingsnetwork.org/forum/t/lmic-v1-6-vs-lorawan-1-0-2/5779/3 declared the intent to take over maintenance].<br />
<br />
* [https://github.com/matthijskooijman/arduino-lmic https://github.com/matthijskooijman/arduino-lmic]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=AU_915_928_The_Things_Network_Australia_Frequency_PlanAU 915 928 The Things Network Australia Frequency Plan2018-04-06T10:35:31Z<p>Craig Peacock: /* Frequency Plan for The Things Network Australia (LoRaWAN) */</p>
<hr />
<div>== Frequency Plan for The Things Network Australia (LoRaWAN) ==<br />
<br />
In Australia, the 915MHz to 928MHz spectrum can be utilised for [https://www.acma.gov.au/Industry/Spectrum/Radiocomms-licensing/Class-licences/shortrange-spreadspectrum-devices-fact-sheet Short-range spread-spectrum and digital modulation devices] under a LIPD (Low Interference Potential Devices) Class Licence issued by the [https://www.acma.gov.au Australian Communications and Media Authority].<br />
<br />
One should observe that this band is narrower than the spectrum allocated in North America (NA915). In the United States, spectrum between 902MHz and 928MHz can be used for ISM.<br />
<br />
In Australia, 898.4MHz to 906.8MHz is allocated to Optus and 906.8MHz to 915MHz to Vodafone Hutchison Australia for 'GSM' band mobile phone services. The Optus 2G Network was shutdown on the [https://yescrowd.optus.com.au/t5/Blog/2G-Network-Closure-Update/ba-p/178495 1st August 2017] and the VHA network is scheduled to be shutdown on the [https://www.vodafone.com.au/red-wire/goodbye-to-2g 30th April 2018]. Despite 2G services being shutdown, this spectrum will remain licenced. The ACMA plans to [https://www.acma.gov.au/Industry/Spectrum/Spectrum-projects/800-and-900-MHz-bands/reconfiguring-the-890-915-935-960-mhz-band reconfigure] and sell this spectrum.<br />
<br />
When using LoRa devices in Australia, one must ensure they do no operate on Licenced spectrum.<br />
<br />
The AU_915_928 Frequency Plan is:<br />
<br />
<PRE><br />
Uplink: <br />
Channel MHz Hz SF <br />
1 916.8 916800000 SF7BW125 to SF10BW125<br />
2 917.0 917000000 SF7BW125 to SF10BW125<br />
3 917.2 917200000 SF7BW125 to SF10BW125<br />
4 917.4 917400000 SF7BW125 to SF10BW125<br />
5 917.6 917600000 SF7BW125 to SF10BW125<br />
6 917.8 917800000 SF7BW125 to SF10BW125<br />
7 918.0 918000000 SF7BW125 to SF10BW125<br />
8 918.2 918200000 SF7BW125 to SF10BW125<br />
9 917.5 917500000 SF8BW500<br />
<br />
Downlink: <br />
Channel MHz Hz SF<br />
1 923.3 923300000 SF7BW500 to SF12BW500<br />
2 923.9 923900000 SF7BW500 to SF12BW500<br />
3 924.5 924500000 SF7BW500 to SF12BW500<br />
4 925.1 925100000 SF7BW500 to SF12BW500<br />
5 925.7 925700000 SF7BW500 to SF12BW500<br />
6 926.3 926300000 SF7BW500 to SF12BW500<br />
7 926.9 926900000 SF7BW500 to SF12BW500<br />
8 927.5 927500000 SF7BW500 to SF12BW500<br />
</PRE><br />
<br />
The Frequency Plan for USA, Canada and South America share the same Downlink channel frequencies, however the Uplink frequencies are between 903.9MHz and 905.3MHz coinciding with the licenced GSM Bands.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=AU_915_928_The_Things_Network_Australia_Frequency_PlanAU 915 928 The Things Network Australia Frequency Plan2018-04-04T11:50:10Z<p>Craig Peacock: </p>
<hr />
<div>== Frequency Plan for The Things Network Australia (LoRaWAN) ==<br />
<br />
In Australia, the 915MHz to 928MHz spectrum can be utilised for [https://www.acma.gov.au/Industry/Spectrum/Radiocomms-licensing/Class-licences/shortrange-spreadspectrum-devices-fact-sheet Short-range spread-spectrum and digital modulation devices] under a LIPD (Low Interference Potential Devices) Class Licence issued by the [https://www.acma.gov.au Australian Communications and Media Authority].<br />
<br />
One should observe that this band is narrower than the spectrum allocated in North America (NA915). In the United States, spectrum between 902MHz and 928MHz can be used for ISM.<br />
<br />
In Australia, 898.4MHz to 906.8MHz is allocated to Optus and 906.8MHz to 915MHz to Vodafone Hutchison Australia for 'GSM' band mobile phone services. The Optus 2G Network was shutdown on the [https://yescrowd.optus.com.au/t5/Blog/2G-Network-Closure-Update/ba-p/178495 1st August 2017] and the VHA network is scheduled to be shutdown on the [https://www.vodafone.com.au/red-wire/goodbye-to-2g 30th April 2018]. Despite 2G services being shutdown, this spectrum will remain licenced. The ACMA plans to [https://www.acma.gov.au/Industry/Spectrum/Spectrum-projects/800-and-900-MHz-bands/reconfiguring-the-890-915-935-960-mhz-band reconfigure] and sell this spectrum.<br />
<br />
When using LoRa devices in Australia, one must ensure they do no operate on Licenced spectrum.<br />
<br />
The AU_915_928 Frequency Plan is:<br />
<br />
<PRE><br />
Uplink: <br />
Channel MHz Hz SF <br />
1 916.8 91680000 SF7BW125 to SF10BW125<br />
2 917.0 91700000 SF7BW125 to SF10BW125<br />
3 917.2 91720000 SF7BW125 to SF10BW125<br />
4 917.4 91740000 SF7BW125 to SF10BW125<br />
5 917.6 91760000 SF7BW125 to SF10BW125<br />
6 917.8 91780000 SF7BW125 to SF10BW125<br />
7 918.0 91800000 SF7BW125 to SF10BW125<br />
8 918.2 91820000 SF7BW125 to SF10BW125<br />
9 917.5 91750000 SF8BW500<br />
<br />
Downlink: <br />
Channel MHz Hz SF<br />
1 923.3 92330000 SF7BW500 to SF12BW500<br />
2 923.9 92390000 SF7BW500 to SF12BW500<br />
3 924.5 92450000 SF7BW500 to SF12BW500<br />
4 925.1 92510000 SF7BW500 to SF12BW500<br />
5 925.7 92570000 SF7BW500 to SF12BW500<br />
6 926.3 92630000 SF7BW500 to SF12BW500<br />
7 926.9 92690000 SF7BW500 to SF12BW500<br />
8 927.5 92750000 SF7BW500 to SF12BW500<br />
</PRE><br />
<br />
The Frequency Plan for USA, Canada and South America share the same Downlink channel frequencies, however the Uplink frequencies are between 903.9MHz and 905.3MHz coinciding with the licenced GSM Bands.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=AU_915_928_The_Things_Network_Australia_Frequency_PlanAU 915 928 The Things Network Australia Frequency Plan2018-04-03T13:21:13Z<p>Craig Peacock: /* Frequency Plan for The Things Network Australia (LoRaWAN) */</p>
<hr />
<div>== Frequency Plan for The Things Network Australia (LoRaWAN) ==<br />
<br />
In Australia, the 915MHz to 928MHz spectrum can be utilised for [https://www.acma.gov.au/Industry/Spectrum/Radiocomms-licensing/Class-licences/shortrange-spreadspectrum-devices-fact-sheet Short-range spread-spectrum and digital modulation devices] under a LIPD (Low Interference Potential Devices) Class Licence issued by the [https://www.acma.gov.au Australian Communications and Media Authority].<br />
<br />
One should observe that this band is narrower than the spectrum allocated in North America (NA915). In the United States, spectrum between 902MHz and 928MHz can be used for ISM.<br />
<br />
In Australia, 898.4MHz to 906.8MHz is allocated to Optus and 906.8MHz to 915MHz to Vodafone Hutchison Australia for 'GSM' band mobile phone services. The Optus 2G Network was shutdown on the [https://yescrowd.optus.com.au/t5/Blog/2G-Network-Closure-Update/ba-p/178495 1st August 2017] and the VHA network is scheduled to be shutdown on the [https://www.vodafone.com.au/red-wire/goodbye-to-2g 30th April 2018]. Despite 2G services being shutdown, this spectrum will remain licenced. The ACMA plans to [https://www.acma.gov.au/Industry/Spectrum/Spectrum-projects/800-and-900-MHz-bands/reconfiguring-the-890-915-935-960-mhz-band reconfigure] and sell this spectrum.<br />
<br />
When using LoRa devices in Australia, one must ensure they do no operate on Licenced spectrum.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=AU_915_928_The_Things_Network_Australia_Frequency_PlanAU 915 928 The Things Network Australia Frequency Plan2018-04-03T13:20:24Z<p>Craig Peacock: /* Frequency Plan for The Things Network Australia (LoRaWAN) */</p>
<hr />
<div>== Frequency Plan for The Things Network Australia (LoRaWAN) ==<br />
<br />
In Australia, the 915MHz to 928MHz spectrum can be utilised for [https://www.acma.gov.au/Industry/Spectrum/Radiocomms-licensing/Class-licences/shortrange-spreadspectrum-devices-fact-sheet Short-range spread-spectrum and digital modulation devices] under a LIPD (Low Interference Potential Devices) Class Licence issued by the [https://www.acma.gov.au Australian Communications and Media Authority].<br />
<br />
One should observe that this band is narrower than the spectrum allocated in North America (NA915). In the United States, spectrum between 902MHz and 928MHz can be used for ISM.<br />
<br />
In Australia, 898.4MHz to 906.8MHz is allocated to Optus and 906.8MHz to 915MHz to Vodafone Hutchison Australia for 'GSM' band mobile phone services. The Optus 2G Network was shutdown on the 1st August 2017 and the VHA network is scheduled to be shutdown on the 30th April 2018. Despite 2G services being shutdown, this spectrum will remain licenced. The ACMA plans to [https://www.acma.gov.au/Industry/Spectrum/Spectrum-projects/800-and-900-MHz-bands/reconfiguring-the-890-915-935-960-mhz-band reconfigure] and sell this spectrum.<br />
<br />
When using LoRa devices in Australia, one must ensure they do no operate on Licenced spectrum.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaGO_Dock_Single_Channel_LoRaWAN_GatewayLoRaGO Dock Single Channel LoRaWAN Gateway2018-04-01T12:36:59Z<p>Craig Peacock: /* LoRaGo DOCK – 915MHz Single-Channel LoRaWAN Gateway */</p>
<hr />
<div>== LoRaGo DOCK – 915MHz Single-Channel LoRaWAN Gateway ==<br />
<br />
[https://sandboxelectronics.com Sandbox Electronics] manufactures a brilliant and compact [https://www.thethingsnetwork.org/docs/gateways/start/single-channel.html Single-Channel LoRaWAN Gateway] based on the [https://www.espressif.com/en/products/hardware/esp8266ex/overview ESP8266 WiFi SoC] and [https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1276 SX1276 LoRa Transceiver].<br />
<br />
Sandbox sells these boards on [https://www.ebay.com.au/sch/i.html?_nkw=LoRaGo+Dock ebay] for $22.95USD.<br />
<br />
''Single Channel Gateways are not LoRaWAN compliant, are not supported by [https://www.thethingsnetwork.org The Things Network] and should only be used for testing and development purposes.''<br />
<br />
=== Firmware ===<br />
<br />
Sandbox has a GitHub repository at the link below, however the firmware appears to be version 0.8.1 (25/01/2018) and is out of date: <br />
* [https://github.com/SandboxElectronics/LoRaGoDOCK-Gateway https://github.com/SandboxElectronics/LoRaGoDOCK-Gateway]<br />
<br />
This hardware can also use the generic ESP8266 Single Channel LoRaWAN Gateway code maintained by Maarten Westenberg. At the time of writing, this is version 5.0.6 (12/02/2018) <br />
* [https://github.com/things4u/ESP-1ch-Gateway-v5.0 https://github.com/things4u/ESP-1ch-Gateway-v5.0]<br />
<br />
=== Setup for AU_915_928 Frequency Plan ===</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaGO_Dock_Single_Channel_LoRaWAN_GatewayLoRaGO Dock Single Channel LoRaWAN Gateway2018-04-01T12:27:33Z<p>Craig Peacock: /* LoRaGo DOCK – 915MHz Single-Channel LoRaWAN Gateway */</p>
<hr />
<div>== LoRaGo DOCK – 915MHz Single-Channel LoRaWAN Gateway ==<br />
<br />
[https://sandboxelectronics.com Sandbox Electronics] manufactures a brilliant and compact Single-Channel LoRaWAN Gateway based on the [https://www.espressif.com/en/products/hardware/esp8266ex/overview ESP8266 WiFi SoC] and [https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1276 SX1276 LoRa Transceiver].<br />
<br />
Sandbox sells these boards on [https://www.ebay.com.au/sch/i.html?_nkw=LoRaGo+Dock ebay] for $22.95USD.<br />
<br />
''Single Channel Gateways are not LoRaWAN compliant, are not supported by [https://www.thethingsnetwork.org The Things Network] and should only be used for testing and development purposes.''<br />
<br />
=== Firmware ===<br />
<br />
Sandbox has a GitHub repository at the link below, however the firmware appears to be version 0.8.1 (25/01/2018) and is out of date: <br />
* [https://github.com/SandboxElectronics/LoRaGoDOCK-Gateway https://github.com/SandboxElectronics/LoRaGoDOCK-Gateway]<br />
<br />
This hardware can also use the generic ESP8266 Single Channel LoRaWAN Gateway code maintained by Maarten Westenberg. At the time of writing, this is version 5.0.6 (12/02/2018) <br />
* [https://github.com/things4u/ESP-1ch-Gateway-v5.0 https://github.com/things4u/ESP-1ch-Gateway-v5.0]<br />
<br />
=== Setup for AU_915_928 Frequency Plan ===</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaGO_Dock_Single_Channel_LoRaWAN_GatewayLoRaGO Dock Single Channel LoRaWAN Gateway2018-04-01T12:26:54Z<p>Craig Peacock: /* LoRaGo DOCK – 915MHz Single-Channel LoRaWAN Gateway */</p>
<hr />
<div>== LoRaGo DOCK – 915MHz Single-Channel LoRaWAN Gateway ==<br />
<br />
[https://sandboxelectronics.com Sandbox Electronics] manufactures a brilliant and compact Single-Channel LoRaWAN Gateway based on the [https://www.espressif.com/en/products/hardware/esp8266ex/overview ESP8266 WiFi SoC] and [https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1276 SX1276 LoRa Transceiver].<br />
<br />
Sandbox sells these boards on [https://www.ebay.com.au/sch/i.html?_nkw=LoRaGo+Dock ebay] for $22.95USD.<br />
<br />
Single Channel Gateways are not LoRaWAN compliant, are not supported by [https://www.thethingsnetwork.org The Things Network] and should only be used for testing and development purposes.<br />
<br />
=== Firmware ===<br />
<br />
Sandbox has a GitHub repository at the link below, however the firmware appears to be version 0.8.1 (25/01/2018) and is out of date: <br />
* [https://github.com/SandboxElectronics/LoRaGoDOCK-Gateway https://github.com/SandboxElectronics/LoRaGoDOCK-Gateway]<br />
<br />
This hardware can also use the generic ESP8266 Single Channel LoRaWAN Gateway code maintained by Maarten Westenberg. At the time of writing, this is version 5.0.6 (12/02/2018) <br />
* [https://github.com/things4u/ESP-1ch-Gateway-v5.0 https://github.com/things4u/ESP-1ch-Gateway-v5.0]<br />
<br />
=== Setup for AU_915_928 Frequency Plan ===</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LoRaGO_Dock_Single_Channel_LoRaWAN_GatewayLoRaGO Dock Single Channel LoRaWAN Gateway2018-04-01T12:18:49Z<p>Craig Peacock: Created page with "== LoRaGo DOCK – 915MHz Single-Channel LoRaWAN Gateway == [https://sandboxelectronics.com Sandbox Electronics] manufacturers a brilliant and compact Single-Channel LoRaWAN ..."</p>
<hr />
<div>== LoRaGo DOCK – 915MHz Single-Channel LoRaWAN Gateway ==<br />
<br />
[https://sandboxelectronics.com Sandbox Electronics] manufacturers a brilliant and compact Single-Channel LoRaWAN Gateway based on the [https://www.espressif.com/en/products/hardware/esp8266ex/overview ESP8266 WiFi SoC] and [https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1276 SX1276 LoRa Transceiver].<br />
<br />
Sandbox sells these boards on [https://www.ebay.com.au/sch/i.html?_nkw=LoRaGo+Dock ebay] for $22.95USD.<br />
<br />
Single Channel Gateways are not LoRaWAN compliant, are not supported by [https://www.thethingsnetwork.org The Things Network] and should only be used for testing and development purposes.<br />
<br />
=== Firmware ===<br />
<br />
Sandbox has a GitHub repository at the link below, however the firmware appears to be version 0.8.1 (25/01/2018) and is out of date: <br />
* [https://github.com/SandboxElectronics/LoRaGoDOCK-Gateway https://github.com/SandboxElectronics/LoRaGoDOCK-Gateway]<br />
<br />
This hardware can also use the generic ESP8266 Single Channel LoRaWAN Gateway code maintained by Maarten Westenberg. At the time of writing, this is version 5.0.6 (12/02/2018) <br />
* [https://github.com/things4u/ESP-1ch-Gateway-v5.0 https://github.com/things4u/ESP-1ch-Gateway-v5.0]<br />
<br />
=== Setup for AU_915_928 Frequency Plan ===</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=AU_915_928_The_Things_Network_Australia_Frequency_PlanAU 915 928 The Things Network Australia Frequency Plan2018-04-01T11:43:13Z<p>Craig Peacock: Created page with "== Frequency Plan for The Things Network Australia (LoRaWAN) =="</p>
<hr />
<div>== Frequency Plan for The Things Network Australia (LoRaWAN) ==</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=FOSCAM_FireFox_PlugInFOSCAM FireFox PlugIn2017-06-25T12:29:18Z<p>Craig Peacock: </p>
<hr />
<div><br />
Since the release of Firefox 52 the Foscam browser plug-in has not been supported, and will not load.<br />
<br />
To work around the issue, <br />
<br />
1. Install a 32-bit version of Firefox.<br />
<br />
2. Type about:config to get a list of preferences. <br />
<br />
3. Create a new boolean called plugin.load_flash_only<br />
<br />
4. Set this parameter to false.<br />
<br />
5. Restart Firefox.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=FOSCAM_FireFox_PlugInFOSCAM FireFox PlugIn2017-06-25T12:28:54Z<p>Craig Peacock: Created page with " Since the release of Firefox 52 the Foscam browser plug-in has not been supported, and will not load. To work around the issue, 1. Install a 32-bit version of Firefox. 2. ..."</p>
<hr />
<div><br />
Since the release of Firefox 52 the Foscam browser plug-in has not been supported, and will not load.<br />
<br />
To work around the issue, <br />
<br />
1. Install a 32-bit version of Firefox.<br />
2. Type about:config to get a list of preferences. <br />
3. Create a new boolean called plugin.load_flash_only<br />
4. Set this parameter to false.<br />
5. Restart Firefox.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LT3652_Power_Tracking_2A_Battery_Charger_SLA_Lithium_MPPTLT3652 Power Tracking 2A Battery Charger SLA Lithium MPPT2017-06-18T09:28:56Z<p>Craig Peacock: Added URL to LT3652</p>
<hr />
<div><br />
http://wiki.beyondlogic.org/i/LT3652_Power_Tracking_2A_Battery_Charger.png<br />
<br />
== Design Files ==<br />
<br />
Open source design files for the LT3652 Power Tracking 2A Battery Charger can be obtained from [https://circuitmaker.com/Projects/Details/Craig-Peacock-4/Solar-Power-Charger-2A-Lithium-SLA Circuit Maker]. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
A PDF version of the schematic can be obtained [http://wiki.beyondlogic.org/downloads/LT3652_Power_Tracking_2A_Battery_Charger_Schematics.pdf here].<br />
<br />
== Description ==<br />
<br />
This project is based on a Linear Technology [http://www.linear.com/product/LT3652 LT3652 Power Tracking 2A Battery Charger] for Solar Power.<br />
<br />
Featuring a wide 5 to 32V input range and input supply regulation loop for peak power tracking, this battery charger suits Li-Ion/Li-Polymer, LiFePO4 and SLA Chemistries with a programmable maximum battery voltage of 14.4V and a maximum current of 2 amps.<br />
<br />
The current schematic design is for a 2A, 12V SLA charger with 13.8V float.<br />
<br />
The R1/R2 voltage divider sets the maximum power point voltage to 17.2V. The maximum charging current is reduced when the input voltage is below 17.2V (VIN_REG pin is under 2.7V). Set this voltage divider to your PV Panel’s VMPP.<br />
<br />
The maximum charging current is set by R3. A 0.05 ohm shunt sets the maximum charging current at 2A, the maximum current possible from the LT3652.<br />
<br />
The R6/R8 voltage divider sets a battery voltage of 14.4V. R6 should be selected to obtain a 3.3V input on the VFB pin. This pin has an 110nA input bias that can be compensated using a voltage divider with a 250k equivalent resistance. R7 is calculated to compensate the network and obtain this 250k equivalent resistance.<br />
<br />
R9/D7 are optional and can be used with sealed lead acid batteries to set a float voltage after C/10 has been reached. i.e. for a 12V SLA battery, the initial battery voltage can be selected to be 14.4V, and this reduces to a float voltage of 13.8V once C/10 is reached and the CHRG LED is extinguished.<br />
<br />
The boost pin is used to bootstrap the internal switch gate. It has an operational range of 0 to 8.5V. As such, 6.2V Zener D3 is used to reduce the potential on the boost pin.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Watts_Cleaver_INPLUGWatts Cleaver INPLUG2017-06-18T03:39:17Z<p>Craig Peacock: /* Watts Clever INPLUG APP Controlled Power Point Socket */</p>
<hr />
<div><br />
<br />
== Watts Clever INPLUG APP Controlled Power Point Socket ==<br />
<br />
Watts Clever have rebranded a [https://www.wattsclever.com.au/products/inplug-wifi-app-controlled-socket WiFi Controlled Power Socket] allowing users to turn on and off devices connected to the socket, and monitor power consumption of the device. I have purchased one for the energy monitoring feature.<br />
<br />
The last version of the [https://play.google.com/store/apps/details?id=com.wattsclever.inplug.app Watts Clever branded app] is version 1.1, last updated on the 15th December 2015. Disappointingly, when executed on later versions of Android, the app will not start but rather report:<br />
<br />
"Unfortunately, Inplug has stopped"<br />
<br />
Sniffing the device with Wireshark shows it uses a hostname of "Ankuoo Neo-XX-XX-XX, suggesting it is a rebranded [http://www.ankuoo.com/products/?sort=2 Ankuoo NEO PRO]<br />
<br />
Hence, downloading the [https://play.google.com/store/apps/details?id=com.ankuoo.eno Ankuoo NEO App] successfully works with the Watts Clever branded device and Lollipop.<br />
<br />
The latest version is 1.2.1, dated 28th February 2016 and resolves a compatibility issue with Android 5.0 Lollipop.<br />
<br />
Further investigation shows the device talks back to the cloud using us.broadlink.com.cn and appears to be a Broadlink SP2 Smart Plug.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Main_PageMain Page2017-06-18T03:36:43Z<p>Craig Peacock: Added link to Watts Clever Smart Plug</p>
<hr />
<div>This site contains information on the following projects:<br />
<br />
* General Information<br />
** [[IPv6|IPv6 - Internet Protocol Version 6]]<br />
** [[Imaging_of_Windows_Based_Computers_using_DISM|Imaging Windows based Computers using DISM]]<br />
** [[Ubuntu14.04_Acer_Aspire_V5_571_Broadcom_BCM43228_WiFi|WiFi on ubuntu 14.04 using Broadcom BCM43228]]<br />
** [[Watts_Cleaver_INPLUG| Watts Clever INPLUG Smart Plug]]<br />
** [[TPLINK_Archer_T4U_RTL8812au_Linux_Drivers|TP-Link Archer T4U AC1200 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[DLINK_DWA-171_AC750_RTL8812au_Linux_Drivers|Dlink DWA-171 AC750 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[Setup_NFS_Server_RootNFS|Setup NFS Server for RootNFS]]<br />
** [[Setup_TFTP_Server|Setup TFTP Server for booting Kernel Images]]<br />
<br />
* Electronics <br />
** [[LT8490_MPPT_Buck_Boost_Solar_Regulator| LT8490 MPPT Buck Boost Solar Regulator]]<br />
** [[LT3652_Power_Tracking_2A_Battery_Charger_SLA_Lithium_MPPT| LT3652 Power Tracking 2A Battery Charger]]<br />
** [[12V_7AH_SLA_Low_Voltage_Disconnect| 12V 7Ah SLA Low Voltage Disconnect]]<br />
**[[WD2002SJ_LTC3780_Synchronous_Buck_Boost_Converter_Ebay_Automatic_lifting_pressure| LTC3780 Synchronous Buck Boost Converter, VIN 5-32V VOUT 1-30V, 80W]]<br />
** [[OV7670_Camera_Module_with_AL422_FIFO_Theory_of_Operation|OV7670 Camera Module with AL422 FIFO - Theory of Operation]]<br />
** [[EDISON_12VDC_TO_220_380VDC_CONVERTER|EDISON: The 12VDC to 220-380VDC Converter]]<br />
<br />
* 802.15.4 WPAN Radios<br />
** [[Microchip_MRF24J40_Explorer_2.4GHz_Wireless_UART_Development_Kit_(GP-GC500)|Microchip MRF24J40 Explorer 2.4GHz Wireless UART Development Kit (GP-GC500)]]<br />
** [[Budget_802.15.4_6LoWPAN_Protocol_Analyser_using_Wireshark| Budget 802.15.4 6LoWPAN Protocol Analyser using Wireshark for the Internet of Things (IoT)]]<br />
<br />
* SensorTag (802.15.4 / BLE SoC)<br />
** [[CC2650_SensorTag_BuildYourOwnDevPack|Build your own CC2650 SensorTag DevPack Notes]]<br />
** [[6LOWPAN_Contiki_6lbr_SLIP_Radio_CC2650_SensorTag|Building 6LoWPAN Border Router using CC2650 SensorTag as SLIP-radio]]<br />
<br />
* 433MHz Radios<br />
**[[Reverse_engineering_the_RF_protocol_on_a_Kambrook_Power_Point_Controller| Reverse engineering the 433MHz RF protocol on a Kambrook Power Point Controller]]<br />
**[[Reverse_engineering_the_RF_protocol_on_a_4_outlet_powerboard|Reverse engineering the 433MHz RF protocol on a 4 outlet powerboard]]<br />
<br />
* GuruPlug Server Plus<br />
** [[GuruPlug_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Embedbian_rootfs|Building an Emdebian (Embedded Debian) root filesystem for GuruPlug/armel]]<br />
** [[GuruPlug_Building_RootFS|Creating an UBIFS Root Filesystem]]<br />
** [[GuruPlug_uBoot_USB_Commands|U-Boot USB Commands]]<br />
** [[GuruPlug_Libertas_SD8688|Enabling Libertas SD8688 802.11g WiFi]]<br />
** [[Updating_the_kernel_on_the_GuruPlug|Updating the Kernel on the GuruPlug]]<br />
<br />
* Hacking the Seagate FreeAgent GoFlex Home<br />
** [[Seagate_FreeAgent_GoFlex_Home_Internal_Photos|Teardown / Internal Photos]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Console_Port|Console Port]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Firmare_Recovery|Firmware Recovery Mechanism]]<br />
** [[Seagate_GoFlexHome_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_RootFS|Creating UBIFS Root FileSystem for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_MTDTests_Toshiba_TC58NVG1S3ETA00|MTD Tests on the Toshiba TC58NVG1S3ETA00 256Mbyte NAND]]<br />
<br />
* BeagleBone Black<br />
** [[BeagleBoneBlack_Upgrading_uBoot|Upgrading U-Boot for the BeagleBone Black]]<br />
** [[BeagleBoneBlack_Building_Kernel|Building the BeagleBone Black Kernel]] <br />
** [[BeagleBoneBlack_Default_uBoot_Environment_Variables|BeagleBone Black Default uBoot Environment Variables]]<br />
** [[BeagleBoneBlack_Boot_Process|Understanding the BeagleBone Black Boot Process]]<br />
** [[BeagleBoneBlack_Cape_Manager|BeagleBone Black Cape Manager]]<br />
** [http://elinux.org/BeagleBone_and_the_3.8_Kernel Beaglebone and the 3.8 Kernel - Device Tree (DT)]<br />
** [[BeagleBoneBlack_IEEE802154_Microchip_MRF24J40| Using the Microchip IEEE 802.15.4 Radio on the BeagleBone Black]]<br />
** [[Updating_DTC| Updating the Device Tree Compiler]]<br />
<br />
* Raspberry Pi<br />
** [[Understanding_RaspberryPi_Boot_Process|Understanding the Raspberry Pi Boot Process]]<br />
** [[RaspberryPi_RootNFS|Setting up the Raspberry Pi to boot from Root NFS]]<br />
** [[Compiling_uBoot_RaspberryPi|Compiling U-Boot with Device Tree Support for the Raspberry Pi]]<br />
** [[Raspberry_Pi_Building_Mainline_Kernel|Building the Linux Kernel with Device Tree Support for the Raspberry Pi]]<br />
<br />
* ARM Userland Applications<br />
** [[Cross_Compiling_BusyBox_for_ARM|Cross Compiling BusyBox & GLIBC for ARM]]<br />
** [[Cross_Compiling_SFTP-Server_DropBear_for_ARM|Cross Compiling SFTP-server for DropBear]]<br />
** [[Cross_Compiling_MTD_Utils_for_ARM|Cross Compiling MTD Utilities for ARM]]<br />
** [[Cross_Compiling_SAMBA_for_ARM|Cross Compiling Samba SMB/CIFS Server for ARM]]<br />
** [[Cross_Compiling_USBIP_for_ARM|Cross Compiling USB/IP for ARM]]<br />
** [[Cross_Compiling_Wide-DHCPv6_for_ARM|Cross Compiling Wide DHCPv6 for ARM]]<br />
** [[Cross_Compiling_ISC_dhcp_for_ARM|Cross Compiling ISC DHCP for ARM]]<br />
** [[Cross_Compiling_BIND_for_ARM|Cross Compiling BIND for ARM]]<br />
** [[Cross_Compiling_Radvd_for_ARM|Cross Compiling Radvd for ARM]]<br />
** [[Cross_Compiling_iptables_for_ARM|Cross Compiling IPTables for ARM]]<br />
** [[Cross_Compiling_Linux_wpan_tools_for_ARM|Cross Compiling wpan-tools (IEEE 802.15.4) User Space Tools]]<br />
** [[Cross_Compiling_RP-PPPOE_for_ARM|Cross Compiling RP-PPPoE for ARM]]<br />
** [[Cross_Compiling_BlueZ_Bluetooth_tools_for_ARM|Cross Compiling BlueZ Bluetooth Tools for ARM]]<br />
** [[Cross_Compiling_Asterisk_IPPBX_for_ARM|Cross Compiling Asterisk for ARM]]<br />
** [[Cross_Compiling_iw_wpa_supplicant_hostapd_rfkill_for_ARM|Cross Compiling iw, wpa_supplicant, hostapd and rfkill for ARM]]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Watts_Cleaver_INPLUGWatts Cleaver INPLUG2017-06-18T03:35:17Z<p>Craig Peacock: /* Watts Clever INPLUG APP Controlled Power Point Socket */</p>
<hr />
<div><br />
<br />
== Watts Clever INPLUG APP Controlled Power Point Socket ==<br />
<br />
Watts Clever have rebranded a [https://www.wattsclever.com.au/products/inplug-wifi-app-controlled-socket WiFi Controlled Power Socket] allowing users to turn on and off devices connected to the socket, and monitor power consumption of the device. I have purchased one for the energy monitoring feature.<br />
<br />
The last version of the [https://play.google.com/store/apps/details?id=com.wattsclever.inplug.app Watts Clever branded app] is version 1.1, last updated on the 15th December 2015. Disappointingly, when executed on later versions of Android the app will not start, but rather report:<br />
<br />
"Unfortunately, Inplug has stopped"<br />
<br />
Sniffing the device with Wireshark shows it uses a hostname of "Ankuoo Neo-XX-XX-XX, suggesting it is a rebranded [http://www.ankuoo.com/products/?sort=2 Ankuoo NEO PRO]<br />
<br />
Hence, downloading the [https://play.google.com/store/apps/details?id=com.ankuoo.eno Ankuoo NEO App] successfully works with the Watts Clever branded device and Lollipop.<br />
<br />
The latest version is 1.2.1, dated 28th February 2016 and resolves a compatibility issue with Android 5.0 Lollipop.<br />
<br />
Further investigation shows the device talks back to the cloud using us.broadlink.com.cn and appears to be a Broadlink SP2 Smart Plug.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Watts_Cleaver_INPLUGWatts Cleaver INPLUG2017-06-18T03:34:49Z<p>Craig Peacock: /* Watts Clever INPLUG APP Controlled Power Point Socket */</p>
<hr />
<div><br />
<br />
== Watts Clever INPLUG APP Controlled Power Point Socket ==<br />
<br />
Watts Clever have rebranded a [https://www.wattsclever.com.au/products/inplug-wifi-app-controlled-socket WiFi Controlled Power Socket] allowing users to turn on and off devices connected to the socket, and monitor power consumption of the device. I have purchased one for the energy monitoring feature.<br />
<br />
The last version of the [https://play.google.com/store/apps/details?id=com.wattsclever.inplug.app Watts Clever branded app] is version 1.1, last updated on the 15th December 2015. Disappointingly, when executed on later versions of Android the app will not start, but rather report:<br />
<br />
"Unfortunately, Inplug has stopped"<br />
<br />
Sniffing the device with Wireshark shows it uses a hostname of "Ankuoo Neo-XX-XX-XX, suggesting it is a rebranded [http://www.ankuoo.com/products/?sort=2 Ankuoo NEO PRO]<br />
<br />
Hence, downloading the [https://play.google.com/store/apps/details?id=com.ankuoo.eno Ankuoo NEO App] successfully works with the Watts Cleaver branded device and Lollipop.<br />
<br />
The latest version is 1.2.1, dated 28th February 2016 and resolves a compatibility issue with Android 5.0 Lollipop.<br />
<br />
Further investigation shows the device talks back to the cloud using us.broadlink.com.cn and appears to be a Broadlink SP2 Smart Plug.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Watts_Cleaver_INPLUGWatts Cleaver INPLUG2017-06-18T03:18:34Z<p>Craig Peacock: Created page with " == Watts Clever INPLUG APP Controlled Power Point Socket == Watts Clever have rebranded a [https://www.wattsclever.com.au/products/inplug-wifi-app-controlled-socket WiFi Co..."</p>
<hr />
<div><br />
<br />
== Watts Clever INPLUG APP Controlled Power Point Socket ==<br />
<br />
Watts Clever have rebranded a [https://www.wattsclever.com.au/products/inplug-wifi-app-controlled-socket WiFi Controlled Power Socket] allowing users to turn off and on devices connected to the socket, and monitor power consumption of the device. I have purchased one for the energy monitoring feature.<br />
<br />
The last version of the [https://play.google.com/store/apps/details?id=com.wattsclever.inplug.app Watts Clever branded app] is version 1.1, last updated on the 15th December 2015. Disappointingly, when executed on later versions of Android the app will not start, but rather report:<br />
<br />
"Unfortunately, Inplug has stopped"</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Main_PageMain Page2017-06-17T12:31:35Z<p>Craig Peacock: Added link for 12V SLA Low Voltage Disconnect</p>
<hr />
<div>This site contains information on the following projects:<br />
<br />
* General Information<br />
** [[IPv6|IPv6 - Internet Protocol Version 6]]<br />
** [[Imaging_of_Windows_Based_Computers_using_DISM|Imaging Windows based Computers using DISM]]<br />
** [[Ubuntu14.04_Acer_Aspire_V5_571_Broadcom_BCM43228_WiFi|WiFi on ubuntu 14.04 using Broadcom BCM43228]]<br />
** [[TPLINK_Archer_T4U_RTL8812au_Linux_Drivers|TP-Link Archer T4U AC1200 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[DLINK_DWA-171_AC750_RTL8812au_Linux_Drivers|Dlink DWA-171 AC750 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[Setup_NFS_Server_RootNFS|Setup NFS Server for RootNFS]]<br />
** [[Setup_TFTP_Server|Setup TFTP Server for booting Kernel Images]]<br />
<br />
* Electronics <br />
** [[LT8490_MPPT_Buck_Boost_Solar_Regulator| LT8490 MPPT Buck Boost Solar Regulator]]<br />
** [[LT3652_Power_Tracking_2A_Battery_Charger_SLA_Lithium_MPPT| LT3652 Power Tracking 2A Battery Charger]]<br />
** [[12V_7AH_SLA_Low_Voltage_Disconnect| 12V 7Ah SLA Low Voltage Disconnect]]<br />
**[[WD2002SJ_LTC3780_Synchronous_Buck_Boost_Converter_Ebay_Automatic_lifting_pressure| LTC3780 Synchronous Buck Boost Converter, VIN 5-32V VOUT 1-30V, 80W]]<br />
** [[OV7670_Camera_Module_with_AL422_FIFO_Theory_of_Operation|OV7670 Camera Module with AL422 FIFO - Theory of Operation]]<br />
** [[EDISON_12VDC_TO_220_380VDC_CONVERTER|EDISON: The 12VDC to 220-380VDC Converter]]<br />
<br />
* 802.15.4 WPAN Radios<br />
** [[Microchip_MRF24J40_Explorer_2.4GHz_Wireless_UART_Development_Kit_(GP-GC500)|Microchip MRF24J40 Explorer 2.4GHz Wireless UART Development Kit (GP-GC500)]]<br />
** [[Budget_802.15.4_6LoWPAN_Protocol_Analyser_using_Wireshark| Budget 802.15.4 6LoWPAN Protocol Analyser using Wireshark for the Internet of Things (IoT)]]<br />
<br />
* SensorTag (802.15.4 / BLE SoC)<br />
** [[CC2650_SensorTag_BuildYourOwnDevPack|Build your own CC2650 SensorTag DevPack Notes]]<br />
** [[6LOWPAN_Contiki_6lbr_SLIP_Radio_CC2650_SensorTag|Building 6LoWPAN Border Router using CC2650 SensorTag as SLIP-radio]]<br />
<br />
* 433MHz Radios<br />
**[[Reverse_engineering_the_RF_protocol_on_a_Kambrook_Power_Point_Controller| Reverse engineering the 433MHz RF protocol on a Kambrook Power Point Controller]]<br />
**[[Reverse_engineering_the_RF_protocol_on_a_4_outlet_powerboard|Reverse engineering the 433MHz RF protocol on a 4 outlet powerboard]]<br />
<br />
* GuruPlug Server Plus<br />
** [[GuruPlug_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Embedbian_rootfs|Building an Emdebian (Embedded Debian) root filesystem for GuruPlug/armel]]<br />
** [[GuruPlug_Building_RootFS|Creating an UBIFS Root Filesystem]]<br />
** [[GuruPlug_uBoot_USB_Commands|U-Boot USB Commands]]<br />
** [[GuruPlug_Libertas_SD8688|Enabling Libertas SD8688 802.11g WiFi]]<br />
** [[Updating_the_kernel_on_the_GuruPlug|Updating the Kernel on the GuruPlug]]<br />
<br />
* Hacking the Seagate FreeAgent GoFlex Home<br />
** [[Seagate_FreeAgent_GoFlex_Home_Internal_Photos|Teardown / Internal Photos]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Console_Port|Console Port]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Firmare_Recovery|Firmware Recovery Mechanism]]<br />
** [[Seagate_GoFlexHome_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_RootFS|Creating UBIFS Root FileSystem for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_MTDTests_Toshiba_TC58NVG1S3ETA00|MTD Tests on the Toshiba TC58NVG1S3ETA00 256Mbyte NAND]]<br />
<br />
* BeagleBone Black<br />
** [[BeagleBoneBlack_Upgrading_uBoot|Upgrading U-Boot for the BeagleBone Black]]<br />
** [[BeagleBoneBlack_Building_Kernel|Building the BeagleBone Black Kernel]] <br />
** [[BeagleBoneBlack_Default_uBoot_Environment_Variables|BeagleBone Black Default uBoot Environment Variables]]<br />
** [[BeagleBoneBlack_Boot_Process|Understanding the BeagleBone Black Boot Process]]<br />
** [[BeagleBoneBlack_Cape_Manager|BeagleBone Black Cape Manager]]<br />
** [http://elinux.org/BeagleBone_and_the_3.8_Kernel Beaglebone and the 3.8 Kernel - Device Tree (DT)]<br />
** [[BeagleBoneBlack_IEEE802154_Microchip_MRF24J40| Using the Microchip IEEE 802.15.4 Radio on the BeagleBone Black]]<br />
** [[Updating_DTC| Updating the Device Tree Compiler]]<br />
<br />
* Raspberry Pi<br />
** [[Understanding_RaspberryPi_Boot_Process|Understanding the Raspberry Pi Boot Process]]<br />
** [[RaspberryPi_RootNFS|Setting up the Raspberry Pi to boot from Root NFS]]<br />
** [[Compiling_uBoot_RaspberryPi|Compiling U-Boot with Device Tree Support for the Raspberry Pi]]<br />
** [[Raspberry_Pi_Building_Mainline_Kernel|Building the Linux Kernel with Device Tree Support for the Raspberry Pi]]<br />
<br />
* ARM Userland Applications<br />
** [[Cross_Compiling_BusyBox_for_ARM|Cross Compiling BusyBox & GLIBC for ARM]]<br />
** [[Cross_Compiling_SFTP-Server_DropBear_for_ARM|Cross Compiling SFTP-server for DropBear]]<br />
** [[Cross_Compiling_MTD_Utils_for_ARM|Cross Compiling MTD Utilities for ARM]]<br />
** [[Cross_Compiling_SAMBA_for_ARM|Cross Compiling Samba SMB/CIFS Server for ARM]]<br />
** [[Cross_Compiling_USBIP_for_ARM|Cross Compiling USB/IP for ARM]]<br />
** [[Cross_Compiling_Wide-DHCPv6_for_ARM|Cross Compiling Wide DHCPv6 for ARM]]<br />
** [[Cross_Compiling_ISC_dhcp_for_ARM|Cross Compiling ISC DHCP for ARM]]<br />
** [[Cross_Compiling_BIND_for_ARM|Cross Compiling BIND for ARM]]<br />
** [[Cross_Compiling_Radvd_for_ARM|Cross Compiling Radvd for ARM]]<br />
** [[Cross_Compiling_iptables_for_ARM|Cross Compiling IPTables for ARM]]<br />
** [[Cross_Compiling_Linux_wpan_tools_for_ARM|Cross Compiling wpan-tools (IEEE 802.15.4) User Space Tools]]<br />
** [[Cross_Compiling_RP-PPPOE_for_ARM|Cross Compiling RP-PPPoE for ARM]]<br />
** [[Cross_Compiling_BlueZ_Bluetooth_tools_for_ARM|Cross Compiling BlueZ Bluetooth Tools for ARM]]<br />
** [[Cross_Compiling_Asterisk_IPPBX_for_ARM|Cross Compiling Asterisk for ARM]]<br />
** [[Cross_Compiling_iw_wpa_supplicant_hostapd_rfkill_for_ARM|Cross Compiling iw, wpa_supplicant, hostapd and rfkill for ARM]]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=12V_7AH_SLA_Low_Voltage_Disconnect12V 7AH SLA Low Voltage Disconnect2017-06-17T12:29:52Z<p>Craig Peacock: /* Design Files */</p>
<hr />
<div><br />
http://wiki.beyondlogic.org/i/MAX8212_12V_7AH_SLA_Low_Voltage_Disconnect.jpg<br />
<br />
== Design Files ==<br />
<br />
Open source design files for the 12V 7AH SLA Low Voltage Disconnect can be obtained from [https://circuitmaker.com/Projects/Details/Craig-Peacock-4/12V-7Ah-SLA-Low-Voltage-Disconnect Circuit Maker]. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
A PDF version of the schematic can be obtained [http://wiki.beyondlogic.org/downloads/MAX8212_12V_7Ah_SLA_Low_Voltage_Disconnect.pdf here].<br />
<br />
== Description ==<br />
<br />
A basic, no-frills low voltage cut-out for 12V, 7Ahr Sealed Lead Acid Batteries.<br />
<br />
Using two [http://www.keyelco.com/product.cfm/product_id/682 Keystone 3571] female PCB terminals, this PCB assembly attaches directly to the terminals of a 12V 7AH SLA Battery with 4.75mm Spade Terminals.<br />
<br />
The Maxim Integrated [https://www.maximintegrated.com/en/products/power/supervisors-voltage-monitors-sequencers/MAX8212.html MAX8212] Micropower Voltage Comparator with 1.15V reference switches a high side [http://www.infineon.com/cms/en/product/power/mosfet/20v-650v-automotive-mosfet/20v-150v-p-channel-automotive-mosfet/IPD90P03P4L-04/productType.html?productType=db3a30441689f4830116c8d4223c1d4f P-Channel MOSFET] to disconnect the load. The MOSFET has a low on resistance of 4.1mOhms and a maximum current capability of 90 Amps well exceeding that of the battery.<br />
<br />
The MAX8212 can operate with a programmable threshold and hysteresis (Populate R3/R6/R7) ensuring the load doesn't oscillate when the low voltage trip point is reached and the battery terminal voltage rises. However, if this behaviour is not desirable, this circuit also allows the low voltage event to be latched by populating R4/S1/R7 instead, as per Maxim [https://www.maximintegrated.com/en/app-notes/index.mvp/id/926 Application Note 926]. <br />
<br />
When the load is switched off, the MAX8212's 5uA quiescent current ensures the battery is not discharged. <br />
<br />
The 102k/953k/86.6k voltage divider sets a low voltage cutout at 11.9V and a reset high threshold of 12.87V.<br />
<br />
Three printed circuit boards fabricated by [https://oshpark.com/shared_projects/todZaEfL OSH Park costs $11.15] and the [http://wiki.beyondlogic.org/downloads/MAX8212_12V_7Ah_SLA_Low_Voltage_Disconnect_BOM.xlsx BOM cost] is approximately $12.15 from Digikey.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=12V_7AH_SLA_Low_Voltage_Disconnect12V 7AH SLA Low Voltage Disconnect2017-06-17T12:26:57Z<p>Craig Peacock: </p>
<hr />
<div><br />
http://wiki.beyondlogic.org/i/MAX8212_12V_7AH_SLA_Low_Voltage_Disconnect.jpg<br />
<br />
== Design Files ==<br />
<br />
Open source design files for the 12V 7AH SLA Low Voltage Disconnect can be obtained from [https://circuitmaker.com/Projects/Details/Craig-Peacock-4/12V-7Ah-SLA-Low-Voltage-Disconnect Circuit Maker]. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
== Description ==<br />
<br />
A basic, no-frills low voltage cut-out for 12V, 7Ahr Sealed Lead Acid Batteries.<br />
<br />
Using two [http://www.keyelco.com/product.cfm/product_id/682 Keystone 3571] female PCB terminals, this PCB assembly attaches directly to the terminals of a 12V 7AH SLA Battery with 4.75mm Spade Terminals.<br />
<br />
The Maxim Integrated [https://www.maximintegrated.com/en/products/power/supervisors-voltage-monitors-sequencers/MAX8212.html MAX8212] Micropower Voltage Comparator with 1.15V reference switches a high side [http://www.infineon.com/cms/en/product/power/mosfet/20v-650v-automotive-mosfet/20v-150v-p-channel-automotive-mosfet/IPD90P03P4L-04/productType.html?productType=db3a30441689f4830116c8d4223c1d4f P-Channel MOSFET] to disconnect the load. The MOSFET has a low on resistance of 4.1mOhms and a maximum current capability of 90 Amps well exceeding that of the battery.<br />
<br />
The MAX8212 can operate with a programmable threshold and hysteresis (Populate R3/R6/R7) ensuring the load doesn't oscillate when the low voltage trip point is reached and the battery terminal voltage rises. However, if this behaviour is not desirable, this circuit also allows the low voltage event to be latched by populating R4/S1/R7 instead, as per Maxim [https://www.maximintegrated.com/en/app-notes/index.mvp/id/926 Application Note 926]. <br />
<br />
When the load is switched off, the MAX8212's 5uA quiescent current ensures the battery is not discharged. <br />
<br />
The 102k/953k/86.6k voltage divider sets a low voltage cutout at 11.9V and a reset high threshold of 12.87V.<br />
<br />
Three printed circuit boards fabricated by [https://oshpark.com/shared_projects/todZaEfL OSH Park costs $11.15] and the [http://wiki.beyondlogic.org/downloads/MAX8212_12V_7Ah_SLA_Low_Voltage_Disconnect_BOM.xlsx BOM cost] is approximately $12.15 from Digikey.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=12V_7AH_SLA_Low_Voltage_Disconnect12V 7AH SLA Low Voltage Disconnect2017-06-17T12:21:45Z<p>Craig Peacock: </p>
<hr />
<div><br />
http://wiki.beyondlogic.org/i/MAX8212_12V_7AH_SLA_Low_Voltage_Disconnect.jpg<br />
<br />
== Design Files ==<br />
<br />
Open source design files for the 12V 7AH SLA Low Voltage Disconnect can be obtained from [https://circuitmaker.com/Projects/Details/Craig-Peacock-4/12V-7Ah-SLA-Low-Voltage-Disconnect Circuit Maker]. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
== Description ==<br />
<br />
A basic, no-frills low voltage cut-out for 12V, 7Ahr Sealed Lead Acid Batteries.<br />
<br />
Using two [http://www.keyelco.com/product.cfm/product_id/682 Keystone 3571] female PCB terminals, this PCB assembly attaches directly to the terminals of a 12V 7AH SLA Battery with 4.75mm Spade Terminals.<br />
<br />
The Maxim Integrated [https://www.maximintegrated.com/en/products/power/supervisors-voltage-monitors-sequencers/MAX8212.html MAX8212] Micropower Voltage Comparator with 1.15V reference switches a high side [http://www.infineon.com/cms/en/product/power/mosfet/20v-650v-automotive-mosfet/20v-150v-p-channel-automotive-mosfet/IPD90P03P4L-04/productType.html?productType=db3a30441689f4830116c8d4223c1d4f P-Channel MOSFET] to disconnect the load. The MOSFET has a low on resistance of 4.1mOhms and a maximum current capability of 90 Amps well exceeding that of the battery.<br />
<br />
The MAX8212 can operate with a programmable threshold and hysteresis (Populate R3/R6/R7) ensuring the load doesn't oscillate when the low voltage trip point is reached and the battery terminal voltage rises. However, if this behaviour is not desirable, this circuit also allows the low voltage event to be latched by populating R4/S1/R7 instead, as per Maxim [https://www.maximintegrated.com/en/app-notes/index.mvp/id/926 Application Note 926]. <br />
<br />
When the load is switched off, the MAX8212's 5uA quiescent current ensures the battery is not discharged. <br />
<br />
The 102k/953k/86.6k voltage divider sets a low voltage cutout at 11.9V and a reset high threshold of 12.87V.<br />
<br />
Three printed circuit boards fabricated by [https://oshpark.com/shared_projects/todZaEfL OSH Park costs $11.15] and the BOM cost is approximately $12.15 from Digikey.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=12V_7AH_SLA_Low_Voltage_Disconnect12V 7AH SLA Low Voltage Disconnect2017-06-17T12:17:11Z<p>Craig Peacock: Initial Page</p>
<hr />
<div><br />
== Design Files ==<br />
<br />
Open source design files for the 12V 7AH SLA Low Voltage Disconnect can be obtained from [https://circuitmaker.com/Projects/Details/Craig-Peacock-4/12V-7Ah-SLA-Low-Voltage-Disconnect Circuit Maker]. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
== Description ==<br />
<br />
A basic, no-frills low voltage cut-out for 12V, 7Ahr Sealed Lead Acid Batteries.<br />
<br />
Using two [http://www.keyelco.com/product.cfm/product_id/682 Keystone 3571] female PCB terminals, this PCB assembly attaches directly to the terminals of a 12V 7AH SLA Battery with 4.75mm Spade Terminals.<br />
<br />
The Maxim Integrated [https://www.maximintegrated.com/en/products/power/supervisors-voltage-monitors-sequencers/MAX8212.html MAX8212] Micropower Voltage Comparator with 1.15V reference switches a high side [http://www.infineon.com/cms/en/product/power/mosfet/20v-650v-automotive-mosfet/20v-150v-p-channel-automotive-mosfet/IPD90P03P4L-04/productType.html?productType=db3a30441689f4830116c8d4223c1d4f P-Channel MOSFET] to disconnect the load. The MOSFET has a low on resistance of 4.1mOhms and a maximum current capability of 90 Amps well exceeding that of the battery.<br />
<br />
The MAX8212 can operate with a programmable threshold and hysteresis (Populate R3/R6/R7) ensuring the load doesn't oscillate when the low voltage trip point is reached and the battery terminal voltage rises. However, if this behaviour is not desirable, this circuit also allows the low voltage event to be latched by populating R4/S1/R7 instead, as per Maxim [https://www.maximintegrated.com/en/app-notes/index.mvp/id/926 Application Note 926]. <br />
<br />
When the load is switched off, the MAX8212's 5uA quiescent current ensures the battery is not discharged. <br />
<br />
The 102k/953k/86.6k voltage divider sets a low voltage cutout at 11.9V and a reset high threshold of 12.87V.<br />
<br />
Three printed circuit boards fabricated by [https://oshpark.com/shared_projects/todZaEfL OSH Park costs $11.15] and the BOM cost is approximately $12.15 from Digikey.</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=Main_PageMain Page2017-06-17T10:55:42Z<p>Craig Peacock: Added link for LT3652</p>
<hr />
<div>This site contains information on the following projects:<br />
<br />
* General Information<br />
** [[IPv6|IPv6 - Internet Protocol Version 6]]<br />
** [[Imaging_of_Windows_Based_Computers_using_DISM|Imaging Windows based Computers using DISM]]<br />
** [[Ubuntu14.04_Acer_Aspire_V5_571_Broadcom_BCM43228_WiFi|WiFi on ubuntu 14.04 using Broadcom BCM43228]]<br />
** [[TPLINK_Archer_T4U_RTL8812au_Linux_Drivers|TP-Link Archer T4U AC1200 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[DLINK_DWA-171_AC750_RTL8812au_Linux_Drivers|Dlink DWA-171 AC750 Wireless Dual Band USB Adapter Linux Drivers]]<br />
** [[Setup_NFS_Server_RootNFS|Setup NFS Server for RootNFS]]<br />
** [[Setup_TFTP_Server|Setup TFTP Server for booting Kernel Images]]<br />
<br />
* Electronics <br />
** [[LT8490_MPPT_Buck_Boost_Solar_Regulator| LT8490 MPPT Buck Boost Solar Regulator]]<br />
** [[LT3652_Power_Tracking_2A_Battery_Charger_SLA_Lithium_MPPT| LT3652 Power Tracking 2A Battery Charger]]<br />
**[[WD2002SJ_LTC3780_Synchronous_Buck_Boost_Converter_Ebay_Automatic_lifting_pressure| LTC3780 Synchronous Buck Boost Converter, VIN 5-32V VOUT 1-30V, 80W]]<br />
** [[OV7670_Camera_Module_with_AL422_FIFO_Theory_of_Operation|OV7670 Camera Module with AL422 FIFO - Theory of Operation]]<br />
** [[EDISON_12VDC_TO_220_380VDC_CONVERTER|EDISON: The 12VDC to 220-380VDC Converter]]<br />
<br />
* 802.15.4 WPAN Radios<br />
** [[Microchip_MRF24J40_Explorer_2.4GHz_Wireless_UART_Development_Kit_(GP-GC500)|Microchip MRF24J40 Explorer 2.4GHz Wireless UART Development Kit (GP-GC500)]]<br />
** [[Budget_802.15.4_6LoWPAN_Protocol_Analyser_using_Wireshark| Budget 802.15.4 6LoWPAN Protocol Analyser using Wireshark for the Internet of Things (IoT)]]<br />
<br />
* SensorTag (802.15.4 / BLE SoC)<br />
** [[CC2650_SensorTag_BuildYourOwnDevPack|Build your own CC2650 SensorTag DevPack Notes]]<br />
** [[6LOWPAN_Contiki_6lbr_SLIP_Radio_CC2650_SensorTag|Building 6LoWPAN Border Router using CC2650 SensorTag as SLIP-radio]]<br />
<br />
* 433MHz Radios<br />
**[[Reverse_engineering_the_RF_protocol_on_a_Kambrook_Power_Point_Controller| Reverse engineering the 433MHz RF protocol on a Kambrook Power Point Controller]]<br />
**[[Reverse_engineering_the_RF_protocol_on_a_4_outlet_powerboard|Reverse engineering the 433MHz RF protocol on a 4 outlet powerboard]]<br />
<br />
* GuruPlug Server Plus<br />
** [[GuruPlug_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GuruPlug Server Plus]]<br />
** [[GuruPlug_Building_Embedbian_rootfs|Building an Emdebian (Embedded Debian) root filesystem for GuruPlug/armel]]<br />
** [[GuruPlug_Building_RootFS|Creating an UBIFS Root Filesystem]]<br />
** [[GuruPlug_uBoot_USB_Commands|U-Boot USB Commands]]<br />
** [[GuruPlug_Libertas_SD8688|Enabling Libertas SD8688 802.11g WiFi]]<br />
** [[Updating_the_kernel_on_the_GuruPlug|Updating the Kernel on the GuruPlug]]<br />
<br />
* Hacking the Seagate FreeAgent GoFlex Home<br />
** [[Seagate_FreeAgent_GoFlex_Home_Internal_Photos|Teardown / Internal Photos]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Console_Port|Console Port]] <br />
** [[Seagate_FreeAgent_GoFlex_Home_Firmare_Recovery|Firmware Recovery Mechanism]]<br />
** [[Seagate_GoFlexHome_Upgrading_uBoot|Upgrading U-Boot with Device Tree Support for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_Kernel|Building the Linux Kernel with Device Tree Support for the GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_Building_RootFS|Creating UBIFS Root FileSystem for the Seagate GoFlex Home]]<br />
** [[Seagate_FreeAgent_GoFlex_Home_MTDTests_Toshiba_TC58NVG1S3ETA00|MTD Tests on the Toshiba TC58NVG1S3ETA00 256Mbyte NAND]]<br />
<br />
* BeagleBone Black<br />
** [[BeagleBoneBlack_Upgrading_uBoot|Upgrading U-Boot for the BeagleBone Black]]<br />
** [[BeagleBoneBlack_Building_Kernel|Building the BeagleBone Black Kernel]] <br />
** [[BeagleBoneBlack_Default_uBoot_Environment_Variables|BeagleBone Black Default uBoot Environment Variables]]<br />
** [[BeagleBoneBlack_Boot_Process|Understanding the BeagleBone Black Boot Process]]<br />
** [[BeagleBoneBlack_Cape_Manager|BeagleBone Black Cape Manager]]<br />
** [http://elinux.org/BeagleBone_and_the_3.8_Kernel Beaglebone and the 3.8 Kernel - Device Tree (DT)]<br />
** [[BeagleBoneBlack_IEEE802154_Microchip_MRF24J40| Using the Microchip IEEE 802.15.4 Radio on the BeagleBone Black]]<br />
** [[Updating_DTC| Updating the Device Tree Compiler]]<br />
<br />
* Raspberry Pi<br />
** [[Understanding_RaspberryPi_Boot_Process|Understanding the Raspberry Pi Boot Process]]<br />
** [[RaspberryPi_RootNFS|Setting up the Raspberry Pi to boot from Root NFS]]<br />
** [[Compiling_uBoot_RaspberryPi|Compiling U-Boot with Device Tree Support for the Raspberry Pi]]<br />
** [[Raspberry_Pi_Building_Mainline_Kernel|Building the Linux Kernel with Device Tree Support for the Raspberry Pi]]<br />
<br />
* ARM Userland Applications<br />
** [[Cross_Compiling_BusyBox_for_ARM|Cross Compiling BusyBox & GLIBC for ARM]]<br />
** [[Cross_Compiling_SFTP-Server_DropBear_for_ARM|Cross Compiling SFTP-server for DropBear]]<br />
** [[Cross_Compiling_MTD_Utils_for_ARM|Cross Compiling MTD Utilities for ARM]]<br />
** [[Cross_Compiling_SAMBA_for_ARM|Cross Compiling Samba SMB/CIFS Server for ARM]]<br />
** [[Cross_Compiling_USBIP_for_ARM|Cross Compiling USB/IP for ARM]]<br />
** [[Cross_Compiling_Wide-DHCPv6_for_ARM|Cross Compiling Wide DHCPv6 for ARM]]<br />
** [[Cross_Compiling_ISC_dhcp_for_ARM|Cross Compiling ISC DHCP for ARM]]<br />
** [[Cross_Compiling_BIND_for_ARM|Cross Compiling BIND for ARM]]<br />
** [[Cross_Compiling_Radvd_for_ARM|Cross Compiling Radvd for ARM]]<br />
** [[Cross_Compiling_iptables_for_ARM|Cross Compiling IPTables for ARM]]<br />
** [[Cross_Compiling_Linux_wpan_tools_for_ARM|Cross Compiling wpan-tools (IEEE 802.15.4) User Space Tools]]<br />
** [[Cross_Compiling_RP-PPPOE_for_ARM|Cross Compiling RP-PPPoE for ARM]]<br />
** [[Cross_Compiling_BlueZ_Bluetooth_tools_for_ARM|Cross Compiling BlueZ Bluetooth Tools for ARM]]<br />
** [[Cross_Compiling_Asterisk_IPPBX_for_ARM|Cross Compiling Asterisk for ARM]]<br />
** [[Cross_Compiling_iw_wpa_supplicant_hostapd_rfkill_for_ARM|Cross Compiling iw, wpa_supplicant, hostapd and rfkill for ARM]]</div>Craig Peacock//wiki.beyondlogic.org/index.php?title=LT3652_Power_Tracking_2A_Battery_Charger_SLA_Lithium_MPPTLT3652 Power Tracking 2A Battery Charger SLA Lithium MPPT2017-06-17T10:53:18Z<p>Craig Peacock: </p>
<hr />
<div><br />
http://wiki.beyondlogic.org/i/LT3652_Power_Tracking_2A_Battery_Charger.png<br />
<br />
== Design Files ==<br />
<br />
Open source design files for the LT3652 Power Tracking 2A Battery Charger can be obtained from [https://circuitmaker.com/Projects/Details/Craig-Peacock-4/Solar-Power-Charger-2A-Lithium-SLA Circuit Maker]. Circuit Maker is a free PCB design tool from Altium. Designs can be imported into Altium Designer.<br />
<br />
A PDF version of the schematic can be obtained [http://wiki.beyondlogic.org/downloads/LT3652_Power_Tracking_2A_Battery_Charger_Schematics.pdf here].<br />
<br />
== Description ==<br />
<br />
This project is based on a Linear Technology LT3652 Power Tracking 2A Battery Charger for Solar Power.<br />
<br />
Featuring a wide 5 to 32V input range and input supply regulation loop for peak power tracking, this battery charger suits Li-Ion/Li-Polymer, LiFePO4 and SLA Chemistries with a programmable maximum battery voltage of 14.4V and a maximum current of 2 amps.<br />
<br />
The current schematic design is for a 2A, 12V SLA charger with 13.8V float.<br />
<br />
The R1/R2 voltage divider sets the maximum power point voltage to 17.2V. The maximum charging current is reduced when the input voltage is below 17.2V (VIN_REG pin is under 2.7V). Set this voltage divider to your PV Panel’s VMPP.<br />
<br />
The maximum charging current is set by R3. A 0.05 ohm shunt sets the maximum charging current at 2A, the maximum current possible from the LT3652.<br />
<br />
The R6/R8 voltage divider sets a battery voltage of 14.4V. R6 should be selected to obtain a 3.3V input on the VFB pin. This pin has an 110nA input bias that can be compensated using a voltage divider with a 250k equivalent resistance. R7 is calculated to compensate the network and obtain this 250k equivalent resistance.<br />
<br />
R9/D7 are optional and can be used with sealed lead acid batteries to set a float voltage after C/10 has been reached. i.e. for a 12V SLA battery, the initial battery voltage can be selected to be 14.4V, and this reduces to a float voltage of 13.8V once C/10 is reached and the CHRG LED is extinguished.<br />
<br />
The boost pin is used to bootstrap the internal switch gate. It has an operational range of 0 to 8.5V. As such, 6.2V Zener D3 is used to reduce the potential on the boost pin.</div>Craig Peacock