- Install the DataDog Agent following the instructions on the DataDog website
- Update the
lora-gateway-bridge
configuration file with the lines on this gist - Create
/etc/datadog-agent/conf.d/prometheus.d/conf.yaml
with the content from this gist - Restart the
lora-gateway-bridge
anddatadog-agent
services - Check that the metrics are being collected by running
datadog-agent check prometheus
// Rotate the entire assembly for printing | |
rotate([90,0,0]) { | |
// Create the main beam and cut a cylinder that's | |
// wide enough for the SMA connector to pass through | |
difference(){ | |
// Main beam, 90x15x5mm | |
cube([90,15,5]); | |
// Hole for SMA connector, radius of 5mm, | |
// smooth the edges by a factor of 200, |
#include <lmic.h> | |
#include <hal/hal.h> | |
#include <SPI.h> | |
#include <U8x8lib.h> | |
#define BUILTIN_LED 25 | |
// the OLED used | |
U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(/* clock=*/ 15, /* data=*/ 4, /* reset=*/ 16); | |
#include <lmic.h> | |
#include <hal/hal.h> | |
#include <SPI.h> | |
#include <U8x8lib.h> | |
#include <CayenneLPP.h> | |
#include "TinyGPS++.h" | |
#include <HardwareSerial.h> | |
#define BUILTIN_LED 25 | |
Use the above as a template for your code.
The device will register with the MQTT server on startup under the topic devices/state/<device_type>/<device_mac>
with a device type and a client id.
Use these values to publish JSON with the content {"update_available": 1}
to devices/control/<device_type>/<device_mac>
when you want to update the firmware.
The firmware should be stored on a webserver under /devices//firmware.bin
- this needs work as it means you can only store/deploy a single version of firmware at any given time.
Collaborative working can be hard to get right, here's our top 5 tips to encourage a culture of success.
“Collaborative Working is hard“. We’ve heard this from so many of our clients over the years, and often they really struggle with the conflict between [Generalism vs. Specialism][1], and even how to start working in a collaborative manner.
If you go into hospital for a major operation you wouldn’t expect the ward receptionist to administer the anaesthetic, nor would you expect a nurse to carry out the procedure, or the surgeon to perform post-operative care – so why do we expect so many of our software engineers to be “full stack developers”, or our operations teams to have a complete understanding of everything that happens in the process before our product reaches them?
Start by analysing your prod
# Uncomment lines below if you have problems with $PATH | |
#SHELL := /bin/bash | |
#PATH := /usr/local/bin:$(PATH) | |
all: | |
platformio -f run | |
upload: | |
platformio -f run --target upload |
Parsing recipes...done. | |
Parsing of 2161 .bb files complete (0 cached, 2161 parsed). 3128 targets, 152 skipped, 0 masked, 0 errors. | |
WARNING: No bb files matched BBFILE_PATTERN_meta-telegraf '^/media/yocto/jenkins/jenkins-meta/jenkins-meta/workspace/eway-os_feature_install_telegraf/lora-gateway-os/build/../../mbc-layers/meta-telegraf/' | |
NOTE: Resolving any missing task queue dependencies |
.google.com | |
gist.github.com | |
www.bbc.co.uk |
metadata { | |
definition (name: "OctoPrint", namespace: "OctoPrint", author: "MC", importUrl: "https://raw.githubusercontent.com/mikec85/hubitatdrivers/master/octoprint/OctoPrint.groovy") { | |
capability "Initialize" | |
capability "Switch" | |
capability "PresenceSensor" | |
attribute "state", "enum", ["Operational", "Printing", "Pausing","Paused", "Cancelling", "Error", "Offline"] | |
attribute "completion", "string" | |
attribute "printTimeLeft", "string" | |