GithubHelp home page GithubHelp logo

laneboysrc / rc-light-controller Goto Github PK

View Code? Open in Web Editor NEW
61.0 19.0 15.0 221.12 MB

Extensible RC car light controller with Web-based configuration tool

License: MIT License

Makefile 1.14% Python 12.41% C 30.13% JavaScript 38.84% HTML 14.14% Shell 0.17% Yacc 0.73% Lex 0.22% OpenSCAD 0.50% CSS 1.73%
rc lpc812 lights radio-control diy light-controller leds brake tlc5940

rc-light-controller's Introduction

Light controller for Radio Controlled cars

Realistic lighting of RC model cars using a standard 3-channel radio control system.

MK4 light controller revision 2 PCB

The light controller supports the following features, and more::

  • 16 LED outputs, constant-current driven. Up to 20mA per output. Two light controllers can be cascaded for a total of 32 LED outputs. (Mk4 and Mk4P only)

  • 1 high current non-dimmable switched output of up to 2A to drive a roof light bar (Mk4S: 9 non-dimmable switched outputs)

  • Parking, Low-beam, High-beam and a roof light bar can be switched on/off manually from the transmitter

  • Brake and Reversing lights are automatically controlled by monitoring the throttle channel. The brake lights now automatically turn on for a short, random time when the throttle goes to neutral.

  • Combined tail and brake light function in a single LED through controlling the brightness of the LED. (Mk4 and Mk4P only)

  • Indicators only come on when you want to. You have to stay in neutral for one seconds, then hold the steering left/right for one second before they engage. This way normal driving does not trigger the indicators.

  • Hazard lights can be switched on/off from the transmitter

  • Programmable output designed to drive a steering wheel or a figures head, or a gearbox servo

  • Automatic center and end-point adjustment for steering and throttle channels

  • 16 LEDs can be driven by one light controller. Two controllers can be daisy-chained for up to 32 LEDs.

  • Light Programs for custom light animations like police lights, running lights ...

  • Simulation of incandescent lights and faulty ground wiring

  • Optional i-Bus compatible input

  • Optional Pre-Processor for easier wiring

  • Up to 3 AUX channels can control light functions when using the 5-channel Pre- Processor

  • All functions can be customized through a web browser

Documentation

An introduction video can be found at:

You may also want to read the users guide to get a grasp of the full functionality of this light controller system.

(Die Bedieungsanleitung ist auch in Deutsch verfügbar)

Hardware

Firmware and schematics for the different variants are included in this project.

Over the years, the light controller went through various iterations. The document doc/hardware-overview.md explains the history of development.

MK4 light controller in various state of assembly

The current MK4 variant can drive 16 LEDs with a constant current. It utilises an inexpensive NXP ARM Cortex-M0 32-bit microcontroller. The main advantage of this design is that it can be fully configured through a web-based user interface. Firmware and configuration can be downloaded with a standard USB-to-serial converter, no proprietary tools required.

Unable to build one yourself?

Not everyone is able to build circuit boards with tiny SMD components. If this applies to you please contact [email protected], we usually have a few fully built-up units in stock.

Related articles

rc-light-controller's People

Contributors

laneboysrc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rc-light-controller's Issues

Link failed with latest gcc-arm-none-eabi-gcc(v5.2.1)

Hello, Werner:
Sorry to trigger another issue to you. Now I followed the instructions in firmware/readme.md to build mk4.
On my win7, I installed latest tool-chains:
gcc-arm-none-eabi-5_2-2015q4-20151219-win32.exe
make-3.81.exe
coreutils-5.3.0.exe

Compile is OK but there is some conflicts in the linking session.
Please see my my console:

[CC] ch3_handler.c
[CC] channel_reversing.c
[CC] config.c
[CC] config_light_programs.c
[CC] config_lights.c
[CC] crt0.c
[CC] drive_mode.c
[CC] indicators.c
[CC] light_programs.c
[CC] lights.c
[CC] main.c
[CC] persistent_storage.c
[CC] preprocessor_output.c
[CC] servo_output.c
[CC] servo_reader.c
[CC] uart_reader.c
[CC] uart0.c
[CC] utils.c
[CC] winch.c
[LD] build/firmware.elf
c:/program files (x86)/gnu tools arm embedded/5.2 2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bi
n/ld.exe: section .init loaded at [00002c00,00002c03] overlaps section .data loaded at [00002c00,00002c3f]
collect2.exe: error: ld returned 1 exit status
make: *** [build/firmware.elf] Error 1

