Apache NuttX RTOS PMC

It is my great honor to become a PMC (Project Management Committee) member in the Open-Source Apache NuttX RTOS [1]. Thank you for inviting me into this great community and totally amazing project! :-)

NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).

[1] https://nuttx.apache.org/

NuttX RTOS is now Apache TLP

My favorite NuttX RTOS [1] that is “Tiny Unix on MCU” has graduated to Apache Top-Level-Project [2], congratulations! :-)

Apache NuttX [1] is a real-time operating system (RTOS) that emphasizes standards compliance and small footprint, usable in all but the tightest micro-controller environments. It runs on 8-bit, 16-bit, 32-bit, and 64-bit microcontrollers across RISC-V, ARM, MIPS, ESP32, AVR, x86, and other architectures with a high degree of standards compliance. NuttX is used to power the Fitbit fitness tracker, as well as satellites, IoT devices, bluetooth headphones, drones, and more.

What I like most in NuttX is the development team / community.. and scalability starting upwards from 8-bit CPU’s. One day I wish porting NuttX to my 8-bit Atari and 16-bit Amiga and Atari ST and push new life to these amazing machines :-)

[1] https://nuttx.apache.org
[2] https://news.apache.org/foundation/entry/the-apache-software-foundation-announces-apache-nuttx-as-a-top-level-project

FreeBSD + Zephyr RTOS + ESP32

FreeBSD can natively emulate Linux ELF binaries. You can now bootstrap Linux espressif xtensa toolchain for ESP32 on FreeBSD under The Zephyr Project with west espressif install :-)
https://github.com/espressif/esp-idf/pull/7226#event-5064755416

CED 7000 battery replacement

If you need to replace battery for CED 7000 timer [1] you can either buy a HLP 443450 3.7V 800mAh 2.96Wh accumulator [2] or dedicated inexpensive Power Bank [3] that contains two accumulators inside – one for quick replacement of the timer battery and the other to charge timer over the USB cable – this way you can also safely carry a backup and replacement power source at hand :-) One thing that could be improved here is using both accumulators in the Power Bank so capacity is doubled and both are always charged – that should also prevent self-discharge below safe point of the unused unit.





[1] https://www.cedhk.com/ced7000-shot-timer
[2] https://www.cedhk.com/ced7000-replacement-battery
[3] https://www.halinka-arms.pl/timery-i-akcesoria/1096-power-bank-do-timera-ced-7000.html

ZEPHYR RTOS ROX!

If you never heard about Free-and-Open-Source ZEPHYR RTOS [1] (Apache 2.0 licensed) then it will make your day as the best platform out there for your new embedded electronics design :-) It works on anything.. even on Open-Source-Hardware RISC-V CPU [2] :-)

[1] https://zephyrproject.org/
[2] https://riscv.org/

Xilinx USB JTAG Platform Cable Vivado Linux

If you work with Xilnx Vivado Design Suite [1] for FPGA development using USB JTAG interface such as Xilinx USB Platform Cable [2] or its cheaper clone from WaveShare [3], everything seems to be connected properly, but it cannot find the Target for programming, you probably need to perform drivers setup manually [4]. Error message looks like this:

ERROR: [Labtoolstcl 44-494] There is no active target available for server at localhost.
Targets(s) ", jsn3" may be locked by another hw_server.

Error message may indicate that another instance of hw_server is running in the background but that is not the case. Check your drivers first [4]. Some hints:

  • Run as root and be careful as this will modify your OS.
  • Install script location is Vivado/2020.2/data/xicom/cable_drivers/lin64/install_script/install_drivers.
  • Platform Cable USB interface is pcusb.
  • Make sure UDEV rules are installed in /etc/udev/rules.d/ (i.e. 52-xilinx-pcusb.rules file).
  • After drivers are set up remember to restart UDEV with service udev restart command and re-attach your USB JTAG cable.

[1] https://www.xilinx.com/products/design-tools/vivado.html
[2] https://www.xilinx.com/products/boards-and-kits/hw-usb-ii-g.html
[3] https://www.waveshare.com/platform-cable-usb.htm
[4] https://www.xilinx.com/support/answers/54381.html

