cancel
Showing results for 
Search instead for 
Did you mean: 

Where can I find a development board with clear instructions?

Jason Multin
Associate II
Posted on June 06, 2017 at 06:24

When I studied electrical engineering in college years ago, I worked on a development board with my school from Motorola.  I was able to do a lot of things with it because the teacher and my textbook explained to us how to use the board. They explained many of the various function of the board and we were given simple programs that showed how to use different functions of the boards, such as the inputs, output, the  ADC interfacing with an LCD. Then we altered the sample codes to do other things and combined code to make bigger project. However, when I started working on different microcontrollers like the ATMEGA ones from a small company called NERDKITS, I often got frustrated. That's because I wanted some instructions to come with my microcontrollers so that I know how to use it.

The microcontrollers always come with a datasheet, but it is hard to fully understand all the functions of the microcontroller just by reading the datasheet. The datasheet merely expains all the different registers in the microcontrollers. However, in order to truly understand the different functions of the microcontroller, the user must be given a tutorial with a type of bare bones sample code that demonstates how to use every function of the microcontroller such as the ADC,inputs, ouptuts, I2C, and others. It should also explain how to connect the microcontroller to different devices such as an LCD, touchsceen, or I2C EEPROM.

I  bought a  

STM32F103RBT6 development board + 2.8' TFT lcd module true color touch screen from Ebay and it uses official ST parts but  the development board itself was not created by ST.  I even used it for my Masters senior project and did quite well.  The board is actually nice because it comes with a color LCD and touchscreen. However, it didn't come with a tutorial on how to use it. It merely contained some sample codes but the comments were in Chinese and they were converted to random characters on my computer so I don't even know what most of the sample programs do.  

I am not saying, I can't do anything with these microcontrollers. I am saying that I might be able to eventually figure out how to do something but it is always frustrating because I often have to search all over the internet to figure out how to do something simple with these boards. I might also figure out what a sample code does but it is also frustrating to figure it out when the comments are converted to gibberish.

I understand that my board is not made by ST so there may not be instructions from the company but  I want to change that. I would like to purchase an offical board by ST but I also want something that actually comes with decent instructions as well. I want the instructions to explain how to do use every function of the microcontroller, and how to connect it with different devices? If there aren't clear and thorough instructions, then I am not interested.I would also like it if this board was one that could easily be connected to an LCD and a touchscreen. Does anybody have any suggestions of something like this? Thanks

16 REPLIES 16
Jason Multin
Associate II
Posted on June 06, 2017 at 06:25

Now, I am aware that some people may argue that a person will never learn how to program a microcontroller if they just copy and paste code without looking at it. However, that is not what I want to do. I don’t want to just be given code.  I want the code given to be explained thoroughly so that I understand what it does and would be able to modify it to do different things.  Then I could combine it with other code to make bigger and more practical projects. I may be wrong but I believe that that is the best way to learn how to do things with microcontrollers.  

Posted on June 06, 2017 at 10:12

I would like to purchase an offical board by ST but I also want something that actually comes with decent instructions as well.

I doubt you'll ever find anything like that.

The official stance of ST is to provide everything through their Cube range of library and the associated CubeMX clicky program, so you don't expect barebones example from them. Application notes usually use Cube-based code. Older application notes use the Standard Peripheral Library (SPL) which has been discontinued and does not exist for newer devices, and this just adds to the mess. They made an attempt at it in the 'F0 and 'L0 sub-families, through a project called Snippets, but it's largely abandoned.

Commercial devkits usually come with even less documentation/explanation, it's simply too expensive to prepare them properly and the market simply does not allow anything but the cheapest.

You might perhaps have more chance with university-based programs, but don't expect miracles either.

I want the instructions to explain how to do use every function of the microcontroller

Given the complexity of functionality of every component in them, this would be next to the impossible, even with an extensive funding. The reference manuals are lengthy for a reason.

this board was one that could easily be connected to an LCD and a touchscreen

...and this adds the complexity of both LCD and touchscreen to the complexity of the mcu itself. 

JW

David Littell
Senior III
Posted on June 06, 2017 at 15:32

Sorry, but as they say, 'Welcome to the show!'  What used to be a learning curve is now better approximated by a step function and it takes a significant amount of experience and/or pre-knowledge to be effective within any kind of short time frame.

