#FreePCB via Twitter to 2 random RTs

BP

Every Tuesday we give away two coupons for the free PCB drawer via Twitter. This post was announced on Twitter, and in 24 hours we’ll send coupon codes to two random retweeters. Don’t forget there’s free PCBs three times a every week:

  • Hate Twitter and Facebook? Free PCB Sunday is the classic PCB giveaway. Catch it every Sunday, right here on the blog
  • Tweet-a-PCB Tuesday. Follow us and get boards in 144 characters or less
  • Facebook PCB Friday. Free PCBs will be your friend for the weekend

Some stuff:

  • Yes, we’ll mail it anywhere in the world!
  • Check out how we mail PCBs worldwide video.
  • We’ll contact you via Twitter with a coupon code for the PCB drawer.
  • Limit one PCB per address per month please.
  • Like everything else on this site, PCBs are offered without warranty.

We try to stagger free PCB posts so every time zone has a chance to participate, but the best way to see it first is to subscribe to the RSS feed, follow us on Twitter, or like us on Facebook.

from Dangerous Prototypes https://ift.tt/2xrl3SS

BusPirate.com: Automated documentation updates

wx_camera_1523965080542

Up-to-date documentation makes a project easy to learn about, but its a really boring job that takes a lot of time. Even great documentation eventually has outdated examples and screenshots that don’t quite match the latest version.

BusPirate.com has a hacked together toolchain to keep the documentation fresh.

buspiratecom-refmanual-600

It’s a three part process:

  • Test scripts run demos on actual Bus Pirate hardware
  • Results files are uploaded to BusPirate.com
  • Tutorial templates and the results files are merged to make updated docs

Hardware and firmware specific docs

buspiratecom-refmanualpdficon

Bus Pirate documentation is full of version caveats like “Hardware v4+ only” and “Firmware v5.1+”. BusPirate.com docs are versioned, and just shows the stuff that matters for your version. Choose a hardware and firmware from the menu to see the docs for that specific combination.

Automated updates

Developers still need to add new feature information manually, but the huge task of “refreshing” everything after a firmware release can be automated. We took a three step approach: test scripts that run commands on actual Bus Pirate hardware, results files that capture the test output, and templates that merge with result files to create version-specific documentation.

Test scripts

buspiratecom-testeditor

Test scripts are just a list of commands to run on the Bus Pirate, for example running a self-test.  A test has multiple steps, and each step has one or more Bus Pirate commands. We build the demos with a simple editor, then dump them to JSON in a file. Here’s the test script that runs all the commands shown in the reference manual.

Results files

buspiratecom-pipepy

pipe.py sends commands in the test script to a Bus Pirate. It also records the terminal output to a results file. Result files are uploaded to BusPirate.com. Here’s the results file from the reference manual test script.

Templates

buspiratecom-template-entry

Demos and docs are blade templates. A template merges with a results file to show the tutorial exactly as it appears on a hardware and firmware combination. It’s not super elegant, the version specific stuff is done with a bunch of PHP if statements.

Taking it further

Command Reference, Self-test guide, Pull-up resistors guide, and Number entry guide are up now on the new site. More will come soon.

Ideally the update process will be triggered by an automated firmware release. An RPi in the workshop will bootload the new firmware into the Bus Pirate, run the test scripts, and upload the results without any intervention.

test-rig

A test rig with a bunch of devices might be a cool way to do release testing.  Scripts could test various firmware features on real devices.  Comparing the scripted test results with a previous release would highlight things that may be broken. Our goal is to hack together something that does comprehensive release testing with no manual effort.

Thursday we’ll document the automated build server that’s kicking out freshies every time there’s new code in the git repo.

 

 

from Dangerous Prototypes https://ift.tt/2xpU75Y

BusPirate.com: A dedicated website for docs, firmware, tutorials

buspiratecom-refmanual-close

Bus Pirate documentation and demos are all buried in a huge wiki and around the blog, this is less than ideal for such an expansive project. We’ve been working on a new site just for Bus Pirate stuff.

This site is full of hacks that automate boring development stuff.

  • Documentation and tutorials are updated through test scripts and a templating system
  • The latest code in the git repo is compiled continuously and always ready to download
  • Firmware releases are packaged and announced automatically

There’s a broad overview of the site features below, we’ll follow up with detailed posts later this week.

Big obvious menu options

buspiratecom-menu