DSO QUAD MINI SCOPE ACCU REPLACEMENT

If you are happy user of DSO QUAD pocket oscilloscope from Seeed Studio [1] then probably after all those years you need to replace the accumulator. Because stock model PL384070 3.7V 1000mAh is not available anymore you can safely use CL404070 3.7V 1300mAh that is only 0.2mm thicker but it also fits the scope very well and you gain 30% capacity. You only have to solder the plug from the old accumulator. Enjoy :-)







[1] https://www.seeedstudio.com/DSO-Quad-Aluminium-Alloy-Black-p-1034.html

LimeSuite on FreeBSD

I have ported LimeSuite [1] to FreeBSD [2]. You can now work with LimeSDR [3] / LimeSDR-Mini [4] and others on my favourite OS. Please visit MyriadRF [5] for various radio inspirations. Have fun! :-)

[1] https://github.com/myriadrf/LimeSuite
[2] https://www.freebsd.org/
[3] https://limemicro.com/products/boards/limesdr/
[4] https://limemicro.com/products/boards/limesdr-mini/
[5] https://myriadrf.org/

ARM mbed OS DAPLink pyOCD

It is my great honor to join Free-and-Open-Source ARM mbed [1] development team! :-)

[1] https://www.mbed.com

JTAGulator

I just did a self-assembly of JTAGulator. This simple and amazing device indeed works and shortens JTAG pinout search from days to seconds. AMAZING! I have some spare devices to sale cheap in EU, if you want one let me know! :-)

JTAGulator is an open source hardware tool, created by Joe Grand / Grand Idea Studio, that assists in identifying OCD connections from test points, vias, or component pads on a target device. All you need is a target device, bunch of tap wires / cables, USB-Mini cable, and serial terminal to operate JTAGulator.



On-chip debug (OCD) interfaces can provide chip-level control of a target device and are a primary vector used by engineers, researchers, and hackers to extract program code or data, modify memory contents, or affect device operation on-the-fly. Depending on the complexity of the target device, manually locating available OCD connections can be a difficult and time consuming task, sometimes requiring physical destruction or modification of the device.

LibSWD-0.7 RELEASE

It is my great pleasure to inform you folks that, almost after four years, I did a new release of LibSWD-0.7 [1], a low-level embedded systems access open framework. Special thanks goes to Andrew Parlane of Carallon Ltd [2] for his much appreciated contributions! Well now I feel like I need to invent some nice small device based on ARM Cortex-M0 CPU :-)

[1] https://github.com/cederom/LibSWD
[2] http://www.carallon.com/

OrangeADE: Orange Autonomous Device Evaluation

I have recently started the OrangeADE project [1], that is Orange Autonomous Device Evaluation, an online platform to evaluate security level of network equipment and verify against known vulnerabilities. OrangeADE is released as Open-Source under the “new” 3-Clause BSD license. Enjoy the work in progress! :-)

[1] https://github.com/CeDeROM/OrangeADE

Is Blend4Web a Blender Game Engine replacement?

You just need to see this awsome Mars Curiosity [1] simuluator [2] made by NASAJPL [3] with Blender3D [4] Blend4Web [5] HTML5 [6] WebGL [7] Free and Open-Source Software :-)

Screen Shot 2017-01-15 at 15.25.15

[1] https://www.nasa.gov/mission_pages/msl
[2] https://eyes.nasa.gov/curiosity
[3] http://www.jpl.nasa.gov
[4] https://www.blender.org
[5] https://www.blend4web.com
[6] https://www.w3.org/TR/html5
[7] https://www.khronos.org/webgl

Cura Configuration Reference Manual

Starting up the Configuration Reference Manual for Ultimaker CURA 3D printing Open-Source software :-)

https://github.com/Ultimaker/Cura/wiki/Cura-Configuration-Reference-Manual

Sony Xperia Unlocked Mobile Firmware Restore

Sony Xperia phones are my favorite. Very good and durable electronics, amazing photo camera, nice utilities on top of standard Google Android OS. I have also always respected Xperia for allowing users to unlock their phones for Open-Source Firmware Customization on this amazing hardware..

xperiacompanionfail