Osto
Senior
Posted on June 06, 2017 at 17:09

Dear Jason,

as described in above by others, you will not find such board or CPU on ST (I guess from other manufacturers either) but STM32CubeMX would help you a lot to prepare the CPU or development board for running.

You can configure to enable/disable engines and set their start parameter with a very good graphical interface. This need a very small learning curve. You can also add FAT file system, RTOS and USB support without knowing a lot about these Engines. You can adjust nearly all start values for all engines in very comfortable way. I added USB Filesystem support for reading an USB stick within one day.

The CubeMX creates the makefile/project and all needed files for your project for several development tools and you need only to write your application with almost no knowledge about the engines. With HAL Library you can also control the runtime job of the engines without (almost without) knowing the bits and bytes of that engine. Some of the  functione are not useable. For example the USART functions of HAL are very far from practice and you need to programm them yourself but can use the HAL base funtions as base of your own code. Other parts are very good organised. For example to read or write I2C memory or device you need only one C-Line of code.

All file generated by CubeMX and also HAL Library are available in source. You can create the base files and go on without use it anymore or you can also use CubeMX for initialisation (also after your developed parts by yourself) and change the configuration after you added code to the files. You have only to care to put your code within the user code area.

If you are newbie to ARM or evenyou are familar with it but dont want to spend hours and hours to configure engines in bits and bytes then CubeMX is the best for you. I dont know any other manufacturer which uses similar configuration skill.

You can download CubeMX and test it first. You will become comfortable very fast if you had experience with Embedded programming.

Regards,

Osto

Posted on June 06, 2017 at 19:26

One of the things college should have taught you is how to study, learn and solve things for yourself. Micro-controllers are things I figured out in secondary school (14-15), so I have a somewhat skewed perspective. 

The works of Zaks and Leventhal being a particularly good foundation.

Micro-controller systems haven't changed much in basic principles for decades, the designs have become denser and peripherals once external have been pulling into the core, and made more feature rich. Beyond the register level minutia things are more the same than they are different, a good understanding of the technology is very portable.

I understand what you're asking for, but such things are costly, if you want that level of detail/overview then you need to take some training classes in the architectures that specifically interest you, from professionals that focus in that level of detail. Historically there have been 'trainer' kits/boards that sell into educational environments, these tend to have a premium price due to the bulk of material expected. These things seem popular in markets where 'show/guide me' and 'cargo cult' type methods are prevalent, and knowledge/understanding are superficial.

People aren't going to carry you up the mountain, if you want a career in this space you need to learn how to climb yourself, and which routes to take to get up. Sherpas and guides expect to get paid, and the good ones will be expensive.

Tips, buy me a coffee, or three.. PayPal Venmo Up vote any posts that you find helpful, it shows what's working..
Jason Multin
Associate II
Posted on June 07, 2017 at 02:29

Imagine if a man was lost so he asked some strangers if they knew where he could find a map. They tell him, “We aren’t going to carry you. Get to your destination by yourself.� He replies, “I don’t expect you to carry me. I just want you to tell me where I can find a map so that I could figure out how to get to my destination on my own.� However, the strangers expect the man to just wander aimlessly until he finds his destination, which may be possible but is a very inefficient way to do so.

Imagine if the same man bought some furniture, that he needs to assemble, but it doesn’t come with instructions. He calls the furniture store and they tell him, “We aren’t going to build the furniture for you. Figure it out for yourself.� The man replies, “I don’t want you to build it for me. I just want you to provide instructions so that I could build it myself.� However, the furniture store expects the man to just try to put the furniture together without instructions, which is possible but is a very inefficient way to do so. It would waste a lot of time.

Is this man being unreasonable? I don’t think so. This is exactly how I feel when I ask for some tutorial for a microcontroller I purchased. People tell me that I have to figure it out myself, and nobody is going to do it for me. However, I reply that I want to do it. I just want somebody to provide me with decent instructions.

It appears that there aren’t instruction though, so I how do I learn? People might say that I should take classes in college but I did that already. I took undergraduate courses over ten years ago and they taught me how to work with a learning development board with a Motorola microcontroller. I was able to do things with it because the professor actually taught me how to use it. He didn’t just say, “Figure it out yourself.� There was even a textbook for that board.

