Skip to main content


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 - nickjohnson

Project development, ideas, and suggestions / My newest project: Tsunami signal generator and analyzer
I've been working for a while on my newest project, which I'm calling the Tsunami, and it's finally ready to go! It's an arduino-based signal generator, frequency counter, and analog experimentation board.

After the success of the Re:load Pro (incubated in part here on the DP forums!), I've decided to kickstart it again - it's up here.

As always, feedback greatly appreciated. :)
Project development, ideas, and suggestions / Detecting high speed light flashes
I need to detect - and measure on a 'scope - short pulses of light on the order of 1 microsecond. The pulses are very bright, so sensitivity isn't a big issue, just bandwidth and rise time. Simplicity is an asset, since this is a one off requirement.

I figure I probably need a photodiode and a high speed transimpedance amp, but most amps cap out below the 1MHz range, and many that don't are quite complex to interface with and compensate. Any suggestions?

Edited: Microsecond, not nanosecond.
Project development, ideas, and suggestions / The Re:load Pro, a DP alumni, on Kickstarter
Some of you may remember the original Re:load, which I designed with the help of others here on the DP forum. I designed the original Re:load to fill a need of my own, and out of frustration at the lack of any good alternatives available to electronics hackers. It turns out that I'm not the only person who found a lightweight and robust active load a useful tool, and the Re:load's turned into a popular and well-regarded product.

Today I'm finally launching the Re:load Pro on kickstarter. The Re:load Pro takes all the advantages of the original Re:load, and improves upon them with a robust benchtop case, a good quality display and UI, an isolated USB interface, and an integrated processor - the PSoC 4 from Cypress - that together make it an extremely sophisticated and versatile piece of equipment.

I wouldn't have got this far this fast without the help and support of everyone here on DP. Thanks! I'd love to hear what you think of the Pro, and if you're going to back it.
General discussion / Mini-contest: Smallest discrete logic turing-complete CPU
So, since there's no 7400 contest this year, and because I've been tossing around an interesting idea for a highly unusual processor, who's up for a mini contest? No prizes (unless someone wants to donate some), but no obligation to actually fabricate hardware, either.

Totally arbitrary rules:
 - Nothing invented after 1989.
 - New versions of old architectures are fine (for instance, modern 7400 series families).
 - No using existing MCUs or CPUs, even if they're old.
 - Solutions must be turing complete, within the limitations of memory size, bus width, etc.
 - Solutions must be able to run a simple but non-trivial program (up to you what that is).

One important consequence of this is that PLDs like the 22V10 are allowed; this might reduce the number of ICs needed for glue logic substantially. Or maybe you can figure out how to implement an entire MCU in one?

Any takers? My own submission will be along shortly.
Project development, ideas, and suggestions / uCAN: A protocol stack for microcontroller networking
I'm working on an idea that I've been pondering over for a while: a simple, low cost option for networking low power microcontrollers for hobbyist projects, art installations, interactive exhibits, hackspaces, etc etc. There are a few options around, but nobody's specified something to build an ecosystem around; radio is widely varied and problematic in many installations, and Ethernet is too expensive and high-overhead for small embedded projects.

Rather than reinvent the wheel, the plan is to use existing standards to specify a stack - physical, electrical, protocol and API - that multiple makers can produce compatible products for. Goals are:

 - Low cost and low overhead
 - Reuse existing standards and implementations as much as possible
 - Reuse existing cabling and infrastructure as much as possible
 - Support varied devices (architecture, capabilities etc)
 - Support cable lengths from a couple of meters up to entire building installations
 - Easy to use for people with limited electronics and wiring experience - plug, program, and play.

With that in mind, the current protocol stack looks like this:

 - UTP cables with RJ45 connectors, allowing reuse of standard Ethernet cables and wiring installations
 - Power carried over a spare pair at 9-24V DC
 - CAN bus physical and transport level protocol
 - CANopen application level protocol
 - Standardized, simplified APIs for carrying out common messaging and automation tasks (still to be defined)

