Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env python
import time # Library for delays
import RPi.GPIO as GPIO # Library for using the GPIO ports
from math import log1p,exp,log10 # Library for math functions. No need for it if you'll get the raw data from the sensors
from ubidots import ApiClient # Ubidots Library
import Adafruit_DHT # Library from Adafruit to simplify the use of DHT sensor.
# Set up the SPI interface pins. Through SPI we can connect to the ADC MCP3008
SPICLK = 18
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import wiringpi2 as wp
class APDS9960:
# Register addresses
REG_ENABLE = 0x80
REG_ATIME = 0x81
@Cr4sh
Cr4sh / diag_msg.py
Created May 21, 2019 04:15
Debug messages monitor for Qualcomm cellular modems
#!/usr/bin/env python
###############################################################
#
# Debug messages monitor for Qualcomm cellular modems.
#
# This program talks to the baseband firmware over the
# diag protocol serial port.
#
# Written by:
@hwhw
hwhw / cc2538-and-openocd.md
Last active November 16, 2023 20:20
Flashing CC2538 using OpenOCD (&UART)

Flashing CC2538 using OpenOCD (&UART)

Problem description

CC2538 SoCs are Cortex-M4 based SoCs by Texas Instruments for 802.15.4 PAN networking, especially for Zigbee communication using their Zigbee Stack solution. It also is a solid foundation for hobbyist-grade solutions involving Zigbee communication, especially for running a self-implemented Zigbee coordinator (often called "Zigbee gateway" in commercial distribution of similar tech). Software-wise, this is usually done by running "ZNP" (Zigbee Network Processor) firmware on the SoC and using a separate controller/computer to act as the "ZAP" (Zigbee Application Processor). In a hobbyist setting, the former is usually a cheap module from china containing the chip, capacitors and an antenna or antenna connector, while the latter is e.g. a Raspberry Pi or an Intel NUC or whatever floats your boat. The API between both components is specified and so the software side on the ZAP does not need to bother with Zigbee communication states but can act on a

rank by height:

  1. mid (mid-mount)
  2. flat (flat mount, non-angled insertion)
  3. low
  4. med
  5. tall

low, med and tall are likely angled insertion - I don't check that, but it's reasonable to assume. The lines between low, med and tall are blurred, don't expect consistency - look for specific height values if you need them (and make a PR if you can, I'd appreciate it!) For mid-mount, smd+tht means inner row pins are THT - otherwise, inner row pins are SMD, which might be noticeably harder to rework.