HD44780 Text Display

Hi everyone!
Is there any 100% working actual HD44780 display library for Mbed? Since any one published “doesn’t have printf member”.

Hello,

try this one mbed-ce-libraries-examples/TextLCD: Library for interfacing character LCDs with MbedCE (github.com)
It is prepared for MbedCE but it will work also with regular Mbed.

BR, Jan

1 Like

Thank you! It works. Where can I find more about Mbed CE?

You are welcome

BR, Jan

Mbed CE is not for beginners. It’s really impossible for me to even correctly setup IDE with the toolchain. It just doesn’t work. Sadly.

If you mean it is not like Arduino IDE then yes but it depends if you want move your knowledge forward or not. MbedStudio and KeilStudio Cloud are buggy.

It is possible, just follow the instructions. If you have an issue feel free to ask.

BR, Jan

3 problems so far.

Please be so kind and make a picture of your project structure. These errors occurs because something is missing.

image

Content of CMakeLists.txt ( Points 6-8 of New Project Setup Guide · mbed-ce/)

cmake_minimum_required(VERSION 3.19)
cmake_policy(VERSION 3.19)
set(MBED_APP_JSON_PATH mbed_app.json) 
include(mbed-os/tools/cmake/app.cmake)
add_subdirectory(mbed-os)
project(MbedCE_Example)
add_executable(main main.cpp)
target_link_libraries(main  mbed-os) 
mbed_set_post_build(main)
mbed_finalize_build()

Content of cmake-variants.yaml (Point 5 of Project Setup: VS Code · mbed-ce)

buildType:
  default: Develop
  choices:
    Develop:
      short: Develop
      long: Emit debug information but also optimize
      buildType: Develop
    Debug:
      short: Debug
      long: Emit debug information and don't optimize
      buildType: Debug
    Release:
      short: Release
      long: Optimize generated code
      buildType: Release
board:
  default: NUCLEO-F303RE
  choices:
    YOUR_MBED_TARGET:
      short: NUCLEO-F303RE
      settings:
        MBED_TARGET: NUCLEO-F303RE
        # Fill your upload method according to variants below
        # - universal: NONE, MBED, JLINK, PYOCD, OPENOCD
        # - target specific: STLINK, STM32CUBE, LINKSERVER, PICOTOOL, ARDUINO_BOSSAC
        # For more visit - https://github.com/mbed-ce/mbed-os/wiki/Upload-Methods#upload-method-list
        UPLOAD_METHOD: STM32CUBE

Folders like

  • vscode will be created automatically after first correct cmake run .
  • build will be created automatically with first build run .

BR, Jan

cmake_minimum_required(VERSION 3.19)
cmake_policy(VERSION 3.19)

Initialize Mbed OS build system.

Note: This block must be before the include of app.cmake

set(MBED_APP_JSON_PATH mbed_app.json5)

include(mbed-os/tools/cmake/app.cmake)
add_subdirectory(mbed-os)

project(MyMbedApp)

add subdirectories and build targets here

mbed_finalize_build()

add_executable(MyProgram MyProgram.cpp)
target_link_libraries(MyProgram mbed-os) # Can also link to mbed-baremetal here
mbed_set_post_build(MyProgram)

buildType:
default: Develop
choices:
Develop:
short: Develop
long: Emit debug information but also optimize
buildType: Develop
Debug:
short: Debug
long: Emit debug information and don’t optimize
buildType: Debug
Release:
short: Release
long: Optimize generated code
buildType: Release
board:
default: NUCLEO_F303RE
choices:
NUCLEO_F303RE:
short: NUCLEO_F303RE
settings:
MBED_TARGET: NUCLEO_F303RE
UPLOAD_METHOD: MBED

image

I do not know what this is
image

The rest looks good to me.
Try to perform this

  1. select GCC
  2. select target

and after your target is choosed then you will see something in your output panel and this is what we need to see.

BR, Jan

Hello, Jan.
What do you think about Platformio plugin and Mbed?

Hello,

I do not have personal experiences Platformio but i do not want to use a platform that just collect another platforms and use them.
For example Arduino uses MbedOS under hood for ARM based boards - Portenta H7, Arduino nano 33 BLE, RPI Pico. The Platformio uses Arduino library that uses MbedOS uder hood… this is ideal model, right? :slight_smile:

BR, Jan

Hi.
This is my 2nd try to run MbedCE. I installed everything by the instructions. But got this error in the
VSCode.

Surely, path to the toolchain is in the environment.

Any idea?

What is the result in the output window when you click to this
image

and then choose first option Scan for kits?
image

