China Fräser / Fräsköpfe

Drill Bits

HSS 4 Flute End Milling Cutter Drill Bit 3/16×1/4 Inch Straight Shank Engraving Tool
10pcs 1.5mm-3.175mm Carbide End Mill Engraving Bits For CNC Rotary Burrs
Drillpro 10pcs 1.3mm-3.175mm Carbide End Mill Engraving Bits for CNC PCB Rotary Burrs
Drillpro 10pcs 3.175mm Tungsten Steel Milling Cutter Bits End Mills
10pcs 1/8 Inch Shank 2 Flutes Carbide Ball Nose End Mills 17mm 2 Flute CNC Cutting Tool

LoPy and MicroPython

Cross-Reference blog.bachi.net:
Internet of Things (IoT) Protocols & Standards
LoRa: The Things Network

kickstarter: LoPy – the LoRa, WiFi and Bluetooth IoT development platform, 8. Feb 2016 – 8. Mar 2016 (30 Tage)
Pycom

kickstarter: Micro Python: Python for microcontrollers, 13. Nov 2013 – 13. Dez 2013 (30 Tage)
MicroPython – Python for microcontrollers
github: MicroPython – a lean and efficient Python implementation for microcontrollers and constrained systems

PyCom Announcements & News, (Update Firmware, etc.)

Documentation

Pycom ESP32
Pycom LoPy: WLAN (old?)
Pycom LoPy: Quick reference for the LoPy (old?)
class LoRa (old?)
Python Module: Modularisierung
Python Tutorial: Module

FTDI Drivers

D2XX Drivers

Support Download

github.com/pycom
github.com/pycom/pycom-libraries/examples/
Support Download

Forum Posts

iC880 A SPI : Missing Payload in received Packet?
LoRaWAN ABP example => DevEUI
Connecting the lopy to my lorank8 gateway

Firmware

How to solve the firmware update failures
Exciting open source news!
Firmware source code?

FTP

Username: micro
Password: python

Boot-Mode and Safe-Mode

Boot modes and safe boot
Safe boot

Using “The Things Network”

LoPy Usage

>>> CTRL-D
PYB: soft reboot
MicroPython v1.8.6-464-g0f843911 on 2017-02-17; LoPy with ESP32
Type "help()" for more information.

>>> import os
>>> os.uname().release
'1.6.3.b2'

>>> os.uname()
(sysname='LoPy', nodename='LoPy', release='1.6.3.b2', version='v1.8.6-464-g0f843911 on 2017-02-17', machine='LoPy with ESP32', lorawan='1.0.0')
>>> import binascii
>>> import network
>>> import machine
>>> from network import LoRa

#  Device EUI
>>> lora = LoRa(mode=LoRa.LORAWAN)
>>>print(binascii.hexlify(lora.mac()).upper().decode('utf-8'))
70B3D54994AD77E0

>>> binascii.hexlify(network.LoRa().mac())
b'70b3d5499a6b6439'
>>> binascii.hexlify(machine.unique_id())
b'240ac400c004'
>>> binascii.hexlify(network.WLAN().mac())
b'240ac400c004'
lora = LoRa(mode=LoRa.LORAWAN, sf=7, tx_power=14)
lora.BW_125KHZ
lora.CODING_4_5

# create an OTAA authentication tuple (NWSkey, AppSKey, DevAddr)
auth = (bytes([0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX]),
        bytes([0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX]),
        0x69128CD3 )

lora.join(activation=LoRa.ABP, auth=auth, timeout=0)

while not lora.has_joined():
print('Trying to join LoRa network')
sleep(1)
pass
print('Joined LoRa Network')

pycom.rgbled(GREEN)
s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
s.setblocking(False)

while True:
print('Sending Packet')
s.send('Hello from the LoPy')
print('Done sending')
sleep(2)
import pycom
import machine
import time

pycom.heartbeat(False)

led=machine.Pin("G16",machine.Pin.OUT)
button=machine.Pin("G17",machine.Pin.IN, pull=machine.Pin.PULL_UP)

