New Year's Grab Bag RoadTest - Review

Table of contents

RoadTest: New Year's Grab Bag RoadTest

Author: mstewart197930

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?:

What were the biggest problems encountered?:

Detailed Review:

Introduction

 

image

 

Ok, so got my second choice here, the EVK-PH8800 board.

I am familiar with these type of boards as very similar style of boards are used within railway signs on stations in the UK, to process the display data feed and show the service/notcies etc.

First things first, plug it in to the serial and switch it on and see what happens.

ok booted up nice and quick.

ok, whats the root password? couldnt find it listed anywhere, so just tried blank and in i logged.

change the root password to something more secure....

 

VGA Setup (also SD CARD)

 

Wanted to try and get VGA up and running, but unless you create an SD card to boot you cannot switch the display port as the filesystem doesn't exist on the internal eMMC.

so to ceate an SD card.

 

All the downloads/documents are stored in dropbox:-

https://www.dropbox.com/sh/1jh8mc5ru8cx8e2/AACG8uQdm7TJ8rV1ptSPFTLRa?dl=0

 

After downloading the SD card image, writing it to an SD card (had an 8Gb laying around), modified the structure a little as I wanted more space for the root filesystems.

3Gb for root, rest for a  mount to store data and my own scripts in.

 

ok, insert SD card and start it up, again still nice adn fast to startup, this time the filesystem is available, so can follow how to setup VGA in the manual:-

image

ok, VGA setup, only wanted this as a backup just in case....

 

 

Networking

 

configured the network port ETH0,

did this by adding the following to the bottom of dhcpcd.conf uinder /etc

 

image

 

rebooted and voila, on my home network.

Wanted to try and get VGA up and running, but unless you create an SD card to boot you cannot switch the display port as the filesystem doesn't exist on the internal eMMC.

 

Remote Access (SSH)

 

Try and log in via SSH, and should of thought first, but root blocked from logging in over SSH, sensible precaution, so back to serial.

create a new user, 'ms' and create and set permissions on home directory

try SSH again and we are all set.

 

Where to locate the board

 

Found an old project box, take out the guts of the old project, a few modifications and attach the board, only cables needed are power and ethernet and then attached the device to my office wall.

imageimage

 

 

Project

 

My idea for  the project to use this for was as a home server to control and manage several automation tasks around the house.

It HAS to be secure as I plan on adding the front door release as it is fairly common for my missus to lock herself out of the house and when we moved into the house,

the house already had a door system in consisting of:-

Front door Buzzer

2 ringers/handsets with Buzzer to release the 12v front door lock

(already modified one of these previously as it is outside the kids bedroom, put in an extra switch to be able to disable the ring as it is really loud)

 

 

Remote access

 

created a /cron folder.

then made a simple bash script to update a dynamicdns account with my external IP

Script:

 

                              #!/bin/bash

                              IPADDR=`wget -qqO- --no-check-certificate 'https://duckduckgo.com/?q=what+is+my+ip' | grep -Pow 'Your IP address is \K[0-9.]+'`

                              wget -qqO- --no-check-certificate "https://api.dynu.com/nic/update?hostname=mshome.kozow.com&myip=$IPADDR&myipv6=no&username=XXXXX&password=YYYYY"

 

and then set it to be called form crontab every morning, as my IP is classed as Sticky, so changes very rarely, so this should be ok.

 

crontab -e

SHELL=/bin/bash

MAILTO=root@example.com

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

 

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * command to be executed

1 06 * * * /cron/Update_remote_dyn_dns_com

 

 

Wanted extra security on SSH connection as dont like just username/password when opening to the internet, and as i said earlier, need extra security...

so wrote a c program, that will act as a menu system and an extra security section.

 

First step, create a user and replace shell in passwd to my executable:-

 

                              mark:x:1002:1002::/home/mark:/mon/emblogin

 

C program contains signal handler to block exceptions, although you would more than likely get logged off if you tried CTRL+C etc

when logged in via normal username/password you get then presented with this screen:-

image

The secondry auth comes by entering one or more of the above digits depending on other variables, and these change every time.

Once correct code is entered you get to a menu system:-

image

This needs developing further as all the hardware isn't built/in place yet.

wrote a little script to test out controlling the relays as below:-

 

                              #!/bin/bash

                              key={Note Telling you}

 

                              wget -qqO- 'http://192.168.100.170/auth?USER=1337&PASS=l3tm31n&KEY='`echo $key`

                              wget -qqO- 'http://192.168.100.170/gpioact?0=on'

                              sleep 2

                              wget -qqO- 'http://192.168.100.170/gpioact?0=off'

                              wget -qqO- 'http://192.168.100.170/auth?'

 

 

Shopping List

 

ESP-01s X 3 (already have some of these in my toolbox)

DHT11 X 4 (want to monitor temperature at certain points in house and my office with a future to cretae full thermostat system)

5V relay modules for ESP-01 X 4 (to control objects e,g lighting, boiler etc, probably need some more of these in future)

MQ2 Smoke Gas LPG Butane Hydogen gas Sensor Module (5V)

FTDI232 board with 3.3v support

 

 

 

 

 

now to develop the software for the esp-01's before they arrive as I already have a couple to play with, created a programming module to easily program the ESP-01's.

image

 

image

added the two LED's as an after thought so that i can test out the GPIO pins.

 

