wokwi-features
hardcaml
wokwi-features | hardcaml | |
---|---|---|
130 | 7 | |
65 | 614 | |
- | 1.0% | |
0.0 | 6.4 | |
over 2 years ago | 10 days ago | |
OCaml | ||
- | MIT License |
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.
wokwi-features
-
Getting into Robotics as a Software Engineer
No, no - I have a half a dozen RPi's of varying revisions. Since they run Linux and the SDcards are less than robust, anytime you accidentially trip the power (which to me happens several times during hardware debugging sessions) you risk scrambling the rootfs and thus need to reflash a new SDcard. Some SDcards get damaged.
I recommend using Arduino and/or Wokwi (https://wokwi.com/) to get started.
- Wokwi – Simulate IoT Projects in the Browser
- Simulate IoT Projects in the Browser
-
Embedded Rust Education: 2023 Reflections & 2024 Visions
More Wokwi Integration: Wokwi is an amazing embedded simulator and is great for getting started quickly. For a learner, there's no need for toolchain setup or even the purchase of hardware. There are many features as well that make it quite a flexible tool supporting a lot of features right from the browser. Users can also vote for more features. Still maybe at some point, one might want to tinker with physical hardware. However, at that point, they would have gained some confidence first. Currently, only ESP boards are supported with Rust on Wokwi. I hope for the variety to expand soon.
-
Need advice on Arduino projects and programming
In addition to the other great suggestions here I wanted to point out that you can practice and learn a lot for free using an online simulator such as wokwi.com and tinkercad.com (among others)! And you don't have to buy an Arduino or any parts to get started!
-
Arduino calender clock project
And you can prototype all of this first to get it working for free using an online simulator at sites like wokwi.com or tinkercad.com!
-
How do I get better at Low level programming
If you don't have the budget for real hardware consider the simulator at https://wokwi.com/ It works with Rust (at least for ESP32, haven't tried other architectures). Bonus: you can't blow up the electronics by a wiring mistake.
-
Have many folks played around with Chatgpt and FastLED?
I spent a bit of time today with a few FastLED programs and uploaded them to wokwi.com on a simulated Arduino Nano and a WS2812 strip of 64 LED's (not in a 2D matrix). The chatgpt requests I made were:
-
Jumperless: Breadboard Without Jumper
https://tinyurl.com/yr34sym6
https://wokwi.com/ is great for simple, digital only stuff.
https://fritzing.org/ will kind of lay out the PCB for you, but it's kind of a pain in the ass.
Wokwi and Fritzing are more "Breadboard Simulators" than real circuit simulators, but they do have their place.
-
I built a working automated dry chamber with an Arduino and a thermoelectric wine cooler and want to make the project open source.
Another cool thing you may want to try is making a simulator https://wokwi.com/
hardcaml
-
Zero Knowledge FPGAs
title: Accelerating zk-SNARKs - MSM and NTT algorithms on FPGAs with Hardcaml
Any reason the title deviates so much from original? Is it because of all the cool acronyms and code words? Here's a decoder:
zk-SNARK: zero-knowledge Succinct Non-Interactive Argument of Knowledge
MSM: Multi-Scalar Multiplication
Hardcaml: OCaml lib for hardware: https://github.com/janestreet/hardcaml
NTT: Number Theoretic Transform
-
A circuit simulator that doesn't look like it was made in 2003
Perhaps peripheral (the original site has been hugged to death).
Both clashlang: https://clash-lang.org/
And Hardcaml: https://github.com/janestreet/hardcaml
have personally fueled my interest in hardware.
Dan Luu speaks eloquently and at length about how better options are needed for logic design. I would recommend both of the above to the enthusiastic novice.
- Functional programming language for embedded devices?
-
HRT or Jane Street?
Join JS and you can program FPGAs in a strongly typed, expressive, high level programming language (OCaml): https://github.com/janestreet/hardcaml
-
You need to stop idolizing programming languages.
[1] https://github.com/janestreet/hardcaml
-
Designing a MIPS CPU in Hardcaml (12 part series)
> You can put all the functions/tasks you want in that module.
Coming from a software background, the testing strategies available in Verilog seem very clunky and overly verbose. In comparison, Hardcaml's ASCII waveform expect-test solution feels extremely elegant and simple: https://blog.janestreet.com/using-ascii-waveforms-to-test-ha....
> And all of my development and that of my team happens through gitlab-CI.
That's probably more of a gap in my education than a fault of the ecosystem then.
---
Among other qualities, I prefer languages that let fewer mistakes slip through, and allow the developer to focus on the system they intend to build rather than avoiding bugs/misunderstandings that would be easy to catch otherwise. You bring up a lot of really good points, and I suspect that if we were doing Verilog "the right way", we would have probably run into fewer issues. But at the end of the day, developing in Hardcaml was a much more ergonomic experience: testing was straightforward, most "stupid mistakes" were impossible, setup was pretty easy, and the library provided a lot of really useful abstractions. For example, Hardcaml interfaces make it easy to represent practically any data structure that can be serialized to/from a bit vector, and the Always API allows for some pretty interesting non-trivial functional logic.
https://github.com/janestreet/hardcaml/blob/master/docs/hard...
-
Hardcaml MIPS CPU Learning Project and Blog
A few months ago, I came across the Signals and Threads Programmable Hardware episode. I really liked the idea of Hardcaml: a library to write and test hardware designs in OCaml. Representing circuits as functions felt like a good abstraction, and I’ve been wanting to learn OCaml for a while.
What are some alternatives?
fritzing-app - Fritzing desktop application
bitvec - A crate for managing memory bit by bit
PlatformIO - Your Gateway to Embedded Software Development Excellence :alien:
bap - Binary Analysis Platform
WS2812FX - WS2812 FX Library for Arduino and ESP8266
nerves_system_osd32mp1 - Base system for Octavo OSD32MP1
QEMU - Official QEMU mirror. Please see https://www.qemu.org/contribute/ for how to submit changes to QEMU. Pull Requests are ignored. Please only use release tarballs from the QEMU website.
nerves - Craft and deploy bulletproof embedded software in Elixir
BIPES - BIPES: Block based Integrated Platform for Embedded Systems allows text and block based programming for several types of embedded systems and Internet of Things modules using MicroPython, CircuitPython, Python or Snek. You can connect, program, debug and monitor several types of boards using network, USB or Bluetooth. No software install needed!
qucs_s - Qucs-S is a circuit simulation program with Qt-based GUI
epaper_templates - Template-oriented driver for e-paper displays
clash-ghc - Haskell to VHDL/Verilog/SystemVerilog compiler