Did this get fixed?
Posts made by austin Sandford
-
RE: New OS Release!
Still not working on mine
BusyBox v1.25.1 () built-in shell (ash) ____ _ ____ / __ \___ (_)__ ___ / __ \__ _ ___ ___ ____ _ / /_/ / _ \/ / _ \/ _ \ / /_/ / ' \/ -_) _ `/ _ `/ \____/_//_/_/\___/_//_/ \____/_/_/_/\__/\_, /\_,_/ W H A T W I L L Y O U I N V E N T ? /___/ ----------------------------------------------------- Ω-ware: 0.2.0 b186 ----------------------------------------------------- root@Omega-954C:/# wifisetup Onion Omega Wifi Setup Select from the following: 1) Scan for Wifi networks 2) Type network info q) Exit Selection: [ 158.218846] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 158.247982] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 158.392033] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 158.428506] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! 1 Scanning for wifi networks... Select Wifi network: 1) DTLap 2) VM715599-2G 3) BTHub5-NZX5 4) BTWifi-with-FON 5) BTWifi-X Selection: 1 Network: DTLap Encryption type: psk2 Enter password: ------------ > Restarting wifimanager for changes to take effect root@Omega-954C:/# [ 202.387422] br-wlan: port 1(ra0) entered disabled state [ 202.405863] device ra0 left promiscuous mode [ 202.410317] br-wlan: port 1(ra0) entered disabled state [ 202.445062] IPv6: ADDRCONF(NETDEV_UP): br-wlan: link is not ready [ 205.587298] device ra0 entered promiscuous mode [ 205.592048] br-wlan: port 1(ra0) entered forwarding state [ 205.597659] br-wlan: port 1(ra0) entered forwarding state [ 205.604563] IPv6: ADDRCONF(NETDEV_CHANGE): br-wlan: link becomes ready [ 207.593494] br-wlan: port 1(ra0) entered forwarding state [ 213.206477] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 213.257154] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 213.297049] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 213.333887] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 213.371294] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 268.221646] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 268.290390] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 268.324915] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 268.366434] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 268.404523] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 323.221315] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 323.268246] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 323.301804] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 323.338575] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 323.378340] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 378.211357] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 378.276980] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 378.314991] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 378.355244] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 378.392214] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 433.225179] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 433.291803] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 433.331354] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 433.370975] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed! [ 433.414573] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
-
RE: I2C communication (write/WriteBytes returns None, Readbytes returns 0xff) using pyOnionI2C #I2C #OMEGA2
Here's a python program that reads a BME280
#!/usr/bin/python #-------------------------------------- # ___ ___ _ ____ # / _ \/ _ \(_) __/__ __ __ # / , _/ ___/ /\ \/ _ \/ // / # /_/|_/_/ /_/___/ .__/\_, / # /_/ /___/ # # bme280.py # Read data from a digital pressure sensor. # # Official datasheet available from : # https://www.bosch-sensortec.com/bst/products/all_products/bme280 # # Author : Matt Hawkins # Date : 25/07/2016 # # http://www.raspberrypi-spy.co.uk/ # #-------------------------------------- # Adapted by ASandford for Onion Omega2 24/01/2018 # # To install the Python module, run the following commands: # opkg update # opkg install python-light pyOnionI2C libonioni2c #-------------------------------------- import time from OmegaExpansion import onionI2C from ctypes import c_short from ctypes import c_byte from ctypes import c_ubyte DEVICE = 0x76 # Default device I2C address i2c = onionI2C.OnionI2C() def getShort(data, index): # return two bytes from data as a signed 16-bit value return c_short((data[index+1] << 8) + data[index]).value def getUShort(data, index): # return two bytes from data as an unsigned 16-bit value return (data[index+1] << 8) + data[index] def getChar(data,index): # return one byte from data as a signed char result = data[index] if result > 127: result -= 256 return result def getUChar(data,index): # return one byte from data as an unsigned char result = data[index] & 0xFF return result def readBME280ID(addr=DEVICE): # Chip ID Register Address REG_ID = 0xD0 (chip_id, chip_version) = i2c.readBytes(addr, REG_ID, 2) return (chip_id, chip_version) def readBME280All(addr=DEVICE): # Register Addresses REG_DATA = 0xF7 REG_CONTROL = 0xF4 REG_CONFIG = 0xF5 REG_CONTROL_HUM = 0xF2 REG_HUM_MSB = 0xFD REG_HUM_LSB = 0xFE # Oversample setting - page 27 OVERSAMPLE_TEMP = 2 OVERSAMPLE_PRES = 2 MODE = 1 # Oversample setting for humidity register - page 26 OVERSAMPLE_HUM = 2 i2c.writeByte(addr, REG_CONTROL_HUM, OVERSAMPLE_HUM) control = OVERSAMPLE_TEMP<<5 | OVERSAMPLE_PRES<<2 | MODE i2c.writeByte(addr, REG_CONTROL, control) # Read blocks of calibration data from EEPROM # See Page 22 data sheet cal1 = i2c.readBytes(addr, 0x88, 24) cal2 = i2c.readBytes(addr, 0xA1, 1) cal3 = i2c.readBytes(addr, 0xE1, 7) # Convert byte data to word values dig_T1 = getUShort(cal1, 0) dig_T2 = getShort(cal1, 2) dig_T3 = getShort(cal1, 4) dig_P1 = getUShort(cal1, 6) dig_P2 = getShort(cal1, 8) dig_P3 = getShort(cal1, 10) dig_P4 = getShort(cal1, 12) dig_P5 = getShort(cal1, 14) dig_P6 = getShort(cal1, 16) dig_P7 = getShort(cal1, 18) dig_P8 = getShort(cal1, 20) dig_P9 = getShort(cal1, 22) dig_H1 = getUChar(cal2, 0) dig_H2 = getShort(cal3, 0) dig_H3 = getUChar(cal3, 2) dig_H4 = getChar(cal3, 3) dig_H4 = (dig_H4 << 24) >> 20 dig_H4 = dig_H4 | (getChar(cal3, 4) & 0x0F) dig_H5 = getChar(cal3, 5) dig_H5 = (dig_H5 << 24) >> 20 dig_H5 = dig_H5 | (getUChar(cal3, 4) >> 4 & 0x0F) dig_H6 = getChar(cal3, 6) # Wait in ms (Datasheet Appendix B: Measurement time and current calculation) wait_time = 1.25 + (2.3 * OVERSAMPLE_TEMP) + ((2.3 * OVERSAMPLE_PRES) + 0.575) + ((2.3 * OVERSAMPLE_HUM)+0.575) time.sleep(wait_time/1000) # Wait the required time # Read temperature/pressure/humidity data = i2c.readBytes(addr, REG_DATA, 8) pres_raw = (data[0] << 12) | (data[1] << 4) | (data[2] >> 4) temp_raw = (data[3] << 12) | (data[4] << 4) | (data[5] >> 4) hum_raw = (data[6] << 8) | data[7] #Refine temperature var2 = (((((temp_raw>>4) - (dig_T1)) * ((temp_raw>>4) - (dig_T1))) >> 12) * (dig_T3)) >> 14 t_fine = var1+var2 temperature = float(((t_fine * 5) + 128) >> 8); # Refine pressure and adjust for temperature var1 = t_fine / 2.0 - 64000.0 var2 = var1 * var1 * dig_P6 / 32768.0 var2 = var2 + var1 * dig_P5 * 2.0 var2 = var2 / 4.0 + dig_P4 * 65536.0 var1 = (dig_P3 * var1 * var1 / 524288.0 + dig_P2 * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * dig_P1 if var1 == 0: pressure=0 else: pressure = 1048576.0 - pres_raw pressure = ((pressure - var2 / 4096.0) * 6250.0) / var1 var1 = dig_P9 * pressure * pressure / 2147483648.0 var2 = pressure * dig_P8 / 32768.0 pressure = pressure + (var1 + var2 + dig_P7) / 16.0 # Refine humidity humidity = t_fine - 76800.0 humidity = (hum_raw - (dig_H4 * 64.0 + dig_H5 / 16384.0 * humidity)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * humidity * (1.0 + dig_H3 / 67108864.0 * humidity))) humidity = humidity * (1.0 - dig_H1 * humidity / 524288.0) if humidity > 100: humidity = 100 elif humidity < 0: humidity = 0 return temperature/100.0,pressure/100.0,humidity def main(): (chip_id, chip_version) = readBME280ID() print "Chip ID :", chip_id print "Version :", chip_version temperature,pressure,humidity = readBME280All() print "Temperature : ", temperature, "C" print "Pressure : ", pressure, "hPa" print "Humidity : ", humidity, "%" if __name__=="__main__": main() root@Omega-0E97:~# The output I get is : root@Omega-0E97:~# ./OObme280.py Chip ID : 96 Version : 0 Temperature : 23.9 C Pressure : 1012.20485776 hPa Humidity : 43.5635548431 %
-
RE: New OS Release!
After upgrading over with serial and ethernet, all I get is this scolling up the screen:
[ 369.981057] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 370.019143] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 370.059875] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 370.113232] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 424.879220] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 424.947187] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 424.986553] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 425.026006] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 425.061904] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 479.966092] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 479.996253] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 480.034854] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 480.074321] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 534.873030] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 534.957502] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 534.998870] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 535.036707] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 535.076570] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 589.872711] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 589.957030] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 589.993053] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 590.030340] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 590.064870] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 644.861528] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 644.973002] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 645.010152] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 645.049228] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!
[ 645.086362] APPeerProbeReqAction():shiang! PeerProbeReqSanity failed!root@Omega-954C:/# cat /etc/config/wireless
config wifi-device 'radio0'
option type 'ralink'
option variant 'mt7628'
option country 'US'
option hwmode '11g'
option htmode 'HT40'
option channel 'auto'
option disabled '0'
option device_mode 'apsta'
option op_mode 'preference'I'm in the UK, not in the US, so should wifisetup ask me where I am?
-
RE: Reboot script
@austin-Sandford This should be /etc/rc.local
root@Omega-0E97:~# cat /etc/rc.local # Put your custom commands here that should be executed once # the system init finished. By default this file does nothing. exit 0 root@Omega-0E97:~#
-
RE: Arduino sketches to Onion omega 2.
The Omeage2 has no analog, limited PWM, non-deterministic timing.
Arduinos have a varied number of analog, digital and PWM pins, are deterministic as to how long things take to run, have 'bank' i/o support (which I've not seen implemented on any copy device), software serial, sleep mode, ...
So, no.
-
RE: Reboot script
You can put an entry in /etc/rc/local (before the exit 0) which will be run at startup (you might want to background it with & if it will take a while).
Make sure you fully qualify all paths and remember it's a bad idea to name any scripts the same as commands so call it myreboot.sh
-
RE: Running Onion Omega 2 from the USB external storage device
Here is my method (works with both external USB drives and the sd card just change the /mnt/xxxx and /dev/xxxx), ignore opkg errors:
opkg update opkg install kmod-usb-storage-extras e2fsprogs kmod-fs-ext4 block-mount #setup for external drive# mkdir /mnt/sda1 mkfs.ext4 /dev/sda1 mount /dev/sda1 /mnt/sda1 mkdir -p /tmp/cproot mount --bind / /tmp/cproot tar -C /tmp/cproot -cvf - . | tar -C /mnt/sda1 -xf - umount /tmp/cproot block detect > /etc/config/fstab vi /etc/config/fstab #configure like this# config mount option target / option device /dev/sda1 option fstype ext4 option options rw,sync option enabled 1 option enabled_fsck 0 reboot df -h #check sda1 is mounted as /#
-
RE: Safe to connect I2C device with a 3.6V limit to powerdock2?
The i2c bus is active low. Data is transmitted by pulling the data line to ground. When the data line isn't in use it floats to the supply voltage of the bus master.
In this case, everything is OK as you're powering the sensor off the 3v3 Omeaga supply.
If you needed to use a sensor that has (say) a 5v supply, then you have several options.
- use a bidirectional opto isolator on tha data line. Only the clock and gnd are connected together.
- use a bidirectonal level shifter to conver between the 5v and 3v3 systems , again only the clock and gnd are connected together.
- the bus is driven by the master, and its voltage levels. You don't have to do anything special as 5v should never get anywhere near the data lines, and the sensor will pull the data line to gnd when it transmits data (connect the data, clock and gnd together).
Option1is the safest, the Aruinodo dock v2 uses option2 , but I've used option 3 to hook RPIs to Arduinos over i2c, with different supply voltages without anything going bang. The RPi (like the Omega) is a bus master and controls the line levels.
One caveat is if the sensor has pullup resistors to the supply line, so check any circuit diagrams if they are available.
-
Using BME280 on Onion Omega2
I recently bought one of these :[https://www.amazon.co.uk/gp/product/B01MUD07SX/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1](link url), a BME280 temperatue, pressure and humidity sensor.
I connected it to a RPi and used the code found here:[https://www.raspberrypi-spy.co.uk/2016/07/using-bme280-i2c-temperature-pressure-sensor-in-python/](link url) and it works like a treat.
I've rewriiten it to work on the Omega2:
#!/usr/bin/python #-------------------------------------- # ___ ___ _ ____ # / _ \/ _ \(_) __/__ __ __ # / , _/ ___/ /\ \/ _ \/ // / # /_/|_/_/ /_/___/ .__/\_, / # /_/ /___/ # # bme280.py # Read data from a digital pressure sensor. # # Official datasheet available from : # https://www.bosch-sensortec.com/bst/products/all_products/bme280 # # Author : Matt Hawkins # Date : 25/07/2016 # # http://www.raspberrypi-spy.co.uk/ # #-------------------------------------- # Adapted by ASandford for Onion Omega2 24/01/2018 # # To install the Python module, run the following commands: # opkg update # opkg install python-light pyOnionI2C libonioni2c #-------------------------------------- import time from OmegaExpansion import onionI2C from ctypes import c_short from ctypes import c_byte from ctypes import c_ubyte DEVICE = 0x76 # Default device I2C address i2c = onionI2C.OnionI2C() def getShort(data, index): # return two bytes from data as a signed 16-bit value return c_short((data[index+1] << 8) + data[index]).value def getUShort(data, index): # return two bytes from data as an unsigned 16-bit value return (data[index+1] << 8) + data[index] def getChar(data,index): # return one byte from data as a signed char result = data[index] if result > 127: result -= 256 return result def getUChar(data,index): # return one byte from data as an unsigned char result = data[index] & 0xFF return result def readBME280ID(addr=DEVICE): # Chip ID Register Address REG_ID = 0xD0 (chip_id, chip_version) = i2c.readBytes(addr, REG_ID, 2) return (chip_id, chip_version) def readBME280All(addr=DEVICE): # Register Addresses REG_DATA = 0xF7 REG_CONTROL = 0xF4 REG_CONFIG = 0xF5 REG_CONTROL_HUM = 0xF2 REG_HUM_MSB = 0xFD REG_HUM_LSB = 0xFE # Oversample setting - page 27 OVERSAMPLE_TEMP = 2 OVERSAMPLE_PRES = 2 MODE = 1 # Oversample setting for humidity register - page 26 OVERSAMPLE_HUM = 2 i2c.writeByte(addr, REG_CONTROL_HUM, OVERSAMPLE_HUM) control = OVERSAMPLE_TEMP<<5 | OVERSAMPLE_PRES<<2 | MODE i2c.writeByte(addr, REG_CONTROL, control) # Read blocks of calibration data from EEPROM # See Page 22 data sheet cal1 = i2c.readBytes(addr, 0x88, 24) cal2 = i2c.readBytes(addr, 0xA1, 1) cal3 = i2c.readBytes(addr, 0xE1, 7) # Convert byte data to word values dig_T1 = getUShort(cal1, 0) dig_T2 = getShort(cal1, 2) dig_T3 = getShort(cal1, 4) dig_P1 = getUShort(cal1, 6) dig_P2 = getShort(cal1, 8) dig_P3 = getShort(cal1, 10) dig_P4 = getShort(cal1, 12) dig_P5 = getShort(cal1, 14) dig_P6 = getShort(cal1, 16) dig_P7 = getShort(cal1, 18) dig_P8 = getShort(cal1, 20) dig_P9 = getShort(cal1, 22) dig_H1 = getUChar(cal2, 0) dig_H2 = getShort(cal3, 0) dig_H3 = getUChar(cal3, 2) dig_H4 = getChar(cal3, 3) dig_H4 = (dig_H4 << 24) >> 20 dig_H4 = dig_H4 | (getChar(cal3, 4) & 0x0F) dig_H5 = getChar(cal3, 5) dig_H5 = (dig_H5 << 24) >> 20 dig_H5 = dig_H5 | (getUChar(cal3, 4) >> 4 & 0x0F) dig_H6 = getChar(cal3, 6) # Wait in ms (Datasheet Appendix B: Measurement time and current calculation) wait_time = 1.25 + (2.3 * OVERSAMPLE_TEMP) + ((2.3 * OVERSAMPLE_PRES) + 0.575) + ((2.3 * OVERSAMPLE_HUM)+0.575) time.sleep(wait_time/1000) # Wait the required time # Read temperature/pressure/humidity data = i2c.readBytes(addr, REG_DATA, 8) pres_raw = (data[0] << 12) | (data[1] << 4) | (data[2] >> 4) temp_raw = (data[3] << 12) | (data[4] << 4) | (data[5] >> 4) hum_raw = (data[6] << 8) | data[7] #Refine temperature var2 = (((((temp_raw>>4) - (dig_T1)) * ((temp_raw>>4) - (dig_T1))) >> 12) * (dig_T3)) >> 14 t_fine = var1+var2 temperature = float(((t_fine * 5) + 128) >> 8); # Refine pressure and adjust for temperature var1 = t_fine / 2.0 - 64000.0 var2 = var1 * var1 * dig_P6 / 32768.0 var2 = var2 + var1 * dig_P5 * 2.0 var2 = var2 / 4.0 + dig_P4 * 65536.0 var1 = (dig_P3 * var1 * var1 / 524288.0 + dig_P2 * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * dig_P1 if var1 == 0: pressure=0 else: pressure = 1048576.0 - pres_raw pressure = ((pressure - var2 / 4096.0) * 6250.0) / var1 var1 = dig_P9 * pressure * pressure / 2147483648.0 var2 = pressure * dig_P8 / 32768.0 pressure = pressure + (var1 + var2 + dig_P7) / 16.0 # Refine humidity humidity = t_fine - 76800.0 humidity = (hum_raw - (dig_H4 * 64.0 + dig_H5 / 16384.0 * humidity)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * humidity * (1.0 + dig_H3 / 67108864.0 * humidity))) humidity = humidity * (1.0 - dig_H1 * humidity / 524288.0) if humidity > 100: humidity = 100 elif humidity < 0: humidity = 0 return temperature/100.0,pressure/100.0,humidity def main(): (chip_id, chip_version) = readBME280ID() print "Chip ID :", chip_id print "Version :", chip_version temperature,pressure,humidity = readBME280All() print "Temperature : ", temperature, "C" print "Pressure : ", pressure, "hPa" print "Humidity : ", humidity, "%" if __name__=="__main__": main() root@Omega-0E97:~#
The output I get is :
root@Omega-0E97:~# ./OObme280.py Chip ID : 96 Version : 0 Temperature : 23.9 C Pressure : 1012.20485776 hPa Humidity : 43.5635548431 %
-
RE: Serial Ports (USB) and NodeJS support
Cross compiled node-red-node-serialport and it all works:
root@Omega-1521:~# node --max-old-space-size=80 /node-red/red.js The host is: undefined Welcome to Node-RED =================== 28 Mar 00:13:43 - [info] Node-RED version: v0.15.2 28 Mar 00:13:43 - [info] Node.js version: v4.3.1 28 Mar 00:13:43 - [info] Linux 4.4.46 mipsel LE 28 Mar 00:13:51 - [info] Loading palette nodes 28 Mar 00:14:18 - [warn] ------------------------------------------------------ 28 Mar 00:14:18 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node 28 Mar 00:14:18 - [warn] ------------------------------------------------------ 28 Mar 00:14:18 - [info] Settings file : /root/.node-red/settings.js 28 Mar 00:14:18 - [info] User directory : /root/.node-red 28 Mar 00:14:18 - [info] Flows file : /root/.node-red/flows_Omega-1521.json 28 Mar 00:14:18 - [info] Server now running at http://192.168.3.1:1880/ 28 Mar 00:14:18 - [info] Starting flows 28 Mar 00:14:18 - [info] Started flows 28 Mar 00:14:18 - [info] serial port /dev/ttyACM0 opened at 57600 baud 8N1
-
RE: Serial Ports (USB) and NodeJS support
@Steven-de-Salas How could I get that to work with Node Red please?