From 9143b0c6efe18737514a0301a12f4c43d34d825c Mon Sep 17 00:00:00 2001 From: Marcus Endberg <22883877+mendberg@users.noreply.github.com> Date: Tue, 6 Feb 2024 19:17:50 +0100 Subject: [PATCH 1/4] Update README.md (#74) broken link to models fixed, minor typos --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ac0926a..fc50072 100755 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ This repository contains the 3d-printable models for OpenBikeSensor enclosures. [Project Website](https://openbikesensor.org) | -[Model selection](https://www.openbikesensor.org/docs/hardware/general/models/) (German) | +[Model selection](https://www.openbikesensor.org/device/) (German) | [3D printing instructions](https://www.openbikesensor.org/docs/hardware/general/case/) (German) If you encounter any problems or have feature requests, please open an issue on @@ -100,8 +100,8 @@ electronics. The core part are a `MainCase` and a `MainCaseLid`, which is installed with five M3x8 bolts in the lid, matching the five threaded heatset inserts in the body. -The PCB is installed into the main body with 3 heatset inserts and M3x8 bolts. -One additional heatset insert is required for the `GPSAntennaLid` (see below). +The PCB is installed into the main body with 3 heat-set inserts and M3x8 bolts. +One additional heat-set insert is required for the `GPSAntennaLid` (see below). This totals 9 inserts to be placed after printing. ![MainCase/MainCase](./render/thumbnails/MainCase/MainCase.png) @@ -127,12 +127,12 @@ of 3x3x3mm neodymium magnets. ### Display case -The display case consists of two halfes, `DisplayCaseTop` and +The display case consists of two halfs, `DisplayCaseTop` and `DisplayCaseBottom`. The display case contains the I2C display and a push button and is attached to the main device with a cable that exits through a hole in the bottom part. -The bottom part contains 3 threaded heatset inserts and a pocket for two +The bottom part contains 3 threaded heat-set inserts and a pocket for two 20x10x1.9mm neodymium magnets. The magnets hold the display in the rail on the handlebar (see `HandlebarRail`). @@ -168,7 +168,7 @@ different attachment needs, but this one is the default. #### Seat post mount -The `SeatPostMount` gets attached to the seat post of the bicycle with zipties. +The `SeatPostMount` gets attached to the seat post of the bicycle with zip ties. *Hint: A piece of an old bicycle tube can prevent it from turning or shifting.* @@ -200,7 +200,7 @@ the pin, and the device, in place. #### Handlebar rail -Attach the `HandlebarRail` to the handlebar of your bike with two zipties or a single +Attach the `HandlebarRail` to the handlebar of your bike with two zip ties or a single hose clamp. Again, a piece from an old bicycle tube can prevent turning and shifting. The large wall contains a pocket for two 20x10x1.9mm neodymium magnets, pushed @@ -289,7 +289,7 @@ default_clearance ### Top Rider vs. Back Rider A "top rider" variant main case has an attachment port on the bottom (when -mounted), while a "back rider" has it on the front. The "tranditional" OBS case +mounted), while a "back rider" has it on the front. The "traditional" OBS case therefore is a back rider variant, as it used to always sit behind the seat post, attached horizontally. However, many cyclists configure their bikes in a way that there is not enough room for a whole OBS below the seat, so a @@ -390,4 +390,4 @@ Whereafter you should be able to access your customizer on your host on port 800 Alternatively you can launch the python module directly using uvicorn, but that is only recommended for dev setups an d will be described -in the module readme. \ No newline at end of file +in the module readme. From 97e8f82482b269fdc019bc12b2f1f0711873d3c4 Mon Sep 17 00:00:00 2001 From: gluap Date: Sun, 19 May 2024 16:22:58 +0200 Subject: [PATCH 2/4] improve printability of cableclip retainers. --- src/LiteCase/LiteCase.scad | 1 + 1 file changed, 1 insertion(+) diff --git a/src/LiteCase/LiteCase.scad b/src/LiteCase/LiteCase.scad index 8c7e8c0..2d97b7e 100644 --- a/src/LiteCase/LiteCase.scad +++ b/src/LiteCase/LiteCase.scad @@ -215,6 +215,7 @@ rotate([0,180,0])translate([-30,0,-Lite_ESP_position_z-0.8])difference() { translate([40, 0, Lite_ESP_position_z + 0.8+49.95])cube([120, 90, 100], center = true); } +for (i=[-8,8]) translate([-40,i,0])cylinder(r=4,h=0.2); rotate([0,180,0])translate([-30,40,Lite_ESP_position_z-lite_l/2+1.6])intersection() { lite_case(); From 2c97c74506ae8bad2ee0433a6089aa328dfbdbd2 Mon Sep 17 00:00:00 2001 From: gluap Date: Mon, 16 Sep 2024 18:59:00 +0200 Subject: [PATCH 3/4] Optimize parametrizability of DisplayCase. --- src/DisplayCase/DisplayCaseTop.scad | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/DisplayCase/DisplayCaseTop.scad b/src/DisplayCase/DisplayCaseTop.scad index 430199a..116efb0 100644 --- a/src/DisplayCase/DisplayCaseTop.scad +++ b/src/DisplayCase/DisplayCaseTop.scad @@ -80,7 +80,7 @@ module DisplayCaseBasicShape(height=20, magnet_depth) { translate([DisplayCase_outer_radius, -DisplayCase_outer_radius, 0]) cylinder(r=DisplayCase_outer_radius, h=height); - translate([25, -DisplayCase_outer_radius, 0]) + #translate([DisplayCase_outer_width-4, -DisplayCase_outer_radius, 0]) cylinder(r=DisplayCase_outer_radius, h=height); translate([DisplayCase_outer_width - DisplayCase_outer_large_radius, -45, 0]) @@ -117,7 +117,7 @@ module DisplayCaseBasicShape(height=20, magnet_depth) { module DisplayCaseHolePattern() { translate([DisplayCase_outer_radius, -DisplayCase_outer_radius])children(); - translate([25, -DisplayCase_outer_radius])children(); + translate([DisplayCase_outer_width-4, -DisplayCase_outer_radius])children(); translate([DisplayCase_outer_radius+2, -(DisplayCase_outer_radius+DisplayCaseTop_pcb_height+DisplayCaseTop_hole_diameter+1)])rotate([0, 0, 180])children(); } From c6c378e86e6e1139df8a81ae70ba357eaca25bb1 Mon Sep 17 00:00:00 2001 From: gluap Date: Mon, 16 Sep 2024 19:10:39 +0200 Subject: [PATCH 4/4] Optimize parametrizability of DisplayCase - also in customizer --- customizer/src/obs_case_customizer/app.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/customizer/src/obs_case_customizer/app.py b/customizer/src/obs_case_customizer/app.py index 460b369..e5758ee 100644 --- a/customizer/src/obs_case_customizer/app.py +++ b/customizer/src/obs_case_customizer/app.py @@ -307,6 +307,10 @@ class CustomVariables(BaseModel): SeatPostMount_diameter: float = Field(28, title='in mm', ge=15, le=35) SeatPostMount_length: float = Field(20, title='in mm', ge=15, le=120) HandlebarRail_tube_radius: float = Field(18, title='in mm', ge=10, le=30) + DisplayCase_outer_width: float = Field(30.0, title='in mm', ge=28, le=34) + DisplayCaseTop_window_width: float = Field(21.5, title='in mm', ge=20, le=24) + DisplayCaseTop_window_height: float = Field(12.5, title='in mm', ge=10, le=15) + DisplayCaseTop_window_offset: float = Field(2, title='in mm from bottom', ge=0, le=5) DisplayCaseTop_pcb_width: float = Field(26.5, title='in mm', ge=25, le=29) DisplayCaseTop_pcb_height: float = Field(27.2, title='in mm', ge=25, le=29) DisplayCaseTop_pcb_standoff: float = Field(1.7, title='in mm', ge=0.5, le=2)