Giter VIP home page Giter VIP logo

azure-sphere-gallery's Introduction

Azure Sphere Gallery

This repository contains a collection of inspirational, unmaintained Azure Sphere software samples and hardware designs ready to be reused.

For maintained samples and designs, see the official Azure Sphere Samples, Azure Sphere Tools, and Azure Sphere Hardware Designs repos:

Using the samples and designs

See the Azure Sphere Getting Started page for background on Azure Sphere.

Each sample/hardware design will include instructions in the readme for any system requirements, maintenance expectations, who to contact for support, and the amount of testing completed.

Each folder within this repository contains a README.md file that describes the samples or hardware designs therein. Follow the instructions in each individual readme.

List of projects

Folder name Description
AzureFunctionApp_AzureSpherePublicAPI This project shows how to create a Python Azure Function app that uses Managed Service Identity to call the Azure Sphere Public API
AzureIoT_StoreAndForward This project shows how to add telemetry store and forward capability to the AzureIoT sample
AzureSphereSquirrel This project shows how to run a high-level scripting langauge (Squirrel Lang) on MT3620 for powerful high-level API use, code hot-reload and unit testing.
BalancingRobot This project contains the hardware, enclosure, and software files needed to build an Azure Sphere and Azure RTOS self-balancing robot.
CO2 Monitor healthy spaces This project integrates a CO2 monitor with IoT Central. It covers security, driver development, IoT Plug and Play, deferred updates, and watchdogs.
CrashDumpsConfigure Script that can be used to get or set crash dump policy for your device groups in the Azure Sphere Security Service
AzureIoTMessageWithProperties A project that shows how to add custom properties to an Azure IoT Hub telemetry message, which can then be used for message routing
AzureSphereTenantDeviceTwinSync A project that shows how to update IoT Hub device twin with OS Version, Product/Device Group and more based on telemetry triggers using Azure IoT Hub/EventGrid and a custom ASP.NET Core REST API
DeviceTenantFinder Utility that makes it easy to find the Azure Sphere tenant name/Id within your tenants for a given Device Id
DNSServiceDiscoveryUnicast Application showing unicast DNS service discovery to allow discovery of and connection to services outside of the local network
DRAMClickboard Application showcases the capabilites of interacting with a Mikro DRAM Click board on Azure Sphere
EAP-TLS_Solution A library & demo solution implementation for Azure Sphere-based devices connecting to Extensible Authentication Protocol โ€“ Transport Layer Security (EAP-TLS) networks.
EncryptedStorage A project demonstrating simple use of the wolfCrypt authenticated encryption APIs
GetDeviceOSVersion A project that retrieves the OS versions for all Azure Sphere based devices.
Grove_16x2_RGB_LCD A project that shows how to integrate a Seeed Grove LCD/RGB 16x2 display
HeapTracker A memory allocation tracking library that can help diagnose memory leaks.
LittleFs_Encrypted_RemoteDisk A project that shows how to add encrypted, authenticated storage using Littlefs to an Azure Sphere project (with remote storage)
LittleFs_RemoteDisk A project that shows how to add Littlefs to an Azure Sphere project, uses Curl to talk to remote storage
LittleFs_SDCard A project that combines Littlefs with SD Card support, and PC utilities to read the SD Card and extract files/folders.
MQTT-C_Client A project that shows how to add the MQTT-C library to an Azure Sphere project. There is also a host Python app provided for testing purposes.
MultiDeviceProvisioning Shows how multiple Azure Sphere devices can be provisioned automatically and simultaneously from a single PC.
MutableStorageKVP Provides a set of functions that expose Key/Value pair functions (write, read, delete) over Azure Sphere Mutable Storage.
NativeBlink A project demonstrating the use of the Azure Sphere Native Container to build, debug, and unit test a native Azure Sphere app
NetworkInterfaceAddresses A minimal Azure Sphere app that prints the MAC and IP address of the given network interface.
OSNetworkRequirementChecker-HLApp A sample app that performs DNS resolver and custom NTP test for diagnosing networking connectivity problems.
OSNetworkRequirementChecker-PC A PC command line utility for diagnosing networking connectivity issues.
OpenSourceProjectsSupportingExternalPeripherals This is a list of open-source projects supporting external hardware on the Azure Sphere MT3620 platform
ParseDeviceLog Tools that can parse device logs in to human readable format. This content has moved to the Azure Sphere Tools repository.
PWMAudio Generate tones using PWM on the real-time cores
RS485Driver An RS-485 real-time driver with HL-Core interfacing API.
ServiceAPIDeviceCodeAuth Code snippet to access public rest api using device code flow from a web app.
SetIoTCentralPropsForDeviceGroup Utility that makes it easy to set an Azure IoT Central Device Twin property for all devices in an Azure Sphere Device Group.
SetTimeFromLocation Project that shows how to use Reverse IP lookup to get location information, then obtain time for location, and set device time.
SimpleFileSystem_RemoteDisk Project that shows how to add a simple FIFO/circular buffer file system to an Azure Sphere project, uses Curl to talk to remote storage
ToggleClassicCLI Scripts for Windows and Linux that allow you to test the removal (and restore) of the Azure Sphere Classic CLI.
TranslatorCognitiveServices Project that shows how to call Microsoft Translator Cognitive Services APIs from Azure Sphere
UdpDebugLog Code that demonstrates how to override Log_Debug to broadcast on a UDP Socket, includes a Desktop Viewer application.
VS1053AudioStreaming Project that shows how to play audio through a VS1053 codec board
WebHookPublicAPIServicePrincipal Project that shows how to use the Azure Sphere Public API with Azure Active Directory Service Principal authentication
WifiConfigurationViaAppResource Project that shows how to configure device Wi-Fi settings using an embedded JSON resource file
WifiConfigurationViaNfc Project that shows how to configure device Wi-Fi settings using NFC
WifiConfigurationViaUart Project that shows how to configure device Wi-Fi settings using Uart
IndustrialDeviceController Project that provides a set of tools, service and software to enable collecting real time telemetry data from various CE devices through MODBUS protocol in a secure, low latency and reliable way.
Rust Rust language support for Azure Sphere

