Giter Site home page Giter Site logo

mongoose-os-docs's Introduction

Mongoose OS documentation

Mongoose OS is a firmware development framework for microcontrollers.

Mongoose OS was created for developers who work on commercial connected products, and care about things like manageability, security, and reliability. 80-90% of the commercial firmware is around infrastructure, which is the same for many products regardless of what they do. Mongoose OS provides such a reliable, field-tested infrastructure.

Quick Summary

  • Designed for commercial products
  • Reliable OTA
  • Support for major cloud services: AWS IoT, Microsoft Azure, Google IoT Core, IBM Watson, Samsung Artik
  • Support for generic in-house MQTT, RESTful, Websocket servers
  • Networking core is based on the mature Mongoose Networking Library
  • RPC infrastructure for remote management:
    • JSON-RPC 2.0 framing
    • transports: MQTT, UART, BLE, REST, Websocket
    • many built-in services like Config, FS, GPIO, I2C, GATTC, Wifi, etc
  • Configuration infrastructure with "reset to factory defaults"
  • Advanced security features
    • ECC508A crypto element support
    • TLS 1.2 based on the ARM mbedTLS
    • low footprint tuning of the TLS stack
  • Modular: small core and over a hundred libraries
  • Commercial friendly Apache 2.0 license

Smart Light IoT product reference

We have published an end-to-end IoT product reference, https://github.com/cesanta/mongoose-os-smart-light. It could be used as a baseline for your own commercial product! See usage guide video:

<iframe src="https://www.youtube.com/embed/fNrIwCoiazI" style="width:560px; height:315px;" frameborder="0" allowfullscreen></iframe>

Other resources

This documentation is browseable online at https://mongoose-os.com/docs

mongoose-os-docs's People

Contributors

a2800276 avatar acex187x avatar avalla avatar betashepherd avatar bricewge avatar cmumford avatar cpq avatar daadu avatar davybv avatar fspacheco avatar mamuesp avatar marcosboger avatar markterrill avatar nliviu avatar novlean avatar popstas avatar rojer avatar segeda avatar siftd106 avatar tripflex avatar wijae avatar zdila avatar zeevox avatar

Stargazers

 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

mongoose-os-docs's Issues

Page Proposal: "mOS Startup sequence" and "mongoose-os programming model"

Leaving this here as a proposal. I might come around to start doing it but I think starting this conversation is good to have a good final result.

I've been working with mOS for at least 3 years now! And I'm now guiding other people using it. But coming from other platforms, like arduino, will be difficult for new users.

My proposal is to have two new doc pages regarding mongoose basics.

The mongoose-os startup sequence:

  • Explain what goes on on startup
  • Describe how the system starts up, then starts calling lib init methods one by one
  • Also include the app init method
  • Tie into how libs are written and what is the required signature for their init function.
  • Show the app init method signature and the return value needed to finish the init process

This would help arduino people to understand how libraries can add functionality to their apps without explicitly calling them afterwards. And to avoid calling the lib init methods manually.

The mongoose-os programming model

  • Describe how mongoose-os runs. Mention the single thread and the event loop that handles timers and network functions.
  • Describe how different it is from arduino. Explain why using delays is not recommended on mongoose-os
  • Describe how it affects operations compared to arduino. Specifically UART as it is the most difficult one. Perhaps a bonus UART page is needed.
  • Mention how SPI and I2C are handled (synchronously)

Making a clear statement on how mongoose-os differs from arduino is crucial. I've seen programmers just adding in delays to an uart operation (I did the same when I started).

I hope this all makes sense, let me know if you have anything else to add, cheers!

Can't generate a new event base number

$ mos version                                                                                                                                          jonas 2.3.8
The Mongoose OS command line tool
Version: 201911162313
Build ID: 20191121-033810/2.16.0-3-g51708b2-master
Update channel: latest

build error:

/mongoose-os/include/mgos_event.h:39:34: error: expected declaration specifiers or '...' before '(' token
 #define MGOS_EVENT_BASE(a, b, c) ((a) << 24 | (b) << 16 | (c) << 8)
                                  ^

I've been trying to generate a new event base number, and keep running into this.
Trying to do #define MY_EVENT_BASE (1177563136) results in the same error, just pointing to the first opening bracket here.

ota guide outdated

Apparently the management dashboard file upload feature was removed a long time ago?

Documentation currently still reflects this feature without any mention that it is no longer avaiable.

mos build for cc3200 issue

Hi Team,
When I tried to build platform for cc3200 connected with COM port showing below error. Any idea is it TI Device space issue? or cc3200 is too large to accomodate on sensor

*** Out of space, tried to write 25586 bytes ***
make: *** [/data/fwbuild-volumes/latest/apps/app3/cc3200/build_contexts/build_ctx_133522072/build/objs/spiffs.img] Error 1
make: *** Waiting for unfinished jobs....
make: Leaving directory '/app'
Error: exit status 2
/go/src/github.com/mongoose-os/mos/mos/build_local.go:679:
/go/src/github.com/mongoose-os/mos/mos/build_local.go:666:
/go/src/github.com/mongoose-os/mos/mos/build_local.go:431:
/go/src/github.com/mongoose-os/mos/mos/build.go:223:
/go/src/github.com/mongoose-os/mos/mos/build.go:166:
/go/src/github.com/mongoose-os/mos/mos/main.go:196: build failed
Error: /go/src/github.com/mongoose-os/mos/mos/build_remote.go:326: build failed
/go/src/github.com/mongoose-os/mos/mos/build.go:223:
/go/src/github.com/mongoose-os/mos/mos/build.go:166:
/go/src/github.com/mongoose-os/mos/mos/main.go:196: build failed

D:\app3>d:\mos build --platform cc3200

How to setup name in Kiwi

I get this mqtt message, How I change name from null to my devices.
{
"gw" : "kiwi-0E9C20",
"mac" : "ac:23:3f:24:94:47",
"name" : null,
"rssi" : -66,
"adv" : "0201061aff4c000215fda50693a4e24fb1afcfc6eb0764782500000000c5",
"scan" : ""
}

Kiwi license

I've tried to obtain a Kiwi licenses key but I only can pick ccm/mos and both don't work. Anything I'm doing wrong?

API [cloudiot.googleapis.com] not enabled on projec

For a new project, before create a device registry, you have to enable Google API and billing.

This command does not work for new projects:
gcloud iot registries create iot-registry --region europe-west1 --event-notification-config=topic=iot-topic

Error:
API [cloudiot.googleapis.com] not enabled on project [<project_number>]

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.