From my understanding, the latest gcc might change _init @crti.o.

See the firmware.map:
.init 0x00002c00 0x4
.init 0x00002c00 0x4 c:/program files (x86)/gnu tools arm embedded/5.2 2015q4/bin/../lib/gcc/arm-none-eabi/5.2.1/armv6-m/crti.o
0x00002c00 _init

.init will conflict with this .data segment:
.data 0x10000000 0x40 load address 0x00002c00
0x10000000 _data = .
(.data)
.data.throttle_threshold
0x10000000 0x2 build/./drive_mode.o
.data.old_light_switch_position.5100
0x10000002 0x1 build/./lights.o
fill 0x10000003 0x1
.data.last_found.5824
0x10000004 0x4 build/./main.o
.data.st.5839 0x10000008 0x2 build/./main.o
.data.th.5840 0x1000000a 0x2 build/./main.o
.data.channel 0x1000000c 0x30 build/./main.o
0x1000000c channel
.data.next_tx_index
0x1000003c 0x1 build/./preprocessor_output.o
0x10000040 . = ALIGN (0x4)
fill 0x1000003d 0x3
0x10000040 _edata = .

It looks cortex-m0+ belongs to armv6-m branch. So I did not have any idea about this issue.
I could not upload my firmware.map here for some network issue. If you need, need me know.
Could you please take a look? What I would like to do is evaluate how many SRAM this project needs.

Many thanks and Respect to this awesome project.

BR
Locke

normalize_channel() could not get correct result

Hello, I find small issue. Maybe need you confirm.

Scenario:
Before system is correctly setup(steel, reversing etc), just get normalize via normalize_channel().
normalize value looks not OK since the default endpoint is not correct.

You see, right is large than centre, so what the normalize I got is:
Left: 0, centre 0, right: ~60.

After change right from 1450 to 1750, Left-centr-right is almost -100 to 100.

CHANNEL_T channel[3] = {
{ // STEERING
.normalized = 0,
.absolute = 0,
.reversed = false,
.endpoint = {
.left = 1250,
.centre = 1500,
.right = 1450,
}
},

BR
Locke

void SCT_irq_handler(void) could not invoke output_raw_channels()

Please check void SCT_irq_handler(void) in rc-light-controller-master\mk4-tlc5940-lpc812\firmware\servo_reader.c

                if (channel_flags & (1 << i)) {
                    output_raw_channels(result);
                    channel_flags = (1 << i);
                }
                channel_flags |= (1 << i);

whatever channel_flags and i change, output_raw_channels() is impossible to run. I picked up related code and verified in VS2015. Obviously, output_raw_channels(result) has no chance to run.

Locke

misc issues gerber/brd/oshpark

First off, thanks for creating and documenting such an awesome rc-light-controller! I'd been looking for a programmable led controller for a while for my 1:10 drifter and Slash. So accidentally stumbling on the mark1 video made my day :)

While ordering the mark4 at OSHPark i got missing board outlines on the gerber zips, and missing texts in the brd file previews. Even when i tried to reproduce the nicely shared mark2 Shared Project.

Now, i know about software, but i'm a complete noob in electronics, but i think i figured it out: :)
for OSHPark the Gerber zips were missing a specific outline file, and the brds have their text in the tValues layer instead of the tNames.

So, i updated a CAM file from OSHPpark to take for the:
Top Silkscreen: 27 tValues instead of 25 tNames
Bottom Silkscreen: 28 bValues instead of 26 bNames

..and regenerated the gerber files for the 3 PCBs. They all look perfect now in the OSHPark preview, as well as in http://mayhewlabs.com/3dpcb. If you want to take a look, i guess i could do a git-pull-request, or simply mail them or something?

thanks,
/Sander.

Unable to control lights with AUX [was: debug help]

Hi,

After building the project with a 5-ch pre-processor I am not able to turn any led ON. I have connected ch3 from receiver into AUX of the pre-processor and light output of 5 ch pre processor to master light controller. Stearing and Throttle works fine. I am using MkP4 rev1 and using a jumper to connect led anode to VIN. I have tested the Mk4P board with the blinking led test firmware and I also have used led15 to be always on, so I know it is working this part.

How can I debug the issue of receiving the CH3 signals?

Will appreciate your comments,
Thanks,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.