Save my sanity!

Stagnation. Innovate or die, code or be forgotten. A maxim to live by.

Unfortunately, I feel like this is something that’s happening to me right now; while I love (and will of course continue to work on) my LUFA project, the fact of the matter is that I feel like I’m becoming a one-trick pony so to speak, destined to maintain and incrementally improve my one major piece of work from now until all eternity.

That’s not strictly true – LUFA actually encompasses quite a lot of side projects, namely my AVRISP-MKII clone programmer, and by extension my XPLAIN bridge (hello high speed full duplex software USART!) and has taught me USB, Bluetooth, TCP/IP networking and a host of other technologies. But the fact of the matter is, I feel like all those “project in a weekend” Hackaday folk are passing me by. It’s time to have some fun and accomplish something, even if it’s something small.

So I’m proposing to spend my week next week creating a bunch of simple projects – as many as I can bang out. Things like HD44780 drivers, a binary clock using an I2C RTC chip, that sort of thing. If I can get through a week and have seven or more simple things to collate and put up on my (languishing) rebooted AVR Code Samples page I’ll be happy. Anything to not feel like my brain is going to fall out or turn into mush. At the end of each micro-project, I’ll throw up a zip of the code, and post a simple rundown on my blog.

Sound like a plan? Good. Post your project-in-a-day-or-so suggestions here in the comments and I’ll see how many I can get through.

PLANNED PROJECT LIST (Suggestions welcome!):

  • HD44780 Driver Library
  • Binary Clock with I2C RTC
  • Multi Channel Software LED Fader with Gamma correction
 

Comments: 15

Leave a reply »

 
 
 

[…] This post was mentioned on Twitter by KnurdStuff, Dean Camera. Dean Camera said: New post: Save my sanity! http://bit.ly/aicBTl […]

 

Software Defined Radio
(Let me post one suggestion/comment.)

Using the minimum of electronics, and *NO* high-speed ADC or DAC, build a long-wave radio receiver and/or transmtter.

I think it is just about, possible to receive and decode long-wave radio (30-300 kHz) *directly* with an XMega. I read that you had used VHDL and CPLD/FPGA, so it would be okay to use a comparator and a high frequency clock to make a ‘1 bit ADC’, so that would be okay too.

Also build a software defined radio transmitter, and see if you can get comms working.

Ideally recieve a real long-wave radio station, but I don’t know if there are any operating ‘down under’.

If you use an FPGA and comparators, you might be able to extract the quadrature signal from medium wave, and play that!-)

NB – I have not done this!

 

Optical Comms, using LEDs only

I think of this a bit like “could I demonstrate an optical comms. system using only two Arduino’s?”

As I am sure you know, an LED can be used to detect changes of light as well as create light.

The idea is to get two Arduino’s (or equivalent) to communicate optically using only ‘LED 13’. No other electronics needed.

If one can send a bit pattern to the other, the other can then store the pattern into flash. So it could be used as a very low speed optical loader, to update code in place without anything in the target device except for a LED!

An extra fun trick would be to have the target *ALLWAYS* looking for a software update via it’s LED, which carrying out some normal, simple, function.

Enhancements are to have a group of Arduino’s propagate a program using only their LEDs. This might be a fun platfom for playing with ‘genetic algorithms’ or ’emergent behaviour’.

 

Okay-quality music synth

Make a reasonable quality signal generator (maybe using R2R ladders for a DAC and PWM).
Then build a musical instrument, e.g. sound synth.

Then build a midi-musical instrument. It’s okay to use a device with plenty of flash to build sound tables.

An XMega should be able to do something very good.

For extra credit, make a user interface for the instrument that is both intuitively obvious, but preposterously hard to use for more than one note, so it is pretty much useless for anything other than a Thermin (or don’t 🙂

 

Part of this idea came from LeafLabs

‘Listen’ to ‘taps’ on a surface, and locate their position to better than 1cm. (assume speed of sound is 5km/s in solid)

The idea is to make a Go board, where clicking down your stone is the user interface; it knows where the stone has been placed.

Extend to control a laser pointer (two servos will do) so that the machine can point at the place it wants its stone placed.

 

I feel the same way about the “project in a weekend” people all the time. While I am working away at the same things I have been for months, there are awesome people doing really neat things every new weekend.

If your not too busy preparing for your Atmel invasion, we should catch up some time before you leave 🙂

 

This is in no way a gibe towards your work, because LUFA is amazing, but you could write up a (or a few) nice little tutorials on it.

I’ve seen you mention a few times on avrfreaks that the documentation there could use a bit of an update. It would be really handy to some of the newer guys like myself.

Unless you were talking about purely programming related projects. In which case you could look at a programmer setup using AVRs and FPGAs. I bet there is all kinds of interesting work to be found there.

 

Thanks for the ideas! Some of these are really “project in a weekend” material (being a little more in-depth), but very good ideas none-the-less for future projects. An optical communications system might be fun to do however; I think I have some old RC5 IR communication code I wrote years ago that could be adapted. Actually, posting some RC5 code as an example is probably a good idea for next week. I wonder if I could do the demodulation in software? Hmm…

– Dean

 

Angus,

Ah, so I’m not alone. Sometimes it just feels like the people taking the shotgun approach to projects (many small ones, none really all that polished) get more attention and learn more things than people like you and I, that spend inordinate amounts of time on the one project. Quality is definetely something to strive for, but there’s also something to be said for fast iteration. Time to dust off the unused brain cells and code up a bunch of fun examples to make sure I’m not losing my general engineering skills.

And yes, I do want to have a ‘Freaks meetup before I leave – probably in the usual place since everyone knows how to get there. I’ll make a post on AVRFreaks about it.

– Dean

 

Some people run 100 m sprints, others run 42 km marathon races. No one is better than the other.

But, if you look at hackaday projects, many are selected for bragging, not for technical merits. Many are just copycats of what others did before.

 

how about DebudWire protocol from Atmel? or its amazing? but its not a weekend project i think…

 

an open source USB MIDI to CV circuit would be *highly* appreciated in the synth community I think, especially if you used the UART & “multiple MIDI cables” feature of MIDI over USB to tack on a 1×1 usbmidi interface. currently a MIDI->CV converter is about $120 + $50 for a 1×1 MIDI interface whereas it could easily be implemented on an $18 teensy with $10 of other parts.

In the same vein a simple USB MIDI -> synth oscillator using only avr timers would be well appreciated by the synth-noisemaker community

many thanks for LUFA, it absolutely rules!

 

The HD44780 library would be very useful IMO. Especially if it was easy to port to different chips.

 

[…] that this new release will be a big improvement over the last with no drop in quality.I said last week that I’ll be spending this week doing a bunch of small projects, but looking at my rapidly […]

 

USB Audio driver with AVR

 

Leave a Reply

 
(will not be published)
 
 
Comment
 
 

 

Vital Stats

  • 35 Years Old
  • Australian
  • Lover of embedded systems
  • Firmware engineer
  • Self-Proclaimed Geek

Latest Blog Posts

RSS