[proc] Executing command: C:\ST\STM32CubeCLT\GNU-tools-for-STM32\bin\arm-none-eabi-gcc-11.3.1.exe -v
[proc] Executing command: C:\ST\STM32CubeCLT\GNU-tools-for-STM32\bin\arm-none-eabi-gcc.exe -v
[proc] Executing command: "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\13.2 Rel1\bin\arm-none-eabi-gcc-13.2.1.exe" -v
[proc] Executing command: "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\13.2 Rel1\bin\arm-none-eabi-gcc.exe" -v
[proc] Executing command: "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\12.3 rel1\bin\arm-none-eabi-gcc-12.3.1.exe" -v
[proc] Executing command: "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\12.3 rel1\bin\arm-none-eabi-gcc.exe" -v
[proc] Executing command: "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\12.3 rel1\bin\arm-none-eabi-gcc.exe" -v
[proc] Executing command: C:\ST\STM32CubeCLT\GNU-tools-for-STM32\bin\arm-none-eabi-gcc.exe -v
[proc] Executing command: "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\13.2 Rel1\bin\arm-none-eabi-gcc.exe" -v
[kit] Found Kit (trusted): GCC 11.3.1 arm-none-eabi
[kit] Found Kit (trusted): GCC 11.3.1 arm-none-eabi
[kit] Found Kit (trusted): GCC 13.2.1 arm-none-eabi
[kit] Found Kit (trusted): GCC 13.2.1 arm-none-eabi
[kit] Found Kit (trusted): GCC 12.3.1 arm-none-eabi
[kit] Found Kit (trusted): GCC 12.3.1 arm-none-eabi
[kit] Successfully loaded 3 kits from C:\Users\User\AppData\Local\CMakeTools\cmake-tools-kits.json

BR, Jan

My VSCode looks different.

image

Step 4 of Project Setup: VS Code · mbed-ce/mbed-os Wiki (github.com) mentioned this. So how did you proceed this? When you does not have these options.

BR, Jan

VSC likes to change its GUI…
The setting has moved to the CMake context menu under Configure:

1 Like

I can’t get arm toolchain to appear here.

image

I clicked both: search for kits and unspecified.

[main] Configuring project: mbed-ce-hello-world
[proc] Executing command: “C:\Program Files\CMake\bin\cmake.EXE” --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Debug -DMBED_TARGET:STRING=NUCLEO_F303RE -DUPLOAD_METHOD:STRING=MBED -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -SC:/Git/mbed-ce-hello-world -Bc:/Git/mbed-ce-hello-world/build -G Ninja
[cmake] Not searching for unused variables given on the command line.
[cmake] – The C compiler identification is unknown
[cmake] – The CXX compiler identification is unknown
[cmake] – The ASM compiler identification is unknown
[cmake] – Found assembler: arm-none-eabi-gcc
[cmake] CMake Error at mbed-os/tools/cmake/app.cmake:34 (enable_language):
[cmake] The CMAKE_C_COMPILER:
[cmake]
[cmake] arm-none-eabi-gcc
[cmake]
[cmake] is not a full path and was not found in the PATH. Perhaps the extension is
[cmake] missing?
[cmake]
[cmake] Tell CMake where to find the compiler by setting either the environment
[cmake] variable “CC” or the CMake cache entry CMAKE_C_COMPILER to the full path to
[cmake] the compiler, or to the compiler name if it is in the PATH.
[cmake] Call Stack (most recent call first):
[cmake] CMakeLists.txt:12 (include)
[cmake]
[cmake]
[cmake] CMake Error at mbed-os/tools/cmake/app.cmake:34 (enable_language):
[cmake] The CMAKE_CXX_COMPILER:
[cmake]
[cmake] arm-none-eabi-g++
[cmake]
[cmake] is not a full path and was not found in the PATH. Perhaps the extension is
[cmake] missing?
[cmake]
[cmake] Tell CMake where to find the compiler by setting either the environment
[cmake] variable “CXX” or the CMake cache entry CMAKE_CXX_COMPILER to the full path
[cmake] to the compiler, or to the compiler name if it is in the PATH.
[cmake] Call Stack (most recent call first):
[cmake] CMakeLists.txt:12 (include)
[cmake]
[cmake]
[cmake] CMake Error at mbed-os/tools/cmake/app.cmake:34 (enable_language):
[cmake] The CMAKE_ASM_COMPILER:
[cmake]
[cmake] arm-none-eabi-gcc
[cmake]
[cmake] is not a full path and was not found in the PATH. Perhaps the extension is
[cmake] missing?
[cmake]
[cmake] Tell CMake where to find the compiler by setting either the environment
[cmake] variable “ASM” or the CMake cache entry CMAKE_ASM_COMPILER to the full path
[cmake] to the compiler, or to the compiler name if it is in the PATH.
[cmake] Call Stack (most recent call first):
[cmake] CMakeLists.txt:12 (include)
[cmake]
[cmake]
[cmake] – Warning: Did not find file Compiler/-ASM
[cmake] – Configuring incomplete, errors occurred!
[proc] The command: “C:\Program Files\CMake\bin\cmake.EXE” --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Debug -DMBED_TARGET:STRING=NUCLEO_F303RE -DUPLOAD_METHOD:STRING=MBED -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -SC:/Git/mbed-ce-hello-world -Bc:/Git/mbed-ce-hello-world/build -G Ninja exited with code: 1