Hi Glen,

Thanks for all this feedback. I'm just about to start digging in to the 
documentation in a serious way, and this is very helpful! I will add that I had 
a similar frustration with the pin numbering when I was working on a demo a 
while back and it's something that should definitely be at least well 
documented, if not fixed in the code. 

Best regards,
dg

> On Oct 5, 2016, at 4:45 PM, Glen Darling <[email protected]> wrote:
> 
> Hello mynewt community,
> 
> I am new to mynewt , and at this point I have just managed to get mynewt 
> running on an Arduino M0 Pro, with an attached pushbutton on one GPIO and an 
> LED with resistor attached on another GPIO pin. My first test program just 
> monitors the button and turns the LED on whenever the switch is closed. And 
> that all works fine. I also have another supported board that I will be 
> introducing to mynewt soon.
> 
> My first impressions are very positive. I think I understand what you are 
> trying to create with this platform and it's great. Thanks for building this!
> 
> I'd like to also add that I think the mynewt documentation is really 
> excellent in general and I feel I have very quickly been able to absorb a 
> good introduction to the platform and get my hands dirty. Thank you!
> 
> At this point I'd like to make a couple of suggestions based on my initial 
> experience.
> 
> I found it very difficult to determine the appropriate integer to pass to the 
> code to identify a particular GPIO pin on my hardware. I Googled for it 
> without success. Eventually I went to the source code and found this file in 
> my project "repos/mynewt_arduino_zero/hw/mcu/atmel/samd21xx/src/hal_gpio.c". 
> That file has a comment that attempts to clarify the numeric mapping, but I 
> was unable to follow what it was saying. Eventually after hours of hunting I 
> gave up and resorted to trial and error and I was able to identify the 
> integers to pass for a handful of the GPIO pins. I found this experience to 
> be pretty frustrating.
> 
> I think I understand that this comment buried deep in the code is where I was 
> expected to get the information I needed. However, it was difficult to find, 
> and when found I did not think it did a very good job of conveying the 
> information that any developer will require to use mynewt on this board to 
> access GPIO pins. I'd like to identify this as a weakness in both usability 
> and documentation for mynewt that I hope the community will consider 
> addressing.
> 
> To be more specific about what I think is missing, I believe any developer 
> coming to the mynewt platform with a supported board will want to know what 
> pin number to use in the code for a particular physical pin on the board. I 
> think only the MCU pins are known in mynewt (never the board pins -- okay) 
> and one must consult the schematic to find the board pin corresponding to the 
> desired MCU pin (okay). However, it's not really the MCU pins that mynewt 
> knows about. Mynewt only knows about raw integers that are mapped in some 
> ad-hoc way on each board, such that a new mynewt developer will need to 
> search the code to discover and then comprehend that mapping before they can 
> target a specific MCU pin.
> 
> In my opinion, it would be much more helpful if:
> 1. the mynewt MCU support code could expose symbolic names for MCU pins 
> (e.g., for Cortex M0: PA0, PB0, ...) that could be used in the code so 
> developers would not need to dig through mynewt board support code to 
> discover and comprehend those numeric mappings, and
> 2. the mynewt board support code could offer a 
> board-silkscreen-pin-number-to-MCU-pin-number mapping (and perhaps define 
> names based on the board silkscreen).
> 
> I think these changes would make a huge improvement to the mynewt developer 
> experience. I also believe there would be very little coding work required 
> for the above, and the information required would be well known by anyone 
> writing the MCU support code and the board support code.
> 
> Thanks again for this project and all the good documentation,
> 
> Glen.
> 

--
David G. Simmons
(919) 534-5099
Web <https://davidgs.com/> • Blog <https://davidgs.com/davidgs_blog> • Linkedin 
<http://linkedin.com/in/davidgsimmons> • Twitter 
<http://twitter.com/TechEvangelist1> • GitHub <http://github.com/davidgs>
/** Message digitally signed for security and authenticity.  
* If you cannot read the PGP.sig attachment, please go to 
 * http://www.gnupg.com/ <http://www.gnupg.com/> Secure your email!!!
 * Public key available at keyserver.pgp.com <http://keyserver.pgp.com/>
**/
♺ This email uses 100% recycled electrons. Don't blow it by printing!

There are only 2 hard things in computer science: Cache invalidation, naming 
things, and off-by-one errors.


Reply via email to