Unfortunately, Sony seems to have this habit to make a bad decisions, so amazing hardware is not always followed with a good software. This is why Open-Source Customization is so important. I have already found several nice devices with a really bad firmware. What is more, this corruption seems to spread, and Sony blocks factory firmware restore for an unlocked devices with their official Xperia Companion utility. This means unlocking a device does not only Voids a Warranty, but also silently makes it Impossible to Go Back to a Stock Firmware! This is really bad idea.

emma

Luckily smart people tends to predict and help each other out. Developer team of Sony Mobile released EMMA utility (nice name by the way) that allows you to re-flash mobile that is unlocked in case something goes wrong or you simply want to get back to a stock firmware.

Open-Source Firmware Customization will become a standard, even for large enterprises, with mutual benefit to their customers, because looking at the big picture we are part of the same eco(no)system..

NXP Technology Days 2016

It was fun to take part in NXP Technology Days 2016. Last year fusion of Freescale into NXP looks good, lots of useful solutions and possibilities gathered in one place. Very interesting On-Chip Security Mechanisms for Embedded Systems and Open-Source implementations for i.MX6 CPU family. Let’s hope that (probably upcoming) fusion of NXP into Qualcomm will not affect Open-Source Community in a bad way..

20161004-nxptechdays-tcedro-small

Google Hangouts related feedback

I have just reported several issues and ideas related with this nice Google Hangouts Android application:

  • The name Hangouts is not popular and hard to remember. Abandoning “Google Chat” or “Google Talk” was a bad idea. People tend to remember short names and popular words such as “Skype” or “Viber”. This may be funny but people really cannot remember “Hangouts” well.
  • Receiving calls is misleading. There are several different ways to answer an incoming call in Hangouts. Most common way is to press a button and then drag it onto an icon that is not visible until you press a button. Another way is top view pop-up which could have color buttons in addition to small icons. Older people have problem with this. Average non-geek user simply needs Green Answer and Red Reject button.
  • Hangouts would be simpler to use and more popular if it worked just as an ordinary Phone Call application. Non-geek users have this habit already on how to use Phone Call application, that Hangouts should leverage.
  • Hangouts voice/video call should be available directly from a Contact Book if gmail address is present. Just as phone call.
  • There are Android devices that offer hardware phone buttons (such as LG Wine Smart). Green Connect and Red Disconnect buttons should be also available to perform actions in Hangouts.

These simple ideas arised from observing older people trying to use Hangouts to videocall their family members..

Android Game Controller

It is possible to connect a game controller to Android based device and use it as input for your application [1].

[1] https://developer.android.com/training/game-controllers/index.html

Android USB OTG HOST

Most modern Android based devices support USB OTG function [1]. USB is a Host centric bus that means there is only one Host device and many different Devices can be connected to it. Using inexpensive USB-OTG cable it is possible to swich smarphone USB port from Device to Host, and connect external devices, if chipset and OS build allows this. Google provides detailed information on how to code USB Host [2] in your application.

[1] http://www.usb.org/developers/onthego/
[2] https://developer.android.com/guide/topics/connectivity/usb/host.html

CeDeROM CASING for M24LR-DISCOVERY

As an exercise, I have just designed (using FreeCAD) and 3D-Printed (using semi-translucent PLA material) a casing for M24LR-DISCOVERY (CR95HF NFC Reader). Let me know if you need one :-)

Read More

Xperia Android Bootloader Unlock

It is very kind of Sony that they created an easy way to unlock Bootloader of Xperia Android Smartphones. You can now customize your phone firmware and OS :-)

http://developer.sonymobile.com/unlockbootloader/unlock-yourboot-loader/

Google Android Nexus Device Un-Brick

GoogleNexus

If you happen to brick your Google Nexus device you can always use stock ROM images [1] to revert it to a default and operational state. Package contains not only OS but also bootloader and radio firmware images!

I have bricked my device by installing custom firmware that messed partitions layout inside a Flash Memory. I have seen lots of people having similar problem of endless bootloader-loop. There is no need to send a device to a service when bootloader is operational. All you need is a stock firmware image from Google [1], USB cable, and fastboot utility from Android SDK. If you happen to damage a bootloader, then hardware manipulation at low-level is necessary over JTAG, I can help to recover your device in that case.. no worries :-)

