STCubeIDE Review 2

I have struggled a little to find an IDE I was OK with, but finally settled with STCubeIDE or Eclipse as it actually is. This is IMO one of the smarter moves that ST have done to support their MCU’s. The editor is “ok”, it compiles, download allow you to debug multiple targets + I get a more familiar feeling with the dark theme. It is load of eclipse add-on’s I have not tested, but I downloaded PyDev and can develope both Python 3.7 and 2.7 in parallell With full debugger support. The later is developed by a single developer who deserve credits for hes work, and it demonstrate one good argument to use Eclipse as base. As for Python the less I have to use that Language the better, but PyDev actually took most of the pain away.

It is still a few tricks using STCubeIDE and set it up, but it is worth it. One of them is how to add existing files to a project, but True Studio (as this actually was) is a big improvement over bare eclipse.

I am also using Code::Blocks on a different project yet since colleges have selected that and that works ok as well. But, despite my disliking of Java – I actually like STCubeIDE. The best is that I don’t need to know that this is written in Java 🙂 – I can actually be an user and focus on my own tasks and productivity.

This has actually been a showstopper for SW modules on my STM32 based components and I have finally started getting my act together and make a serious move on SW. What I will be working on for some time is the Abstraction Layer (AL). I am ditching the STCubeMX and autogeneration part. I autogenerated 1 project and use it to cut & paste as I set up the proper C++ project. Currently I am working on the abstraction layer to hide the C drivers and middleware packages completely behind a proper C++ layer.

One of the features I really like is the visual memory map showing you what is using what memory. It is still a lot of extra tools in STCubeIDE that I have left to discover, but that will come with experience.

I also tried setting up Visual Studio Code, but aborted simply because it is more an advanced editor than a proper IDE.

DSO150 Oscilloscope Annotated

DSO150 is very easy to use and operate like a multi-meter, and this caught my attention because the other Oscilloscopes I havve needs to be set up. DSO150 is basically only to switch on and use like a Multi-meter – you instantly see the signal and it was surprisingly easy to operate the HMI. I added a 9V battery to make it mobile and to avoid isolate the instrument. And all for a cost of ca 20.- USD.

Holding the OK button switched numbers on/off. V/Div adjust Y-scale gain and offset. Sec/Div adjust X-Scale gain/offset. Trigger select between Auto, Normal and Single shot as well as select between triggering on rising/falling edge. OK also hold the sognal so it freezes on screen. It takes a little practice to play and operate it, but once you get it into your fingers it actually is very functional for what it is.

It’s loads of things to complain about on DSO150 if you compare it to a professional Oscilloscope, but DSO150 cost 20.- USD and come in a form of a multi-meter. I actually only have one suggestion – add a battery holder and add USB. My point is that I do have Professional Oscilloscopes and this actually fills a gap between the multi-meter and those Scopes. I already had a small, hand-held Scope, but the HMI – button/knob solution on DSO150 is so more functional.

And yes – please chose a better MCU and increase bandwidth, but here is the catch – if someone does that it will not cost 20.- USD anymore. I need to glue a 9V battery holder on the back, but other than that this is perfect for those cases where I just need a simple scope solution to replace the volt meter.

The STM32F103C8 is a bit limited, but I can easily replace that with STM32F103CB or even STM32F303CC to get more Flash, SRAM and DSP power. I have not downloaded and played with the source code yet, but this is another attraction – an instrument I actually can program myself .

DSO150 – 20$ Oscilloscope

This Oscilloscope took me by surprise. I ordered it mostly for fun, but it turns out to be very functional and easy to operate Scope in a multi-meter format. 200Khz actually cover a lot of the activities I do and by attaching a battery you get a very handy, single channel Oscilloscope in a handy form factor.

The best of it is that schematics is open Source, firmware is open Source and it’s a hidden UART inside the Scope opening some possibilities. The quality is not the best, but a lot of times I just need to see what happens on a channel and this does that job perfectly.

The picture above show the PCB with 2 x GPIO ports, SWD port and an UART port. The MCU used is STM32F103C8. You can also see the EEPROM programmable via I2C as well as the extra Power Connector at bottom left. Below the MCU you can also see 2 test-Points that accidentally is the USB port. The Connector at top right is for the analogue Board that click on to this. All in all a cute little design. The DSO150 that I got is obviously a cheap clone. What I have done is to attach a 9V battery so it becomes like a portable multimeter.

Rock PI 4 b

