Skip to content

Releases: orbcode/orbtrace

Version 1.4.0

05 Sep 20:47
Compare
Choose a tag to compare

This is the eighth production release of ORBTrace Mini gateware.

This is a breaking change. Orbuculum will not find the trace interfaces unless you upgrade it to Version 2.2.0 or higher.

New Features

  1. Migration to orbflow protocol

This build adds the ability to decode and strip TPIU frames in-probe. This reduces the bandwidth required back to the host over the USB link, and the processing needed on the host. TPIU stripping is supported over the 1/2/4 bit parallel interfaces as well as at full line speed on SWO/UART and SWO/Manch.

Removing TPIU framing necessitates a new flow protocol between the probe and the host. This protocol is known as orbflow. It can run on top of any bearer that can carry demarked packets. On the USB link it runs over Consistent Overhead Byte Stuffing (COBS). Each TPIU source on the target is carried in a separate orbflow stream, identified by a tag. By default and convention, ITM is carried in tag 1 and ETM in tag 2. This can be changed by configuration.

The bandwidth saving achieved by orbflow is use case dependent but is generally at least a factor of 2. Further, the adoption of orbflow will allow arbitrary other streams to be transported between the probe and the host in future.

  1. CMSIS-DAP v2 UUID Support

The UUID for CMSIS-DAP v2 has been added to the usb interface descriptors. This allows the v2 interface to be discovered by certain Windows products such as IAR eWARM.

Bugfixes and Itchfixes

None

Assets

Gateware set consists only of the application image. This goes into slot 1. Bootloader from 1.3.1 is still the appropriate version to use.

Installation

To install you will need to have established permissions for the device (See the README, or just grab a suitable udev rules file, like this one). A modern Orbuculum install also inserts a suitable udev file. Then hold down the button and power up the ORBTrace Mini. The status LED will turn purple. In a terminal window, enter;

dfu-util -d 1209:3442 -a 1 -D orbtrace_mini_application_1.4.0.bit

Once it has flashed power cycle and you should be running the new version. You can verify that you are running the correct version by checking the interface strings;

$ orbtrace -l
 Id |                    Description                    |      Serial      |           Version
 ---+---------------------------------------------------+------------------+----------------------------
  1 | Orbcode Orbtrace                                  | 36FC6192A2189006 | v1.4.0-0-ga77d260

There is no need to update your bootloader if you are already on 1.3.1.

Help Requested

Please test on a wide variety of targets as possible and report observed issues...ARM CORTEX-M is a broad church and wide testing is essential. Success reports are as important as failure ones, so feel free to raise an issue or ping us in the Discord.

Contributions to both ORBTrace and Orbmortem always gratefully accepted.

Upcoming Work Items

  • Internal refactor
  • Bring on board CPU into use
  • any needed bugfixes :-)

Known Issues

Requires orbuculum 2.2.0 or higher for the trace interfaces to be discovered.

Version 1.3.2

17 Jan 22:57
Compare
Choose a tag to compare

Version 1.3.2

This is the seventh production release of ORBTrace Mini gateware.

This build does not add new functionality but improves SWD error recovery under specific edge conditions. It also aligns the build output bitfile with the qualified seed...that didn't happen with 1.3.1 due to a build process error. As a result this release is recommended for all users.

New Features

  • No new user visible features

Bugfixes and Itchfixes

  • Improve handling of SWD ACK error messsages.
  • Refine build system to ensure compliant build.

Assets

Gateware set consists only of the application image. This goes into slot 1. Bootloader from 1.3.1 is still the appropriate version to use.

Installation