[1] https://developers.google.com/android/nexus/images

HackRF(One) on FreeBSD

My port of HackRF has been committed. Enjoy your HackRF One SDR on FreeBSD OS! =)

Virtual-Reality

Mind-Over-Matter – this is my Virtual-Reality =)

cederom-florabo-virtual-reality-20140223

Unit cost in mass production

In my first steps of mass production I have created a simple simulation of unit cost per production volume. On the plot we can see a price for two version of the final product – basic and full featured.

mass-production-cost-simulation-20140209

Looks interesting, as components cost highly depends on the order volume, prices can go down when purchasing more and manufacturing more – so called scale effect can bring more products for a lower price per unit. Next step is to negotiate better prices in high volume orders and choose between different distributors, then try the automated machine manufacturing..

CeDeROM BCI at Bio-Tech 2013

Today I had a pleasure to give a lecture on my “CeDeROM Brain Computer Interface” at Bio-Tech 2013 scientific conference hosted by Lublin University of Technology. Thank you for this great opportunity and so many interesting people!

LibSWD 0.6 release

I am happy to announce a new release of LibSWD-0.6! Most important feature of this release is the standalone Application with an example of Command Line Interface (CLI), FTDI driver and ARM Cortex-M3 Core Debug and Flash support demonstration. Please report issues via Ticket System. Have fun! :-)

II Conference on Aerospace Robotics (CARO’2)

Today, with my friend Grzegorz Misiołek, we have presented a lecture on our early stage research “BioCybernetic Robot with Brain Computer Interface Technology for Space Applications” at II Conference on Aerospace Robotics (CARO’2) hosted by Polish Space Research Center of Polish Academy of Sciences. Thank you for this great opportunity!

KT-LINK FT2232H based interface on FreeBSD

I have created a simple patch for FreeBSD Operating System to detect and support FT2232H based KT-LINK interface. FTDI chips are already supported using uftdi driver and they can provide various serial and parallel protocols over USB such as RS232, JTAG, SWD, SPI, I2C, 1Wire, etc. My patch allows to use RS232 port on the KT-LINK which in conjunction with Minicom terminal software allows to talk to the Serial Console Port on various embedded systems. KT-LINK is really nice inexpensive (50EUR) and versatile tool for embedded system developers, now it became all-in-one tool on my FreeBSD box :-)

http://www.freebsd.org/cgi/query-pr.cgi?pr=175893

OpenOCD and LibSWD integration complete

Patches that integrate LibSWD with OpenOCD has been already sent, so the platform independent Serial Wire Debug in Open-Source becomes a reality! Mr. Gerrit takes care of the source code review part, while Mr. Jenkins takes care of proper binary build for various platforms and operating systems. This is the right moment to make use of developers mailing list for feedback, asking questions, blaming, testing, adding new features and voting to accept the patches, so the code becomes an integral part of the OpenOCD release! :-)

Orange Labs provided R&D environment for initial stages of the research. Warsaw University of Technology made this possible as part of my MSc and PhD thesis. Krzysztof Kajstura designed and provided his generic KT-LINK (FT2232H based) interface to work with. David Brownell first introduced the Transport layer in OpenOCD in 2010 to split Target from JTAG. Simon Qian was working in parallel on his own SWD implementation for a Versaloon interface (as part of intelligent firmware). Øyvind HarboePeter StugeSpencer Oliver, Rodrigo Rosa helped me on GIT usage and OpenOCD internals,  Freddie Chopin helped me a lot with commited patches to match OpenOCD coding standards, Akos Vandra helped me to test functionality as the program was created… and my other friends should be also noted here for their support :-)

Power of the few outweights power of the many! Thank you for your support! :-)

LibSWD 0.5 Released

LibSWD 0.5 is out! It brings mainly the rename of all function prefix due API conflicts with other existing solutions.

Please visit Project Website for more information :-)

LibSWD 0.4 Released

LibSWD 0.4 is out! It brings various bugfixes and improvements, but most of all stable API to be used with OpenOCD and other external applications.

See Project Website for more information :-)