Show Posts
Pages: [1]
1  General Category / General Discussion / Re: Default licence of examples on Arduino Playground? on: June 23, 2012, 03:30:17 am
I suggest contacted the PinChangeInt author(s) and ask if they would change the license.  Libc and the Arduino Core are both LGPL (which seems more appropriate to me).
After a bit more research, it turns out PinChangeInt is actually derived from PcInt:

This library was inspired by and derived from "johnboiles" (it seems)
PCInt Arduino Playground example here:
If you are the original author, please let us know at the google code page

So the application of the GPL might be a bit dubious to begin with? Oh well...

In the worst case, you may be able to port one of these Pin Change libraries to whatever processor you are using...
Aha, LGPL. Much nicer! I'll try getting that working instead.

2  General Category / General Discussion / Default licence of examples on Arduino Playground? on: June 23, 2012, 02:53:23 am
Evening -

I've been tidying up for release the source code for my camera intervalometer, and I've been checking the licences for all the libraries I've been using.

I wanted to licence all my new stuff as MIT (I've got some fancy new UI libraries that could be really useful for others, and don't want to impose the GPL on them) - but one of the libraries I was using, PinChangeInt, is under the GPL. Oh dear, I thought, I'd better find an alternative.

I've library-ised PcInt from the Arduino playground, and it works just fine for what I'm doing - unfortunately it has no copyright notices or licence present at all.

Can I just give attribution to where I found it and assume it's under the public domain? While I doubt anyone's going to sue over this, I'd rather be doing The Right Thing and not give anyone making use of my own code problems downstream...
3  Community / Exhibition / Gallery / Yet another Arduino intervalometer on: June 16, 2012, 10:53:56 pm
Evening, all -

Last year I built an intervalometer, for connecting to cameras for doing time-lapse stuff. I went a bit over-the-top with the hardware and UI design (it was my first project!), and finally I'm getting around to documenting it. I'll be posting full schematics and source code (under some nicely open licence) - with the aim of making a non-prototype version. With a production run of, ooh, one or two units (not for sale!).

What can it do? Well, here's my favourite timelapse so far. Hopefully I'll have the chance to take a bunch more this summer - and it's currently snapping away at a weird Seattle sunset...

4  Using Arduino / General Electronics / Re: Canon T1i to Arduino on: November 06, 2011, 11:50:58 pm
I used optoisolators in the camera trigger I built, and haven't had any problems hardware-wise. (I was looking on SparkFun for the components, and found both what I needed and a circuit schematic for what I had to build.) It must have taken a few tens of thousands of shots without issue. (Timelapses are camera-hungry!)

There's the advantage that, as the name suggests, the cable is completely electrically isolated from the Arduino, so there's no chance of damaging either the Arduino or the camera with weirdness.
5  Using Arduino / Project Guidance / Re: Capturing jpeg from camera to sd card on: November 05, 2011, 09:33:59 pm
I've got a JPEG serial camera from Adafruit that's great fun to play round with. Save data to an SD card, stream it back over an ethernet port. Its last task was a webcam which also took a week-long timelapse (a new image every thirty seconds) from my front window, while right now I've made it part of an utterly ludicrous potato battery monitor.

It takes twenty seconds or so to save an image at maximum quality (the camera running at 38400bps), and the Arduino has no idea what the pixels actually are, but it's a really handy addition. Just accept that you won't be approaching anywhere near remote video with such a thing, and without some clever programming things will be very stop-start while saving images.
6  Using Arduino / Project Guidance / Re: Writing image file (png, jpg) to SD card? on: October 22, 2011, 07:05:44 pm
While I haven't (yet) done it with an Arduino, I've had quick, hacky scripts generate BMP files by printing a predefined header then spamming out the necessary pixel data.

