Kitprog3 now and future?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
DaEr_349131
Level 5
Level 5
25 likes received 50 sign-ins 5 comments on KBA

mdlcrumyfs

Hi,

  1. First, Is the source or .hex file Kitprog 3 available somewhere?
    We prefer to put the kitprog directly on our own dev-boards.


  2. What's the current transfer speed of kitprog3 to say a psoc 6?
    Would be great if this could be optimized to > 200 KB/s (without the need for J-links)
    I guess a combination of:
    • a flash-loader (with compare function, similar to what segger does)
    • a faster alternative to CMSIS-DAP INT endpoints..
    • implement the kitprog SWD part in UDB



  3. The absolute best here would be
    • An open source "Kitprog X" with high-speed usb interface.
    • this would open up for a bunch of useful development tools incl. CI setups.
    • i.e. flexible amount of 1x, 2x, 3x uart-bridges, gpio's for remote reset/boot-override (think hardware build-bots), and more..!
18 Replies
markgsaunders
Employee
Employee
50 sign-ins 10 solutions authored 5 solutions authored

Hello!

This is great feedback - thank you!

First, Is the source or .hex file Kitprog 3 available somewhere?
We prefer to put the kitprog directly on our own dev-boards.


We are not philosophically opposed to that at all. We have, in the past, given out the image to people who want to put their own kitprog (it was v2) on boards. Hey, it runs on a PSoC 5LP - so we sell more chips that way . I do not see anyone objecting to enabling you to do that but it is not something we have formalized into a "sign this - go here - get SW" process. Yet...

  1. What's the current transfer speed of kitprog3 to say a psoc 6?
    Would be great if this could be optimized to > 200 KB/s (without the need for J-links)
    I guess a combination of:
    • a flash-loader (with compare function, similar to what segger does)
    • a faster alternative to CMSIS-DAP INT endpoints..
    • implement the kitprog SWD part in UDB

I do not know the transfer speeds off-hand. One thing that kitprog3 does is to use USB BULK transport instead of kitprog2's HID, which increases our download speed quite a bit. I'll ask if we have any numbers...

The kitprog runs in a PSoC 5LP and probably (I am pretty sure but have not seen the design myself) does use UDBs. The history here is that the kitprog is, effectively, MiniProg3 without the FPGA!

  1. The absolute best here would be
    • An open source "Kitprog X" with high-speed usb interface.
    • this would open up for a bunch of useful development tools incl. CI setups.
    • i.e. flexible amount of 1x, 2x, 3x uart-bridges, gpio's for remote reset/boot-override (think hardware build-bots), and more..!

I like that idea. I do not think we're protecting any super-secret IP in kitprog. It would be great if the community could morph it onto cool new things.

Regards, Mark.

Hi & Thanks!

We're just about to finish a new board design with psoc6 so would be great if we can drop the kitprog on there, can we assume that the .hex will be available?

Would be super if someone at Cypress would be interested in taking a look at the performance details.

We really dig the form-factor, being able to build dev-setups which fits with your laptop in a small bag. No need for external clunky jtag adapters. Please check if we could see kitprog on a git repository in the near future. I belive this would be a superior move by Cypress as it opens up for a lot of nice use-cases!

best David

0 Likes

Hey David!

Thanks for the insight and wish list. I "own" KitProg features. So I'm very interested in your input. Nothing like (oh my god) talking to customers!

Keep in mind that, as of today, KP3 is still in beta state. That said...

Hex file

There is a binary image included with ModusToolbox. It's a .cyacd file. The firmware loader tool flashes this to the KP3 hardware on kits. There's one for KP2 as well. Located here: <modusinstall>\tools\fw-loader-1.0\bin\firmware. If this doesn't meet your needs, ping me at james.trudeau@cypress.com.

The next release of PSoC Programmer (3.28) will include a binary image. I just looked at the build I have installed (internal at this point) and there is a hex file for KP3.

Speed

