BlinkyPendant bare metal programming
This discussion was created from comments split from: BlinkyPendant.
It looks like you're new here. If you want to get involved, click one of these buttons!
Comments
I installed the ARM toolchain and dfu-utils, and was able to build the firmware (without making any changes to any of the files). When I ran make install, the pendant blinked and then nothing. Nothing happens when I turn it on and press the button. When I try using PatternPaint with the pendant connected, it displays the "live" image from PatternPaint, but the "save to device" doesn't work. Is there something else that needs to be loaded on the pendant beside the firmware for it to work? Was there another error? I've noticed that dfu-utils says it's unable to read DFU status after completion.
Sorry, I'm new to ARM programming. Any help welcome.
Thanks!
Here's the output I get after running make install:
$ make install
dfu-util -d 1209 -D pendant-firmware.dfu
dfu-util 0.8
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org
Deducing device DFU version from functional descriptor length
Opening DFU capable USB device...
ID 1209:8888
Run-time device DFU version 0101
Claiming USB DFU Runtime Interface...
Determining device status: state = appIDLE, status = 0
Device really in Runtime Mode, send DFU detach request...
Device will detach and reattach...
Deducing device DFU version from functional descriptor length
Opening DFU USB Device...
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0101
Device returned transfer size 1024
Copying data from PC to DFU device
Download [=========================] 100% 34372 bytes
Download done.
state(7) = dfuMANIFEST, status(0) = No error condition is present
dfu-util: unable to read DFU status after completion
Just split this into a new discussion. First- awesome! It looks like you're doing everything with DFU. That warning message can be safely ignored.
I think I might know the answer to this- the latest BlinkyPendant firmware in github has partial support for loading multiple images, but PatternPaint doesn't save the right image format to it by default. To make sure your setup is working, try this:
1. Check out this commit: 3e3f490a19 (git checkout 3e3f490a19), and re-build/install the firmware- that version should work with the current release of PatternPaint.
2. Once that works, you can either:
a. set up the build environment for PatternPaint and run it (the latest code autodetects the Pendant firmware version, and writes either a single pattern for pendant firmware v1 or multiple patterns for the new firmware)
b. let me know what platform you are on and I'll make a build of the latest patternpaint that works with this.
This should let you load multiple images, however there's a bug in I think either the upload or playback code, that messes up some of the pixels on playback- I'm not entirely sure where.
If there's stuff I can help document about this, please let me know!
Cheers,
Matt
Thanks for the response! I want to try what you suggest, however I'm confused: commit 3ef490a19 is the latest one on GitHub? "Latest commit 3e3f49 on Jul 19." In any case, that's the one I'm using. Should I be building from another commit?
I haven't started looking in the firmware code yet, I wanted to first make sure I was able to replicate a working toolchain. If the new version of PatternPaint supports multiple images that's great! This will solve my first use case I'm on Mac OS X.
Thanks again,
Thomas
If the BlinkyPendant isn't showing up as a USB device, turn it off and disconnect from USB, then hold down the pattern selection button when plugging it back into USB- that should make it stay it bootloader mode so that you can update to a working firmware.
I haven't been able to build the latest PatternPaint yet because I need to upgrade Xcode in order to enable QT and I'm scared this will mess up my dev setup, so taking it easy.
Will try and investigate more when I have more time.
Thanks for all the help!