It’s a simple thing, but it makes a big difference. Obvious menu options dedicated to the Bus Pirate are a nicer experience than digging through a wiki with stuff about dozens of (partially) completed prototypes.

Versioned tutorials you can download in PDF

buspiratecom-refmanualpdficon

Bus Pirate documentation is full of version caveats like “Hardware v4+ only” and “Firmware v5.1+”. BusPirate.com docs are versioned, they only show info that applies to a specific hardware and firmware combination.

buspiratecom-pdf

Docs can be downloaded as a PDF. We tried to use PDF specific stylesheets so the docs look as good printed as they do in a browser. wkhtmltopdf handles the conversion to PDF, it’s by far the best conversion tool we’ve worked with.

Automated firmware builds and release packages

buspiratecom-CDreleases

An automated build server compiles new firmware every time there’s a commit to the git repo. This is a huge improvement for everyone. Users get the latest bug fixes without compiling from source, and developers don’t have to make interim releases for a bunch of platforms.

Currently the build server compiles firmware for four hardware versions (v3/4/5/NG1) under two different compilers (MPLABX/XC16, ARM GCC).  We’ll document the build server on Thursday.

buspiratecom-firmware

Firmware releases are packaged and announced automatically. The release is a tidy archive with the latest firmware, update tools, readme.txt and updated history.txt.

Notification of new tutorials, releases, and firmware builds

buspiratecom-releaseNotification

Subscribe to be notified of new developments. Firmware builds and releases mailing lists can be limited to a specific hardware version to cut down on noise.

Taking it further

Later today we’ll post about the system to automate updates of the Bus Pirate tutorials and documentation. Thursday we’ll show how we setup an update automated build server to compile PIC and ARM firmware on a $5/month virtual private server.

from Dangerous Prototypes https://ift.tt/2D9iqLI

Pocket Pi

img_20180912_190447

A Raspberry pi zero w pocket terminal project from Facelesstech, that is available on Github:

So if you have been following my blog lately you may have noticed me rambling on about trying to get a Xbox 360 chat pad and an ps3 keypad working with a raspberry pi to make a portable terminal. I have finally finished my quest so join me below to see how I did it

More details  on Facelesstech blog.

Check out the video after the break.

from Dangerous Prototypes https://ift.tt/2xsWVzd

Free PCB Sunday: Pick your PCB

BP-600x373

We go through a lot of prototype PCBs, and end up with lots of extras that we’ll never use. Every Sunday we give away a few PCBs from one of our past or future projects, or a related prototype. Our PCBs are made through Seeed Studio’s Fusion board service. This week two random commenters will get a coupon code for the free PCB drawer tomorrow morning. Pick your own PCB. You get unlimited free PCBs now – finish one and we’ll send you another! Don’t forget there’s free PCBs three times every week:

Some stuff:

  • Yes, we’ll mail it anywhere in the world!
  • Be sure to use a real e-mail in the address field so we can contact you with the coupon.
  • Limit one PCB per address per month please.
  • Like everything else on this site, PCBs are offered without warranty.
  • PCBs are scrap and have no value, due to limited supply it is not possible to replace a board lost in the post

Be the first to comment, subscribe to the RSS feed.

from Dangerous Prototypes https://ift.tt/2D4wAhb

App note: Recommendations to avoid short pulse width issues in HVIC gate driver applications

an_on_AN8102

Application note from ON Semiconductors discussing possible abnormalities on High voltage gate driver when operating on short pulses. Link here (PDF)

The High−Voltage Integrated Circuit (HVIC) gate driver family is designed to drive an N−channel MOSFET or IGBT up to 600 V. One of the most common methods to supply power to the high−side gate drive circuitry of the high−voltage gate drive IC is the bootstrap power supply. This bootstrap power supply technique has the advantage of being simple and low cost. However, duty cycle is limited by the requirement to charge the bootstrap capacitor and serious problems occur when extremely short pulse width is used in the application system. This application note explains the features of HVIC gate drivers and provides recommendations to avoid short pulse−width issues in the application.

from Dangerous Prototypes https://ift.tt/2MCTBXQ

App note: High voltage inverting buck reduces complexity and board space

an_on_AND9785

App note from ON semiconductors about repurposing a buck converter to produce negative voltages. Link here (PDF)

