devicescript
nephyr
devicescript | nephyr | |
---|---|---|
13 | 4 | |
3,194 | 24 | |
0.6% | - | |
9.5 | 0.0 | |
19 days ago | almost 2 years ago | |
TypeScript | Nim | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
devicescript
-
Introduction to hardware programming with DeviceScript
Hardware programming used to require you to learn C/C++. If you’re already familiar with JavaScript or TypeScript, you will be delighted to learn about DeviceScript, a TypeScript programming environment for microcontrollers. In this blogpost you’ll learn the basics of electronics and DeviceScript. We will create the “hello world” of programming: making an LED blink!
-
DeviceScript and LCD screens
This article shows how to use DeviceScript to program a microcontroller (ESP32-C3), a temperature/humidity sensor (BME680) and a LCD character screen to build a tiny weather dashboard. This project does not require soldering or embedded skills.
-
DeviceScript - Temperature + MQTT
DeviceScript brings JavaScript/TypeScript to tiny IoT devices such as the ESP32. DeviceScript provides a user friendly editing/debugging experience in Visual Studio Code.
- DeviceScript | TypeScript for Tiny IoT Devices
- Why Dynamic Memory Allocation Bad (for Embedded)
- Microsoft DeviceScript – TypeScript for Tiny IoT Devices
- DeviceScript: TypeScript for Tiny IoT Devices
nephyr
-
Microsoft DeviceScript – TypeScript for Tiny IoT Devices
I use Nim on embedded precisely for that reason: https://github.com/elcritch/nesper
I wtapped much of zephyr as well but that ones less used: https://github.com/embeddednim/nephyr
-
Compile time evaluation in Nim, Zig, Rust and C++
It's funny how something like Zig's comptime of C++'s constexpr get 90% of the way to solving most compile time issues, but can't knock out that last 10%. Compile time database types sound like one of those cases. F# had a feature for compile time types via "type providers". It seemed _really_ cool at first, but in practice is was a bit fragile.
Though on the other hand I'm using compile Nim code to parse CMake files and provide static types for configuration values. It's super easy in Nim between macros and const's. Here's a ~170 lines of code where I'm compile time checking that my Nim code can compile time check against the current build configuration of Zephyr RTOS https://github.com/EmbeddedNim/nephyr/blob/main/src/zephyr_c...
-
Launching the 2021 Nim Community Survey
Nesper author here, unfortunately I haven’t had time to fix the compile issues on all the esp-idf branches. Please feel free to file an issue as I don’t use es-idf/Nesper often now but I’ll respond to issues. The main branch should be more stable too.
I’ve been moving development to Zephyr RTOS since it supports many more boards and is more stable. I’d recommend trying it out but note it’s a WIP. I haven’t figured out templated examples yet. I’ve covered lots of api areas but not all. My goal is to make it into a broad MCU platform for Nim — Nephyr: https://github.com/EmbeddedNim/nephyr
But yah Nim can run on most anywhere you can compile C to. Some people just got Nim CMSIS working. I’m hoping to get more people involved at github.com/EmbeddedNim project to support more mcu’s. Testers are welcome!
- An Embedded USB Device Stack in Ada
What are some alternatives?
Sming - Sming - powerful open source framework simplifying the creation of embedded C++ applications.
svd2nim - Convert CMSIS ARM SVD files to nim register memory mappings
ts2c - Convert Javascript/TypeScript to C
usb_embedded - An Ada USB stack for embedded devices
tinybasic - A BASIC interpreter for Arduino, ESP, RP2040, STM32, Infineon XMC and POSIX with IoT and microcontroller features.
RFCs - A repository for your Nim proposals.
angular-web-bluetooth - The missing Web Bluetooth module for Angular
nesper - Program the ESP32 with Nim! Wrappers around ESP-IDF API's.
esp8266-react - A framework for ESP8266 & ESP32 microcontrollers with a React UI
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).