498
Projects
Hardware
Wireless Widget
498
Wireless Widget
The Eagle PCB design files are now available for download from the Strobit Project Page. Constructive feedback is appreciated. Please treat these as an early alpha release, the PCB has not yet been verified.
I have also released the design files for a blank personality board, this can be used as a starting point for any future boards.
I will shortly have an early release of the Basic Strobist Personality board online.
279
These are components I’ve created for Eagle3D.
You may also want to check out the tutorials on how to create your own components. http://blog.everythingrobotics.com/tutorials/eagle3d-tutorials/using-google-sketchup-to-create-components/
HopeRF RFM12B SMD 433Mhz/915Mhz RF Module
Microchip MR24J40MA FCC Approved 2.4GHZ 802.15.4 RF Module
Sparkfun SMA PCB Edge
PJ-326 3.5mm Jack http://www.switchcn.com/
900Mhz GSM SMA Antenna attached to PCB SMA Connector
Strobit Eagle3D Library (19/03/2009) Download
These are provided AS-IS and may contain bugs and or discrepancies and may not be to scale.
If you find any bugs or problems or make enhancements please feel free to contact me so I can update the downloads.
261
Now we have added the component into Eagle3d we need to tweak and fine-tune the settings.
Very Small component shown. (click to enlarge)
![]()
07/08/09 update: (Thanks for the tip Jeremy)
> Jeremy wrote:
> Hey. I read over your tutorial on making Eagle3d components in Google
> Sketchup, and I wanted to thank you for saving me a considerable
> amount of time. I also found something you might have missed. Sketchup
> records units in mm
> (millimeters) but when su2pov plugin is run, it converts all the mm
> into inches (1mm -> .03937 inch). The problem is that Eagle3D
> interprets the numbers in the .inc files as in mm. So the best way to
> fix the problem is to scale up your drawing in Sketchup by 25.4 times
> (thus counteracting the plugin’s unit conversion).
1:
2: #object {MRFceJeaMA
3: matrix < 0.1,0.0,0.0,
4: 0.0,0.1,0.0,
5: 0.0,0.0,0.1,
6: 0.0,0.0,0.0>
7: }
1: // Scale
2: #object {MRFceJeaMA
3: matrix < 2.55,0.0,0,
4: 0.0,2.50,0.0,
5: 0.0,0.0,2.55,
6: 0.0,0.2,0.0>
7: }
1: #ifndef(pack_U2) #declare global_pack_U2=yes; object {MRF24J40MA()translate<-5,0,0> rotate<0,0.000000,0>rotate<0,-270.000000,0> rotate<0,0,0> translate<61.569600,0.000000,15.240000>}#end //MRF24J40MA FCC Approved module U2 MRF24J40MA MRF24J40MA
2:
1: MRF24J40MA()translate<-9,0,-5>
1: MRF24J40MA:0:0:0:0:0:0:0:0:0:0:0:0:0:0:-9:0:-8:0:0:0:0:0:0:0:0:0:0:0:0:0:MRF24J40MA(::
2:
1: {MRF24J40MA()translate<-9,0,-8> rotate<0,0.000000,0>rotate<0,-180.000000,0>
| <<Step 3 |
244
Now we have converted the file to work in Eagle3D we now need to tell Eagle3D how to use it.
#ifndef(__user_inc) #declare __user_inc = true; #include "MRF24J40MA.inc" #end
PACKAGE_NAME:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:MACRO_NAME(::
MRF24J40MA:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:MRF24J40MA(::
1: #ifndef(pack_S1) #declare global_pack_S1=yes; object {SWITCH_SECME_1K2_RH()translate<0,0,4> rotate<0,180.000000,0>rotate<0,-180.000000,0> rotate<0,0,0> translate<41.910000,0.000000,1.727200>}#end // S1 SWITCH-SPDT-SMD
2: #ifndef(pack_U1) #declare global_pack_U1=yes; object {QFP_TQFP_32_080MM("ATMEGA168V","ATMEL",)translate<0,0,0> rotate<0,0.000000,0>rotate<0,-45.000000,0> rotate<0,0,0> translate<26.670000,0.000000,16.510000>translate<0,0.035000,0> }#end //TQFP-32 U1 ATMEGA168V TQFP32-08
3: #ifndef(pack_U2) #declare global_pack_U2=yes; object {MRF24J40MA()translate<0,0,0> rotate<0,0.000000,0>rotate<0,-270.000000,0> rotate<0,0,0> translate<61.569600,0.000000,15.240000>}#end //MRF24J40MA FCC Approved module U2 MRF24J40MA MRF24J40MA
4: }//End union
| << Step 2 | Step 4 >> |
219
1: // Persistence Of Vision raytracer version 3.5 (or higher) file.
2: // Exported from Sketchup 6.4.112 (en-US) through SU2POV 3.2. by D. Bur.
3: // 04/03/2009, 16:25
4: //-------------------------------------------
5:
6:
7: // Pov-Ray includes
8: #include "colors.inc"
9: #include "glass.inc"
10: #include "glass_old.inc"
11: #include "metals.inc"
12: #include "woods.inc"
13: #include "stones.inc"
14: #include "skies.inc"
15: #include "stars.inc"
16: #include "finish.inc"
17: #include "rad_def.inc"
18: #include "textures.inc"
19: #include "golds.inc"
20: #include "sunpos.inc"
21: #include "math.inc"
22: #include "transforms.inc"
23: //-------------------------------------------
24:
25:
26: // Declare section
27: //Gamma
28: #declare GAMMA=2;
29: //Default finish
30: #default { texture { finish { ambient 0.1 diffuse 0.7 brilliance 0 roughness 0.005 } } }
31: // Finishes
32: #declare Dull = finish {specular 0.5 roughness 0.2}
33: #declare Shiny = finish {specular 1 roughness 0.0003}
34: #declare Glossy = finish {specular 1 roughness 0.0003 reflection 0.1}
35: #declare Phong_Glossy = finish {phong 10 phong_size 300 reflection 0.1}
36: #declare Phong_Dull = finish {phong 0.5 phong_size 1}
37: #declare Luminous = finish {ambient 0 diffuse 20}
38: #declare Mirror = finish {ambient 0 diffuse 0 reflection 0.97}
39: // Lights colors
40: #declare Incandescence = rgb <1, 0.9, 0.6>;
41: #declare Halogen = rgb <1, 0.98, 0.85>;
42: #declare Sodium = rgb <1, 0.6, 0.2>;
43: #declare Neon = rgb <0.9, 0.95, 1>;
44: #declare Mercury = rgb <0.92, 1, 0.92>;
45:
46: #declare Lightbulb = sphere {
47: <0,0,0>,1.5
48: scale <1,1.3,1>
49: texture { pigment {color rgb <1, 1, 0.5>}}
50: finish { Luminous }
51: }
52:
53: //-------------------------------------------
54:
55:
56: //Radiosity settings
57: global_settings {
58: radiosity { Rad_Settings(Radiosity_Final, off, on) }
59: assumed_gamma GAMMA
60: radiosity { gray_threshold 0.8 }
61: }
62: //-------------------------------------------
63:
64:
65: // Gradient Background
66: sky_sphere {
67: pigment {
68: gradient y
69: color_map {
70: [(1-cos(radians(0)))/2 color White]
71: [(1-cos(radians(50)))/2 color rgb <0.741176470588235,0.819607843137255,0.815686274509804>]
72: }
73: scale 1
74: translate -1
75: }
76: }
77: //-------------------------------------------
78:
79:
80: //-------------------------------------------
81:
82:
83: //-------------------------------------------
84:
85:
86: // Camera
87: camera {
88: perspective
89: location <2.25145468567195,1.60043897233161,-1.06394822934727>
90: look_at <-0.466904134380124,-0.965594533672687,1.31022929677542>
91: right <1.3333,0,0>
92: up <-0.436428953203423,0.815008198675065,0.381171096619603>
93: angle 63.7985225255377
94: }
95: //-------------------------------------------
96:
97:
98: //-------------------------------------------
#ifndef(inc_MRF24J40MA) #declare inc_MRF24J40MA=true; #ifndef(inc_testmode) #declare inc_testmode=true; #include "tools.inc" #undef inc_testmode #end
1:
2: // LEVEL 0 #<Sketchup::ComponentDefinition:0x3e508c0> MRF24J40MA
3: #declare MRFceJeaMA = union {
4: mesh2 {
5: vertex_vectors {
6: 4,
7: <7.000109088,4.98688000008518e-006,1.35>,
8: <7.000109088,0.32000498688,1>,
1: // LEVEL 0 #<Sketchup::ComponentDefinition:0x3e4f8b8> MRF24J40MA
2: #macro MRF24J40MA()
3:
4: #declare MRFceJeaMA = union {
1: //-------------------------------------------
2:
3: #declare MODEL = union {
4: } // End of MODEL object declare
5: //-------------------------------------------
6:
7:
8: object { MODEL }
9: //-------------------------------------------
10:
11:
12: #object {MRFceJeaMA
13: matrix < 0.1,0.0,0.0,
14: 0.0,0.1,0.0,
15: 0.0,0.0,0.1,
16: 0.0,0.0,0.0>
17: }
18: //-------------------------------------------
19:
20:
21: //-------------------------------------------
22:
23:
#end //end of macro /********************************************************************** Testing **********************************************************************/ #ifndef(inc_testmode) //Size of the Grid Plane (+/- span) #local XYZ_span=20; //Orientation axes cylinder{<-XYZ_span,0,0><XYZ_span,0,0>0.1 pigment{Blue}} //X cylinder{<0,-XYZ_span,0><0,XYZ_span,0>0.1 pigment{Red}} //Y cylinder{<0,0,-XYZ_span><0,0,XYZ_span>0.1 pigment{Yellow}} //Z // Useful GRIDS: #local XYZ_step= 1 ; // axis increment #local XYZ_cnt = 0; // loop counter #local xyz_thick = 0.05; // grid line thickness // GRID PLANES: Remove comment begin/end to activate & select PLANES: #while (XYZ_cnt <= XYZ_span) cylinder{<-XYZ_span,0,XYZ_cnt><XYZ_span,0,XYZ_cnt>xyz_thick pigment{Blue}} // Positive Z-Lines cylinder{<-XYZ_span,0,-XYZ_cnt><XYZ_span,0,-XYZ_cnt>xyz_thick pigment{Blue}} // Negative Z-Lines //cylinder{<0,XYZ_cnt,-XYZ_span><0,XYZ_cnt,XYZ_span>xyz_thick pigment{Red}} // Positive Y-Z Plane Lines //cylinder{<0,-XYZ_cnt,-XYZ_span><0,-XYZ_cnt,XYZ_span>xyz_thick pigment{Red}} // Negative Y-Z Plane Lines //cylinder{<-XYZ_span,XYZ_cnt,0><XYZ_span,XYZ_cnt,0>xyz_thick pigment{Red}} // Positive Y-X Plane Lines //cylinder{<-XYZ_span,-XYZ_cnt,0><XYZ_span,-XYZ_cnt,0>xyz_thick pigment{Red}} // Negative Y-X Plane Lines cylinder{<XYZ_cnt,0,-XYZ_span><XYZ_cnt,0,XYZ_span>xyz_thick pigment{Yellow}} // Positive X-Lines cylinder{<-XYZ_cnt,0,-XYZ_span><-XYZ_cnt,0,XYZ_span>xyz_thick pigment{Yellow}} // Negative X-Lines #local XYZ_cnt = XYZ_cnt+XYZ_step; #end camera { #local tt = 40; //let's you change the distance easily location <-tt,tt,-tt> //location<0,5,-50> //alternate location look_at <0,0,0> //best to select the approximate centre of the object angle 30 } light_source { <100, 100, -100> White} light_source { <-100, 100, -100> White } light_source { <-100, 100, 100> White } light_source { <100, 100, 100> White } //light_source { <-tt,tt,-tt> White } //light_source { <-tt,tt,-tt> White } //light_source { <-tt,tt,-tt> White } background{Grey} MRF24J40MA() #end #end //End of Macros
If you have successfully converted the file we next need to add it to Eagle3D
| <<Step 1 | Step 3 >> |
203
Note: Some errors were reported when I first tried to render the scene straight from the export line in the POV file. It appears that this problem is related to the default Radiosity settings generated by the plugin, these are not used in the newer versions of POV. The su2pov plugin is for pov3.2. I safely deleted the Radisity section from the generated file. (update: I have since found that if you change the Radiosity settings to ‘Final’ under the plugin render options this problem does not happen). Eagle3D ultimately handles all the radiosity settings anyway, but this is so we can view the test file in POV.
| Step 2 >> |
This tutorial will show you how to use Sketchup to create and import components into Eagle3D
Requirements:
Steps involved:
| Step 1 >> |
192
As I work out how to do things I’ll add them here.
Eagle3d
RFM12 Radio Module
147
Jans Gentsch has made his compact version of the Strobit Triggr available to the community, his version, the Strobit M08 based on AVR design can be found here. Please note that there are a couple of things that need doing to the PCB, if you get a chance to implement Jans design, please post back any changes to me so I can make them available.
Hello Stephen,
I’ve attached the Eagle-Design-Data as well as the source code. I haven’t found time to do anything on those since my post, so the are not in the best state. There are a few Problems with the board design:
Transmitter – There is a connection missing between the processor and NIRQ of the transmitter-module (the transmitter module doesn’t have a fifo, so that the nirq-line is needed to clock out the data). I just added a piece of loose wire during assembly.
Receiver – NIRQ isn’t connected as well, so I am constantly polling, not really a power saving design. however I am still running on the first set of batteries so it’s not like they are being drained empty immediatly.
IO-Board – Thr optocoupley was meant to sit on the bottom side but I got confused. It has to sit on top now.Getting everything into the housing was a major challenge.
The source code has been developed using avr-gcc and the eclipse ide.
As it stands only the most basic function, tiggering, is working. The control flow will have to be reworked in order to add the rest of the functionality. And of course my “magic” trigger id should be changed.Have fun!
Alle the best
Jan
You will need Eagle PCB to view/edit the schematics and PCB files, found here -http://www.cadsoft.de/
The firmware is written using winavr found here – http://winavr.sourceforge.net/
128
I couldn’t get any hands-on hardware development time for the Strobbit open triggr project today, so I designed a breakout board for the Sensirion SHT15 Humidity/Temperature sensor for my weather station I’ve been intending to build. I have a couple of these sensors at home waiting for something this so I can have a play with them. PCB uploaded for fabrication today.
As a side note: While uploading this for fabrication at http://www.batchpcb.com I noticed that my RFM12 PCBs has been panelized and so should be in production, hopefully they should rock up on the doorstep sometime soon.
I’ve put an initial design (both eagle source files and PDF) into SVN that is aimed as a board replacement to the ebay triggers.
http://svn.everythingrobotics.com/strobist/mk1/trunk/design/ebay_trigg.pdf
As i’ve started using Eagle as my electronic design package (protel is fantastic but just too expensive), I’ve created a component library that I’ll be using on the Strobe trigger project. I’ve put the library in SVN for everyone to use and contribute towards -http://svn.everythingrobotics.com/strobist/eagleLib/