Blog

post-image

RISC-V with TinyFPGA BX and LiteX

Thursday, Dec 23, 2021 by Martin Hubáček fpga, tinyfpga, litex

I have tinyFPGA BX dev board which I used to test open-source YOSYS and IceStorm tools. I also liked an awesome gui IceStudio that is multi-platform and installed everything to your system thanks to APIO package/tools manager. I also sucesfully tried to create RISC-V system with picosoc example. After a year or so, I wanted to test LiteX project again. Last time I had some issues to get it working. This time I suceeded.

Continue Reading
post-image

Waveshare E-paper HAT issues

Tuesday, Sep 21, 2021 by Martin Hubáček epaper, waveshare

You can find other photos and info also in my tweets. I used few smaller e-papers with ESP32. I also tried 7.5" V2 display but I had memory and reboot issues on ESP32. First I wanted to make low power battery operated client display with ESP32, but now I changed my mind and I use power supply with ESP32 and epaper. With permanent power supply and issues with ESP32 developemnt, I wanted more flexible update, debug and control of my devices.

Continue Reading
post-image

InfiniTime on Colmi P8 smart watch

Monday, Sep 13, 2021 by Martin Hubáček InfiniTime, P8

(This article is still work in progress) I wanted to test some cheap smart watches. The best type I could immediatelly buy in my country was Colmi P8. There were few open firmwares, but it was first hard to decide which is most complete so I investigated first and ordered the watches. WASP-OS is running MicroPython ATCWatch basic C++ firmware. The issue was that it needed special Arduino IDE. InfiniTime seemed most promising to me.

Continue Reading

Black Magic Probe + VS Code

Monday, Apr 2, 2018

Black Magic Probe is an awesome debugger. It is really small, it contains GDB server in the device and it has also USB-UART converter inside. You don’t need to run GDB server on your PC which makes it easier if you periodically switch between Windows, macOS or Linux. Visual Studio Code is interesting new IDE which is also multi-platform. We also use it with our BigClown open-source IoT electronics. Finally after few hours with google and my colleague I was able to start debugging.

Continue Reading

DF3120 Linux picture frame

Monday, Apr 2, 2018

Here are some useful links. I had many errors during compilation so I post also my own changes in configuration of minifs. The good place to start are these two spain articles part 1 (translated) and part 2 (translated). Of cource I cannot forget about the main page of the group, that ported Linux to this device https://sites.google.com/site/repurposelinux/df3120 Another useful straightforward guide you can see here http://w.droidcloud.info/ParrotInstruct.html This utility maybe could put IMG file without need to install Linux https://launchpad.

Continue Reading

STM32 Cortex M0 bare metal GCC assembly tutorial

Monday, Apr 2, 2018

This example code should explain the basic bare metal program in assembly language. It can be used on many ARM Cortex M processors from M0 to M7 and from different manufacturers. Not just ST Microelectronics. This is because current example is so simple right now. I have plans to test and port this tutorials also on TI TIVA (former Stellaris, former LuminaryMicro) , NXP LPC processors.

Continue Reading

STM32 stdperiph vs HAL library example

Sunday, Mar 18, 2018 by Martin Hubáček STM32

STM created new HAL libraries which could be used instead of Standard Peripheral Library. Sometimes there’s no choice and you have to use the HAL. The new HAL lib is little more complicated but you have that feeling everytime you see something new. Some functionality in HAL it’s not even implemented so I had to add some basic functions myself.

Continue Reading

Bit-Banding - fast and safe bit manipulation

Sunday, Aug 21, 2016 by Martin Hubáček

This is short text summary of my Advanced ARM Tips video In your code, sometimes you need to flip a single bit in your flag variable to signal that for example the doors are open or the output LED should be turned on. In this situation you can use typical way of setting a bit with OR command which looks like this: // Set the first bit (1 << 1) in flag variable flag |= 0x02; This can work well but at some circumstances it can cause issues.

Continue Reading