Skip to content

heroineworshiper/car

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3D printed truck


Copyright (C) 2012-2024 Adam Williams <broadcast at earthling dot net>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA








What you'll find here:


arm_car.c: 2 wheel robot driven by direct drive, sensored brushless motors

arm_cc1101.c: 433Mhz radio library for the ARM

arm_truck.c, arm_truck.h: the lunchbox firmware

arm_xbee.c: xbee library for the ARM

car.s: vehicle firmware for the G buggy

car_remote.s: orginal assembly language remote for CC1101 & XBee

car_remote.X: 3D printed vehicle remote control

car_receive.X: 3D printed vehicle receiver

car_remote.X.bak: failed remote for the XBee with frequency hopping

freq_hops.ods: frequency hopping plot to aid in spreading the frequencies

fuse.X: a software fuse

truck3.pcb: last layout for the tamiya board






=============================================================================
3D printed truck

arm_truck2.c, arm_truck2.h: the 3D printed truck firmware

settings.car: settings file that goes in /sdcard/truck/

antler3.FCStd: antlers  
    Print with .8mm nozzle .32 layer height, 20% infill
    Print in halves.  Glue a half to a tab to make a right angle.
    Then glue the other half to the right angle.


a1323.pcb: hall effect sensor board for motor sensor

l6234.pcb: H bridge board for motor

l6234c.FCStd: bracket which presses the L6234 board against the aluminum
heat sink/angle rod
    print with .8mm nozzle .32mm layer
    use pen spring & lock nut to press 1 side.  Use self tapper for the other side.

imu4.pcb: IMU for 3D printed truck


cring.FCStd: failed retaining ring for the motors.  Not used anymore.
    .4mm nozzle
    .2mm layer height out of PETG
    no cooling fan

tire2.FCMacro: OBSOLETE generate procedural tire.
    requires creating a rigid body 1st
    .28mm layer height
    .8mm line width
    1.6mm wall thickness
    1.4mm top/bottom thickness
    100% infill
    no support
    230 printing temp
    0 bed temp
    20mm print speed
    no retraction

front_tire3.FCStd: front tire for soft TPE
    Import STL into blender
    Rename the object "Tire"
    Run helix.py to make it a helix
    Export new layers as an STL file
    .8mm nozzle.  .32 mm layer height stretched to .36 after slicing.
    The wheels must be wider to compensate for the stretching.
    left & right must be mirror images


front_wheel2.FCStd: latest front wheel
    modeled for a .4mm nozzle
    .32 layer height


leash11.FCStd: compact leash enclosure
    no support for frame
    support for base.  Melt it off.
    .2mm layers .4mm nozzle
    Ball bearings

leash.c: leash firmware

leash_test.c: leash tester

light3.FCStd: nose mount for LED lightbulb

offroad2.stl: OBSOLETE offroad rear tire for hard TPU
    print with .4mm nozzle
    TPU
    .32mm layer height
    260C
    left & right must be mirror images

offroad3.stl: offroad rear tire for soft TPE
    print with .8mm nozzle 260C
    All .32mm layer height stretched to .36
    Set Z seam to "shortest" to overcome nozzle clogs 
        by printing the longest section of each layer 1st
    Print Initial layer at 10mm/s
    No bed heating or it'll warp

rear_tire3.FCStd: OBSOLETE rear wheel

rear_wheel2.FCStd: OBSOLETE on-road rear wheel
    print hub cap in PLA 
        .4mm nozzle .32mm layer height for INNER HUB, INNER RING
        .4mm nozzle .2mm layer height for OUTER HUB, OUTER RING
    tire model is a mockup

rear_wheel4.FCStd: most recent off-road rear wheel
    .4mm nozzle .32mm layer height for INNER HUB, INNER RING
    .4mm nozzle .2mm layer height for OUTER HUB, OUTER RING
    change screw_r2 to select m2 or 6-32 farsteners

tire3.stl: OBSOLETE front tire for hard TPU

tire4.stl: front tire for soft TPE
    print with .8mm nozzle
    TPE
    All .32mm layer height stretched to .36mm
    260C
    left & right must be mirror images

tire6.FCMacro: Create layer for the latest rear tire
    Extrude by the layer height .32mm, then export tire.stl
    Then run helix.c to generate a helix by creating discrete layers
        ./helix tire.stl offroad3.stl
    tires must be mirror images or the truck will pull to 1 side




truck_radio2.pcb: remote control tx/rx for 3D printed truck & the camera
    - uses Si4421 for receive + Si4463 for transmit

truck4.pcb: mane board for 3D printed truck