We are currently measuring KP3 programming a PSoC 6, at 30-35 Kbs. Your mileage may vary. This is the first release of KP3 - which is a complete rewrite based on CMSIS-DAP. I'm happy with where we are for a first release. BUT... I'm not satisfied long term with that speed. We already have internal discussions under way for how to make performance better, and I will define a "make it faster" requirement for the next release. Example, implement SWD using UDB. Yep, we thought of that! We are on the same wavelength.

Open Source

This is already on our radar. I'm not going to promise, because you never know what will show up as a surprise. But my goal is to have KP3 released as open source for our next release. As I said, NOT a promise, but we share the same goal.

Flexible Amount of UARTs

KP3 supports two UARTs. End point limitations mean we will not get three.

GPIOs for remote reset/boot-override

Send me an email, and let's talk about this use case. I'm a software guy mostly. Which means, I know what a gpio is. So educate me on what you'd like to be able to do, and we'll see where that takes us.

Looking forward to hearing from you

Will KP2 have the same love as KP3? We are using PSoC6 BLE Pioneer kit as a programmer for our dev. board. With the openocd, it has around 4.7KB/s.

Do you have Altium file for KP3 or KP2? We would like to integrate it in our dev. board too.

0 Likes

First question "Will KP2 have the same love as KP3"?

The blunt answer is "no, but we will have a utility that allows you to easily upgrade to KP3 and even back down to KP2".

Of course, If there are any big bugs found in KP2, we might make another release, but KP2 will not be supported in

the production release of ModusToolbox (yes, I know the version you are using supports it).

Second question, "Do you have an Altium file for KP2 or 3"? I believe we provide Eagle files for the boards, and they should have the PSoC 5LP as KitProg2 there.

See here http://www.cypress.com/documentation/development-kitsboards/psoc-6-wifi-bt-pioneer-kit

If you open Hardware.zip, you'll see the .brd file.  I'm assuming it will look something like

pastedImage_1.png

0 Likes

Hi James,

Sorry it took a while to get back.

Hex file

There is a binary image included with ModusToolbox. It's a .cyacd file.

Perfect, thanks!

Speed

We are currently measuring KP3 programming a PSoC 6, at 30-35 Kbs. Your mileage may vary. This is the first release of KP3 - which is a complete rewrite based on CMSIS-DAP.

Is the speed perhaps limited to the nature of HID endpoints used by CMSIS-DAP?

We'd really like to see a minimum of 200Kbs before we're ready to replace our Seggers... That said, problem with segger (except that they are physically very big, their API's and cmd-line tools keep changing, so we'd rather have a open-source frontend to run the flashing and debugging).

Example, implement SWD using UDB. Yep, we thought of that! We are on the same wavelength.

I think that would be great too! Especially since it will offload the kitprog-psoc5lp.

Another huge speed-up is to let either openocd or the kitprog itself check each flash-page if it really needs to be programmed, and only then it erases and reprogrammed that page.

Open Source

This is already on our radar. I'm not going to promise, because you never know what will show up as a surprise. But my goal is to have KP3 released as open source for our next release.

That's fantastic news! Make sure to also add the needed support to OpenOCD upstream.

Flexible Amount of UARTs

KP3 supports two UARTs. End point limitations mean we will not get three.

Another killer-feature!! How do you configure them, setup baudrates etc? Any docs avail?

GPIOs for remote reset/boot-override

Send me an email, and let's talk about this use case. I'm a software guy mostly. Which means, I know what a gpio is. So educate me on what you'd like to be able to do, and we'll see where that takes us.