Applications in the electronics industry ranging from sensor−based designs to power amplifiers are periodically faced with the requirement to generate a negative voltage rail. Although many transformer−based designs, charge pumps and other methods have been used to meet such a requirement, the inverting buck−boost topology stands out as simple to design and can save on power and board space too.

With power budgets in many applications already stretched, and PCB real estate limited due to the high levels of functionality incorporated in many new products, power devices that use an inverting buck−boost topology can prove extremely valuable to systems designers.

A Buck regulator can be reconfigured to generate a negative output voltage from a positive input voltage using the inverting buck−boost topology. Unlike a buck regulator, the Inverting buck−boost transfers energy to the output through the output diode during the ’Off’ time. For this reason, users must keep in mind that the average output current is always less than the average inductor current.

from Dangerous Prototypes https://ift.tt/2xkkVVf

Ultra MegaMax Dominator (UMMD) 3D printer

new extruder carriage

has a nice write-up about building his Ultra MegaMax Dominator (aka UMMD) 3D printer:

Ultra MegaMax Dominator (aka UMMD) is my third 3D printer design/build.  I used much of what I learned from its predecessors, and tried a few experiments, resulting in a very high quality machine that produces very high quality prints.  Time will tell if it meets my reliability goals.

See the full post on Mark Rehorst’s blog.

from Dangerous Prototypes https://ift.tt/2OscLSc

Free PCB coupon via Facebook to 2 random commenters

BP

Every Friday we give away some extra PCBs via Facebook. This post was announced on Facebook, and on Monday we’ll send coupon codes to two random commenters. The coupon code usually go to Facebook ‘Other’ Messages Folder . More PCBs via Twitter on Tuesday and the blog every Sunday. Don’t forget there’s free PCBs three times every week:

Some stuff:

  • Yes, we’ll mail it anywhere in the world!
  • We’ll contact you via Facebook with a coupon code for the PCB drawer.
  • Limit one PCB per address per month, please.
  • Like everything else on this site, PCBs are offered without warranty.

We try to stagger free PCB posts so every time zone has a chance to participate, but the best way to see it first is to subscribe to the RSS feed, follow us on Twitter, or like us on Facebook.

from Dangerous Prototypes https://ift.tt/2OkVtGw

PROTOTYPE: Bus Pirate Next Gen v1

NG1-cover-shot-big

Sjaak, fresh off his ARM adventures at SMDprutser, hacked together an STM32-based Bus Pirate prototype we’ve been calling NG1 (Next Gen version 1). NG1 uses a modern ARM chip with completely open tools and libraries, and sports an integrated logic analyzer . The firmware is very usable, but largely untested. Let’s have a look at the biggest changes.

STM32 ARM-based design

bpng1-board_001

NG1 is built around an STM32F103CBT6, a modern ARM chip with 128K flash and 20K RAM running at 72MIPS.

All the extra resources let us use a proper printf function for terminal display, instead of the crappy obscure way of storing strings we invented for the v3.x hardware. The current firmware uses about half of the flash (78 of 128K). If we fill the chip, like we did with the Bus Pirate v3.x, STM32 has a full line of compatible chips with up to 512K of flash.

ARM has completely open toolchains, while the Microchip PIC used in previous Bus Pirates is still straggling with free-but-not-open-not-distributableand-crippled compilers and libraries. The ARM GCC compiler is open source and freely available for multiple operating systems. Several active open source libraries support the chip’s features, such as multiple USB endpoints. NG1 uses an open source peripheral library, libopencm3, so the complete source and libraries can be redistributed under the GPL.

v5-vng1-compare

Like most chips, STM32 doesn’t have a Peripheral Pin Select feature. PPS on the PIC24FJ64GA002 is what makes the original Bus Pirate v3.x design so elegant (left layout). Most major hardware modules like UART, SPI, timers, PWM, etc can be assigned to almost any pin using PPS – just one PIC pin is needed for each of the 5 Bus Pirate IO connections.

STM32 hardware modules are fixed to specific pins. Each Bus Pirate IO pin is connected to up to five STM32 pins to provide the necessary features. This kind of design uses a lot more pins (28 vs 64), and the PCB is a lot more complicated (right layout).

On-board Logic Analyzer

bpng1-logicanalysis

Frequently we use the Bus Pirate along side a logic analyzer like the Logic Pirate. NG1 has an SRAM-based logic analyzer directly on-board. The logic analyzer records bus activity every time the Bus Pirate writes or reads commands.