ball_link.FCStd: 
    ball link
    100% infill
    80 deg support
    220C nozzle
    right wheel link spacing: old: 43.5mm new: 39.5mm
    left wheel link spacing: old: 42mm new: 38mm
    use pliers when threading to avoid delamination
    grind a flat in the metal rod to aid the pliers



bumper.FCStd:
    bumper for the front of the angle rods
    print in TPU


container3.FCStd:
    print masks have to be booleaned with panels in Blender
    Must tweek boolean so all bits appear
    Handle doesn't attach right on the print mask seam.  It attaches 1/2 a triangle behind it.

    Use PLA, 100% infill, 220C/60C on glass
    Use .24mm on 1st 4 layers & .2 on later layers with fixcura.py.
    Ideally would use .32 on later layers.

    TODO: Create fiducials for aligning handle.
        New mounting holes for antlers.
        2nd row of front mounting holes for nose.
        Isogrid on the inside



container.FCMacro:
    scripts for creating the container

corners.FCStd:
    top front corners with light positions
    print corner & support
    .4 nozzle, .2 layers 260C


    

handle.FCStd:
    collapsing handle for the latest container & 14mm diameter carbon fiber
    print bearing + collars for camera pole or a wide collar without camera pole
    
          
rear_light.FCStd:
    enclosure for rear lights
    print rear corner with black TPU
    print window with clear TPU
    .4 nozzle, .2 layers 260C

plot.py: 
    plot steering filters

phone4.FCStd:
    wiko 3 phone

phone6.FCStd:
    moto phone holster to be printed in TPU & welded with soldering iron
    use scotch around the opening
    .4mm nozzle
    .2mm layer


radio_box2.FCStd:
    container for radio modules & switches.
    print without support
    print latches flat & glue on



tool.FCStd: socket wrench for 6-32 locknuts

tool2.FCStd: socket wrench for 4-40 locknuts

traction.FCMacro: create objects for traction

traction.FCStd: traction section
    .8mm nozzle, .32mm layer height, no support
    battery walls:
        print fillet side up so the laminations are the right way.
    latch pivot
    back, front, door:
        fillet on top
        support to base only, 80 degrees
    bottom, electronicals:
        no support
    right side:
        side cutout
        hinge
        captive nuts

    union for both sides (motor support | side cutout) & side mask
    union for both sides (motor support & motor mask)
    union for both sides (motor support | side cutout) & bottom mask
     - boolean error causes it to not print mirrored side.  Use cura mirror instead.
    union for both sides (motor support | side cutout) & top mask

    TODO: captive nuts for angle rod farsteners
        round all wire passages




steering.FCMacro:
    create objects for steering

steering2.FCStd: steering section
    print with 0.8mm nozzle 
    .32mm layer height
    shield
    vertical part
     - print sideways
    wheel mount
    servo plate
    bushing, bushing001
     - hard TPU
    

    TODO: make shield removable for accessing the ball links




rear_wheel.FCStd: OBSOLETE motor wheel coupling
    print with 0.8mm nozzle
    .8mm line width
    .32mm layer height
    ultimaker project: front_wheel.3mf, rear_wheel.3mf
    print unions with print mask
    print rings
    no support


motor4.FCStd: motor mount
    The following use .8mm nozzle, .32 layer height, 100% infill
    SHROUD - support with 80deg overhang
    tpu out of TPU
    clamp * 4
    MOTOR PLATE - no support, PETG

    The following use .4mm nozzle, .2mm layer
    SENSOR PLATE
        100% infill
    MAGNET HOLDER
        PETG
        support to base
        .4mm nozzle 
    GASKET:
        PLA to avoid static .4mm nozzle .2mm layer



car_remote.FCMacro:
    create objects for car_remote & cam_remote

car_remote3.FCStd: remote control for vehicle
    disable support for the top & bottom
    use support only for the joysticks
    no ironing
    .4mm nozzle
    .8mm top/bottom thickness
    1.2mm wall thickness
    skirt
    bottom, top:
        expand all clones
        select base of mirror
        select visible objects
        no support
        print with outside facing the bed
    steering pivot, throttle pivot:
        don't export magnets
        use support from magnet holder to bed
    steering lever, throttle lever:
        use support from short side of hinge to bed
    covers for power, increase speed, decrease speed:
        no support
        with wide part facing bed
    sock top/bottom: must clean the inside before welding

    TODO: restore sock spacing for body tape
        reduce power button protector to 1mm



charger2.FCStd: charging stand for a Qi charger
    print with .4mm nozzle, .4mm line width, no support
    TODO: 1 2mm screw on the USB side is misaligned