To install you will need to have established permissions for the device (See the README, or just grab a suitable udev rules file, like this one. A modern Orbuculum install also inserts a suitable udev file. Then hold down the button and power up the ORBTrace Mini. The status LED will turn purple. In a terminal window, enter;

dfu-util -d 1209:3442 -a 1 -D orbtrace_mini_application_1.3.2.bit

Once it has flashed power cycle and you should be running the new version. You can verify that you are running the correct version by checking the interface strings;

$ lsusb -d 1209:3443 -v | grep iInterface
      iInterface              0 
      iInterface              0 
      iInterface              4 Trace
      iInterface              5 Control Proxy
      iInterface              6 CMSIS-DAP v1
      iInterface              7 CMSIS-DAP v2
      iInterface              8 Target power
      iInterface              9 Version: v1.3.2-0-g85b66b9

Alternatively;

$ orbtrace -l
 Id |               Description                |      Serial      |           Version
 ---+------------------------------------------+------------------+----------------------------
  1 | Orbcode Orbtrace                         | XXXXXXXXXXXXXXXX | v1.3.2-0-g85b66b9

There is no need to update your bootloader if you are already on 1.3.1.

Help Requested

Please test on a wide variety of targets as possible and report observed issues...ARM CORTEX-M is a broad church and wide testing is essential. Success reports are as important as failure ones, so feel free to raise an issue or ping us in the Discord.

Contributions to both ORBTrace and Orbmortem always gratefully accepted.

Upcoming Work Items

  • Documented interface to the CPU
  • any needed bugfixes :-)

Known Issues

No known issues.

Version 1.3.1

27 Jun 22:15
Compare
Choose a tag to compare

Version 1.3.1

This is the sixth production release of ORBTrace Mini gateware.

This build does not add new functionality but improves USB error handling so control handlers can correctly recover from receiving corrupted data. This mainly affects the DFU functionality. It is recommended for all users.

New Features

  • No new user visible features

Bugfixes and Itchfixes

  • Handle corrupt USB control OUT message correctly.

Assets

Gateware set consists of the bootloader and application images. Bootloader targets dfu slot 2, application slot 1. Under normal conditions you will only need the application gateware.

Installation

To install you will need to have established permissions for the device (See the README, or just grab a suitable udev rules file, like this one. A modern Orbuculum install also inserts a suitable udev file. Then hold down the button and power up the ORBTrace Mini. The status LED will turn purple. In a terminal window, enter;

dfu-util -d 1209:3442 -a 1 -D orbtrace_mini_application_1.3.1.bit

Once it has flashed power cycle and you should be running the new version. You can verify that you are running the correct version by checking the interface strings;

$ lsusb -d 1209:3443 -v | grep iInterface
      iInterface              0 
      iInterface              0 
      iInterface              4 Trace
      iInterface              5 Control Proxy
      iInterface              6 CMSIS-DAP v1
      iInterface              7 CMSIS-DAP v2
      iInterface              8 Target power
      iInterface              9 Version: v1.3.1-0-gd096575

It is also worth updating your bootloader. To do that, go into bootloader mode again and load the bootloader into slot 2;

dfu-util -d 1209:3442 -a 2 -D orbtrace_mini_bootloader_1.3.1.bit

If you goof this up you'll have to reprogram using the JTAG header and following the instructions here. Be particularly careful not to flash the application gateware into the bootloader slot. If you do that your ORBTrace will work perfectly, but you'll lose the ability to dfu-update.

Help Requested

Please test on a wide variety of targets as possible and report observed issues...ARM CORTEX-M is a broad church and wide testing is essential. Success reports are as important as failure ones, so feel free to raise an issue or ping us in the Discord.

Contributions to both ORBTrace and Orbmortem always gratefully accepted.

Upcoming Work Items

  • Documented interface to the CPU
  • any needed bugfixes :-)

Known Issues

No known issues.

Version 1.3.0

27 Jun 22:14
Compare
Choose a tag to compare

Version 1.3.0

This is the fifth production release of ORBTrace Mini gateware.

This build does not add new functionality but generally improves robustness. No issues or regressions are foreseen.

New Features

  • No new user visible features

Bugfixes and Itchfixes

  • Use correct bits from DAP_TRANSFER for DAP index - fixes multi-DAP operation
  • Handle empty response to block read more elegantly - prevents corruption of follow on packet
  • Simplification of edge detection for parallel TRACE - this allows TRACE to acquire lock on the very first packet so there is no delay before valid data are reported
  • Don't time out TRACE collection when keep-alives aren't seen - this prevents TRACE being lost when there isn't much of it, or it's very busy
  • Significant speed ups in JTAG due to protocol handling improvements
  • Fix multi-device JTAG handling to enable high speed JTAG support for multi-device chains
  • Support a wider range of multi-colour LED manufacturers in assembly