This adds an additional layer of debugging when things go wrong, without any extra cables or connections. Talk to a chip through the terminal, then check the logic analyzer to verify what actually happened on the bus. Terminal mode and the logic analyzer work at the same time because they each have a dedicated USB endpoint in the STM32. Microchip 23LC1024 SRAMs provide 256K samples per channel at 20MSPS on the current prototype, but we’ve found an alternate SRAM chip with over 10M samples per channel.

Currently NG1 uses a 74LVC573 single direction latch between the logic analyzer and bus. The next revision uses a 74LVC245 bidirectional latch[link] so the logic analyzer can also work as a signal generator without any additional hardware. Maybe we could toss on a resistor ladder to make an analog signal generator too.

So far we’ve focused on capturing bus activity while the Bus Pirate is writing and reading commands, but the hardware should work as a stand-alone logic analyzer as well. The high latency of STM32 pin interrupts could contribute to really sloppy capture triggers, especially at high capture speeds, but there’s still a lot to learn about this chip.

Selectable 3.3volt, 5volt, external pull-up voltage

pu-menu

The Bus Pirate has on-board pull-up resistors (10K) to use with 1Wire, I2C, and any other situation where an open drain bus is used. The on-board pull-up resistors can be connected to one of three voltage sources straight from the Bus Pirate terminal. Select from the on-board 3.3volt or 5volt power supplies, or use an external supply through the Vpull-up pin. Selecting the pull-up voltage from the terminal is really convenient new feature.

ng1-la-cct

Two BL1551 analog switches are chained together so that three input sources (3.3volt, 5volt, Vpu pin) are controlled by two pins. If this seems familiar, it’s the same switch hardware we tested on the v3.x update.

Integrated USB and USB Micro B connector

STM32F103CBT6 has integrated USB hardware with actively developed open source driver libraries. Not only is the USB interface faster than a USB-to-serial converter chip, it supports multiple USB endpoints at the same time. Currently we’ve implemented one “low speed” USB endpoint for the terminal and DFU bootloader updates, and a second “high speed” USB endpoint for the on-board logic analyzer.

USB Micro B is by far the most common USB connector at the moment. NG1 uses a Micro B connector so it works with the phone cable that’s probably already on your desk.

However, we don’t like the Micro B connector as much as the Mini B. Every hand-soldered USB Micro B connector eventually broke off of the PCB. After re-soldering it numerous times the pads and tracks get to the point of no repair.

On the most recent hardware revision we removed the cheap “standard” Chinese Micro B connector and used a much more expensive Molex 47589-001 USB connector with through-hole tabs for reinforcement.

1x10pin keyed locking connector

NG1-IOheader-compare

Previous Bus Pirates use a 2x5pin IDC connector. These are easy to use with 0.1” jumper wires from your parts box, but there’s not many options for probe cables using an ICD connector.

NG1 uses a 1x10pin 2543/TJC8S-10AW (equivalent to Molex 70553-0044)connector, a common 0.1” header inside a keyed/locking shroud. The pins are 0.1” pitch, so jumper wires still work great, but now we can make high quality keyed/locking probe cables with tangle-free silicone wire.

Buttons

The NG1 has a hardware reset button and a user configurable button. The user configurable button is currently only used for activating the bootloader during power-up. We haven’t decided yet on a good secondary purpose for it, but we are open for suggestions.

Second UART

A hardware UART is exposed for debugging without using USB. The code supports debugging via the UART, though we started debugging through the second USB CDC port after USB was up and running.

Taking it further

A logic analyzer, selectable pull-up resistor voltage supply, more memory and a totally open toolchain are probably the four biggest improvements to Bus Pirate NG1. The next revision will also support a hardware signal generator.

Hardware files are available here. The hardware is not final, but the current version addresses all known bugs. Quick order the latest PCB version at DirtyPCBs, or wait a week and we’ll have some to give away for free.

Firmware repository is here, it builds with the ARM GCC compiler. Use the command ‘git clone –recursive https://ift.tt/2CRu11J‘ to clone our git repository. That command should also take care of getting the right libopencm3 version. Be sure to run make in the ‘/libopencm3/‘ folder first, then switch to the ‘/source/‘ folder and run make again to built the firmware. We’ll walk through the toolchain setup next week.

from Dangerous Prototypes https://ift.tt/2Mr6eW3