def handler(button):
    led.toggle()

irq=button.callback(trigger=button.IRQ_FALLING, handler=handler)

Change Frequency

Changing Frequency region after upgrade
class LoRa

NRF5x Bluetooth Low Energy (LE, BLE, Smart)

Segger Embedded Studio
Embedded Studio License Activation for Nordic Semiconductor Devices (nRF)

Bluetooth Classic and LE? => Just LE!

Serial Port Profile vs. BLE

nRF52810 UART service (NUS) Solution (Raytac Module: MDBT42Q-192K)
Is there a serial port profile for BLE?
Nordic UART Service Client
Running examples that use a SoftDevice
Nordic UART Service

JavaScipt / Espruino / NodeJS

HowTo use S132 to for uart to Windows 10
github.com/bossesand/OHTI, OHTI Open Head Tracking Initiative
Espruino – JavaScript for Microcontrollers

Adafruit

Bluefruit nRF52 Feather Learning Guide

GitHub

github.com/NordicSemiconductor

Nordic Tutorials

Nordic Tutorials Home
Software development Getting Started Guides
nRF5 Series: Developing with SEGGER Embedded Studio

Old

Setting up an example project on the nRF51 DK, 2015
Development with GCC and Eclipse, 2015
Bluetooth low energy Services, a beginner’s tutorial, 2015
Getting started with the nRF51 or nRF52 Development Kit, 2016

nRF51

nRF51822, Bluetooth Smart and 2.4GHz
nRF51 DK, Development Kit for Bluetooth
nRF5 SDK, Software Development Kit for the nRF51 Series and nRF52

nRF51822

  • 32-bit ARM Cortex M0 CPU, 16 MHz
  • 256kB/128kB Flash
  • 32kB/16kB RAM
  • 10-bit ADC, UART, SPI, I2C, RTC, 31 x GPIO
  • Bluetooth LE (BLE)

The embedded 2.4GHz transceiver supports both Bluetooth Smart and the Nordic Gazell 2.4 GHz protocol stack which is on air compatible with the nRF24L series products from Nordic Semiconductor.

  • Bluetooth Smart
  • Nordic Gazell 2.4 GHz (= nRF24L)

micro:bit


The micro:bit runtime and mbed programming

micro:bit Lancaster University

micro:bit runtime
MicroBit (uBit)
uBit.radio
Yotta Offline-Toolchain

Clock Frequency

Does nrf51822 have a clock?
What low-frequency clock sources can I use?

nRF52

nRF52810, High performance, entry-level Bluetooth 5/ANT/2.4GHz SoC
nRF52832, Advanced performance Bluetooth5/ANT/2.4GHz proprietary SoC
nRF52840, High-end Bluetooth 5/Thread/802.15.4/ANT/2.4GHz multiprotocol SoC

nRF52832

  • 32-bit ARM Cortex M4F CPU, 64 MHz
  • 512kB/256kB Flash
  • 64kB/32kB RAM
  • 12-bit ADC, UART, SPI, I2C, RTC, 32 x GPIO
  • Bluetooth LE (BLE) / Bluetooth 5

Nordic Thingy:52

Nordic Thingy:52
Nordic Thingy:52 – Get Started
Nordic Thingy:52 v2.1.0 – Firmware Documentation
Digikey – IoT-Sensor-Kit Thingy:52
Mouser – Thingy:52 IoT-Sensor-Development-Kit
Espruino – Nordic Thingy:52

arm mbed

Nordic nRF51-DK
Nordic nRF52-DK
Nordic nRF52840-DK
Yotta Offline-Toolchain
yotta Documentation
github.com/ARMmbed/yotta

nRF5 SDK

nRF5 SDK

Software

github.com/NordicSemiconductor/pc-nrfconnect-programmer, Programmer app for nRF Connect (Node.js)
nRF52840 Dongle Programming Tutorial

Boards and SoftDevices

