SPI Transactions in Arduino

For the last several weeks, I've been working on SPI transactions for Arduino's SPI library, to solve conflicts that sometimes occur between multiple SPI devices when using SPI from interrupts and/or different SPI settings.

To explain, a picture is worth 1000 works.  In this screenshot, loop() repetitively sends 2 bytes, where green is its chip select and red is the SPI clock.  Blue is the interrupt signal (rising edge) from a wireless module.  In this test, the interrupt happens at just the worst moment, during the first byte while loop() is using the SPI bus!

Click "Read mode" for lots more detail.....

RFM69 Wireless & SPI Bus Sharing (feedback wanted...)

Recently I've been working to improve the Arduino SPI library, to better support multiple SPI devices with different settings, and SPI devices requiring interrupts.

Today I discovered a new problem while testing the HopeRF RFM69 wireless module.

Click "Read more" for details and the workaround I found....

Standalone SPI 7-Segment Display

I had some spare 4-digit 7-segment LED displays and some AT90USB82s, and I'd always intended to do something with them.  This was probably the easiest thing!  It's just the AT90 driving the display, with a(t least) 4 wires controlling it: Vcc, GND, MOSI and SCK.  (I haven't written the code yet, but my plan is to make the display accept characters via SPI and then spend the rest of the time displaying them).

Power Playground

Here's the beginnings of a circuit for playing with what I think of as power electronics -- particularly inductors and batteries.  Design goal is modest voltage (6-25V), modest current (1-5A), modest power (5-10W).  I'd like to be able to characterize inductors and transformers, learn about magnetic saturation, and charge & discharge batteries.

Analog Synth Project

Here is a  pix of my synth project. The top panel has artwork that will get applied to the panel. Lots of holes drilled...whew! Below is the bottom panel with applied artwork and holes ready for mounting controls! I spent many hours getting the artwork right. That would dictate where the holes would go and allow for spacing of the pots and switches and to get it all to fit on the panel size I had.

Large LCD Reverse Engineering

Years ago, around the time DorkbotPDX's meetup moved from Vendetta to NW Lucky Lab, Ben Bleything brought LCDs from decommissioned point-of-sale terminals to the meetup.  I did some reverse engineering to get them working!

At the time, I wrote 3 blog articles aboug the reverse engineering effort.  Only one of them survived from the early days of this website.  Recently, I found the original text those old 3 articles, and also a small pile of the LCDs... which I'll be giving away at upcoming meetings!

Click "Read more" for those 3 original articles with the fine details of reverse engineering (and source code) for these old LCDs....

Three New Instructables

I've recently posted the following instructables:

1) Modifying the output Voltage of an Adjustable AC-to-DC Converter

http://www.instructables.com/id/Modifying-the-output-Voltage-of-an-Adjus...

2) Hall Throttle Control of an RC Motor ECS

http://www.instructables.com/id/EBike-Throttle-Control-of-an-RC-Motor-ECS

3) Telephone Ringer Visual Alert (LED)

http://www.instructables.com/id/Telephone-Ringer-Visual-Alert-LED

Capacitive Sensing Workshop

  • What: Learn about capacitive touch sensing, the same technology your phone's touch screen uses. In this workshop we will draw a sensor using a pencil and hook it up to a Teensy to light up LEDs and generate MIDI events.
  • Instructor: Philip Odom
  • When: Sunday June 29th, 1-5pm
  • Where: Flux (412 NW Couch, #222) Goldsmith Building. Look for doorbell on wall for entry.
  • Cost: $25
  • Bring: Laptop with Teensyduino installed, soldering iron, wire cutters, usb mini cable, pencil
  • Limited seating, RSVP: bzzt@knowhere.net

TinyPrime

I'd been meaning to do this for a while, and when I got a bag of colorful little breadboards, it was TIME.

ByteBeats Clean w/ Teensy-3.1

Here's a clean version of the ByteBeats circuit we built last Sunday.  I used a Teensy-3.1 instead of a Teensy-2.0, but everything else is more-or-less the same.  (I added some capacitors on the power lines, a volume control and a speaker instead of the headphones, but it's all minor changes that anybody at a Dorbot meeting could help you with.  Or email me, I'll go through it with you.)

The ByteBeats workshop went pretty well: everybody left with a working circuit, although there were some hiccups along the way.

I hope you all enjoyed the project.  Keep in mind: the same circuit can be used for a bunch of different audio hackery by changing the software.  For example, I wrote a program to produce sine waves at regular musical-scale intervals.  It's a short step from there to playing MIDI, I imagine.

Syndicate content