I'd really like this to become a community project, with multiple people directing the evolution and standardization of the stack, and designing boards around it.

Tentatively planned initial implementations include:

 - A Raspberry Pi expansion board
 - An Arduino shield
 - A power injector (DC barrel jack -> RJ45)
 - An Arduino clone with onboard uCAN
 - A development board based on the LPC11C24 (built in CAN transceiver, so cheap and simple)
 - A CAN bus hub

I'd love to hear feedback and opinions on the project, especially if you're interested in pitching in to the standardization and design effort yourself.
Project development, ideas, and suggestions / Tinkerer's Tricorder
I've been thinking about making an affordable ESR meter, which expanded to include an LCR meter, which expanded to include...

Basically, I'd like to build something - as simple as possible - with a wide variety of capabilities that standard multimeters lack, such as:
 - Inductance
 - Capacitance
 - ESR
 - Frequency
 - Signal generator (standard waveforms, as well as sweeps)
 - Usable as a curve tracer
 - Logging and data download over USB
 - Others?

Most of this can be done with a DAC to generate an AC waveform, and an ADC to measure it, along with one or two external passive components.

The plan is to use a Cypress PSoC chips. These chips have extremely versatile reconfigurable analog frontends, which means one hardware revision can have its features expanded and extended with improved firmware. I'm looking at the CY8C3446PVI-076 as the device of choice, and its analog features include:

„Analog peripherals (1.71 V ≤ VDDA ≤ 5.5 V)
  • 1.024 V±0.9-percent internal voltage reference across –40 °C
    to +85 °C
  • Configurable delta-sigma ADC with 8- to12-bit resolution
    • Programmable gain stage: ×0.25 to ×16
    • 12-bit mode, 192-ksps, 66-dB signal to noise and distortion
      ratio (SINAD), ±1-bit INL/DNL
  • Two 8-bit, 8-Msps IDACs or 1-Msps VDACs
  • Four comparators with 95-ns response time
  • Two uncommitted opamps with 25-mA drive capability
  • Two configurable multifunction analog blocks. Example
    configurations are programmable gain amplifier (PGA),
    transimpedance amplifier (TIA), mixer, and sample and hold

All of which is on a programmable analog interconnect matrix, making for an extremely flexible system.

Ideas? Opinions? Feature requests?
Project logs / Minimatrix: A small and simple self-powered LED matrix
After finishing radiomatrix, I found myself thinking that something much simpler might have wider appeal, not to mention being a lot cheaper. Allow me to present minimatrix:

Minimatrix is incredibly simple, especially compared to radiomatrix. It has just 8 parts in its BoM: A one-color 3cm LED matrix, an ATTiny2313/4313 to power and drive it, an 8-way resistor network, a battery holder, and two decoupling capacitors. Finally, it has a footprint for a thru-hole IR LED, making it possible to add interactivity easily and with little overhead. The IR LED footprint is situated on the back, so it can be placed then bent upwards to protrude above the matrix.

Here's the schematic:

This ought to be really cheap, and simple to assemble. I think we could do some fun things with this.
Project logs / Radiomatrix: An RGB LED matrix backpack with more
This is a bit of a twist on the usual RGB LED matrix backpacK:

It has a TLC5947 24 channel LED driver, which is capable of 12 bit PWM on all 24 channels, along with 8 PFETs, to drive the matrix, allowing true color output. An onboard ATMega328 provides the smarts.

It also, however, has an RTC and a Nordic NRF24L01+ radio module, as well as an IR receiver. As a result, it will make an excellent if unusual clock, or in conjunction with the radio, allow you to display status information such as the current weather, system status, the number of unread messages in your inbox, and so forth. I've tried to lay out the IR module and the power jack so it could easily be framed for attractive display on a wall.

Schematic and Eagle files can be found here. Feedback much appreciated!
Tools of the trade / T962A reflow oven review
I got my T962A reflow oven I ordered from EBay today. It's the big brother of the T962, with a significantly larger internal area.