Supported SoftDevices:
S112 v6.1.x, Memory-optimized Bluetooth 5 protocol stack with dual peripheral and broadcaster roles
S132 v6.1.x, Bluetooth 5 qualified, 20-link protocol stack, all 4 Bluetooth Low Energy roles
S140 v6.1.x, Concurrent multi-role Bluetooth 5 protocol stack
– S212 v5.0.x

Supported boards:
PCA10040, nRF52832
– PCA10040E (nRF52810 emulation on PCA10040)
PCA10056, nRF52840
PCA10059 (support in selected examples)
– D52DK1 from Garmin Canada (only for ANT examples)
nRF52832-MDK, nRF52832-mdk

Drivers

CP210x USB to UART Bridge VCP Drivers

nRF24

nRF24L01, Transceiver only
nRF24L01+, Transceiver only
nRF24LE1, enhanced 16MHz 8-bit 8051 compatible CPU
nRF24LU1+, enhanced 16MHz 8-bit 8051-compatible CPU

PlatformIO

Nordic nRF51 Platform

Tutorials

nRF5x Development with GCC and Eclipse
Getting Started with nRF51822
Starting Development with Nordic nRF5X and GCC on Linux (Part 1)
Starting Development with Nordic nRF5X and GCC on Linux + Eclipse (Part 2)
nRF51822 Begins – nRF-DK, GCC, ADC, UART/BLE
nRF51 Development Kit complete setup for Linux

WaveShare

Bluetooth 4.0 NRF51822 Eval Kit
Waveshare BLE400 — Zephyr Project Documentation

Wiki

BLE400
Core51822
NRF51822 Eval Kit

AliExpress

F10643 NRF51822 Drahtlose Bluetooth Modul Networking Modul
J34 Kostenloser Versand NRF51822 BLE4.0 Bluetooth Evaluation Board 2,4G Drahtlose Kommunikationsmodul

infor-link: connect more devices…
nRF52

github

github.com/redbear/nRF5x, nRF51822 and nRF52832 based baords, e.g. BLE Nano, RBL_nRF51822, Nano 2 and Blend 2

Shop

RedBear Blend V2 (Retired)
RedBear Blend V2
RedBear BLE Module MB-N2 (2 pack)
DAPLink
Particle Debugger

Bluetooth Client (Linux / Windows)

nRF Connect for Desktop
Qt Bluetooth
Qt Bluetooth Low Energy Overview
github.com/NordicSemiconductor/pc-ble-driver, Desktop library for BLE development using nRF5
github.com/NordicSemiconductor/pc-nrfutil, nrfutil python library and command line client

FAQ

AdaFruit Stuff

AdaFruit CircuitPython on the nRF52 – nRF52840 Bootloader

nRF52 Chip Revision

Is there any difference between nRF52832-QFAAB0 and nRF52832-QFAAE0?
How do i interpret things written on my nrf52832 chip?

Which SoftDevice for nRF52832?

  • compatibility matrix

S132 vs S140
nRF52832 Compatibility Matrix
what’s the difference between different softdevices

Compile SDK Examples with Makefile

Specify Toolchain

$ cd ~/src/nrf51/nRF5_SDK_15.2.0_9412b96/examples/peripheral/serial/pca10056/blank/armgcc
$ make
make: /usr/local/gcc-arm-none-eabi-6-2017-q2-update/bin/arm-none-eabi-gcc: Command not found
Cannot find: '/usr/local/gcc-arm-none-eabi-6-2017-q2-update/bin/arm-none-eabi-gcc'.
Please set values in: "/home/andreas/src/nrf51/nRF5_SDK_15.2.0_9412b96/components/toolchain/gcc/Makefile.posix"
according to the actual configuration of your system.
../../../../../../components/toolchain/gcc/Makefile.common:129: *** Cannot continue.  Stop.

Proxxon

Schweiz

Suter Meggen Online-Shop

PROXXON 27110 MICRO Fräse / Microfräse MF 70 MF70

www.fluidonline.de

Videos

