-
More schematic, PCB, and component changes
09/12/2015 at 03:47 • 0 commentsYesterday I said I was thinking of switching the positions of C1 and IC1. I wanted to get C1 closer to the power supply traces. It didn't take too long to move the parts and redo the traces in that area of the board. The datasheet for the voltage regulator recommends the use of a capacitor on the input line when the circuit is powered by a battery. Another round of updating the schematic, PCB, and components list. Fortunately I only had to move a couple of parts on the PCB to make room for the extra capacitor near the voltage regulator.
I also spent a little time cleaning up the running of the ground traces so they radiate out from P2. I now feel a lot better about the board layout. I still have a few footprints to adjust but that won't involve any more changes to the PCB traces. All the board changes resulted in my having to add two extra vias. Not too bad when you consider the board only has four vias in total. The PCB work is almost complete and it will soon be ready to be sent out to be made. -
Updated schematic, PCB, and components list
09/11/2015 at 06:04 • 0 commentsI updated the schematic and components list to include the additional components needed for the 3.3 volt supply that will power the AVR microcontroller. I updated the footprints on the PCB based on the latest schematic and laid out the board. Images of the updated schematic and preliminary PCB layout have been added to the gallery.
I still have some work to do on the PCB as I'm not completely happy with it. Since I added the image of the PCB layout to the gallery I moved IC2, C2, and C3 so they are located between D1, P3, P4, and SW1. I'm thinking about moving C1 so it is below IC1 instead of above it. Moving these parts around will keep the power and ground traces shorter and cleaner. I also changed the footprint of the LED (as it will be mounted at right angle to the PCB) and created a 3D model to match.
The last items on the to-do list for the PCB are to create a footprint and 3D model of the pushbutton switch, and change the footprint of C2 for one appropriate for an electrolytic or tantalum. Once I've completed these last few items I will do a final review of the board before getting the board made. -
PCB updated, and part changes
09/10/2015 at 03:37 • 0 commentsI was doing some more work on the 3D model and footprint of the micro USB connector today. I made some adjustments to the 3D model based on new measurements of a couple of features and updated the footprint and silkscreen outlines accordingly. I have updated the PCB with the updated footprint and wired up about half of the PCB. The parts still to connect up are the pushbutton and the voltage regulator circuitry.
I was thinking of using a 78Lxx regulator, then thought about using a zener diode but I don't think it would work well due to the range of battery voltage from full charge to when it is too low to take pictures. The variation in load current would also make it unlikely to work well. It then occured to me that perhaps I can use the same voltage regulator that is used on the GPS receiver board. It uses a Micrel MIC5205-3.3BM5 low drop out regulator that can take input voltages up to 16V and output 3.3V at up to 150mA. It will have no problem handling the 5V to 6V input from the camera and the output voltage is well within the operational voltage range of the microcontroller. The current limit is no problem as the interface board should not draw even 25mA and that is when the LED is on.
I have updated the regulator listed on the parts list. I will add/update capacitors once I check the datasheet for the regulator and determine what I will need for this application. -
Signal level test results
09/10/2015 at 03:12 • 0 commentsTwo days ago I ran some tests to determine how low the voltage can be on the signal feeding GPS data to the camera and still have the camera recognize the data.
I powered the microcontroller using a variable power supply. I used the serial transmit routine I wrote to send messages to the GPS module and had it send GPS messages to the camera every second. I monitored the signal going to the camera using an oscilloscope so I could check the voltage levels. While the camera was indicating it was receiving GPS data I gradually reduced the power supply voltage.
The signal to the camera started with it going between 0 and 4.8 volts. The camera was still showing it was receiving GPS data when I had the signal levels down to a range of 0 to 2.8 volts. I am planning to operate the microcontroller at either 3.3 or 3.6 volts so I won't have any issues with the signal level going to the camera. -
Software, 3D models, parts, and PCB
09/10/2015 at 02:56 • 0 commentsTime for a new entry to show I am still working on this project. I intended to add this log entry three days ago when I realized it had been 9 days since my last project log but I got side-tracked with other activities.
I've been working on the software for the microcontroller. I have much of the overall framework worked out and some of the routines already coded. I've made some changes based on the limited RAM in an ATtiny45. I originally needed two buffers totalling 255 bytes but, with only 256 bytes of RAM available, that just wasn't going to work. I'm going to restrict the moving average to use a maximum of four locations. I only need buffer space for three locations as the fourth is in the buffer holding the current GPS position data. I'm also packing multiple bits of information in a couple of bytes. This has saved 11 bytes but I have to watch the use of local variables and leave some room for the program stack and interrupt handlers. It is always fun working with microcontrollers with limited memory. It forces you to get creative.
In a previous log entry I said I was taking a break from working on 3D models. I mostly did but I still spent a little time on some 3D models for use with Kicad. I have ordered some right-angle pushbuttons. I have a diagram showing different views of the part so I can start on a 3D model and footprint while I wait for them to arrive.
I've also done a bit more work on the PCB layout. I haven't finalized the positions of all the parts yet. I still need to source a right-angle slide switch with a long enough handle. The user will need to be able slide the switch when when the interface board is in its final enclosure. Additional changes may be required to the PCB once I have the final footprints for these two parts. -
Updated components list
08/29/2015 at 03:56 • 1 commentI've added a couple of capacitors to the parts list. They will be placed across the 5V and ground lines feeding the AVR microcontroller. I'm also thinking of dropping the 3.6V regulator in favour of a resistor and 4.7 volt zener to drop the camera voltage down from the 6V it supplies when fully charged. I don't want to drop the voltage powering the AVR too much as the camera might not recognize the GPS data if the signal from the AVR doesn't have a high enough output. I'll have to run a test to determine the lowest signal level I can feed the camera and still have it able to read the GPS data.
-
New parts, and 3D models
08/29/2015 at 03:41 • 0 commentsYesterday I ordered some additional GPS receiver modules. One uses a Ublox NEO-7M and the other uses a NEO-M8N. The 7M uses lower power than the 6M. The M8N is also lower power consumption than the 6N, has slightly better receive sensitivity and acquisition times, and has a claimed position accuracy of 2m. The one downside to the NEO-M8N is the cost. It is about 72% higher than the 6M or 7M but it is still an inexpensive unit. One nice thing about the two new modules is they are fully compatible with the 6M so I will be able to interchange the GPS receiver modules and run various performance tests on the three units.
I haven't made a lot of progress in the last few days as I have been working on creating some 3D models for parts and assemblies used in this project, creating part footprints for Kicad, and working on the the PCB layout. I know how I want to position the connectors and controls on the final product. Using the additional 3D models and Kicad component footprints to place parts on the PCB resulted in a change to the size of the interface board. I had to widen it by 0.2" and also increase its depth by 0.1" to make room for the slide switch, push button, LED, and two USB connectors. I still need to source a slide switch and right angle push button and create 3D models and Kicad footprints of both in order to finalize the PCB layout.
I am going to take a break from the hardware side of the project for a few days and work on the software. -
A minor scare, and a project update
08/22/2015 at 03:04 • 0 commentsI soldered a 4-pin header to the GPS module so two days ago I decided to plug the module directly in to the solderless breadboard as it would simplify connecting to it. It was ok at first but then it seemed the light that blinks when there is a GPS lock wasn't blinking as it should. It was blinking, then it seemed to stutter, blink some more, then finally stopped. I thought perhaps the unit had died in some way as it had been reliable until then. I checked the data coming from the unit and it was sending data but had no valid GPS data. I went on to other things for a while and forgot about it.
Yesterday morning I remembered I had left it running. I found the light was blinking as it should and it was giving out valid GPS data. Phew! The unit wasn't bad after all. Later in the day I noticed it had stopped blinking again. Today I took the unit off the breadboard and moved it back to where I had originally had it and its working again. Satellite reception must be marginal on my workbench. It would be nice if I could use the antenna from my GPS disciplined oscillator. It has a long cable so I can hang it near a window but it uses a different (larger) connector so I can't use it with the GPS receiver module used in this project.
During the time I was having problems with the reception of the GPS satellites I completed the first version of the PCB layout for the interface board. It confirms I can wire everything up in the small space I have available but the PCB
isn't usable. The connectors for the camera and shutter release aren't where they should be for ease of use. I've been thinking of how to position the connectors, switches, and LED for a while so I have determined where they need to go for the device to be usable and not to interfere in any way with the regular operation of the camera. I haven't quite decided whether the LED should be visible on top or on the side with the switches.
In order to do a PCB layout that might be usable for a working prototype I need to do some 3D modelling to finalize parts placement and determine clearances. I've seen some GPS receiver devices which interfere with the proper operation of the built-in flash unit when they are mounted on the hot shoe. I want to avoid that with my design. First step is to model the top of the camera with the built-in flash unit in the raised position. I've already made model for the GPS receiver module and antenna. I need to create a few more models for the parts on the interface board and I will be able to determine the final position for some of the parts. Once I have that information I will redo the PCB layout. -
It's alive!
08/18/2015 at 06:55 • 0 commentsI decided to try for a proof of concept to verify that I can do what I want with this project. I would keep it simple by setting the GPS receiver module to output data at 4800 baud and feed the data directly in to the camera.
I did some additional research on sending commands to the Ublox GPS module. I found I could send the commands as standard text strings instead of using binary data. I instructed the GPS module to only send RMC and GGA data strings at 4800 baud. I reduced the signal level from the GPS module (to reduce the risk of damaging the camera) and connected the GPS module to my camera via the USB breakout board and cable. When I turned on my camera I was pleased to see the GPS indicator was on so I took a picture.
This was a little under 4 hours ago. When I checked the picture on the camera I discovered it did indeed have GPS data associated with it. My camera had just tagged its first photograph with GPS data!
Now that I have proven that I can send GPS data to my camera it motivates me to find more time to work on the project and get it finished. -
Current status and next steps
08/17/2015 at 20:38 • 0 commentsI thought it is time to summarize where the project stands and to state what I will be doing next towards having a working prototype.
I have a preliminary schematic for the interface board that sits between the camera and the GPS receiver package and I have started work on a PCB for it. I included an optional programming header for the AVR microcontroller to aid in development of the prototype. Once the software is finalize for the AVR microcontroller I won't need to install the header on any later copies of the project that I might make.
I need to locate and order a mini and micro USB connect that I will use for the project. I've been thinking I would prefer to use a through hole part for the main mini USB connector rather than a surface mount part. It would give me more mechanical strength and stability than a surface mount part. It could increase time between failures as the connector might be subject to a certain amount of stress from the cable that will be connected to it during use.
I hit a minor problem that will require adding some extra parts to the PCB. I need a voltage regulator to drop the camera battery voltage down to a safe level for the interface board and GPS package. I also may need to add a transistor and resistor to buffer the GPS data output from the AVR microcontroller that feeds the camera to make sure the signal level is high enough for the camera to recognize the data.
My next step is to put together a proof of concept that will let me see GPS data on the camera. To do this I will send a command to the GPS package to drop the baud rate to 4800. If I can't do that I will have to write a program for the
AVR microcontroller to receive GPS data at 9600 baud and feed the GPSGGA data at 4800 baud to the camera. I will wire up a simple buffer where I can alter the signal levels that will feed the camera. I don't know if the input to the camera is only good for TTL levels or not so I will start by being conservative and increase the output level slowly until I see the camera indicating it is receiving GPS data. To be safe, I will not exceed 5V on the input to the camera.
Once the camera shows it is receiving GPS data it will confirm I'm on the right track and the rest is down to finalizing the interface board design and packaging.
I'm close to a working proof of concept. Seeing GPS data appearing on the camera will be an exciting moment.