Assets

Gateware set consists of the bootloader and application images. Bootloader targets dfu slot 2, application slot 1. Under normal conditions you will only need the application gateware.

Installation

To install you will need to have established permissions for the device (See the README, or just grab a suitable udev rules file, like this one. A modern Orbuculum install also inserts a suitable udev file. Then hold down the button and power up the ORBTrace Mini. The status LED will turn purple. In a terminal window, enter;

dfu-util -d 1209:3442 -a 1 -D orbtrace_mini_application_1.3.0.bit

Once it has flashed power cycle and you should be running the new version. You can verify that you are running the correct version by checking the interface strings;

$ lsusb -d 1209:3443 -v | grep iInterface
      iInterface              0 
      iInterface              0 
      iInterface              4 Trace
      iInterface              5 Control Proxy
      iInterface              6 CMSIS-DAP v1
      iInterface              7 CMSIS-DAP v2
      iInterface              8 Target power
      iInterface              9 Version: v1.3.0-0-g7d5d341

It is also worth updating your bootloader. To do that, go into bootloader mode again and load the bootloader into slot 2;

dfu-util -d 1209:3442 -a 2 -D orbtrace_mini_bootloader_1.3.0.bit

If you goof this up you'll have to reprogram using the JTAG header and following the instructions here. Be particularly careful not to flash the application gateware into the bootloader slot. If you do that your ORBTrace will work perfectly, but you'll lose the ability to dfu-update.

Help Requested

Please test on a wide variety of targets as possible and report observed issues...ARM CORTEX-M is a broad church and wide testing is essential. Success reports are as important as failure ones, so feel free to raise an issue or ping us in the Discord.

Contributions to both ORBTrace and Orbmortem always gratefully accepted.

Upcoming Work Items

  • Documented interface to the CPU
  • any needed bugfixes :-)

Known Issues

During testing of the release builds, an issue with infrequent USB corruption was observed and tracked down to a combination of signal integrity issues in the test setup and missing error handling in control request handlers. The latter will shortly be addressed by 1.3.1.

Version 1.2.1

25 Nov 21:58
@zyp zyp
Compare
Choose a tag to compare

This is a minor release aimed at solving a yield issue on certain boards by adjusting a LED protocol timing. If you already have a board running v1.2.0 you don't need this update, as all affected boards will be shipped with v1.2.1 already installed.

Version 1.2.0

05 Sep 22:05
Compare
Choose a tag to compare

This is the third production release of ORBTrace Mini gateware.

This build is recommended for all users. SWO capture over a UART link at up to 62Mbps has been added and an edge case in parallel TRACE addressed. No issues or regressions are foreseen.

New Features

  • SWO capture over a UART encoded link at speeds from 125Kbps to 62Mbps. Note that with SWO/UART your reception rate (as set by the -a xxxx option to orbtrace) must match the rate your target is sending data at. The effective maximum user data rate of a SWO/UART link is almost exactly the same as a SWO/MANCH link (6.2MBytes/s vs 5.8 Mbytes/s) and in general SWO/MANCH is preferred if available because it autobauds...unfortunately some chips don't offer the choice.

Note that you'll need an updated Orbuculum suite to access the new features, you can find that here. Production support for SWO/UART will be incorporated into orbuculum 2.1.0.

Bugfixes and Itchfixes

  • Prevent parallel trace keepalive from potentially corrupting a data frame.
  • Add DeviceInterfaceGUID to USB descriptors to play more nicely with Windows.
  • Various small internal improvements (See git log) with no user visible behaviour change.

Assets

Gateware set consists of the bootloader and application images. Bootloader targets dfu slot 2, application slot 1. Under normal conditions you will only need the application gateware, although updating the bootloader is needed if you want to benefit from the faster boot and improved USB compatibility.

Installation

