Comments (9)
I wrote a rust firmware for the Ferris thanks to https://github.com/TeXitoi/keyberon. It is available at https://github.com/borisfaure/ferris-rs
from ferris.
make sure to slap a big fat rust logo on it
from ferris.
I'm biased, but https://github.com/TeXitoi/keyberon
from ferris.
STM32F0 is, IMHO, a good choice because of well supported rust crates and crystal less USB (but you need a LDO). Keyberon would work out of the box on it.
There is a crate for MCP23017 but not for PCA9539PW. It should not be too complicated to implement.
The only needed part to port a STM32F0 with a MCP23017 would be the multiple matrix handling, and it is quite straightforward as keyberon is more a library than a framework.
from ferris.
This is probably a good start : https://about.houqp.me/posts/rusty-c/
from ferris.
Thanks for your interest, I definitely am interested in writing pure rust firmware for the Ferris eventually. The houqb way, while it's interesting doesn't seem like a good endgame to me as it really adds complexity on top of QMK for a tiny bit of abstraction gain.
I started by doing an atmega32u4 version for the Ferris for v0.1 as this was very well documented and it did result in a working keyboard, but this did limit my ability to write pure rust firmware for it as support for that chip is not yet in stable rust.
My understanding is that it will be easier to write pure rust for an arm version, which is one of the motivations for switching to arm in rev 0.2. In any case, I'll always offer qmk for those who want it as it's easy to write and is what everyone expects; but I will definitely look at keyberon for inspiration when is time to get rusty 😄
from ferris.
I see that you plan for a Arm STM32F030F4P6TR. This MCU doesn't have USB. I think STM32F042F4P6 would be a better choice: crystal less USB, hardware DFU, and 32KB of flash (keyberon, in non optimised form with a bit more complex firmware (UART communication) is 20KB, so 16KB might be a bit small. It's a bit less cheap, but you don't need a crystal.
from ferris.
This seems to be the most modern: https://gitlab.com/polymer-kb/firmware/polymer. It's based on https://gitlab.com/polymer-kb/firmware/keebrs
It uses async-await, and seems really well done. It was also written with a split keyboard in mind already, I believe it runs on the STM32 mcus. You will have to switch to ARM in order to get better rust support
main link here: https://gitlab.com/polymer-kb/polymer
from ferris.
I wrote a rust firmware for the Ferris thanks to https://github.com/TeXitoi/keyberon. It is available at https://github.com/borisfaure/ferris-rs
Thank you so much for this, @borisfaure! I never ended up working on this myself, but I'm very glad it exists now thanks to you :)
from ferris.
Related Issues (20)
- Investigate IBOM on Safari not working HOT 2
- Remap support HOT 1
- Latest version HOT 1
- Move upper pinky key to the outer column
- V0.1 TRRS jack part discontinued HOT 3
- Ordering presoldered boards from PCBway HOT 7
- Add a trackpoint to ferris HOT 1
- cuddlykeyboards.com gone? HOT 3
- Purpose of reset and boot circuit HOT 1
- Discord link expired HOT 2
- Intermittently functional HOT 9
- About the qmk config: how does the layout macro work? HOT 3
- Alternatives to the I/O Expander HOT 10
- Is fuse programming required? HOT 2
- Does I2C over TRRS suffers from reliability issues? HOT 2
- [bling 0.2] Is RGB underglow visible throught the keycaps HOT 2
- Compact variant w/ mounting holes
- Why the choice on TRRS cable ?
- README: remove paragraph and link to cuddlykeyboards.com
- TRRS Audio jack discontinues on LCSC
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 ferris.