Skip to main content

Topics

This section allows you to view all Topics made by this member. Note that you can only see Topics made in areas you currently have access to.

Topics - ian

421
Bus Pirate Development / Bootloader v4 (ds30 Loader)
Ok, that was easy. Here's the ds30 loader and compatible bus pirate firmware for BPv3 (ONLY!!! not for v2go!!!!):
http://code.google.com/p/the-bus-pirate ... ds30Loader

Don't use it unless you have a programmer to undo it, this is not final at all!!!!!!

To upgrade bootloaders:
1. Upload ds30Loader-v00.hex with the existing bootloader.
2. Remove the jumper and reset the PIC
3. Download buspirate.hex with the ds 30 loader GUI.

Notes:
It currently uses timeout and not jumper, this needs to be fixed.
Programs in under 10 seconds with no error messages!
Corrects problem on some PICs that can't upgrade at 115200bps.
No MODE LED indicator yet.
Needs different Bus Pirate firmware compile.
Need to examine the memory location to make sure we're getting the most out of the pic, it seems to be located at the second-to-last page. Why??

Here's the source:
http://code.google.com/p/the-bus-pirate ... ds30Loader
423
OpenOCD JTAG / Getting started
OpenOCD is a popular open source JTAG utility. Zach Welch, a regular contributor to the project, has offered to help add Bus Pirate support. You can follow the progress in his git repository.

The current plan is to port the excellent work done by the USBPROG project to the Bus Pirate. Here are some tentative goals:
    *  Port the AVR/USB-based microcontroller code from USBPROG to the Bus Pirate. Modify the code to work through the PIC serial port.
    * Add a Bus Pirate device to OpenOCD based on the existing USBPROG source code. Modify the code to write and read through a serial port.
    * Add message header, checksum to the existing USBPROG protocol.
425
Project development, ideas, and suggestions / Networked LED driver: rough design, options
Goals:
48 channels of 10bit PWM LED control
Ethernet interface
up to 120mA per channel
LED current set with a single resistor (no individual resistors needed!?!?)

Seeed Studio bought 500 additional PIC24FJ64GA002-SOs that went unused after the Hack a Day Bus Pirate presale. I've been considering various ways to use these chips since they'll be reasonably priced and immediately available.

The design that I'm most interested in working up at the moment is a 48 channel LED controller with an ethernet interface.

The board would use the 24FJ64GA002-SO as the main microcontroller, and an ENC28J60 for the network connection. A 25AA02E48 EEPROM would hold settings and a unique MAC address so multiple boards can share the same network.

The LEDs would be driven by three TI TLC5940s, each with 16 channels of 10bit PWM. The current of the LEDs connected to the TLC5940 is set with a single resistor, ideally this would be done with a digital pot for easy network configuration. This chip is cascadable, so an expansion header would make it possible to stack multiple expansion boards on top of the base.

This design will have a bootloader, but it will be brought to a serial header only. I'll ask seeed to find a cheap USB->serial cable and make the header compatible with that.

Like the #twatch, I'd like to give the board a 'default' demo mode, probably an implementation of the internet-driven daft punk table.

Any thoughts, suggestions?
426
Open Bench Logic Sniffer / Name this project, get free hardware!
Until now we've called this project by the codename 'SUMP PUMP', because it's a data pump for the open source SUMP logic analyzer client. This name is far to clever though, because SUMP infringes on the name of the original project, and it won't index well in search engines.

We'd like to hear your suggestions for a name for this project. If we choose your name, we'll send you the final hardware for free.