To install you will need to have established permissions for the device (See the README, or just grab a suitable udev rules file, like this one, then hold down the button and power up the ORBTrace Mini. The status LED will turn purple. Then, in a terminal window, enter;

dfu-util -d 1209:3442 -a 1 -D orbtrace_mini_application_1.2.0.bit

Once it has flashed power cycle and you should be running the new version. You can verify that you are running the correct version by checking the interface strings;

$ lsusb -d 1209:3443 -v | grep iInterface
      iInterface              0 
      iInterface              0 
      iInterface              4 Trace
      iInterface              5 Control Proxy
      iInterface              6 CMSIS-DAP v1
      iInterface              7 CMSIS-DAP v2
      iInterface              8 Target power
      iInterface              9 Version: v1.2.0-0-g4d11770

It is also worth updating your bootloader. To do that, go into bootloader mode again and load the bootloader into slot 2;

dfu-util -d 1209:3442 -a 2 -D orbtrace_mini_bootloader_1.2.0.bit

If you goof this up you'll have to reprogram using the JTAG header and following the instructions here. Be particularly careful not to flash the application gateware into the bootloader slot. If you do that your ORBTrace will work perfectly, but you'll lose the ability to dfu-update.

Help Requested

Please test on a wide variety of targets as possible and report observed issues...ARM CORTEX-M is a broad church and wide testing is essential. Success reports are as important as failure ones, so feel free to raise an issue or ping us in the Discord.

Contributions to both ORBTrace and Orbmortem always gratefully accepted.

Upcoming Work Items

  • Documented interface to the CPU
  • any needed bugfixes :-)

Known Issues

No known issues at this time.

Version 1.1.0

19 Jul 00:36
Compare
Choose a tag to compare

This is the second production release of ORBTrace Mini gateware.

At this time this build is recommended for all users. There are specific benefits in improved SWD compatibility and SWO capture in this release. No issues are foreseen.

New Features

  • SWO capture at speeds from 16Kbps to 48Mbps. This uses Manchester Framing and is auto-bauding...if your chip is throwing out valid data, you should see it! Configuration and use instructions are over at orbcode.org. This might be only one bullet point, but it's a very big bullet.
  • Windows OS USB 2.0 descriptors to allow automatic driver binding without any need for third party apps.

Note that you'll need an updated Orbuculum suite to access the new features, you can find that here. Lots of work has been done in that to support auto install and Windows functionality etc. At the moment that's in Devel, but is stable enough to be used.

Bugfixes and Itchfixes

  • Reduced minimum debug clock, now goes down to 196KHz (was previously 391KHz). Max clock of 25MHz is not changed.
  • Improved SWD compatibility with a wide range of targets up to 25MHz. OpenOCD delivers speed of around 1.4MBytes/sec using an STM32F427 and default (boot) clocks.
  • Much faster boot. Zero to operational in the blink of an eye!
  • Incorporated LUNA fix for USB-HS PING tokens which was exhibiting as corrupted USB strings in Linux 5.18. Fix has been upstreamed to Luna.
  • Improved CI.

Assets

Gateware set consists of the bootloader and application images. Bootloader targets dfu slot 2, application slot 1. Under normal conditions you will only need the application gateware, although updating the bootloader is needed if you want to benefit from the faster boot and improved USB compatibility.

Installation

