Page 1 of 1

Noobby PCB maker got here!

Posted: Fri Dec 23, 2016 3:09 pm
by aturcitu
Hello everyone,

I am new here, I just heard about microphython today doing some research for a new project I am starting to work on.
I have experience progarmming in C, Matlab, some in Phython (willing to keep learning more) and my main skills are on Electronics.

I really liked the idea of using python on my new platform however i think i need some help. Basically I have no experience as a Linux user whatsoever and there are some question I have got. Prob most of them are already answered on other post, i am sorry if it is the case.

Basically my concerns right now are:

With ucontrollers are 100% compaible with the last build of micropython.
What is the process to build it up, meaning, custom theh OS to work on your custom PCB.
And any other information I should take into consideration to build a custom micropython device.


Last but not least, in the meantime i would like to start playing around, what of the available board would you recommend to get to know it better.

Thank you in advace

Re: Noobby PCB maker got here!

Posted: Fri Dec 23, 2016 8:43 pm
by dhylands
The STM32F405 is used on the pyboard, so it's extremely well supported. My brother and I have created boards using the STM32F401 (also used on the Espruino Pico). You'll probably want to make sure you use a 512K flash version, as the 384K flash is pretty much full by the time you add a filesystem.

The 1Bitsy is a currently available STM32F415 based board (the 415 is almost identical to the 405), and it has JTAG support for debugging.

I've created several board definition files which I collected together here

I normally find an existing board that has the same processor, and copy the board definition files to use a starting place.

Re: Noobby PCB maker got here!

Posted: Sat Dec 24, 2016 1:01 am
by aturcitu
Hi Dhylands,

Thank you for your reply. I was wondering if anyone could provide more detailed information.Maybe some tutorials ?
I would really like to better understand the topic rather than just copy a design or so.

Is there any "easy-to-follow for non-unix expert" guide explaning the steps in order to undertand the whole process? What those files mean and how are they created? How to prepare a board a what are the major considerations? etc

Thanks! I am really looking forward to start playing around :)

Thanks,

Re: Noobby PCB maker got here!

Posted: Sat Dec 24, 2016 1:35 am
by dhylands
aturcitu wrote:Hi Dhylands,

Thank you for your reply. I was wondering if anyone could provide more detailed information.Maybe some tutorials ?
I would really like to better understand the topic rather than just copy a design or so.
I don't think that anybody has written any detailed instructions. You can use make V=1 to see all of the compilation commands and scripts that are run.
Is there any "easy-to-follow for non-unix expert" guide explaning the steps in order to undertand the whole process? What those files mean and how are they created? How to prepare a board a what are the major considerations? etc
I can tell you what the purpose of the files are.

MicroPython is configured using py/mpconfig.h which then #includes stmhal/mpconfigport.h which then includes stmhal/board/BOARDNAME/mpconfigboard.h

mpconfigboard.h is used to override any of the settings for a particular board. This typically configures which high level modules (like servo, sdcard, etc that your board has, and tells MicroPython which pins are say mapped to UART3.

mpconfigboard.mk sets a few Makefile variables which are used to determine which alternate function file to use, which linker script to use, and which CMSIS definition is appropriate (and possibly other Makefile related stuff which might be board specific).

stm32f4xx_hal_conf.h configures the HAL. You can read the HAL documentation to find out more details, but basically this allows you to turn on/off various HAL modules and set other HAL parameters.
Here's the HAL documentation: http://www.st.com/content/ccc/resource/ ... 105879.pdf

Finally, pins.csv is a file which maps board pin names to CPU pin names.