To put in programming mode, hold down P and press R and release, it is now available to program over serial........

 

Decided to use PlatformIO to program the ESP's, so installed Atom and platformIO on my laptop.

 

requirements for the ESP software:-

setup as webserver and connect to home network.

be able to authorise some how

be able to control both GPIO's on module

be able to read DHT11 data

be able to send data through serial port to attached device.

 

Web server structure:-

/returns the hostname
/authUSER={XXXX}&PASS={YYYY}KEY={ZZZZ}USER and PASS are hardcoded, KEY is a generated value from the current date and time
/dhtreturns H: and T: in text format
/shnHOST={HHHH}Set Host Name
/sendDATA={AAAAAAAAAAAAAAAA}Data to send to serial host
/gpioreturns web page to control GPIO
/gpioact0={on/off}    /     2={on/off}Switches GPIO 0 or 2 on or off

 

Wrote the code for the esp-01 devices and all seemed to work as expected apart form 1 issue, the relays.

 

The relays automatically switch to on when powering up due to the way the esp-01 works, which isnt really an issue for the automatic lighting, BUT does come to an issue where the front door is concerned, as this means if there was a power outage in the house, when it came back on, it would release the front door, so still looking at either creating a specific module myself, or modifying one of the relays.

 

 

Below is a Test video, just controlling a strip of 5V LED's, wrapped around a copper pipe(as a heat sink)

it is controlled from the script above for testing the relay boards

 

For now.....

This is as far as I have got with the project up to now but will keep posting updates as i steam along, unfortunatly because i didnt know what I was getting i ddint order the extra parts i wanted for the project till after it arrived and some stuff has literally arrived this week, others I am still waiting for....

 

 

Conclusion

 

I am very impressed with the board overall, perfect for this kind of project.

The CPU is 1000MHz  ARM Cortex A9 32Bit RISC Microprocessor

On onBoard RAM is 1Gb DDR3 SDRAM.

4Gb eMMC Flash for booting if not using SDCard (PreLoaded with Linux OS)

Gigabit network ports

VGA and HDMI connectors

 

It has no moving parts at all, no Fans, HDD and doesnt get awfully warm whilst running,

although I have got a couple of holes in the top of the project box for heat to escape, just in case.

 

Overall neat and nice little linux board, ideal to be left on as the power consumption is very low compared to a server like my SUN V100, or DELL R200.

 

 

Full Specs:-

image

image

image

 

image

 

 

BOOT LOG