One way to get the header is to save an appropriately-dimensioned file in a graphics program. (The GIMP's pretty good for saving BMPs with particular colour depths and so on.) For a greyscale image, each pixel takes one byte - so for a 10x10 image, take the file size and subtract 100 from it. The resulting number of bytes at the beginning of the file is the header. Store that data in an array or something; saving an image on the Arduino would then involve outputting the header and then a byte for each pixel, starting with the bottom-left pixel and scanning from left to right. (Most other image formats start at the top-left.)

While it doesn't let you change image parameters, it involves incredibly little code - and on an Arduino, makes much more sense than somehow squeezing in a full-featured image library.
7  Using Arduino / Project Guidance / Re: Writing image file (png, jpg) to SD card? on: October 22, 2011, 03:26:07 pm
Compressed image formats such as JPEG and PNG would require far too much code support to fit practically on to an Arduino; with so few pixels you'd be better off with an uncompressed format like BMP or Netpbm. Support for the latter's images is more common on UNIX-derived systems, but I'm sure you'd be able to find Windows software to open or convert them.

Netpbm's PGM and PPM have ASCII encodings which are incredibly simple. They're really just text files arranged in particular ways.

BMP is pretty basic but more binary-oriented - but should open in pretty much anything.

Good luck!
8  Using Arduino / Installation & Troubleshooting / Re: millis() off by 20%? on: September 27, 2011, 11:31:10 pm
My Arduino Ethernet is receiving lots of data via NewSoftSerial (actually, the latest version named 'SoftwareSerial' internally) and saving it to an SD card.

I've been using RTClib's millis()-based clock, and it's slow by four hours or more after a 24-hour period. I know NewSoftSerial uses pin change interrupts a lot - could these be getting in the way of the millis() timers?

(The solution is, of course, to use a hardware RTC. And I've discovered one lives in the VC0706 camera. I'm going burrowing...)
9  Using Arduino / Installation & Troubleshooting / Re: Arduino Uno: Can't upload sketches beyond around 29000 bytes on: September 27, 2011, 01:26:55 am
That fixed it! I deliberately bloated-up my already large sketch with a gigantic PROGMEM string, and this now uploads without problems:

Binary sketch size: 31858 bytes (of a 32256 byte maximum)

I used my Arduino Ethernet to do the reprogramming, but this time I wired it up exactly as specified in the diagram, rather than try to be clever and avoid the ethernet's chip-select pin. It now works.

Huge thanks for pointing me to the previous threads; my previous Googling failed to find them...

Now back to programming!
10  Using Arduino / Installation & Troubleshooting / Re: Arduino Uno: Can't upload sketches beyond around 29000 bytes on: September 25, 2011, 11:13:22 pm
While I haven't fixed the original problem yet, converting the code to use the simpler Fat16 library (instead of the chunkily large SD one) resulted in about a 4kB reduction in flash memory used. So I can fit the whole thing in again. Hah!
11  Using Arduino / Installation & Troubleshooting / Re: Arduino Uno: Can't upload sketches beyond around 29000 bytes on: September 24, 2011, 08:23:22 pm
I'd read somewhere that Arduino Unos came with optiboot installed as default - but it looks like mine might have something else.

Conveniently, my new Arduino Ethernet arrived yesterday (for a different project). While it won't physically fit inside the camera trigger stuff, it accepted the 29326-byte sketch without any issues. Apparently they definitely do come with optiboot installed.

I tried reflashing the Uno's bootloader using the Ethernet as a reprogrammer thingy, with the help of this guide. Unfortunately I couldn't reflash the Uno, but I could reflash the Ethernet using the Uno as a programmer. (While my Arduino was working fine with the FTDI cable, I'd bookmarked that page before it arrived, just in case I did have problems.)

When trying to reprogram the Uno, the Ethernet would get as far as 'Starting Program Mode' but never printed '[OK]'. The other way round, things worked fine. This could be operator error.

I'm going to try reflashing the Uno some other way - either by using the Arduino IDE's more official way of reprogramming using a second Arduino, or through borrowing a proper reprogrammer. Either way, I'll get optiboot onto the device somehow...

Many thanks!
12  Using Arduino / Installation & Troubleshooting / Arduino Uno: Can't upload sketches beyond around 29000 bytes on: September 23, 2011, 04:33:44 am
So, I've been busy adding the finishing touches to my ludicrously over-specified camera intervalometer, making use of every last bit of hardware on the cobbled-together device.

I'd been decidedly miserly with both flash and SRAM (~18000 bytes flash used, 1600 bytes SRAM free) so I linked in the SD library for gratuitous logging purposes - which worked correctly, so I did a bit more coding. (I had a few kilobytes of flash and about 700 bytes of SRAM free at that point). Then things broke.

After much to-ing and fro-ing, it appears that if my sketch goes beyond about 29000 bytes, I get the dreaded 'avrdude: stk500_recv(): programmer is not responding' error. 28000 bytes or so, everything works fine. It doesn't matter what the code is - SD card stuff works just fine again if I comment out a completely unconnected block of code, for example. The following is with the light-sensor trigger commented out and SD logging left in, for example, but it's really not specific as to the code that's removed:

This works:
Binary sketch size: 28290 bytes (of a 32256 byte maximum)

This doesn't work:
Binary sketch size: 29326 bytes (of a 32256 byte maximum)
avrdude: stk500_recv(): programmer is not responding

I'm using Arduino 0022 on a MacBook Pro running MacOS X 10.6.8, and the hardware is a recently acquired Arduino Uno.

The only potential weirdnesses I can think of can be the DS1307 RTC's 1Hz square-wave output hooked up to digital input 2 (makes a beautiful external interrupt - the microcontroller spends most of its time powered down) and the all-buttons-condensed-into-LOW-on-any-pressed on digital input 3, also for wakeup-interrupt purposes. But quite how they'd interfere in such a precise manner, I've no idea.

Any ideas? I'm a bit stumped. As an incentive, this is what you'd be facilitating. (Note: 6MB MP4 video)


Pages: [1]