PROXXON 27110 MICRO-Fräse Microfräse MF 70 MF70
Proxxon MF 70 CNC milling machine with digital readout for manual control
Proxxon MF70 CNC Platinen fräsen
Proxxon MF70 CNC Umbau
Proxxon MF 70 CNC (1-Axe mit Arduino)
Proxxon MF-70 3 Axes CNC Conversation

PROXXON 27100 Koordinatentisch / Kreuztisch KT 70 / KT70

www.fluidonline.de

Videos

KT70-CNC mit Bohrständer MB 140

PROXXON 20150 Koordinatentisch Kreuztisch KT150

www.fluidonline.de

PROXXON 28124 Tischbohrmaschine TBH / Ständerbohrmaschine

www.fluidonline.de

PROXXON 28606 Bohrständer MB 140 / S für Geräte mit 20mm Systempassung

www.fluidonline.de

PROXXON 28481 Industrie Bohrschleifer IBS/E (IB/E)

www.fluidonline.de

PROXXON 20165 Fräsmotor mit Steuerung BFW40/E

www.fluidonline.de

PROXXON 24320 Feinfräse FF 500 / FF500

www.fluidonline.de

PROXXON 24108 Feinfräse Fräse FF230 / FF 230

www.fluidonline.de

PROXXON 24400 Präzisions Drehmaschine PD 400 / PD400

www.fluidonline.de

PROXXON 24260 Präzisions – Maschinenschraubstock PM 40 / PM40

www.fluidonline.de

PROXXON 27116 Satz Vollhartmetall Schaftfräser

www.fluidonline.de

PROXXON 24264 Teilapparat für Microfräse MF 70 & KT 70

www.fluidonline.de

ethtool with Timestamp Support

$ ethtool enp1s0
Settings for enp1s0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: off (auto)
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

$ ethtool -i enp1s0
driver: igb
version: 5.2.18-k
firmware-version:  0. 6-5
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

$ ethtool -T enp1s0
Time stamping parameters for enp1s0:
Capabilities:
        hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)
        software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
        hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)
        software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
        software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
        hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
        off                   (HWTSTAMP_TX_OFF)
        on                    (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
        none                  (HWTSTAMP_FILTER_NONE)
        all                   (HWTSTAMP_FILTER_ALL)

$ dmesg | grep igb
[    5.521150] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.2.18-k
[    5.528611] igb: Copyright (c) 2007-2014 Intel Corporation.
[    5.572451] igb 0000:01:00.0: added PHC on eth0
[    5.577186] igb 0000:01:00.0: Intel(R) Gigabit Ethernet Network Connection
[    5.584346] igb 0000:01:00.0: eth0: (PCIe:2.5Gb/s:Width x1) 00:0d:b9:3f:9d:bc
[    5.591815] igb 0000:01:00.0: eth0: PBA No: FFFFFF-0FF
[    5.597191] igb 0000:01:00.0: Using MSI-X interrupts. 4 rx queue(s), 4 tx queue(s)
[    5.642228] igb 0000:02:00.0: added PHC on eth1
[    5.647005] igb 0000:02:00.0: Intel(R) Gigabit Ethernet Network Connection
[    5.654086] igb 0000:02:00.0: eth1: (PCIe:2.5Gb/s:Width x1) 00:0d:b9:3f:9d:bd
[    5.661414] igb 0000:02:00.0: eth1: PBA No: FFFFFF-0FF
[    5.666672] igb 0000:02:00.0: Using MSI-X interrupts. 4 rx queue(s), 4 tx queue(s)
[    5.711391] igb 0000:03:00.0: added PHC on eth2
[    5.716129] igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection
[    5.723292] igb 0000:03:00.0: eth2: (PCIe:2.5Gb/s:Width x1) 00:0d:b9:3f:9d:be
[    5.730654] igb 0000:03:00.0: eth2: PBA No: FFFFFF-0FF
[    5.735982] igb 0000:03:00.0: Using MSI-X interrupts. 4 rx queue(s), 4 tx queue(s)
[    5.747308] igb 0000:01:00.0 enp1s0: renamed from eth0
[    5.770235] igb 0000:03:00.0 enp3s0: renamed from eth2
[    5.797884] igb 0000:02:00.0 enp2s0: renamed from eth1

$ ethtool em1
Settings for em1:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Speed: 100Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 2
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
	Supports Wake-on: pumbg
	Wake-on: g
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

$ ethtool -i em1
driver: e1000e
version: 3.2.5-k
firmware-version: 0.4-3
bus-info: 0000:00:19.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

$ ethtool -T em1
Time stamping parameters for em1:
Capabilities:
	software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
	software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
	software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
PTP Hardware Clock: none
Hardware Transmit Timestamp Modes: none
Hardware Receive Filter Modes: none

$ dmesg | grep e1000
[    3.583797] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.5-k
[    3.583798] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    3.584295] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[    3.774720] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) b8:ac:6f:2f:14:cf
[    3.785851] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection
[    3.796763] e1000e 0000:00:19.0 eth0: MAC: 8, PHY: 8, PBA No: 2011FF-0FF
[    3.812746] e1000e 0000:00:19.0 em1: renamed from eth0
[   34.403887] e1000e: em1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx
[   34.403998] e1000e 0000:00:19.0 em1: 10/100 speed: disabling TSO