Let's say the KP3 had 4 generic GPIO's (a bit like you'd get on the FTDI uart adapters or any generic GPIO expander)

- those gpio's would be Hi-Z by default

- would be controlled over USB (hid or cdc) to setup input/output PU/PD

- write or read pin-status

Use-case could be:

- to be able to control say a Battery FET (for hard reboot when batts are built-in)

- listen to some signal (i.e. wake, irq and such) which is handy when trailing logs on the pc-side.

0 Likes

Sorry for some delay getting back to this.

SPEED: We're starting the design process for the next major release. Speed will be an issue. Right now KP3 (and KP2) have a full speed USB connection. We will be exploring high speed. The engineers have a couple of other ideas that would significantly enhance performance. Whether any of it is feasible, we'll find out. But speed improvements are definitely on the radar. It also depends on the programmer using KP3... We've seen 2X overall speed differences based on the host programmer. Anyway, we'll be working on it.

TWO UARTS: They are supported. They are enabled per kit. Most kits don't enable two UARTS, but the capability is now there. If enabled, they'll both appear as any UART does, and you can configure each in a terminal emulator.  I _THINK_ what you're really asking is... how can I turn on the 2nd UART. The short answer to that is, you can't. At the moment this is all proprietary. When it goes open source, however, you'll be able to see the feature and turn it on in your own implementation.

GPIO: Got that into the engineering team, thanks.

DaEr_349131
Level 5
Level 5
25 likes received 50 sign-ins 5 comments on KBA

Hi jett​ just checking in how it's been going.

0 Likes

We're all focused on getting ModusToolbox out the door.

0 Likes

Hi Jim,

Just checking in if any updates?

best David

0 Likes

Current focus is updates for next release of the tools, new kits, and supporting Arm's DAPLink connection. That has moved from HID to Bulk endpoints (just within the past few days) so DAPLink users will see a speed bump.

Hi JamesT_21

I saw that Daplink v2 is now done. Great!

What's the status if we want to do our own integrated miniprog/kitprog daplink solution?

would it be possible to get hold of the source code!?

the best would perhaps be to if Cypress would be willing to upstream a "HIC" to: GitHub - ARMmbed/DAPLink

best David

0 Likes

Hi David! I know the KitProg team is focused on supporting new silicon, not in managing the transition to public release of the source code. That task is in our  backlog and has been pushed back by priority calls. I'll make sure the engineering manager sees this.

Looking back in the thread... I see this use case... and your goal is to have the source code so you can tweak this behavior for, in effect, a custom KitProg. Other users might like to implement other tweaks

---

Let's say the KP3 had 4 generic GPIO's (a bit like you'd get on the FTDI uart adapters or any generic GPIO expander)

- those gpio's would be Hi-Z by default

- would be controlled over USB (hid or cdc) to setup input/output PU/PD

- write or read pin-status

Use-case could be:

- to be able to control say a Battery FET (for hard reboot when batts are built-in)

- listen to some signal (i.e. wake, irq and such) which is handy when trailing logs on the pc-side.

Thanks James,

re: open-source

One specific use-case we have is for boards with multiple psoc's.

We don't need to flash them in parallel, but just being able to switch the SWD pins dynamically would be very useful and a typical feature we can add.

re: closed source with added features

It would be great with the 4x generic gpio's!

via cdc is probably best (could be a separate endpoint)

Perhaps SWD1, SWD2, SWD3, also configurable will solve the first use-case

best David

0 Likes

realized there is already a "Cypress API" for the CY7C6521x series that supports UART, GPIO, I2C bridging etc.

also quite a few nice libraries in c or python on github to interact with those. So perhaps best to re-use that same psoc code-base?

0 Likes

MarkS_11​ and JamesT_21

About to put a kitprog3 on one of our own boards.

Is there a schematic for kitprog3/miniprog3 avail?

mostly interested about the pin-out for the 2x UART's

re: closed vs open source.

how about doing it like in the CCG's? closed source for the kitprog/swd/daplink stuff, but allow to add your own code etc to a simple creator project (assuming it's done there)

0 Likes

HI David - the schematic for KitProg is typically included in the set of schematics for a kit, since it's the onboard debugger for the kit.

https://www.cypress.com/file/457811/download

Jim

We have a setup where I'd like to use one kitprog to program two psoc's on the same board.

Is there some secret ways of muxing the swd pins to another pair of gpio's?

0 Likes