I accidentally came across “Rock PI 4 b” and first believed it was about Raspberry PI 4 as I realized this is a board based on Rockchip RK3399. It is very similar to Raspberry PI 4, but contain some very interesting differences. Of most interest for me is that the form factor and GPIO pin layout is compatible, meaning I can use my Hat’s on this directly. Lets outline some of the differences.

 

Rock PI 4 b Rasberry PI 4 b
CPU RK3399 BCM2711
Cores 6 Cores

2 x A72 @ 1.8Ghz

4 x A53 @ 1.4Ghz

4 Cores

4 x A72 @1.5 Ghz

 

GPU Mali T860;P4 VideoCore VI 3D

500Mhz 32 bit

RAM 2,4Gb 1,2,4 or 4Gb
Micro-SD Yes (128GB) Yes
USB 2 x USB3

2 x USB2

2 x USB3

2 x USB2

USB OTG Switch Yes No
RTC Yes No
eMMC Socket Yes up to 128GB No
PCIE M.2 socket Yes Support up to 2TB SSD No
Ethernet Gigabit Gigabit
Wifi Yes Yes
Bluetooth Yes Yes
Sound ? 4-pole stereo
Camera Port Yes Yes
Display Port Yes Yes
HDMI 1 x Standard HDMI 2 x micro-HDMI

2 x 4Kp60

GPIO 40 pin RPI standard 40 pin RPI standard
PSU USB-C 5V USB-C 5V
PoE Possible Possible
Price 67$  (4Gb) 55$ (4Gb)

The eMMC interest me as it allows me to boot from Flash making this an interesting option for more commercial solutions. Other than that I must admit that 2 x HDMI etc only is of interest if you replace your desktop PC.

 

Raspberry Pi 4

  • Quad core 64 bit Cortex A72 1.5 Ghz
  • 2 x 4K HDMI ports
  • USB 3
  • Gigabit Ethernet
  • Up to 4GB RAM
  • and more

Priced at 35$ for 1GB and 55$ for 4Gb this starts to look like a serious challenge for more classic desktop computers. I tried to buy one, but getting the “sold-out” from all shops. Read more at  https://www.raspberrypi.org/blog/raspberry-pi-4-on-sale-now-from-35/

Well done Raspberry PI

STCubeIDE Review

ST recently acquired Atollic TrueStudio and merget it with CubeMX into STCubeIDE. Having searched for a proper IDE to use I must admit this one actually do the job nicely.

To start a project you use CobeMX now integrated into the IDE, make your selection and as soon as you switch to code it is generated for you. It was a few tweaks to get C++ going properly, but navigator is 1:1 with file system and I actually see some benefits of using this compared to alternatives.

And best of all – it is free for STM32. Well done ST!

3D Sensor Hat – Block Diagram

First attempt on block diagram for the 3D Sensor Hat. The main components are FXOS8700 (Accelerometer and Magnetometer), FXAS21002 (Gyroscope), NEO 6/7/8 (GPS) and BME280 (Temperature, Humidity and Pressure). I am also attempting a TFT connection here, but this is secondary and can be ditched if needed. The rest is classic – Raspberry PI/SPI on backbone, CAN as secondary control bus, USB/SWD and STM32F405RG to drive it all.

Sensor Hat Finished

Final 3D of the Sensor Hat. The most noticeable here is that I start using the 2×5 pin SWD header. The rest is as described before.

  • MCU STM32F405RG
  • 1 x High Speed SPI for backbone
  • Raspberry PI Hat format
  • 1 x CAN for control bus.
  • 8 x 2 x Analogue/Digital IO Signals.
  • 3 x I2C ports
  • 3 x SPI ports
  • 1 x Power port
  • 1 x USB port
  • RTC w/Battery
  • SPI Flash

STCubeIDE

ST have lately purchased True Studio, so it was not a big surprice to see that True Studio now is merged with CubeMX. I am not a big fan of Eclipse based IDE’s, but this one is great for getting you project off ground fast. CubeMX saves you a few hours as you start the project, but I tend to re-organize my projects and move to a more professional editor/environment. I have been using Code::Blocks, but I actually want to set up Visual Studio Code. That said STCubeIDE is a nice alternative and they willhopefully mature the product out of Eclipse limitations. The concept is that you have CubeMX on one tab and as soon as you switch to C/C++ you auto-generate code. This IDE fueled by CubeMX is still a great starting point for checking hardware and getting your project off ground. Only be aware to follow ST rules as you add your own code or it will be wiped out.