Contributing

This project contains a collection of Microsoft employee demos, hacks, hardware designs, and proof of concepts. Microsoft authors of new contributions should fork the repo and create a pull request using a new folder, using the appropriate README template for software or hardware contributions, and following the checklist in the pull request template.

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Licenses

For information about the licenses that apply to a particular sample or hardware design, see the License and README.md files in each subdirectory.

azure-sphere-gallery's People

Contributors

alexanderstocks avatar barrybo avatar bawilless avatar cawhitworth avatar coderscribe avatar dependabot[bot] avatar dhe-engineer avatar ericawes avatar glcardoz avatar gloveboxes avatar gtrevi avatar jamesadevine avatar jishen1227 avatar jophippe avatar lisbecg avatar mayukhgit avatar microsoft-github-policy-service[bot] avatar mikehall-ms avatar miz060 avatar rebeccaleigh avatar sjanugani avatar t-flenouryc avatar tokenstar avatar tylerfox avatar xisui-msft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azure-sphere-gallery's Issues

Instruction update for the Heap tracker and question

First off, thank you for publishing this tool! I'm trying to use the tool to help me locate a memory leak and I have one documentation suggesting and a question.

The instructions should include a step to add the heap_tracker.c file in the CMakeLists.txt file. For the AzureIoT example the user would add the following two lines to the common/CMakeLists.txt file.

${CMAKE_CURRENT_LIST_DIR}/heap_tracker_lib.c
${CMAKE_CURRENT_LIST_DIR}/heap_tracker_lib.h

I'm trying to use the library in an application that connects to my IoTHub and I see warnings printed out . .
Heap-Tracker lib: WARNING! Native free(0xbef04e10) was called instead of _free() helper: 'heap_allocated' will not be reliable from now on!

I see these messages after sending an device twin update or telemetry to my IoTHub.

I've located all the calls to free() in my application code, but I suspect that the Azure Sphere SDK libraries are calling free() and it's not obvious to me how to extend the heap tracker functionality to the Azure Sphere libraries.

Thanks!

Date not set

Thanks for the code.
image

This was my output . How can I fix the date?

Definition of device modbus registers

While studying the IndutrialDeviceController example I have gone through all files, but can't find the actual format/device setting to work with the specific modbus registers. Want to use this with a very well known XY-MOD2 SHT20 sensor.

