Update web app, bootloader, add 3D printed case

This commit is contained in:
William Toohey 2016-03-06 12:55:55 +10:00
parent e34a6ad4d3
commit 52c04fc753
12 changed files with 782 additions and 6 deletions

View File

@ -0,0 +1,126 @@
:103800004BC0000075C0000073C0000071C0000014
:103810006FC000006DC000006BC0000069C00000F8
:1038200067C0000065C0000063C00000E9C100007F
:103830005FC000005DC000005BC0000059C0000018
:1038400057C0000055C0000053C0000051C0000028
:103850004FC000004DC000004BC0000049C0000038
:1038600047C0000045C0000043C0000041C0000048
:103870003FC000003DC000003BC0000039C0000058
:1038800037C0000035C0000033C0000031C0000068
:103890002FC000002DC0000011241FBECFEFD2E0CA
:1038A000DEBFCDBF04B603FE0EC0809154019091DF
:1038B000550182549C4D39F41092550110925401D7
:1038C000E0E0F0E0099511E0A0E0B1E0ECE6FFE314
:1038D00002C005900D92AA34B107D9F711E0AAE40D
:1038E000B1E001C01D92A435B107E1F766D03CC339
:1038F00087CF80914C018F77813209F059C0809138
:103900004D01893009F054C08091E800877F809391
:10391000E8008091E80082FFFCCF8091F100909157
:10392000F1009C018FEF2F3F380719F4109200012E
:1039300039C083E0F90180935700E89507B600FC91
:10394000FDCF60E070E091E08091F200882349F4BF
:103950008091E8008B778093E8008091E80082FFF7
:10396000FCCF8091F100482F8091F100582FFB018E
:10397000EE0FFF1FE20FF31F0A0190935700E89527
:1039800011246F5F7F4F60347105F1F685E0F90116
:1039900080935700E89507B600FCFDCF81E1809346
:1039A0005700E8958091E8008B778093E800C7C0C6
:1039B000089581E061EC42E3AEC084B7877F84BFA5
:1039C00088E10FB6F89480936000109260000FBEFB
:1039D00081E085BF82E085BF04D1789401C0B0D278
:1039E000809100018823D9F78091E0008160809365
:1039F000E00082E49CED90935501809354012CE00B
:103A000088E190E00FB6F894A895809360000FBE0F
:103A100020936000FFCFFA01913029F442E150E099
:103A200026E131E012C0923029F442E250E028E26F
:103A300031E00BC0913229F045E150E021E031E066
:103A400004C049E050E02AE331E031832083CA0119
:103A500008959C0140915201509153014617570718
:103A600018F4F90190E03CC06115710511F0AB014B
:103A7000F8CF8091E8008E778093E80040E050E036
:103A8000F0CF8EB3882309F440C0853009F43FC0DD
:103A90008091E80083FD3DC08091E80082FD2FC049
:103AA0008091E80080FF1CC08091F200282F30E058
:103AB00007C081918093F100415050402F5F3F4FEC
:103AC0004115510519F02830310598F390E0283060
:103AD000310509F491E08091E8008E778093E80049
:103AE0004115510571F6992361F609C08EB38823FB
:103AF00061F0853061F08091E80083FD0AC080911B
:103B0000E80082FFF3CF80E0089582E0089583E02B
:103B1000089581E008958F708093E9008091EB0013
:103B200081608093EB001092ED006093EC00409375
:103B3000ED008091EE00881F8827881F08958091EE
:103B40004C0188238CF403C08EB38823B1F080919C
:103B5000E80082FFF9CF8091E8008B778093E8003E
:103B600008958EB3882349F08091E80080FFF9CF53
:103B70008091E8008E778093E80008953BD03DD097
:103B80008091D8008F778093D8008091D80080688A
:103B90008093D8008091D8008F7D8093D80019BC85
:103BA00082E089BD09B400FEFDCF1EBA10924A0121
:103BB00080E060E042E0AFDF8091E1008E7F8093A3
:103BC000E1008091E20081608093E2008091E20058
:103BD00088608093E2008091E0008E7F8093E00017
:103BE0000895E3E6F0E080818E7F808381E080931A
:103BF0004B01C4CF1092E20008951092E1000895A5
:103C00001F920F920FB60F9211242F933F934F9351
:103C10005F936F937F938F939F93AF93BF93EF9334
:103C2000FF938091E10080FF16C08091E20080FF49
:103C300012C08091E2008E7F8093E2008091E200CA
:103C400080618093E2008091D80080628093D800E8
:103C500019BC1EBA74D18091E10084FF2DC08091FF
:103C6000E20084FF29C019BC82E089BD09B400FECE
:103C7000FDCF8091D8008F7D8093D8008091E100A6
:103C80008F7E8093E1008091E2008F7E8093E2003E
:103C90008091E20081608093E20080914A01882354
:103CA00011F084E007C08091E30087FD02C081E04D
:103CB00001C083E08EBB43D18091E10083FF21C02E
:103CC0008091E20083FF1DC08091E100877F809397
:103CD000E10082E08EBB10924A018091E1008E7F6C
:103CE0008093E1008091E2008E7F8093E2008091DA
:103CF000E20080618093E20080E060E042E00BDF60
:103D00001ED1FF91EF91BF91AF919F918F917F91C4
:103D10006F915F914F913F912F910F900FBE0F9038
:103D20001F9018951F93DF93CF9300D0CDB7DEB7C8
:103D3000ECE4F1E08091F100819381E0E435F80753
:103D4000C9F7D7DD8091E80083FFE5C080914C0181
:103D500090914D01953009F46FC0963040F4913048
:103D600091F1913070F0933009F0D5C02CC09830AB
:103D700009F4A4C0993009F4B3C0963009F0CBC05F
:103D80007DC0803811F490E014C0823809F0C3C0BF
:103D9000809150018F708093E9008091EB0090E05A
:103DA00025E0969587952A95E1F7982F91701092C6
:103DB000E9008091E800877F8093E8009093F1000C
:103DC0001092F10086C0882319F0823009F0A3C058
:103DD0008F71823009F09FC080914E01882331F5A8
:103DE000209150012F7009F496C02093E900809132
:103DF000EB0080FF1BC0933021F48091EB008062C8
:103E000013C08091EB0080618093EB0081E090E033
:103E100002C0880F991F2A95E2F78093EA0010925A
:103E2000EA008091EB0088608093EB001092E9003B
:103E30008091E800877F50C0882309F06CC0109102
:103E40004E011F778091E3008078812B8093E300FF
:103E50008091E800877F8093E80071DE8091E80020
:103E600080FFFCCF8091E30080688093E300112302
:103E700011F482E001C083E08EBB4DC080588230D7
:103E800008F049C080914E0190914F01609150011E
:103E9000AE014F5F5F4FBFDDBC01009709F43BC02F
:103EA0008091E800877F8093E80089819A81D1DD45
:103EB0008091E8008B778093E8002DC0803859F519
:103EC0008091E800877F8093E80080914A01809389
:103ED000F1008091E8008E778093E80030DE1BC00F
:103EE0008823C9F490914E019230A8F48091E800A3
:103EF000877F8093E80090934A0121DE80914A01F8
:103F0000882331F48091E30087FD02C081E001C085
:103F100084E08EBB4EDD8091E80083FF0AC0809173
:103F2000E800877F8093E8008091EB0080628093B7
:103F3000EB000F900F90CF91DF911F91089508959E
:103F40001F938EB3882371F01091E9008091EC00EB
:103F50001092E9008091E80083FF01C0E3DE1F704A
:0C3F60001093E9001F910895F894FFCF22
:103F6C000106DCFF09FBA1010902150025FF7508FC
:103F7C009682009102C01201100100000008EB03B0
:103F8C0067200100000000010902220001010080ED
:103F9C003209040000010300000009211101000195
:0A3FAC0022150007058103400005FF
:0400000300003800C1
:00000001FF

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,163 @@
use <BezierScad.scad>
fudge = 0.5;
board_length = 37.3 + fudge;
board_width = 16.3 + fudge;
board_thickness = 1.6;
board_clearance_top = 3.3 + fudge; // height of crystal
board_clearance_bottom = 1.4 + fudge; // USB connector shield pins
board_height = board_clearance_bottom + board_thickness;
usb_width = 12.1 + fudge;
usb_height = 4.5 + fudge;
usb_relative_z = 0;
nunchuck_width = 14.7 + fudge;
nunchuck_overhang = 0.6;
nunchuck_length = 12.9 - nunchuck_overhang + fudge;
nunchuck_height = 8.4 + fudge;
nunchuck_relative_z = board_thickness;
switch_radius = 2 + fudge;
switch_offsetx = 4.85;
switch_offsety = 21.1;
crystal_bottom = 18.3 + fudge;
wall_strength = 2;
lip_strength = 0.8;
clip_height = 1.6;
shapeways = false;
shapeways_clearance = 1 + clip_height;
$fn = 8;
module board_shape(width = board_width, extend = 0) {
translate([width,0,0])
rotate([0,-90,0])
linear_extrude(width)
union() {
// USB/front section
translate([-extend,-extend,0])
square([board_height+board_clearance_top+extend, board_length+extend]);
// Nunchuck/rear section
translate([-extend, board_length - nunchuck_length,0])
square([board_height+nunchuck_height+extend, nunchuck_length+extend]);
// Pretty curve
bezHeight = nunchuck_height - board_clearance_top;
bezWidth = (board_length - nunchuck_length) - crystal_bottom;
translate([board_height + board_clearance_top - bezHeight/2, crystal_bottom, 0])
BezLine([
[0,-crystal_bottom/2], [0, bezWidth/2], [bezHeight, bezWidth/2], [bezHeight,bezWidth]
], width = [bezHeight], resolution = 2, centered = true);
}
}
module lid() {
union() {
difference() {
rounded();
translate([-wall_strength,0,0])
board_shape(board_width + wall_strength*2, wall_strength);
};
// USB connector overhang
usb_overhang = board_clearance_bottom+usb_relative_z+usb_height;
translate([board_width/2 - usb_width/2,
-wall_strength,
usb_overhang])
cube([usb_width,
wall_strength,
board_height+board_clearance_top - usb_overhang]);
// clip hang down
difference() {
// main body
board_shape();
// form the lips
translate([wall_strength,0,0])
board_shape(board_width - wall_strength*2);
// cut them short
translate([0,0,-clip_height])
board_shape(board_width, clip_height);
}
}
}
module lid_complete() {
difference() {
lid();
button_hole();
}
}
module rounded() {
minkowski() {
board_shape();
sphere(wall_strength);
}
}
module hollowed() {
union() {
difference() {
rounded();
// remove the inner
board_shape();
};
difference() {
cube(
[board_width,
board_length,
board_clearance_bottom]);
translate([lip_strength,0,0]) cube(
[board_width - lip_strength*2,
board_length,
board_clearance_bottom]);
};
}
}
module port_holes() {
// usb connector
translate([board_width/2 - usb_width/2,
-wall_strength,
board_clearance_bottom + usb_relative_z])
cube([usb_width, wall_strength, usb_height]);
// nunchuck connector
translate([board_width/2 - nunchuck_width/2,
board_length-fudge,
board_clearance_bottom + nunchuck_relative_z])
cube([nunchuck_width, wall_strength+fudge, nunchuck_height]);
}
module button_hole() {
translate([switch_offsetx,
switch_offsety,
board_height])
cylinder(nunchuck_height + wall_strength, switch_radius);
}
module board() {
// board shape minus the lid
translate([wall_strength, wall_strength, wall_strength])
difference() {
hollowed();
port_holes();
lid();
}
// lid with reset button hole
if(shapeways) {
translate([wall_strength,wall_strength,wall_strength+shapeways_clearance])
lid_complete();
} else {
rotate([0,180,0])
translate([wall_strength*3, wall_strength, -(board_height + nunchuck_height + wall_strength)])
lid_complete();
}
}
board();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 393 KiB

After

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 886 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -14,12 +14,12 @@
{
"usbDevices":
[
// Config
{ "vendorId": 5840, "productId": 2669 },
// Firmware update
{ "vendorId": 1003, "productId": 8295 }
{ "vendorId": 5840, "productId": 2669, "__comment" : "Configuration" },
{ "vendorId": 1003, "productId": 8295, "__comment" : "Firmware update" }
]
}
],
"icons": { "16": "calculator-16.png", "128": "calculator-128.png" }
}
"icons": { "16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png" }
}