It came incredibly well packaged, practically embalmed in bubble wrap. Included was the oven itself, a power cord with european plug, and an international adapter. Inside the oven was a spare fuse and manuals. The adapter seems incredibly shonky - twice it caused the oven to cut out at a bad time - and it doesn't have a ground pin, so I don't recommend using it.

The oven has a graphic LCD display and five buttons labeled F1-F4 and S ('start'). The interface is fairly clear and self explanatory, and was set to english when I got it. Internally, there are four IR elements, along with two thermocouples kind of dangling down from the roof of the oven.

I set up a test run with some spare PCBs with a couple of 0805 resistors on each. I put one in the middle of the oven, one in the back corner, one in the front corner, and one along the side, then set the oven to its default profile number 1.

As the oven runs, it plots the actual temperature against the expected profile with little + signs. It's definitely Bang-Bang rather than PWM, but I can't be sure if it uses PID or not. Either way, the temperature sticks fairly close to the profile. It is fairly simple, however, which leads to absurdities like it turning the fan on to cool the oven down at the start of a second run, because it was too hot according to the profile.

Peering through the window, I could watch the boards reflow. The one in the center reflowed quickly, followed by the ones at the back and the side. The one near the front took a while longer, but did eventually reflow. I'd tentatively say that the entire area of this oven is usable for soldering, in contrast to what I've heard of the smaller one.

Once the reflow is over, it enters a fan forced mode, which ejects hot air out the bottom. This is liable to make the surface it's resting on very hot. I use a wooden desk, however, and didn't notice any scorching, but you may want to take care all the same.

Some people have commented about issues with button debounce on these units. I haven't noticed any issues, but it does seem to scan the keyboard relatively infrequently - no more than 1-2hz - so often you have to hold a key in for a second or so before it registers it. Given the cost, and its apparent effectiveness, that's a compromise I'm willing to put up with.

All in all, I'm pretty happy with it. I will report back after reflowing something more complex than a few passives and SMD trimpots.
Project logs / Re:load: A simple, flexible adjustable dummy load
I've been testing Loki's power supply lately, and hurting for the lack of a good dummy load. There are plenty of flexible dummy load projects out there, but they're largely overengineered and on the expensive side. I decided to put together a really simple but flexible dummy load.

Re:load is an adjustable constant current load with the following properties:
  • No external power supply required - powered by the device under test
  • Wide range of input voltages, from 3.3 volts to 32 volts
  • Adjustable load from 0 to 3.5 amps
  • Up to 14 watts power dissipation (with design heatsink)
  • Virtually indestructable: The power FET, BTS117, has built in overtemp, ESD, and overcurrent protection
  • Load remains constant under different input voltages - 40 milliamp variation over input voltage range
  • Screw terminal and banana plug footprints
  • Low BoM cost, and easy to solder thru-hole parts
  • Test points for reading current with a voltmeter

Feedback and suggestions greatly appreciated. I plan to send off a PCB order for a prototype shortly.
Project development, ideas, and suggestions / A stencil8 PCB tooling block for doing solder paste stencils
So, I've been converted to the stencil8 way of doing things, but I need a decent tooling block to do it on. Getting these commercially CNCed in small quantities is very expensive, but a bulk order - 10 or more - is a lot more affordable. So I've put together a fundraiser on Tindie to get some made. Please do join in if you'd find it useful to own one of these.

For those who don't know, these are robust precision machined Aluminium tooling blocks. They've got a grid of precisely aligned holes, and come with matching steel dowels. You design your PCB (possibly panelized) and stencil with matching holes, and all you have to do to apply solderpaste is put the PCB, then the stencil, on the pins, and wipe paste over them. No more alignment hassles!

I'm not really making any profit on these - I just want to get enough orders together to make it cost effective.
General discussion / A neat trick for high-speed addressing of RAM modules
So, here's a trick that occurred to me the other day that might come in handy for a logic analyzer (for instance).

Suppose you have a parallel RAM or ROM module that you want to stream data into and out of at high speed. You need to be able to jump to any arbitrary address, but your normal mode of operation is streaming.