[0.000000] Booting Linux on physical CPU 0x0
[0.000000] Initializing cgroup subsys cpuset
[0.000000] Initializing cgroup subsys cpu
[0.000000] Initializing cgroup subsys cpuacct
[0.000000] Linux version 4.1.6 (user@user-VirtualBox) (gcc version 4.9.3 20150413 (prerelease) (Linaro GCC 4.9-2015.05) ) #1 PREEMPT Mon Jun 20 16:32:05 CST 2016
[0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
[0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[0.000000] Machine model: TI AM437x SK EVM
[0.000000] cma: Reserved 24 MiB at 0xbe800000
[0.000000] Memory policy: Data cache writeback
[0.000000] On node 0 totalpages: 262144
[0.000000] free_area_init_node: node 0, pgdat c09e1b30, node_mem_map eeef9000
[0.000000]   Normal zone: 1710 pages used for memmap
[0.000000]   Normal zone: 0 pages reserved
[0.000000]   Normal zone: 194560 pages, LIFO batch:31
[0.000000]   HighMem zone: 67584 pages, LIFO batch:15
[0.000000] CPU: All CPU(s) started in SVC mode.
[0.000000] AM437x ES1.2 (sgx neon )
[0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[0.000000] pcpu-alloc: [0] 0
[0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260434
[0.000000] Kernel command line: console=ttyS0,115200n8 root=PARTUUID=e6aa35e6-02 rw rootfstype=ext4 rootwait
[0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[0.000000] Memory: 1003376K/1048576K available (7151K kernel code, 283K rwdata, 2372K rodata, 280K init, 235K bss, 20624K reserved, 24576K cma-reserved, 245760K highmem)
[0.000000] Virtual kernel memory layout:
vector  : 0xffff0000 - 0xffff1000   (   4 kB)
fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
modules : 0xbf000000 - 0xbfe00000   (  14 MB)
.text : 0xc0008000 - 0xc09550ac   (9525 kB)
.init : 0xc0956000 - 0xc099c000   ( 280 kB)
.data : 0xc099c000 - 0xc09e2f88   ( 284 kB)
.bss : 0xc09e5000 - 0xc0a1fcb8   ( 236 kB)
[0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[0.000000] Preemptible hierarchical RCU implementation.
[0.000000]  Additional per-CPU info printed with stalls.
[0.000000] NR_IRQS:16 nr_irqs:16 16
[0.000000] L2C: platform modifies aux control register: 0x0e030000 -> 0x3e430000
[0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 -> 0x3e430000
[0.000000] L2C-310 enabling early BRESP for Cortex-A9
[0.000000] OMAP L2C310: ROM does not support power control setting
[0.000000] L2C-310 ID prefetch enabled, offset 1 lines
[0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled
[0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
[0.000000] L2C-310: CACHE_ID 0x410000c9, AUX_CTRL 0x7e430000
[0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[0.000011] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[0.000026] clocksource timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[0.000034] OMAP clocksource: timer1 at 24000000 Hz
[0.000176] Console: colour dummy device 80x30
[0.000198] Calibrating delay loop... 1993.93 BogoMIPS (lpj=9969664)
[0.059296] pid_max: default: 32768 minimum: 301
[0.059392] Security Framework initialized
[0.059432] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[0.059441] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[0.060073] Initializing cgroup subsys blkio
[0.060094] Initializing cgroup subsys memory
[0.060136] Initializing cgroup subsys devices
[0.060150] Initializing cgroup subsys freezer
[0.060162] Initializing cgroup subsys perf_event
[0.060185] CPU: Testing write buffer coherency: ok
[0.060537] Setting up static identity map for 0x80008200 - 0x80008270
[0.061986] devtmpfs: initialized
[0.070999] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[0.082116] omap_hwmod: tptc0 using broken dt data from edma
[0.082232] omap_hwmod: tptc1 using broken dt data from edma
[0.082323] omap_hwmod: tptc2 using broken dt data from edma
[0.140715] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[0.142396] pinctrl core: initialized pinctrl subsystem
[0.143450] NET: Registered protocol family 16
[0.144737] DMA: preallocated 256 KiB pool for atomic coherent allocations
[0.169341] cpuidle: using governor ladder
[0.199331] cpuidle: using governor menu
[0.203612] gpiochip_add: registered GPIOs 0 to 31 on device: gpio
[0.203746] OMAP GPIO hardware version 0.1
[0.204360] gpiochip_add: registered GPIOs 32 to 63 on device: gpio
[0.204873] gpiochip_add: registered GPIOs 64 to 95 on device: gpio
[0.211932] No ATAGs?
[0.211966] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[0.211976] hw-breakpoint: maximum watchpoint size is 4 bytes.
[0.245812] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[0.246378] of_get_named_gpiod_flags: parsed 'gpio' property of node '/fixedregulator@2[0]' - status (0)
[0.249171] vgaarb: loaded
[0.249656] SCSI subsystem initialized
[0.249919] usbcore: registered new interface driver usbfs
[0.249992] usbcore: registered new interface driver hub
[0.250083] usbcore: registered new device driver usb
[0.250520] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/i2c0_pins, deferring probe
[0.250565] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/i2c1_pins, deferring probe
[0.250716] pps_core: LinuxPPS API ver. 1 registered
[0.250723] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[0.250750] PTP clock support registered
[0.251398] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[0.251731] Advanced Linux Sound Architecture Driver Initialized.
[0.252229] Bluetooth: Core ver 2.20
[0.252284] NET: Registered protocol family 31
[0.252291] Bluetooth: HCI device and connection manager initialized
[0.252305] Bluetooth: HCI socket layer initialized
[0.252313] Bluetooth: L2CAP socket layer initialized
[0.252338] Bluetooth: SCO socket layer initialized
[0.252707] Switched to clocksource timer1
[0.260562] NET: Registered protocol family 2
[0.261224] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[0.261296] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[0.261369] TCP: Hash tables configured (established 8192 bind 8192)
[0.261516] UDP hash table entries: 512 (order: 1, 8192 bytes)
[0.261536] UDP-Lite hash table entries: 512 (order: 1, 8192 bytes)
[0.261705] NET: Registered protocol family 1
[0.262046] RPC: Registered named UNIX socket transport module.
[0.262058] RPC: Registered udp transport module.
[0.262063] RPC: Registered tcp transport module.
[0.262068] RPC: Registered tcp NFSv4.1 backchannel transport module.
[0.262093] PCI: CLS 0 bytes, default 64
[0.264100] futex hash table entries: 256 (order: -1, 3072 bytes)
[0.264183] audit: initializing netlink subsys (disabled)
[0.264234] audit: type=2000 audit(0.250:1): initialized
[0.269249] VFS: Disk quotas dquot_6.6.0
[0.269412] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[0.271014] NFS: Registering the id_resolver key type
[0.271067] Key type id_resolver registered
[0.271075] Key type id_legacy registered
[0.271132] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[0.274076] NET: Registered protocol family 38
[0.274174] bounce: pool size: 64 pages
[0.274190] io scheduler noop registered
[0.274201] io scheduler deadline registered
[0.274264] io scheduler cfq registered (default)
[0.276703] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
[0.278597] pwm-backlight backlight: GPIO lookup for consumer enable
[0.278612] pwm-backlight backlight: using device tree for GPIO lookup
[0.278625] of_get_named_gpiod_flags: can't parse 'enable-gpios' property of node '/backlight[0]'
[0.278633] of_get_named_gpiod_flags: can't parse 'enable-gpio' property of node '/backlight[0]'
[0.278640] pwm-backlight backlight: using lookup tables for GPIO lookup
[0.278649] pwm-backlight backlight: lookup for GPIO enable failed
[0.278664] backlight supply power not found, using dummy regulator
[0.280196] 4832a000.dss supply vdda_video not found, using dummy regulator
[0.280316] OMAP DSS rev 2.0
[0.280636] omapdss_dss 4832a000.dss: bound 4832a400.dispc (ops dispc_component_ops)
[0.281782] panel-dpi display: GPIO lookup for consumer enable
[0.281795] panel-dpi display: using device tree for GPIO lookup
[0.281806] of_get_named_gpiod_flags: can't parse 'enable-gpios' property of node '/display[0]'
[0.281814] of_get_named_gpiod_flags: can't parse 'enable-gpio' property of node '/display[0]'
[0.281821] panel-dpi display: using lookup tables for GPIO lookup
[0.281831] panel-dpi display: lookup for GPIO enable failed
[0.282353] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[0.283733] omap_uart 44e09000.serial: no wakeirq for uart0
[0.283750] serial_omap_probe_rs485 :SER_RS485_RTS_AFTER_SEND

 

[0.283760] of_get_named_gpiod_flags: can't parse 'cts-gpio' property of node '/ocp/serial@44e09000[0]'
[0.283767] of_get_named_gpiod_flags: can't parse 'rts-gpio' property of node '/ocp/serial@44e09000[0]'
[0.283772] cts_gpio = -2 ;  rts_gpio =-2

 

[0.283783] omap_uart 44e09000.serial: No clock speed specified: using default: 48000000
[0.283932] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 25, base_baud = 3000000) is a OMAP UART0
[1.075928] console [ttyS0] enabled
[1.080058] omap_uart 48022000.serial: no wakeirq for uart1
[1.085985] serial_omap_probe_rs485 :SER_RS485_RTS_AFTER_SEND

 

[1.092122] of_get_named_gpiod_flags: can't parse 'cts-gpio' property of node '/ocp/serial@48022000[0]'
[1.092314] of_get_named_gpiod_flags: can't parse 'rts-gpio' property of node '/ocp/serial@48022000[0]'
[1.092319] cts_gpio = -2 ;  rts_gpio =-2

 

[1.096633] omap_uart 48022000.serial: No clock speed specified: using default: 48000000
[1.105475] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 26, base_baud = 3000000) is a OMAP UART1
[1.115557] omap_uart 481a6000.serial: no wakeirq for uart3
[1.121425] serial_omap_probe_rs485 :SER_RS485_RTS_ON_SEND

 

[1.127485] of_get_named_gpiod_flags: parsed 'cts-gpio' property of node '/ocp/serial@481a6000[0]' - status (0)
[1.127693] of_get_named_gpiod_flags: parsed 'rts-gpio' property of node '/ocp/serial@481a6000[0]' - status (0)
[1.127699] cts_gpio = 64 ;  rts_gpio =65

 

[1.132064] omap_uart 481a6000.serial: No clock speed specified: using default: 48000000
[1.140895] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 27, base_baud = 3000000) is a OMAP UART3
[1.151023] omap_uart 481aa000.serial: no wakeirq for uart5
[1.156951] serial_omap_probe_rs485 :SER_RS485_RTS_AFTER_SEND

 

[1.163115] of_get_named_gpiod_flags: can't parse 'cts-gpio' property of node '/ocp/serial@481aa000[0]'
[1.163308] of_get_named_gpiod_flags: can't parse 'rts-gpio' property of node '/ocp/serial@481aa000[0]'
[1.163313] cts_gpio = -2 ;  rts_gpio =-2

 

[1.167639] omap_uart 481aa000.serial: No clock speed specified: using default: 48000000
[1.176440] 481aa000.serial: ttyS5 at MMIO 0x481aa000 (irq = 28, base_baud = 3000000) is a OMAP UART5
[1.186872] gpio_buzzer buzzer: GPIO lookup for consumer (null)
[1.186886] gpio_buzzer buzzer: using device tree for GPIO lookup
[1.186921] of_get_named_gpiod_flags: parsed 'gpios' property of node '/buzzer[0]' - status (0)
[1.186966] no flags found for (null)
[1.187282] [drm] Initialized drm 1.1.0 20060810
[1.201953] brd: module loaded
[1.209734] loop: module loaded
[1.215115] mtdoops: mtd device (mtddev=name/number) must be supplied
[1.223319] spi spi1.0: not using DMA for McSPI
[1.228287] sc16is7xx spi1.0: not using DMA for McSPI
[1.234029] gpiochip_find_base: found new base at 504
[1.234170] gpiochip_add: registered GPIOs 504 to 511 on device: spi1.0
[1.235331] spi spi2.0: not using DMA for McSPI
[1.241951] CAN device driver interface
[1.247072] c_can_platform 481cc000.can: c_can_platform device registered (regs=fa1cc000, irq=159)
[1.257227] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=160)
[2.071316] dwc3 48390000.usb: otg: primary host xhci-hcd.0.auto registered
[2.078740] dwc3 48390000.usb: otg: shared host xhci-hcd.0.auto registered
[2.086021] dwc3 48390000.usb: otg: can't start till gadget registers
[2.092937] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[2.098933] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[2.107430] xhci-hcd xhci-hcd.1.auto: hcc params 0x0238f06d hci version 0x100 quirks 0x00010010
[2.116659] xhci-hcd xhci-hcd.1.auto: irq 195, io mem 0x483d0000
[2.123169] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[2.130332] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[2.137981] usb usb1: Product: xHCI Host Controller
[2.143135] usb usb1: Manufacturer: Linux 4.1.6 xhci-hcd
[2.148728] usb usb1: SerialNumber: xhci-hcd.1.auto
[2.154468] hub 1-0:1.0: USB hub found
[2.158449] hub 1-0:1.0: 1 port detected
[2.162974] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[2.168931] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[2.177177] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[2.185820] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[2.193006] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[2.200618] usb usb2: Product: xHCI Host Controller
[2.205771] usb usb2: Manufacturer: Linux 4.1.6 xhci-hcd
[2.211366] usb usb2: SerialNumber: xhci-hcd.1.auto
[2.217064] hub 2-0:1.0: USB hub found
[2.221047] hub 2-0:1.0: 1 port detected
[2.225612] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[2.232507] ehci-pci: EHCI PCI platform driver
[2.237349] ehci-omap: OMAP-EHCI Host Controller driver
[2.243185] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[2.249759] ohci-pci: OHCI PCI platform driver
[2.254588] usbcore: registered new interface driver cdc_wdm
[2.260650] usbcore: registered new interface driver usb-storage
[2.267234] udc 48390000.usb: registering UDC driver [g_ether]
[2.267314] using random self ethernet address
[2.271997] using random host ethernet address
[2.277220] usb0: HOST MAC 2a:72:b9:b1:85:6b
[2.281785] usb0: MAC ae:8f:0e:71:ad:f0
[2.285887] using random self ethernet address
[2.290574] using random host ethernet address
[2.295288] g_ether gadget: adding config #2 'RNDIS'/c09d4010
[2.295300] rndis_register: configNr = 0
[2.295308] g_ether gadget: adding 'rndis'/eebac0c0 to config 'RNDIS'/c09d4010
[2.295339] rndis_set_param_medium: 0 0
[2.295347] g_ether gadget: RNDIS: super speed IN/ep1in OUT/ep1out NOTIFY/ep2in
[2.295356] g_ether gadget: cfg 2/c09d4010 speeds: super high full
[2.295363] g_ether gadget:   interface 0 = rndis/eebac0c0
[2.295369] g_ether gadget:   interface 1 = rndis/eebac0c0
[2.295378] g_ether gadget: adding config #1 'CDC Ethernet (ECM)'/c09d3f64
[2.295389] g_ether gadget: adding 'cdc_ethernet'/eebac240 to config 'CDC Ethernet (ECM)'/c09d3f64
[2.295409] g_ether gadget: CDC Ethernet: super speed IN/ep1in OUT/ep1out NOTIFY/ep2in
[2.295417] g_ether gadget: cfg 1/c09d3f64 speeds: super high full
[2.295423] g_ether gadget:   interface 0 = cdc_ethernet/eebac240
[2.295429] g_ether gadget:   interface 1 = cdc_ethernet/eebac240
[2.295440] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[2.302399] g_ether gadget: g_ether ready
[2.306661] dwc3 48390000.usb: otg: gadget gadget registered
[2.313224] mousedev: PS/2 mouse device common for all mice
[2.319390] m1-adckp adc_keypad: adc_key: faild to get name_len!
[2.326037] m1-adckp adc_keypad: menu key(139) registed.
[2.331633] m1-adckp adc_keypad: back key(158) registed.
[2.337472] input: adc_keypad as /devices/platform/adc_keypad/input/input0
[2.345701] input: ti-tsc as /devices/platform/44000000.ocp/44e0d000.tscadc/TI-am335x-tsc/input/input1
[2.356622] omap_rtc 44e3e000.rtc: already running
[2.361975] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[2.370155] i2c /dev entries driver
[2.374242] Bluetooth: HCI UART driver ver 2.3
[2.378926] Bluetooth: HCI UART protocol H4 registered
[2.384358] Bluetooth: HCI UART protocol BCSP registered
[2.389933] Bluetooth: HCI UART protocol LL registered
[2.395341] Bluetooth: HCI UART protocol ATH3K registered
[2.401042] Bluetooth: HCI UART protocol Three-wire (H5) registered
[2.407644] Bluetooth: HCI UART protocol BCM registered
[2.413781] omap_hsmmc 48060000.mmc: GPIO lookup for consumer cd
[2.413794] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[2.413840] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp/mmc@48060000[0]' - status (0)
[2.413858] omap_hsmmc 48060000.mmc: Got CD GPIO
[2.418706] omap_hsmmc 48060000.mmc: GPIO lookup for consumer wp
[2.418714] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[2.418722] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@48060000[0]'
[2.418730] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@48060000[0]'
[2.418737] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup
[2.418745] omap_hsmmc 48060000.mmc: lookup for GPIO wp failed
[2.443065] omap_hsmmc 481d8000.mmc: GPIO lookup for consumer cd
[2.443081] omap_hsmmc 481d8000.mmc: using device tree for GPIO lookup
[2.443093] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/ocp/mmc@481d8000[0]'
[2.443102] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/ocp/mmc@481d8000[0]'
[2.443109] omap_hsmmc 481d8000.mmc: using lookup tables for GPIO lookup
[2.443118] omap_hsmmc 481d8000.mmc: lookup for GPIO cd failed
[2.443128] omap_hsmmc 481d8000.mmc: GPIO lookup for consumer wp
[2.443135] omap_hsmmc 481d8000.mmc: using device tree for GPIO lookup
[2.443143] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@481d8000[0]'
[2.443150] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@481d8000[0]'
[2.443157] omap_hsmmc 481d8000.mmc: using lookup tables for GPIO lookup
[2.443164] omap_hsmmc 481d8000.mmc: lookup for GPIO wp failed
[2.462999] omap_hsmmc 47810000.mmc: GPIO lookup for consumer cd
[2.463013] omap_hsmmc 47810000.mmc: using device tree for GPIO lookup
[2.463025] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/ocp/mmc@47810000[0]'
[2.463034] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/ocp/mmc@47810000[0]'
[2.463041] omap_hsmmc 47810000.mmc: using lookup tables for GPIO lookup
[2.463050] omap_hsmmc 47810000.mmc: lookup for GPIO cd failed
[2.463059] omap_hsmmc 47810000.mmc: GPIO lookup for consumer wp
[2.463066] omap_hsmmc 47810000.mmc: using device tree for GPIO lookup
[2.463074] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@47810000[0]'
[2.463081] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@47810000[0]'
[2.463088] omap_hsmmc 47810000.mmc: using lookup tables for GPIO lookup
[2.463095] omap_hsmmc 47810000.mmc: lookup for GPIO wp failed
[2.482754] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[2.503348] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led1[0]' - status (0)
[2.503502] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led2[0]' - status (0)
[2.503620] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/bt_en[0]' - status (0)
[2.503819] ledtrig-cpu: registered to indicate activity on CPUs
[2.510432] omap-aes 53501000.aes: OMAP AES hw accel rev: 0.1
[2.518812] omap-des 53701000.des: OMAP DES hw accel rev: 0.33
[2.528349] omap-sham 53100000.sham: hw accel on OMAP rev 0.0
[2.536199] usbcore: registered new interface driver usbkbd
[2.542159] usbcore: registered new interface driver usbmouse
[2.549197]  remoteproc0: wkup_m3 is available
[2.554068]  remoteproc0: Note: remoteproc is still under development and considered experimental.
[2.564680]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[2.575757]  remoteproc0: Direct firmware load for am335x-pm-firmware.elf failed with error -2
[2.588635] oprofile: no performance counters
[2.593374]  remoteproc0: Falling back to user helper
[2.598941] oprofile: using timer interrupt.
[2.603675] nf_conntrack version 0.5.0 (16061 buckets, 64244 max)
[2.610986] ip_tables: (C) 2000-2006 Netfilter Core Team
[2.616771] Initializing XFRM netlink socket
[2.621323] NET: Registered protocol family 17
[2.626423] usb 1-1: New USB device found, idVendor=0424, idProduct=2514
[2.633566] NET: Registered protocol family 15
[2.638252] can: controller area network core (rev 20120528 abi 9)
[2.644825] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[2.652757] NET: Registered protocol family 29
[2.657525] can: raw protocol (rev 20120528)
[2.662027] can: broadcast manager protocol (rev 20120528 t)
[2.668619] can: netlink gateway (rev 20130117) max_hops=1
[2.674919] Bluetooth: RFCOMM TTY layer initialized
[2.680070] Bluetooth: RFCOMM socket layer initialized
[2.685598] Bluetooth: RFCOMM ver 1.11
[2.689900] hub 1-1:1.0: USB hub found
[2.693917] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[2.699519] Bluetooth: BNEP filters: protocol multicast
[2.705115] hub 1-1:1.0: 4 ports detected
[2.709529] Bluetooth: BNEP socket layer initialized
[2.714805] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[2.721046] Bluetooth: HIDP socket layer initialized
[2.727489] Key type dns_resolver registered
[2.732168] omap_voltage_late_init: Voltage driver support not added
[2.739375] ThumbEE CPU extension supported.
[2.743934] Registering SWP/SWPB emulation handler
[2.751543] omapdrm omapdrm.0: DMM not available, disable DMM support
[2.759272] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[2.766317] [drm] No driver support for vblank timestamp query.
[2.820304] Console: switching to colour frame buffer device 128x48
[2.841027] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
[2.847324] omapdrm omapdrm.0: registered panic notifier
[2.882748] [drm] Initialized omapdrm 1.0.0 20110917 on minor 0
[2.923110] input: tps65218_pwrbutton as /devices/platform/44000000.ocp/44e0b000.i2c/i2c-0/0-0024/44e0b000.i2c:tps@24:power-button/input/input2
[2.937123] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[2.944547] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
[2.963854] rtc-ds1307 1-0068: rtc core: registered ds3231 as rtc1
[2.970589] ch7033_probe........................
[2.975976] ch7033 did:5e
[2.978869] ch7033 vid:d3
[2.997936] ch7033_probe........................ OK
[3.004110] wm8904 1-001a: revision A
[3.009541] omap_i2c 4802a000.i2c: bus 1 rev0.12 at 400 kHz
[3.016522] omap_hsmmc 48060000.mmc: GPIO lookup for consumer cd
[3.016539] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[3.016584] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp/mmc@48060000[0]' - status (0)
[3.016601] omap_hsmmc 48060000.mmc: Got CD GPIO
[3.021480] omap_hsmmc 48060000.mmc: GPIO lookup for consumer wp
[3.021487] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[3.021495] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@48060000[0]'
[3.021504] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@48060000[0]'
[3.021511] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup
[3.021520] omap_hsmmc 48060000.mmc: lookup for GPIO wp failed
[3.053598] omap_hsmmc 481d8000.mmc: GPIO lookup for consumer cd
[3.053616] omap_hsmmc 481d8000.mmc: using device tree for GPIO lookup
[3.053628] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/ocp/mmc@481d8000[0]'
[3.053637] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/ocp/mmc@481d8000[0]'
[3.053644] omap_hsmmc 481d8000.mmc: using lookup tables for GPIO lookup
[3.053653] omap_hsmmc 481d8000.mmc: lookup for GPIO cd failed
[3.053663] omap_hsmmc 481d8000.mmc: GPIO lookup for consumer wp
[3.053670] omap_hsmmc 481d8000.mmc: using device tree for GPIO lookup
[3.053677] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@481d8000[0]'
[3.053684] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@481d8000[0]'
[3.053691] omap_hsmmc 481d8000.mmc: using lookup tables for GPIO lookup
[3.053698] omap_hsmmc 481d8000.mmc: lookup for GPIO wp failed
[3.093362] of_get_named_gpiod_flags: can't parse 'simple-audio-card,hp-det-gpio' property of node '/sound[0]'
[3.093378] of_get_named_gpiod_flags: can't parse 'simple-audio-card,mic-det-gpio' property of node '/sound[0]'
[3.095121] asoc-simple-card sound: wm8904-hifi <-> 48038000.mcasp mapping ok
[3.132594] mmc1: host does not support reading read-only switch, assuming write-enable
[3.145186] mmc1: new high speed SDHC card at address aaaa
[3.151435] mmcblk0: mmc1:aaaa SU08G 7.40 GiB
[3.157943]  mmcblk0: p1 p2 p3
[3.162781] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[3.169209] davinci_mdio 4a101000.mdio: detected phy mask ffffff3f
[3.179793] Atheros 8035 ethernet 4a101000.mdio:06: GPIO lookup for consumer reset
[3.179809] Atheros 8035 ethernet 4a101000.mdio:06: using lookup tables for GPIO lookup
[3.179819] Atheros 8035 ethernet 4a101000.mdio:06: lookup for GPIO reset failed
[3.180503] libphy: 4a101000.mdio: probed
[3.184833] davinci_mdio 4a101000.mdio: phy[6]: device 4a101000.mdio:06, driver Atheros 8035 ethernet
[3.194619] davinci_mdio 4a101000.mdio: phy[7]: device 4a101000.mdio:07, driver unknown
[3.204083] cpsw 4a100000.ethernet: Detected MACID = c4:be:84:cd:e2:2c
[3.211880] cpsw 4a100000.ethernet: cpsw: Detected MACID = c4:be:84:cd:e2:2e
[3.223472] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:58:42 UTC (946688322)
[3.236124] wlan-en-regulator: disabling
[3.240389] ALSA device list:
[3.243677]   #0: AM437x-PH8800
[3.260828] mmc2: MAN_BKOPS_EN bit is not set
[3.266085] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[3.274973] VFS: Mounted root (ext4 filesystem) on device 179:2.
[3.283543] mmc2: new high speed MMC card at address 0001
[3.289908] mmcblk1: mmc2:0001 MMC04G 3.65 GiB
[3.294943] devtmpfs: mounted
[3.298565] Freeing unused kernel memory: 280K (c0956000 - c099c000)
[3.305769] mmcblk1boot0: mmc2:0001 MMC04G partition 1 1.00 MiB
[3.312550] mmcblk1boot1: mmc2:0001 MMC04G partition 2 1.00 MiB
[3.320895]  mmcblk1: p1 p2
[3.581301] random: systemd urandom read with 23 bits of entropy available
[3.591628] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR)
[3.606196] systemd[1]: Detected architecture 'arm'.
[3.662495] systemd[1]: Failed to insert module 'autofs4'
[3.668762] systemd[1]: Failed to insert module 'ipv6'
[3.676251] systemd[1]: Set hostname to <embest>.
[4.129490] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory.
[4.147779] systemd[1]: Starting Forward Password Requests to Wall Directory Watch.
[4.156403] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[4.164574] systemd[1]: Expecting device dev-ttyS0.device...
[4.182950] systemd[1]: Starting Remote File Systems (Pre).
[4.202857] systemd[1]: Reached target Remote File Systems (Pre).
[4.209462] systemd[1]: Starting Dispatch Password Requests to Console Directory Watch.
[4.218220] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[4.226963] systemd[1]: Starting Paths.
[4.242866] systemd[1]: Reached target Paths.
[4.247534] systemd[1]: Starting Encrypted Volumes.
[4.273026] systemd[1]: Reached target Encrypted Volumes.
[4.278901] systemd[1]: Starting Arbitrary Executable File Formats File System Automount Point.
[4.288237] systemd[1]: Failed to open /dev/autofs: No such file or directory
[4.295821] systemd[1]: Failed to initialize automounter: No such file or directory
[4.342856] systemd[1]: Failed to set up automount Arbitrary Executable File Formats File System Automount Point.
[4.353778] systemd[1]: Unit proc-sys-fs-binfmt_misc.automount entered failed state.
[4.362005] systemd[1]: Starting Swap.
[4.382853] systemd[1]: Reached target Swap.
[4.387459] systemd[1]: Starting Root Slice.
[4.412859] systemd[1]: Created slice Root Slice.
[4.417920] systemd[1]: Starting /dev/initctl Compatibility Named Pipe.
[4.442871] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[4.450297] systemd[1]: Starting Delayed Shutdown Socket.
[4.473044] systemd[1]: Listening on Delayed Shutdown Socket.
[4.479206] systemd[1]: Starting Journal Socket (/dev/log).
[4.502868] systemd[1]: Listening on Journal Socket (/dev/log).
[4.509253] systemd[1]: Starting udev Control Socket.
[4.532873] systemd[1]: Listening on udev Control Socket.
[4.538704] systemd[1]: Starting udev Kernel Socket.
[4.562860] systemd[1]: Listening on udev Kernel Socket.
[4.568579] systemd[1]: Starting User and Session Slice.
[4.592872] systemd[1]: Created slice User and Session Slice.
[4.599074] systemd[1]: Starting Journal Socket.
[4.623063] systemd[1]: Listening on Journal Socket.
[4.628509] systemd[1]: Starting System Slice.
[4.652871] systemd[1]: Created slice System Slice.
[4.658266] systemd[1]: Starting Increase datagram queue length...
[4.685497] systemd[1]: Starting Nameserver information manager...
[4.715646] systemd[1]: Starting udev Coldplug all Devices...
[4.731500] systemd[1]: Mounting POSIX Message Queue File System...
[4.767479] systemd[1]: Mounting Debug File System...
[4.823812] systemd[1]: Starting Load Kernel Modules...
[4.866231] systemd[1]: Starting Create list of required static device nodes for the current kernel...
[4.893936] systemd[1]: Mounted Huge Pages File System.
[4.909378] systemd[1]: Started Set Up Additional Binary Formats.
[4.917244] systemd[1]: Starting system-getty.slice.
[4.952977] systemd[1]: Created slice system-getty.slice.
[4.958825] systemd[1]: Starting system-serial\x2dgetty.slice.
[4.982901] systemd[1]: Created slice system-serial\x2dgetty.slice.
[4.989676] systemd[1]: Starting Remount Root and Kernel File Systems...
[5.015577] systemd[1]: Starting Slices.
[5.043059] systemd[1]: Reached target Slices.
[5.047888] systemd[1]: Starting system-systemd\x2dfsck.slice.
[5.073402] systemd[1]: Created slice system-systemd\x2dfsck.slice.
[5.080156] systemd[1]: Expecting device dev-mmcblk0p3.device...
[5.123124] systemd[1]: Mounted Debug File System.
[5.142875] systemd[1]: Mounted POSIX Message Queue File System.
[5.162894] systemd[1]: Started Increase datagram queue length.
[5.213106] systemd[1]: Started Load Kernel Modules.
[5.253073] systemd[1]: Started Create list of required static device nodes for the current kernel.
[5.292969] systemd[1]: Started Remount Root and Kernel File Systems.
[5.323224] systemd[1]: Started Nameserver information manager.
[5.353033] systemd[1]: Started udev Coldplug all Devices.
[5.607246] systemd[1]: Started Various fixups to make systemd work better on Debian.
[5.628914] systemd[1]: Starting Load/Save Random Seed...
[5.656945] systemd[1]: Starting Create Static Device Nodes in /dev...
[5.686238] systemd[1]: Mounting Configuration File System...
[5.715686] systemd[1]: Starting Apply Kernel Variables...
[5.743120] systemd[1]: Mounted FUSE Control File System.
[5.749046] systemd[1]: Starting Syslog Socket.
[5.792954] systemd[1]: Listening on Syslog Socket.
[5.798250] systemd[1]: Starting Journal Service...
[5.843006] systemd[1]: Started Journal Service.
[6.114602] systemd-udevd[158]: starting version 215
[6.438597]  remoteproc0: failed to load am335x-pm-firmware.elf
[6.471900]  remoteproc0: powering up wkup_m3
[6.487091]  remoteproc0: Direct firmware load for am335x-pm-firmware.elf failed with error -2
[6.563221]  remoteproc0: Falling back to user helper
[8.124762]  remoteproc0: request_firmware failed: -11
[8.136414]  remoteproc0: rproc_boot failed
[8.569119] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
[8.765433] systemd-journald[157]: Received request to flush runtime journal from PID 1
[9.258107] net eth0: initializing cpsw version 1.15 (0)
[9.343208] net eth0: phy found : id is : 0x221622
[9.363797] net eth1: initializing cpsw version 1.15 (0)
[9.443243] net eth1: phy found : id is : 0x4dd072

[   10.089050] random: nonblocking pool is initialized

[   10.813488] c_can_platform 481cc000.can can0: bit-timing not yet defined

[   10.820545] c_can_platform 481cc000.can can0: failed to open can device

[   10.859522] c_can_platform 481d0000.can can1: bit-timing not yet defined

[   10.893015] c_can_platform 481d0000.can can1: failed to open can device

[   10.937472] usb0: eth_open

[   11.343665] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off

 

 

 

UPDATE     16/04/2019

-----------------------------

 

ESP-01 issue where all ports are on initially on startup, I have found a solution and have some on order.

The microchip MCP23016, this is a port expander which is driven over the I2C bus, which is available on the ESP-01.

My plan on arrival is to hook up the MCP23016 with one of the modules and modify the relay board to be driven through the expansion chip.

 

imageimage

 

When these have arrived, ill wire one up and see if it meets my needs with regars to not enabling on startup....

Anonymous
  • Forget dht11/22, they are rubbish, and vary widely between units, even after repeated calibration.

     

    The bme/bmp280 are not much more expensive, but far more accurate, lower power use and smaller footprint, driver libraries are smaller and less error prone, possible sample frequencies are higher.