However, when I tried to work on other microcontrollers by myself, there wasn’t really great instructions. I did things with them but I felt I could have done more in less time and less frustration if I had better instructions. Then I recently went for my Masters because I thought that I would be given a better explanation on how to work with microcontrollers. However, I found out that most classes were just theory. I had a senior project where I had to use a microcontroller to build something, but I had to figure out most of it myself. My coworker suggested a board from ST on Ebay and I used it. It works great but doesn’t come with decent instructions.

So I went for my Masters to learn and paid for the classes but basically I was told to figure out the microcontroller myself since there were no classes that taught me how to use them. I don’t understand. If a person pays for pilot lessons, they expect the instructor to get in the plane with them and explain how to fly the plane. They don’t expect the instructor to say, “figure it out yourself.� If a student goes to medical school because they want to be a surgeon, they expect the teacher to show them how to perform surgery very clearly. They don’t expect the teacher to say, “Just find a body somewhere and figure it out yourself.�

Even if you don’t pay for lessons, there are still many books and tutorials that teach you many things. I found great books and tutorials that clearly explained how to use C programming and Python. I also found Youtube videos from Khan’s academy that explained many different areas of math and science.    So why is it that a person could find books and tutorials on certain things but when it comes to learning how to use microcontrollers the response is always “Figure it out yourself. “even when you pay for classes?

Jason Multin
Associate II
Posted on June 07, 2017 at 02:30

Some people may suggest that I try to study the sample code that was given to me when I bought my ST board. However, as I mentioned earlier, the comments in the code are gibberish because it was written in Chinese and didn’t translate correctly. So it is a bit hard to understand what code is doing when there are no comments.

Another problem is that some of the code is not compatible with the hardware. There was one sample program that showed how to display an image on the LCD and it worked. Then there was a sample program that showed how to use the touchscreen to control the LCD. That second program was not compatible with the LCD so nothing showed on the screen. I had to look at the first sample program  and then use it to alter the second program, to get the LCD and touchscreen to work together. Why would they include code that is not compatible with the hardware they gave?

Sometimes it was easy to figure out what a function did in the sample code and how to alter it. I had fun making shapes and images on the LCD because the functions in the sample programs were fairly clear. However, the sample codes usually consisted of a main program and 20 other extension files ( .h and .c )that worked with the main program. Sometimes a function was called in the main program and it was created in one of the extension files. However, those functions called other functions or variables that were in created in other extension files so I had to look at those extension files. This process continued in several different files so it was very hard to follow the logic. It felt like trying to trace a phone call that was routed to 20 other networks.

 At work, I was trained on how to do my job when I was new and I did my part by training new employees as well. At school, I often asked for help from other students but I also provided help to students if I understood something and they didn’t. If know how to do something, I will gladly try to explain it to other people. So if I knew how to program microcontrollers better, I would clearly explain it to other people.  I don’t understand why ST can’t do the same.

There isn’t any tutorial that shows me how to use the microcontrollers I purchased. They don’t teach me how to use them in graduate school and it is almost impossible to fully understand the sample code that was given to me from where I purchased the board. So if I want to learn how to use these microcontrollers much better how do I do so? How did any of you learn how to do it and please be specific? Please tell me the steps that I have to take. Thank You.  

Max
ST Employee
Posted on June 07, 2017 at 05:42

Most material in line with your request is only available for most recent STM32 series like STM32F7 or STM32L4.

STM32F1 is an older series (about 10 years old now!) and at that time less focus was put on education material.

If you really want deep tutorial material, look at existing material and choose a board for which the material you seek exists.

My recommendation is to check the following places:

- The

http://www.st.com/content/st_com/en/support/learning/stm32-education.html

web site. You may find useful training material and books.

- The material posted by Laurent

https://community.st.com/community/stm32-community/blog/2017/01/05/download-our-training-material

- look at the examples inside the STM32Cube HAL package (in the project sub-directory). There are many small, easy to understand examples made for each ST boards (nucleo, discovery, eval boards)

- look for application notes about a specific subject of interest/peripheral on the

http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f1-series/stm32f103/stm32f103rb.html

on our web site 

It may not be exactly what you are looking for but there are already a lot resources available...

Posted on June 07, 2017 at 06:23

Thank you Max, I will look at your links tomorrow and see if I have further questions.