Skip to main content
Topic: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :) (Read 1614 times) previous topic - next topic

Re: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :)

Reply #30
X
X

SPI peripheral is working :) We defo need a warning about no voltage on the buffers/Vout/Vref... I always forget to power up and think there's a bug. Currently we're processing everything in three loops, but I think I'll reduce that back to 2 loops for the time being (pre/post processing).

The display connectors and cables should be here in an hour or so. I've already written the display code, will solder up the boards and test that next.
Got a question? Please ask in the forum for the fastest answers.

Re: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :)

Reply #31
This is the BOM for v1b (the current latest prototype). It is a bit of a mess, lots of different footprints for the same part. This is cleaned up in v1c but the numbering is totally changed. For parts with missing values you can refer to my post up thread.
Got a question? Please ask in the forum for the fastest answers.

Re: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :)

Reply #32
Have you seen this project: https://github.com/GlasgowEmbedded/glasgow?

It originally even had "Bus Pirate + Bus Blaster + Logic Sniffer" as description, but that is now removed.

Re: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :)

Reply #33
Nice! I will check it out in detail. Glad the concept Lives on!
Got a question? Please ask in the forum for the fastest answers.

 

Re: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :)

Reply #34
Do you have an idea of the retail price yet?

The BP3 is $30, but I am afraid that with all the added stuff, the Ultra will be more than twice this tag.

Re: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :)

Reply #35
We're just playing at this point. So many great new tools! Sjaak and I like to have something to banter about over bara :)
Got a question? Please ask in the forum for the fastest answers.

Re: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :)

Reply #36
X

With a slight change we can have significantly more address lines. We'll need to move the display CS and MCUVPU, but A6,7,8,9,11 are already connected to FPGA. If we move those two pins we would have double the address space.

The other thing to finalize:
1. master reset on one GBIN 0/2/4/6 (that isn't also a dedicated MCU interrupt)
2. a EXTI0 to EXTI4 portpin to FPGA with dedicated interrupt that is not on a GB pin of the FPGA
Got a question? Please ask in the forum for the fastest answers.

Re: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :)

Reply #37
X

Today we finished stuffing the first Bus Pirate "Ultra" v1b board. This includes the updates we posted this week, and a few other improvements from v1a:
  • 8 general purpose IO pins
  • 0.8-5.0volt programmable power supply
  • Voltage measurement on all 8 IO pins
  • Pull-up resistors on all pins, fed from Vout/Vref pin
  • Display connector
  • USB C connector
  • Various connection changes to optimize use of the FPGA

The new power supply and voltage measurement concept are both tested and working on the new hardware. The new USB C connector is extremely solid and is a dream to solder, we'll never look back.

X

Next we'll work on getting the display going. So far it powers up and no smoke escapes.

Eagle files for v1b are in the git repo.
Got a question? Please ask in the forum for the fastest answers.

Re: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :)

Reply #38
X
The IPS LCD panel is working. It's kind of strange, the vendors gave us very different sample initialization code. Only one sample code worked, but it worked with every panel we bought.
Got a question? Please ask in the forum for the fastest answers.

Re: Bus Pirate "Ultra" v1a & v1b with ICE40 and Icestorm :)

Reply #39
X

Got the display to show the mock-up image. The background is done in Photoshop, then uploaded to the LCD. The working version won't look this nice because the MCU won't be able to do the same level of anti aliasing on the text and we'll have to fake the alpha blending.

X

Most LCD fonts are 1bit per pixel bitmaps. 1 is the text color, 0 is the background color. This kind of font looks jagged on an LCD.

X
Anti aliasing makes the letters a bit fuzzy around the edges and gives an overall nicer look.Anti aliasing in real time on the MCU will take too many resources. Instead, we made a pre-anti aliased font that uses 2bits per pixel and a four color lookup table. The resulting font takes twice as much space as a one bit font, but the extra bit (two extra colors) are used for those nice fuzzy edges.

I put an open source font on a grid in Photoshop and anti aliased it. Then I changed it to indexed color and a custom pallet of 4 colors (text, background, and 2 shades of grey for the anti aliasing).

X

Finally, I added some code to the Bus Terminal software to extract the characters and color table  reduce to indexed color with a custom pallet, then extract each character to a bitmap.

X

This is an example of different anti aliasing methods (sharp/crisp/strong/smooth) using 2 bits/pixel and a color lookup table. The line on the bottom has no anti aliasing. Without anti aliasing the bottom line is jagged and rough. The other lines add one bit (two indexed colors) for anti aliasing and look remarkably better, even without tweaking.
Got a question? Please ask in the forum for the fastest answers.