Comments (9)
Hi there,
I guess that your question is, if we have made a Cortex-M build of Zenroom?
Yes we did, and we believe that Zenroom runs fine on a Cortex-M4 with 1MB of RAM. Your board seems to have 32KB of RAM, and there is no chance we can fit Zenroom in that, but if you're open to use different hardware, we may try to look into it.
More (limited and outdated) info about Cortex-M builds of Zenroom: https://dev.zenroom.org/#/pages/cortex
from zenroom.
thanks!
Unfortunately at the moment i cannot change hardware.
tgansk for the nice product thought!
from zenroom.
Good luck, hope you find it still useful to produce vectors, that's what we used Zenroom for in https://github.com/dyne/pangolin before going for the minimalist hardware implementation we first used it to prototype and then went coding it in pure C using wolfSSL as crypto backend.
Likewise I can imagine in some future after the final LTS release of Zenroom we'll have a 'light' version which interprets basic zencode scenarios without the Lua interpreter, but an ad-hoc one. This will make it possible to have it on smaller controllers.
from zenroom.
Hi @jaromil and @andrea-dintino .
Reopening this to check whether you seem feasable to port this on a different chip such as ESP32, which is based on Xtensa [1] and has just 512Kb of RAM, but comes with built in possibility to make it expandable, like in this camera or in this dev kit.
Thansk for the feedback in advance.
[1]Xtensa®single-/dual-core32-bitLX6microprocessor(s), upto600MIPS(200MIPSforESP32-S0WD/ESP32-U4WDH, 400 MIPS for ESP32-D2WD)
from zenroom.
From the homepage
Tiny library or executable (1MB), low memory usage (600KB~2MB). No external dependencies.
This platform seems too tight on resources for the current version without creative work or work-arounds.
Is that paged RAM or some similar mechanism?
from zenroom.
Hi @vongomben, with 512KB of RAM you can do some cryptography in Zenroom. We're not familiar with ESP32 architecture but I've seen that the GCC toolchain supports it, so it should be possible to build Zenroom for this chip. In general, we don't have an out of the box solution, the open points are:
- What real-time OS would you use, and how much RAM will it need?
- What cryptography/features do you need?
About that last point, if you know already what you need, and that is already implemented, we can point out how you can make tests with a Linux build of Zenroom and real data, to see how much RAM is needed, which is something you can crack pretty quickly.
With those two questions answered, we may be able to give you more info.
from zenroom.
To answer my own question
Is that paged RAM or some similar mechanism?
It appears that external RAM on the ESP32 is memory mapped, not paged, but still comes with use restrictions and performance hits. Application use of external memory requires heap_caps_malloc() under the ESP-IDF.
Something to take into account along side the RTOS footprint and required functionality.
from zenroom.
Thanks @adam-burns for answering your own question. I was actually not able to aswer you.
coming to @andrea-dintino:
What real-time OS would you use, and how much RAM will it need?
What cryptography/features do you need?
I'm still studying the case studies and scenarios in which I could use such a solution.
We are developing an industrial remote monitoring solution and looking towards blockchain technologies to grant an end-to-end encryption.
What I need, rather than a realtime OS is an arduino compatible library for ESP32 to let my device zenroom compliant.
ESP32 will become (or possibly already is) the go to hardware platform for so many different products, and this would help little devices to be more transparent.
from zenroom.
@vongomben I see that we actually have some build support for ESP32, see here:
https://github.com/DECODEproject/Zenroom/blob/master/Makefile
I remember that this was tried at some point last year, but since we didn't have a use case, we didn't go much further than "experimental".
I'm still studying the case studies and scenarios in which I could use such a solution.
We are developing an industrial remote monitoring solution and looking towards blockchain technologies to grant an end-to-end encryption.What I need, rather than a realtime OS is an arduino compatible library for ESP32 to let my device zenroom compliant.
Can you be more specific about this? What do you mean with "arduino compatible"?
ESP32 will become (or possibly already is) the go to hardware platform for so many different products, and this would help little devices to be more transparent.
Yes, we understand this concept well and indeed we've been looking at embedded with interest. We have connections with Arduino, so we may try and get their help if needed.
At this point, I'd say we could try the following:
- Figure out exactly where Zenroom should run, in terms of HW and SW (what board and what RTOS around it).
- Figure out what cryptography you need: maybe it would help if I give you a demo of Zenroom so you can get started.
Please let me know :-)
from zenroom.
Related Issues (20)
- length keyword deprecation HOT 2
- Copy from path
- verify is found in
- verify '' is found in '' at least '' times HOT 1
- Implement the P-256 curve and ECDSA signing
- `Print '' as '' in ''` add invalid elements to HEAP
- debug statements break json format
- make target android-x86_64
- Use of `and` with configuration `scope=given` HOT 2
- JWS with ES on P256 to support SD-JWT
- JWT of JWS, to support SD-JWT
- Add (and maintain) table with curves, signatures and credential schemes HOT 4
- SPHINCS+ quantum-ready signature
- Introspection scenario
- Keep updated documentation on PyPi HOT 8
- Encoding for JWT during import HOT 1
- Error in importing time does not make zenroom fails HOT 3
- Normalize the use of 'sd_jwt' as schema
- Default print codec for SD-JWT - what is it?
- Segmentation error on bbs signature HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zenroom.