confuser.FCStd: jetson nano enclosure




nose2.FCStd: nose cone
    print with .8mm nozzle, .20mm layers on glass
    raise & lower print mask Z to subdivide the top panel
nose.FCMacro: create isogrids for the nose cone







filament budget for traction module:
motor mounts: 39g * 2
bottom: 55g
sides: 49g * 2
front, rear, door, battery walls:  55g


===========================================================================

Carbon fiber farsteners for a fixed gopro

Key files:

isogrid_plane.FCMacro:
    create isogrids for cam_remote, car_remote, & cam_gearbox.FCStd

clamshell.FCMacro:
    create walls for cam_remote, car_remote OBSOLETE

gopro_case2.FCStd: case for a gopro 7
    print with support everywhere, lesser overhangs facing up
    skirt adhesion
    .2mm layers .4mm nozzle




gopro_to_wood.FCStd: case for mounting a gopro 7 behind a sheet of wood
    print case union with print mask
    print case cut with print mask
    print with support everywhere, lesser overhangs facing up
    skirt adhesion

gopro4_to_wood.FCStd: case for mounting a gopro 4 behind a sheet of wood


gopro.FCStd
    top endpiece for carbon fiber
        print with laminations distributing plasic flex along right angles
        support everywhere
    
    bottom endpiece

    both endpieces need "outer shroud" + "bolt loop"
        print with laminations perpendicular to shaft
    
    4 * "inner shroud slice" for the top & bottom endpieces
        print with laminations distributing plastic flex along curves

    bottom needs "base"
    
    top needs "cam"

=============================================================================

Camera panning mount:

This is used together with countreps to get automatic tracking, motion
control.


arm_cam.c: camera motor receiver using STM32.
    Build with make cam.bin
    Uses a brushless servo hacked into a stepper motor with the servo/ firmware.
    
    
arm_cam.c.l6234: camera motor receiver using an L6234 
    to drive a stepper motor.

cam_remote.pcb, cam.pcb: electronicals

cam_remote.X: camera remote control firmware
    Build with mplab_ide

cam_gearbox.FCStd: OBSOLETE
    hobby motor as a stepper motor
    4.5:1 gear reduction for panning motor
    walls have to be printed with .4mm thick tops & bottoms
        to get smooth surfaces
    print pinion with gear on bottom & no support
    install pinion with hex facing motor hex

cam_remote2.FCStd:
    TODO: 5mm longer for new battery
        guard for power switch

    remote control for camera panner
    no ironing
    no horizontal expansion
    .4mm nozzle
    .8mm top/bottom thickness
    1.2mm wall thickness
    support with 60 deg overhang angle
    skirt
    60C bed temp
    support to bed only except for top & bottom
    top, bottom:
        block support over all except edges with switch covers
        print with outside facing the bed
        .8mm top & bottom thickness to get smooth 2mm sheets
        print top with spring holder but not spring
    lever, steering:
        print with support on flatter side
        don't print magnets
    power, increase, decrease cover:
        print with no support
    top switch cover, bottom switch cover:
        support everywhere





gopro_rightangle.FCStd
    cf collar - print 2 for the bearing in place of the inner shroud slice & 2 for the handle
        100% infill

    solid right angle coupling between 2 carbon fiber rods
    print with no support
    print with laminations distributing plastic flex along curves

    attachment + attachment mirror are required


gopro_motor.FCStd:
    coupling of CF to direct drive motor for panning without a gearbox
    must print with
        4 * "inner shroud slice"
         - TODO: make hole for motor shaft & make base wider to compensate for lost material
        "outer shroud" + "bolt loop"


servo/:
    Firmware for turning a brushless TS-940-HG servo into a stepper motor.
    The project file is servo/motor.wsp.  The output hex file is servo/motor.hex.
    Must be built with the silabs IDE & flashed with the blheli tool.
    https://www.silabs.com/developers/8-bit-8051-microcontroller-software-studio
    http://www.olliw.eu/2012/owsilprog/#firmware


shroud.FCStd:
    the shroud for a direct drive panning motor
    tube segment was created with 
    ./tube shroud.stl 30 60 0 16
    print with .4mm line width
    205C filament 60C bed




15mph/1185rpm on 12V with no load
4248 traction motors with 108mm tires:
20 turns 26 AWG


272rpm on 10V with no load
70 turns * 32 AWG

Maximum windings: 25 turns * 26AWG
75 turns * 32 AWG


RPM = C constant * V voltage * A wire cross section