Interactive vs. Login Shell

What is the difference between interactive shells, login shells, non-login shell and their use cases?

differences between login shell and interactive shell
Why do we have login, non-login, interactive, and non-interactive bash shells?
What is the difference between a ‘Login’ and an ‘Interactive’ bash shell

Interactive: As the term implies: Interactive means that the commands are run with user-interaction from keyboard. E.g. the shell can prompt the user to enter input.

Non-interactive: the shell is probably run from an automated process so it can’t assume if can request input or that someone will see the output. E.g Maybe it is best to write output to a log-file.

Login: Means that the shell is run as part of the login of the user to the system. Typically used to do any configuration that a user needs/wants to establish his work-environment.

Non-login: Any other shell run by the user after logging on, or which is run by any automated process which is not coupled to a logged in user.

USER       PID TTY    COMMAND
root       723 ?      /usr/sbin/sshd -D
root      1023 ?       \_ sshd: andreas [priv]
andreas   1062 ?       |   \_ sshd: andreas@pts/0
andreas   1063 pts/0   |       \_ -bash
root      1320 pts/0   |           \_ sudo -s
root      1321 pts/0   |               \_ /bin/bash
root      1456 pts/0   |                   \_ ps auxf
root      1271 ?       \_ sshd: andreas [priv]
andreas   1307 ?           \_ sshd: andreas@pts/1
andreas   1308 pts/1           \_ -bash
root       760 ttyS0  /bin/login --
andreas    849 ttyS0   \_ -bash
andreas   1464 ttyS0       \_ bash

A login shell is the first process that executes under your user ID when you log in for an interactive session. The login process tells the shell to behave as a login shell with a convention: passing argument 0, which is normally the name of the shell executable, with a – character prepended (e.g. -bash whereas it would normally be bash.

sudo

see also here:
blog.bachi.net: bashrc vs. bash_profile

   [...]

     -i, --login
                 Run the shell specified by the target user's password data-
                 base entry as a login shell.  This means that login-specific
                 resource files such as .profile or .login will be read by the
                 shell.  If a command is specified, it is passed to the shell
                 for execution via the shell's -c option.  If no command is
                 specified, an interactive shell is executed.  sudo attempts
                 to change to that user's home directory before running the
                 shell.  The command is run with an environment similar to the
                 one a user would receive at log in.  The Command environment
                 section in the sudoers(5) manual documents how the -i option
                 affects the environment in which a command is run when the
                 sudoers policy is in use.

   [...]

     -s, --shell
                 Run the shell specified by the SHELL environment variable if
                 it is set or the shell specified by the invoking user's pass-
                 word database entry.  If a command is specified, it is passed
                 to the shell for execution via the shell's -c option.  If no
                 command is specified, an interactive shell is executed.

   [...]