To install you will need to have established permissions for the device (See the README, or just grab a suitable udev rules file, like this one, then hold down the button and power up the ORBTrace Mini. The status LED will turn purple. Then, in a terminal window, enter;

dfu-util -d 1209:3442 -a 1 -D build/orbtrace_mini/gateware/orbtrace_mini.bit

Once it has flashed power cycle and you should be running the new version. You can verify that you are running the correct version by checking the interface strings;

$ lsusb -d 1209:3443 -v | grep iInterface
      iInterface              0 
      iInterface              0 
      iInterface              4 Trace
      iInterface              5 Control Proxy
      iInterface              6 CMSIS-DAP v1
      iInterface              7 CMSIS-DAP v2
      iInterface              8 Target power
      iInterface              9 Version: v1.1.0-0-ge5eaea2

(Don't worry about if you get any 'Resource temporarily unavailable' messages...that's just the OS stopping you getting at things you shouldn't have access too).

It is also worth updating your bootloader. To do that, go into bootloader mode again and load the bootloader into slot 2;

dfu-util -d 1209:3442 -a 2 -D build/orbtrace_mini/gateware/orbtrace_mini_boot.bit

If you goof this up you'll have to reprogram using the JTAG header and following the instructions here. Be particularly careful not to flash the application gateware into the bootloader slot. If you do that your ORBTrace will work perfectly, but you'll lose the ability to dfu-update.

Help Requested

Please test on a wide variety of targets for SWO/Manch, SWD, JTAG and TRACE functionality...ARM CORTEX-M is a broad church and wide testing is essential. Success reports are as important as failure ones, so feel free to raise an issue or ping us in the Discord.

Contributions to both ORBTrace and Orbmortem always gratefully accepted.

Upcoming Work Items

  • SWO over UART transport (if user feedback shows that proves necessary)
  • Documented interface to the CPU
  • any needed bugfixes :-)

Known Issues

No known issues at this time.

Version 1.0.0

26 Jun 17:46
Compare
Choose a tag to compare

First production release of ORBTrace Mini gateware.

This is the version of the gateware that shipped on the 'founders edition' v1.0 hardware.

This version features;

  • SWD Access tested up from 390Kbps to 25Mbps (YMMV depending on the target you're talking to).
  • Observed RAM read speeds, using SWD, around 1.4MBytes/sec using OpenOCD and 1.3MBytes/sec using probe-rs).
  • JTAG target access to the same speed, although it tends to run out of steam around 10-12Mbps.
  • VTPwr switching between Off, 5V and 3V3.
  • VTRef switching between Off, 3V3 and 1V8.
  • 1, 2 & 4 bit parallel trace tested with clocks up to 84MHz (STM32F427 at 168MHz). It will go faster, but that's the testing that's been done.
  • Trace tested with Orbuculum suite 2.0.0Beta1.
  • Tested with OpenOCD, PyOCD, Blackmagic Probe Application and openFPGALoader.
  • Reports that probe-rs and ecpdap are both working correctly.

Additional success (or failure!) reports appreciated.

Assets

Gateware set consists of the bootloader, application and corresponding test (with matching csv) images. Bootloader targets dfu slot 2, application slot 1 and the test gateware is only normally loaded into fpga RAM. It doesn't end up in flash. Under normal conditions you will only need the application gateware.

Installation

To install you will need to have established permissions for the device (See the README, or just grab a suitable udev rules file, like this one), then hold down the button and power up the ORBTrace Mini. The status LED will turn purple. Then, in a terminal window, enter;

dfu-util -d 1209:3442 -a 1 -D build/orbtrace_mini/gateware/orbtrace_mini.bit

Once it has flashed power cycle and you should be running the new version. You can verify that you are running the correct version by checking the interface strings;

 lsusb -d 1209:3443 -v | grep iInterface
cannot read device status, Resource temporarily unavailable (11)
      iInterface              0 
      iInterface              0 
      iInterface              4 Trace (TPIU)
      iInterface              5 CMSIS-DAP v1
      iInterface              6 CMSIS-DAP v2
      iInterface              7 Target power
      iInterface              8 Version: v1.0.0-0-g3ad3fa4

(Don't worry about the 'Resource temporarily unavailable' messages...that's just the OS stopping you getting at things you shouldn't have access too).

Help Requested

  • Please test on a wide variety of targets for SWD, JTAG and TRACE functionality...ARM CORTEX-M is a broad church and wide testing is essential. Success reports are as important as failure ones, so feel free to raise an issue or ping us in the Discord.
  • Contributions to both ORBTrace and Orbmortem always gratefully accepted.

Upcoming Work Items

  • SWO over Manchester and/or UART transport
  • Documented interface to the CPU
  • any needed bugfixes :-)

Known Issues

  • SWD to STM32L1 is known to be slightly marginal with respect to protocol timing. Fix is in V1.1.0. Early adopters can grab a nightly build from CI if they need it earlier.

Tested Chips

These are chips where people have reported success. There is no specific reason why any CORTEX-M shouldn't work, but please let us know success or failure so we can add to this table.

Chip Interface Software Capabilities Used
EFM33GG990 OpenOCD SWD, Trace/ITM
GD32F450 Blackmagic SWD (TRACE is not implemented on this chip, confirmed by support)
RP2040 Blackmagic SWD
STM32F427 OpenOCD, Blackmagic, PyOCD, openFPGAloader SWD, JTAG, TRACE/ITM, TRACE/ETM, FPGA Loading