Coder Social home page Coder Social logo

Rust firmware about ferris HOT 9 CLOSED

pierrechevalier83 avatar pierrechevalier83 commented on August 17, 2024 3
Rust firmware

from ferris.

Comments (9)

borisfaure avatar borisfaure commented on August 17, 2024 2

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.

TomzBench avatar TomzBench commented on August 17, 2024 2

make sure to slap a big fat rust logo on it

from ferris.

TeXitoi avatar TeXitoi commented on August 17, 2024 1

I'm biased, but https://github.com/TeXitoi/keyberon

from ferris.

TeXitoi avatar TeXitoi commented on August 17, 2024 1

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.

precondition avatar precondition commented on August 17, 2024

This is probably a good start : https://about.houqp.me/posts/rusty-c/

from ferris.

pierrechevalier83 avatar pierrechevalier83 commented on August 17, 2024

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.

TeXitoi avatar TeXitoi commented on August 17, 2024

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.

leshow avatar leshow commented on August 17, 2024

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.

pierrechevalier83 avatar pierrechevalier83 commented on August 17, 2024

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)

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.