I’ve recently started to write a bit more about long range LPWAN standards for IoT applications, especially LoRa and Sigfox, as commercial networks are being launched, and relatively low cost hardware platforms are being introduced to the market. There are also other highly expected standards such as Weightless and LTE Cat M that will bring more competition to the market. Ingenu RPMA (Random Phase Multiple Access) is another available standard that’s been in deployment for a while, and based on an earlier comparison of long range LPWAN standards, it comes with long range, supports up to 384,000 nodes per “sector”, operates in the unlicensed 2.4 GHz ISM band, and offers high combined uplink and downlink bandwidth than competitors. Ingenu recently contacted me and provided some more details and information about their technology and development kit. One of the documents includes an “independent analysis completed by ABI Research, Inc.” comparing features […]
GR-LoRa is a Reverse-Engineered Open Source Implementation of LoRa PHY
LPWAN standards such as LoRa or Sigfox allow you to transmit data over long distance, at ultra low power (up to 10 years on a AA battery), and for free if your use your own network (P2P or gateway), or a few dollars per years if you go through a network provider. The low cost is possible since those standards rely on 900 MHz ISM bands, meaning nobody has to pay millions of dollars to the government to obtain a license fee. Matt Knight looked at LoRa, and while Level 2 and 3 of the protocol (LoRaWan) has public documentation, Level 1 (LoRa PHY) is proprietary and the standard is proprietary. So he decided to reverse-engineer LoRa PHY using Microchip RN2903 based LoRa Technology Mote and Ettus B210 USB software defined radio, and software packages and tools such as Python and GNU Radio to successfully deliver GR-LoRa open source “GNU Radio […]
How to check HTTP Header and Connection Stats from the Command Line
A few days ago, I discussed with somebody whether a file was cached by Cloudflare or not, and this involved getting the HTTP header, and checking for CF-RAY field to see if data is going through one of Cloudflare data centers. This can be done with curl:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
curl -svo /dev/null http://www.cnx-software.com * Rebuilt URL to: http://www.cnx-software.com/ * Trying 104.28.19.95... * Connected to www.cnx-software.com (104.28.19.95) port 80 (#0) > GET / HTTP/1.1 > Host: www.cnx-software.com > User-Agent: curl/7.47.0 > Accept: */* > < HTTP/1.1 200 OK < Date: Mon, 03 Oct 2016 09:57:17 GMT < Content-Type: text/html; charset=UTF-8 < Transfer-Encoding: chunked < Connection: keep-alive < Set-Cookie: __cfduid=d90ff49c11865e8fda1331c2977559f521475488637; expires=Tue, 03-Oct-17 09:57:17 GMT; path=/; domain=.cnx-software.com; HttpOnly < X-Powered-By: PHP/5.5.9-1ubuntu4.19 < Expires: Wed, 11 Jan 1984 05:00:00 GMT < Cache-Control: no-cache, must-revalidate, max-age=0 < Pragma: no-cache < X-UA-Compatible: IE=edge < Link: <http://www.cnx-software.com/wp-json/>; rel="https://api.w.org/" < Server: cloudflare-nginx < CF-RAY: 2ebf876da273114d-SIN < { [2307 bytes data] * Connection #0 to host www.cnx-software.com left intact |
In the command above, -s stands for silent so that curl does not show the progress meter, -v stands for verbose to show the header, and -o /dev/null is used to discard the packet load. You can also use -I option (fetch the HTTP-header only) with curl, which – if all you need is the HTTP header – provides a cleaner output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
curl -I http://www.cnx-software.com HTTP/1.1 200 OK Date: Mon, 03 Oct 2016 10:06:51 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Set-Cookie: __cfduid=d4dda8a9ec8370cf0950d26e5faf37cc21475489211; expires=Tue, 03-Oct-17 10:06:51 GMT; path=/; domain=.cnx-software.com; HttpOnly X-Powered-By: PHP/5.5.9-1ubuntu4.19 Expires: Wed, 11 Jan 1984 05:00:00 GMT Cache-Control: no-cache, must-revalidate, max-age=0 Pragma: no-cache Set-Cookie: bb2_screener_=1475489211+1.1.174.2+1.1.174.2; path=/ X-UA-Compatible: IE=edge Link: <http://www.cnx-software.com/wp-json/>; rel="https://api.w.org/" Server: cloudflare-nginx CF-RAY: 2ebf9574c129081d-SIN |
I also came across httpstat Python script recently via n0where, doing much of the same thing, except it also adds transfer statistics. It can be installed by downloading httpstat.py, or better using pip:
1 |
sudo pip install httpstat |
Let’s try it with this very […]
Getting Started with ReSpeaker WiFi IoT Board’s Audio Capabilities, Voice Recognition and Synthesis
ReSpeaker is a development board combining an Atmel AVR MCU, a MediaTek MT7688 WiFi module running OpenWrt, a built-in microphone, an audio jack, and I/O headers to allow for voice control and output for IoT applications. That means you could make your own Amazon Echo like device with the board and add-ons, use it as a voice controlled home automation gateway and more. The board was launched on Kickstarter a few days ago, and already raised $100,000 from about 100 backers, but I’ve received an early sample, so I’ll provide some more information about the firmware, and shows how to use with some Python scripts leveraging Microsoft Bing Speech API. You’ll need a micro USB to USB cable to connect your to computer (Linux, Windows, Mac OS…), and a speaker to connect to the board. Linux (OpenWrt) boots in a few seconds, and once it’s done all RGB LED will […]
Onion Omega2 is a $5 Linux WiFi IoT Board (Crowdfunding)
Onion Omega board was first introduced in 2015. The tiny OpenWrt Linux board featured an Atheros AR9331 processor with GPIO headers, and various baseboards and add-ons. The company has now launched a Kickstarter campaign for the second versions – Omega2 & Omega2 Plus – with a faster processor @ 580 MHz, compatible with docks and add-ons boards used for Omega, and a much lower price with $5 for the Omega2, and $9 for Omega2 Plus with more storage and memory. Omega2 & Omega2 Plus specifications: WiSoC – 580 MHz processor, possibly Mediatek MT7688 MIPS processor used in LinkIt Smart 7688 System Memory Omega2 – 64MB Omega2 Plus – 128MB Storage Omage2 – 16MB flash Omega 2 Plus – 32MB flash + micro SD slot Connectivity Built-in – 802.11 b/g/n WiFi with on-board and external antenna support Via add-on boards – Bluetooth 4.0 LE, GPS, and 2G/3G Expansion – 15x GPIO, […]
The Eclipse Foundation Releases Open Source Smart Home & IoT Gateway Frameworks, MQTT & oneM2M Implementations
The Eclipse Internet of Things (IoT) Working Group has released – or soon will be releasing – four open source projects for the Internet of Things with Eclipse SmartHome 0.8 framework, Eclipse Kura 2.0 IoT gateway framework, Eclipse Paho 1.2 MQTT & MQTT-SN clients, and Eclipse OM2M 1.0 implementation of oneM2M standard. Eclipse SmartHome 0.8 Eclipse SmartHome is a framework for smart home solutions that runs on embedded devices, including Raspberry Pi, BeagleBone Black or Intel Edison development boards. The latest SmartHome 0.8 release includes a new REST API and corresponding “Paper UI” administration interface, support for new devices including Sonos speakers, LIFX bulbs, Belkin WeMo devices, digitalSTROM systems, EnOcean devices (via a new OSGi EnOcean Base Driver) and others, as well as a new rule engine supporting templates for beginners, JavaScript for automation rules and graphical rule editors. You can find more details on Eclipse SmartHome page, and/or download SmartHome 0.8, […]
Getting Started with Beaglebone Green Wireless Development Board
SeeedStudio introduced BeagleBone Green Wireless based on BeagleBone Green, but replacing the Ethernet port by a Wilink8 WiFi and Bluetooth module, and providing 4 USB ports in total. I’ve also ready taken some picture of the board, and Grove Base Cape to addition the company’s add-on boards via I2C, UART, analog, or digital interfaces. So today, I’ll report about my experience getting started with the board. First Boot of BeagleBone Green Wireless Since the board comes with a Debian image installed on the internal 4GB eMMC flash, checking out the board should be really easy. The Wiki may help, but for a first try to check the board is indeed working, you can simply connect it to a 5V power supply, or the USB port of your computer to port it up. I’m using a development machine running Ubuntu 14.04 with both Ethernet connected to my router, and a WiFi […]
BBC Micro:Bit Board is Now Getting into the Hands of British Students
After several delays, BBC is now giving free Micro:Bit Bluetooth LE enabled boards to UK students with the goal of getting them interested in coding and electronics in a way that’s even easier and cheaper than using a Raspberry Pi board. Micro:bit specifications: MCU – Nordic nRF51822 Bluetooth SoC based on Cortex M0 core @ 16MHz with 16KB RAM 2x user buttons, 1x reset button 25x red user LEDs in a 5×5 matrix Connectivity – Bluetooth LE Sensors – Compass, magnetometer, accelerometer USB – 1x micro USB port for port and programming Expansion – 20-pin edge connector, 5x “rings” for 3V, GND, and 3 digital/analog I/Os Power – 5V via USB or battery port to connect two AAA batteries Dimensions – 4cm x 5cm There are four ways to “code” the board: Code Kingdoms JavaScript graphical ‘drag and drop’ and text-based programming, Microsoft Block Editor graphical, drag and drop code […]