nimblemachines / muforth

A simple, indirect-threaded Forth, written in C; for target compiling; runs on Linux, BSD, OSX, and Cygwin
https://muforth.dev/
Other
131 stars 30 forks source link

initial support for the Microchip (née Atmel) SAM L22 #46

Closed theAlexes closed 9 months ago

theAlexes commented 11 months ago

This PR brings another board definition for the Sensor Watch Lite, which uses a Cortex M0+ with a bunch of peripherals. It blinks the LEDs successfully.

theAlexes commented 11 months ago

FYI the bootloader that comes with the device, while it seems to be a UF2 loader only, also does actually support the Arduino serial protocol in addition to MSC, and we've heard vague noises that the device's USB port can, in bootloader mode, expose a CMSIS-DAP test port. Could be wrong about that, so this is where we're leaning next: trying to link to the Arduino serial bootloader.

theAlexes commented 11 months ago

No serial bootloader progress yet, but we did get this thing to blink LEDs on the board in question. Happy holidays!

nimblemachines commented 9 months ago

Hi Alex/theAlexes!

Sorry I have taken so long to respond. I've been busy with other aspects of the project, and your PR sent me down an interesting path - pondering what the project really means to me, and how I want to run it.

It looks like you are enjoying muforth! I'm really impressed with the progress that you made. It seems like you managed to figure out a lot of muforth's weird idiosyncrasies even without much (any?) documentation. This is actually what I have hoped that people would do with the project: take the code, read and understand it, modify it as necessary, and make it their own. I want it to be a convivial tool.

And that gets us to the tricky part: I don't think I want to be in the business of wrangling PRs, shepherding merges, and all that. This project is simultaneously very personal, but also something that I hope people will find useful. However, I don't necessarily want it to be a community repository of "solutions". I want to retain the freedom to follow my passions, and hopefully they will take me to places that are useful "jumping off" points for others.

I think my dream is that my tree remains the "vanilla" version of muforth, and other people can maintain their trees, focused on the targets that they care about. If you want people to use the work that you have done on the SAM L22, by all means write about it, publicize it, and share your work.

For all these reasons I have decided not to merge this PR, and will do the same in the future with other PRs. I need to write this up as a policy somewhere, so everyone understands my perspective.

I do wonder if this will disconnect me from whatever small community might otherwise form around muforth, but because I'm already spending all the time I can on muforth, diluting that time with managing contributions is not a path I want to start down!

Of course, I reserve the right to change my mind in the future! ;-)

theAlexes commented 9 months ago

Hey there!

That's an absolutely sensible policy for many reasons, and we appreciate both the explicit permission to take this base and truly personalize it for ourselves, and the sincere and open reflection on what this PR meant to you.

Second, when embarking on the project of porting a Forth to this board, this implementation was the one that was seemed most immediately comprehensible and flexible; perhaps this just means your idiosyncrasies are compatible with ours. Of course, we've got a fair bit of history working with other stack languages and enough experience in the field to be able to casually port a Forth to a board in a weekend, which makes us kind of an outlier. :)

Last, part of our hope for this PR, even though it was not merged, is that it could serve as a reference for other people interested in turning up a new board. We don't feel like having this PR denied has cut us off from any nascent community, either — you've just set some clear norms around how the project and thus its community should evolve, and that is commendable.

Cheers,

Alex