Regards,

Erik

Rust apps hit SIGSEGV randomly during syscalls, regression in Rust 1.71.0 and newer

In MUSL, __syscall_cp_c() polls for __pthread_self()->cancel not equal to zero, and if true, calls __cancel() to stop the thread. This code is all correct, but when Rust apps make a syscall, either the __pthread_self() pointer is bad, or the value of ->cancel is bad (0x10000 typeically), and the attempt to cancel the sole thread crashes with SIGSEGV.

This is only a problem for Rust apps built with Rust 1.71.0 or newer, Older builds of rustc don't repro the issue. I'll investigate.

Here is a typical callstack from a SIGSEGV during a syscall for open() in a single-threaded app that isn't using pthreads for anything:

(gdb) info stack
#0 0x00000000 in ?? ()
#1 0xbeec564e in pthread_exit () from target:/lib/ld-musl-armhf.so.1
#2 0xbeed70fa in ?? () from target:/lib/ld-musl-armhf.so.1
#3 0xbeed7156 in ?? () from target:/lib/ld-musl-armhf.so.1
#4 0xbeeaa3ca in open64 () from target:/lib/ld-musl-armhf.so.1
#5 0xbeeaa248 in __z_azsp_open () from target:/lib/ld-musl-armhf.so.1
#6 0x0002f916 in ADC_Open (id=0) at /opt/azurespheresdk/Sysroots/16/usr/include/applibs/adc_internal.h:24
#7 0x0003044c in ADC_Open_inline (id=0) at ../azure-sphere-sys/static_inline_helpers.c:30
#8 0x0001c4d8 in azure_sphere::applibs::adc::AdcController::new (controller_id=0)
at azure-sphere/src/applibs/adc.rs:63
#9 0x00016ca0 in allapis::main () at samples/allapis/src/main.rs:62

Azure Sphere MQTT multiple device issue

Hi. I have tried the MQTT sample in the azure sphere gallery. It worked fine. Now I have been trying to connect 2 device. I got continuous error whenever I added more client on the python code.
These are the changes done.

broker_address='test.mosquitto.org'

def on_message1(client1, userdata, message1):
msg1=str(message1.payload.decode("utf-8"))
print("received message =",msg1)
msg1=msg1[len(msg1)-1]+msg1[0:len(msg1)-1]
client1.publish("azuresphere/sample/device1",msg1)

def on_connect1(client1, userdata, flags, rc):
print("Connected ")
client1.subscribe("azuresphere/sample/host")

client1=paho.Client()
client1.on_message=on_message1
client1.on_connect=on_connect1

def on_message2(client2, userdata, message2):
msg2=str(message2.payload.decode("utf-8"))
print("received message =",msg2)
msg2=msg2[len(msg2)-1]+msg2[0:len(msg2)-1]
client2.publish("azuresphere/sample/device2",msg2)

def on_connect2(client2, userdata, flags, rc):
print("Connected ")
client2.subscribe("azuresphere/sample/host")

client2=paho.Client()
client2.on_message=on_message2
client2.on_connect=on_connect2
print("connecting to broker")

parentDir=os.path.abspath(os.path.join(Path(os.path.dirname(os.path.realpath(file))), os.pardir))
certsDir=os.path.join(parentDir,'HighLevelApp','Certs')
print(certsDir)
if (os.path.exists(os.path.join(certsDir,'mosquitto.org.crt'))):
print('mosquitto cert exists')
else:
print("mosquitto cert doesn't exist :(")

client1.tls_set(ca_certs=os.path.join(certsDir,'mosquitto.org.crt'), certfile=os.path.join(certsDir,'client.crt'), keyfile=os.path.join(certsDir,'client.key'), cert_reqs=ssl.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLSv1_2)
client1.tls_insecure_set(False)
client1.connect(broker_address, 8883, 60)

client2.tls_set(ca_certs=os.path.join(certsDir,'mosquitto.org.crt'), certfile=os.path.join(certsDir,'client.crt'), keyfile=os.path.join(certsDir,'client.key'), cert_reqs=ssl.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLSv1_2)
client2.tls_insecure_set(False)
client2.connect(broker_address, 8883, 60)

##start loop to process received messages
client1.loop_forever()
client2.loop_forever()

Thank You.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.