See also this blog post.
427
Web platform / How do you program PICs?
I program with an ICD2, but I started with a self-built JDM, and self-build ICD2 clone. I eventually bought the real-deal ICD2 so I could debug at 3.3volts (PICKIT2 wasn't really a debugger at the time).
429
Bus Pirate Support / PIC programmer SMPS draft
Draft SMPS for Bus Pirate PIC programmer. This isn't final, so the license is Creative Commons-BY-SA-NC.

I have a demo firmware that will hold the output at 13volts, but there's still a problem enabling the PNP transistor (VPP out drops to <2volts). It might be my transistor pinout is wrong, or maybe the 1n4148 is a bad switcher, or maybe the whole design is flawed (using the NPN instead of a FET).

I'll do more testing after the web platform project is out the door.
431
Bus Pirate Support / PIC programmer 13volt (VPP) supply
I'm putting together a collection of circuits for the PIC programmer 13volt VPP supply.

I'm going to prototype a charge pump and a boost converter. The boost converter will be able to make lots of voltages, up to hundreds of volts, but I plan to clamp it at <20 with a zener. I'm also going to try making the boost converter with a BC547 transistor instead of a FET, because the PIC is only 3.3volts and most FETS want 5v for full-on.
432
Bus Pirate Support / STK500 compatible AVR programmer mode
Used the source that was linked on Hack a Day recently to make a test STK500 compatible AVR programmer firmware for the Bus Pirate. Can connect to AVR studio, but can't program the ATtiny13A in the Christmas card project yet - there may be incompatibilities with the current version of AVRstudio, or maybe something isn't quite right in the firmware port.

Here's the code ported to PIC24 + C30 compiler + Bus Pirate hardware:
http://code.google.com/p/the-bus-pirate ... rce/STK500

There's a compiled version for v2go and v3 (use v3 version for both):
http://code.google.com/p/the-bus-pirate ... ghtly/BPv3
433
Open Bench Logic Sniffer / IO and buffer design details
I'm not sure of the best buffer to use, or how many to include.
I've worked with the 74LVT573: 8bit, 4.4-4.9ns, input only:
http://www.mouser.com/Search/ProductDet ... 74LVT573WM
Jack has a board with the M74LCX16245: 16bit, 4.4ns, IO:
http://www.onsemi.com/pub_link/Collater ... 6245-D.PDF
I don't know where to get the 16245, but the 573 is <50cents at Mouser.

Ideally, it would be nice to have all 32 channels of IO that SUMP supports, but if routing is really difficult I don't mind dropping a few.

I think some channels should be left buffer-free. They could be used with <3.3volts IO and with peripherals like a high-speed parallel interface ADC for o-scope functionality.

Speaking of ADC, there should be ENable, clock, power, and ground signals at the IO header if this is supported.
434
Open Bench Logic Sniffer / Parts list (rough design, options)
Quote
The FT2232 has what they call the MPSSE engine which acts as a JTAG programmer, the FT232RL doesn't have that feature. The FT2232 would be able to program any JTAG device, the challenge is to find a project that already supports the device in question so you don't have to write your own program. URJTAG might support the 28pin AVR chip.

We can use a cheaper USB chip if we include SPI Flash with the design. We would just have to include a JTAG header and use a JTAG programmer to put the SUMP design into the flash before it is sold.

There's been a strong push for USB 2.0 support. I'm not sold on it being a requirement because the SUMP client is UART only, someone would have to add support for whatever proprietary USB device driver, just having a USB 2.0 connection won't make 115200bps go any faster.

However, I thought you used the FTDI chip in bitbang mode to JTAG program. I thought all the FTDI-based JTAG programmers did that. Now I see they use the MPSSE, and it's only on the 2232 (H is the USB 2.0 version). I googled around but couldn't find a simple 232R bitbang JTAG programmer to cannibalize, which seems the ideal option to me.

The 'H' (USB 2.0) version of the 2232 has two MPSSEs, so we could route 2 extra wires for the UART and add high-speed SPI data dumps via USB2.0 in a firmware update (assuming someone made the SUMP client compatible as well). Probably don't actually need two units for this, but maybe it's easier to route.

The 2232H looks like a pain to implement. It requires a 3.3volt supply, crystal, and the IO is 3.3volt only (though 5volt tolerant), supply pins everywhere. It's also a 64pin chip, which is a bit more expensive to place and QC. It may also require an external EEPROM for ASYNC uart mode (page 42 of the datasheet), and that will have to be programmed too, but page 20 says it defaults to dual async serial without.

I started preparing a partlist for Seeed based on a 2232H device, but I stopped when I saw all the support parts for the FT2232H. After looking at designs and datasheets, I think we should hash out a few things so we don't have to get an additional quote later.

Maybe we should consider a cheap microcontroller with USB and implement the Xilinx XSFV programmer in the micro for updates? I've implemented an XSFV programmer port for PIC, and I have a Spartan-3 dev-board, I'll test them together. We could make an SPI interface to the FPGA instead of UART, that leaves room for faster IO with updated clients (and might be easier to implement on the FPGA). The whole thing could be upgradable; USB-> bootloader->PIC, USB->XSFV player->FPGA.

USB 2.0 would be sexy, but a full-speed USB PIC has the potential for 12Mbps (I think). If the interface to the FPGA was SPI, then even an emulated serial port interface could be really really fast. A firmware update could implement a different interface (Full-speed, HID, etc) if anyone ever developed a client to support it.


I see few possible design, then:
2232H - USB2.0 connection with on-chip programmer, potential for SPI FPGA data interface via MPSSE2.
232R - USB connection with FPGA bootloader factory programmed, maybe route the IO pins for JTAG programming and hope someone is interested. UART connection to FPGA data.
uC - USB microcontroller with XSFV player for FPGA updates, and bootloader for microcontroller updates.  SPI connection to FPGA data. (I'd start looking at some of the '18fxxjxx' USB pics, they're 3volts and much cheaper than the 5volt parts)
435
Christmas card & ornament '09 / Ornament '09 preview
Here's a picture of our November project, an AVR ATTINY13A-based blinking Christmas card/ornament. It'll be available at Seeed Studio assembled, and as a kit, well under $20 (shipped).

We got the PCBs yesterday and tested the design today. We were expecting regular green PCBs, but got black, which isn't a very traditional Christmas color... Would you prefer red, green, black, or another color?

There's some urgency with this project - in order to deliver anywhere close to the Holidays we have to order a number of these now, instead of the usual preorder. That's a bit daunting. If you have a suggestion for quantity, or would just like to buy one, please let us know so we can get a handle on how many to order.

The how-to article should be out in the next week, maybe on Thursday as usual, but hopefully on Tuesday.

( ! ) Fatal error: Uncaught exception 'Elk_Exception' with message 'Please try again. If you come back to this error screen, report the error to an administrator.' in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
( ! ) Elk_Exception: Please try again. If you come back to this error screen, report the error to an administrator. in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
Call Stack
#TimeMemoryFunctionLocation
10.02022452128session_write_close ( )...(null):0
20.02062583744ElkArte\sources\subs\SessionHandler\DatabaseHandler->write( )...(null):0
30.02062584520Database_MySQL->query( ).../DatabaseHandler.php:119
40.06592723280Database_MySQL->error( ).../Db-mysql.class.php:273