It'd be nice to be able to address the module using a shift register, since that requires far fewer GPIOs. But now you have to clock addresses into the shift register serially for every address you want to read or write - for an n bit memory module, that's n clocks before you can do the read or write operation.

However, it's possible to stream data in and out with only a single clock per address. Here's how: Instead of addressing the memory sequentially, use an LFSR. External LFSRs have two very useful properties here. First, each state can be generated by shifting the previous state one bit to the left (something our shift register already does) and computing the next bit with a straightforward XOR operation. Second, it iterates through every n bit combination before returning to its initial address. Thus, we can stream data by repeatedly evaluating the next bit of the LFSR, but we can still jump to an arbitrary address by shifting an entire address in at once.

I think this could be pretty useful for building a logic analyzer: you can hook the probes up to the data lines of the memory module via a tristate buffer, then iterate through the RAM at high speed to take samples. To output the samples, you do the same thing, but use parallel reads or another shift register to read the data out.

Of course, doing streaming analysis with a buffer isn't really practical unless you use a dual port RAM chip or add additional mux/demux hardware to interleave reads and writes.

What do you think? Useful trick?
Project logs / Loki: A new PSoC based development board
Loki is an arduino-esque development board I've been working on based on Cypress's underappreciated PSoC series of chips. The PSoCs are novel in that instead of predefined peripherals, each chip has a set of programmable digital logic blocks, as well as analog blocks, that you can configure to do just about anything at runtime - PWMs, counters and timers, serial interfaces, and so forth. The IDE comes with a large set of predefined functions, and you can build your own, too. The PSoC 3 series are based on the 8051 core, while the PSoC 5s are Arm Cortex 3s. Even better, all devices with the same pinout are compatible, so the one Loki board can host any chip in the range.

Loki uses a stackable expansion system much like the Arduino and other develoment systems, but it has a couple of novel features to take advantage of this flexibility, the most significant of which is how it handles the pin conflict issue that plagues most stackable systems. Instead of using through-hole headers, each expansion board ('plank') has surface mount headers top and bottom. A plank takes the first IOs on the header for its own use, then reroutes the remaining ones to the first positions on the output header to fill the gap, completely eliminating the issue of pin conflicts between expansion boards. To make using and configuring this easier, each plank also has an I2C EEPROM containing configuration information, allowing the bootloader to print out a pinout table for any set of connected expansions.

Other features include:

  • 3.3v level signalling
  • High efficiency 5V@1A switching regulator with 6-20V DC input
  • 3.3v@300mA low noise linear regulator for logic power
  • Onboard USB bootloader
  • Programming header allowing you to program and debug the chip directly with a Cypress miniprog3
  • Native full speed USB support on-chip
  • Onboard microSD slot for extra storage
  • NEW: Sick of beige 8049 standard dimensions
  • Open hardware, naturally!

I've finished the first draft of the PCB design, and I could really use feedback on the schematic and layout. Since my account is new, the forum won't let me post links, but you can find higher resolution pictures and the full size schematic at the link above.

I'd also like to create a thriving ecosystem of expansion boards for the Loki, so here's the plan: Design an expansion board that others are likely to find useful, release it under an open hardware license, and I'll get some made at my expense. I'll then send you some of the boards, along with a fully built and tested Loki board, for you to experiment with. In the unlikely event this turns into a project with commercial potential, I'll consult with you on selling your expansion, and split any profits with you. Can't ask fairer than that, eh?

The specifications for designing an expansion board are here. The design files for the main Loki board, as well as an Eagle library with a layout for standard and short planks are all available here.

What expansion boards would you like to see?

How is this different from the freeSoC?

It'll be a lot cheaper - around $35-$40 for the basic model. It also has this nifty stacking header system described above.

How is this different from the eZPSoC3?

The chip used has more pins and thus more IOs available, and it's upwards compatible to the PSoC 5. There's also more onboard, including a switching regulator and uSD card slot. And don't forget the neat stackable header system!