modelleicher

Forum Replies Created

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • modelleicher
    Participant

    Hello everybody (or the 2 people that actually read this forum still..),

    It was a long time since the last update on this topic. I have been doing other stuff, and not being successful with getting a trailer to work I kinda got so frustrated with the RC stuff for a while that I didn’t want to touch it. But now as the days are getting shorter again and I can spend more time inside, I went back the the RC tractor and controller.

    Since the last time, I’ve pretty much updated everything. Not much has changed, but little things.

    Let’s start with the controller. It got the biggest update of them all, although I wasn’t very successful with it.
    It now has switches instead of jumpers for the address selection. Also two additional Potentiometers got added for who knows what in the future. Additionally I have a switch now to turn the “inertia simulation” on and off, and there’s a switch to change between low and high power output, but that is not implemented yet. The last switch uses a analog Input and I think INPUT_PULLUP doesn’t work on those, so I have to add a pullup resistor before implementing it.
    Maybe I remove that switch again and instead put a LED there as a status light for things, now that I moved from PA_LEVEL_MIN to PA_LEVEL_LOW I can control the vehicle on the other side of the room no issues, so I think this settings if fine for most things anyways.

    But, here’s a picture of the thing

    Sadly, the switches I used for switching the channels are absolutely useless. They are the worst switches I ever had as they simply don’t work. Or lets say, most of them don’t work. Some work fine.. Others don’t stay in the “on” position, well they do physically but the contacts in them don’t. So I have to hold and press against the switch in order to have it “on”, which of course is stupid for the address selection. But I bought them months back so no way to return them..

    Now back to the tractor. A few things changed visually, but also the electronics changed a bit. When I tried the tractor out after sitting for a while I had some sort of lose connection somewhere as it kept cutting out. While trying to figure out where it fault was I shorted out something with the Multimeter probe and after that the entire tractor was dead. But with a bit of testing I found out that the Arduino was fine and only the NRF module had died. I tried to unsolder it and replace it, but in doing that I pulled some traces off of my NRF Baseboard. So I made a new one.

    I’ve also moved the NRF a bit further back to make a bit more room under the hood, so it worked out well at the end. The other thing I changed was, previously I fed the 8V from the batteries to the raw input of the arduino, so it and the vcc of the motor controller run on the Arduinos internal 5V regulator. Now I’ve done away with that and both get the 3.3v from the AMS1117 3.3v regulator, as the Arduino just runs fine with this setup in my other tests and in the controller. So one less failure point, one less voltage level in the tractor and thus less wiring.. And I think some of the instability/cutting out I got might have been down to this also.

    Here would be some pictures of the PCB, but as I have misplaced the SD card those were on I can only show you some pictures of the tractor in its current state and no details on the PCB. But I will post these as soon as I find the SD card agai.. πŸ˜‰

    I hope you don’t mind the absolute mess on my desc.. Here’s some pictures of the tractor with the hood and everything mounted.

    And you can see the trailer in the background. Its a different story all together.. But I might have it working somewhat by now.. Maybe in the next post πŸ˜‰

    Anyways, have a nice day πŸ™‚

    modelleicher

    EDIT:
    Oh, and I almost forgot. Here are the sketches.. πŸ™‚
    The current version of the controller:
    https://pastebin.com/yNPfaAR3

    And the current version of the D16006 tractor code
    (note that I have used the trailer/implement communication code from the RC-Tractor-Guy Library, so big thanks to that again πŸ™‚ )
    https://pastebin.com/JUNuuEP4
    (Also, the address system is fixed in this version.. πŸ˜€ )

    • This reply was modified 6 years, 5 months ago by modelleicher.

    modelleicher
    Participant

    Hello again,

    It has been a while since my last post. I did not change anything to the code yet, but I’ve changed the tractor itself a bit so I thought I show some pictures πŸ™‚

    As you can see, it now has a conncetor for the serial port at the back (TX, GND and 3.3V) for an implement. Also the tail lights have been added. I decided not to add turn signals since I never use them anyways and I would have had to use smaller LED’s and I’m quite OK with the bigger ones.. Need to practice SMD soldering a bit more first.. πŸ˜‰

    I now have added the 2S Lipo in the front, so I can not use the entire hood for electronics anymore.. It is quite “full” in the tractor now. Good thing it is “finished” as far as I’m concerned, I won’t add any other electronics/features. Just make it look better.


    @VCR
    , how did the smaller hole size go, did it work?

    Have a nice evening πŸ™‚
    modelleicher

    • This reply was modified 6 years, 11 months ago by modelleicher.
    modelleicher
    Participant

    Hello,

    Indeed, all the traces around the through-holes are ripped off. If you are CNC milling the PCB maybe try drilling the holes first and then route the traces (if you didn’t already)

    If you drilled first and then routed the traces maybe your bit has a lot of runout? Aside from the holes it doesn’t look bad, though.

    Although I have all the tools here to try PCB milling I haven’t yet, since the etching worked fine for me so far, so I don’t really know what is going on πŸ˜‰

    modelleicher
    Participant

    Since I’m too stupid to find the “edit” button I can’t edit my last post.

    Anyways, regarding the “shield” idea..

    Here is the second version of my receiver. I don’t know if it works yet, I made it two or so weeks ago but didn’t test it yet. I tried to get it as small as possible, but it is still too big for my other tractor.

    Its basically a sandwich, the pcb at the bottom, the arduino on top and the NRF module on top of that. I have no idea if there are any interference issues.. Don’t think so with 2.4Ghz but not sure. Also I haven’t found a place for the 200Β΅F cap.. That I would need to solder on where ever I’d find room in the model. (Of which there isn’t any..)

    This would be the PDF version of that I used for the etching. (its mirrored for toner-transfer)
    https://www.file-upload.net/download-12414450/Mainboard2_etch_copper_bottom.pdf.html

    This would be the PDF for the small PCB I used as a baseplate inside the tractor from the posts above. (also mirrored)
    https://www.file-upload.net/download-12414451/NRF24Baseplate_etch_copper_bottom.pdf.html

    If there is enough room in your model you could just make a receiver board with headers for the NRF module and the arduino so you can take it apart or change it around later.. I haven’t asked yet, what are you building? A tractor or something else? Just curious πŸ˜‰

    modelleicher
    Participant

    Hi,

    The NRF24 module connects to the Arduino as following:

    NRF ———— Arduino
    Pin 1 —GND— one of the GND pins
    Pin 2 —3.3v– AMS1117 3.3V regulator
    Pin 3 —CE — Pin 9
    Pin 4 —CSN— Pin 10
    Pin 5 —SCK— Pin 13
    Pin 6 –MOSI— Pin 11
    Pin 7 –MISO— Pin 12

    On the receiver:

    Pin 3 on the Arduino –> PWMA on the TB6612FNG
    Pin 4 on the Arduino –> AIN2 on the TB6612FNG
    Pin 5 on the Arduino –> AIN1 on the TB6612FNG

    Pin 7 on the Arduino –> steering servo signal

    Pin 8 on the Arduino –> lights on/off (switching lights to ground)

    Pin A0 on the Arduino –> Battery voltage reading, see the section in my previous post about the voltage divider to read battery voltage

    The NRF24 pins are fixed, the other ones you can change around in the sketch, they are defined right in the header. You just need to make sure you use a PWM Pin for the motor PWM output. Although if you build in 1/24 scale you might use a proper speed controller instead of the TB6612FNG I guess so you might have to change that whole part anyways.

    On the sender side:
    Y Axis potentiometer –> A0 Arduino Input
    X Axis potentiometer –> A1 Arduino Input
    RY Axis potentiometer –> A2 Arduino Input
    RX Axis potentiometer –> A3 Arduino Input

    Joystick Button1 –> Pin 2 Arduino Input
    Joystick Button2 –> Pin 3 Arduino Input

    Adress Jumper/Switch 1 –> Pin 5 Arduino Input
    Adress Jumper/Switch 2 –> Pin 6 Arduino Input
    Adress Jumper/Switch 3 –> Pin 7 Arduino Input
    Adress Jumper/Switch 4 –> Pin 8 Arduino Input

    6 Button Voltage Divider Input -> A7 Arduino Input

    The sender code hasn’t the Input Pins defined in the header yet, you can still change them around. Aside the fact that the analog pins have to be analog pins there is nothing special going on.

    Here are the schematics for the sender:

    And for the receiver:

    I hope I didn’t make any mistakes in the schematics..

    modelleicher
    Participant

    Hi,

    I have the PCB Layout in Fritzing, I don’t have any shematics. But I can draw some, its pretty straight forward not much to it neither the sender nor the receiver are complicated.

    in reply to: Cant center the steering servo #3545
    modelleicher
    Participant

    Hi,

    Probably nothing you don’t know that I can tell you.. But I try anyways.

    The Servo values are between 0 and 180 typically. So the min and max values have to be below that. The center is always between the min and the max value.
    So if the min value is 90Β° and the max value is 110Β° the center is 100Β°. If the steering is off-center it seems likely that the min and max values are off center at first.

    The printed values you listet above make perfect sense.
    If the minimum is 90Β° and the max. is 110Β° and you have an Input of 125 (slightly below 127, the half-way point) you get an output of 99 (slightly below 100, the center for the servo)

    So the code seems to be doing what it is supposed to be doing. At an Input of 127 you don’t get 90Β° (half way there in the pwm signal) if the min and max values aren’t offset from those 90Β° the same amount in either direction. (like min. 80 and max. 100 = 90Β° at center)

    So far so good, but I guess you already knew all of that.

    What Servos are you using? Not all servos can travel the whole 180Β° the Arduino library supports. Some do only 90Β°.
    Also, not all servos are.. “fail save”. For example the cheap 4.3g tiny servos from china don’t have an end-stop. If you give them values below 12Β° and above 160Β° roughly they start just turning endlessly.. So it could also be that you have a problem with your servos.

    By the way if you still don’t know what the map function does:
    x = (y, min, max, minA, maxA);
    x = (512, 0, 1023, 0, 127);
    –> x = 64;
    So the first value (y) is the start value. The min and max are the boundarys that start value operates in. The minA and maxA values are the boundarys the output value operates in. The output value is then calculated accordingly (relative to the boundarys)
    You can also do something like this:
    x = (255, 0, 1023, 1023, 0);
    –> x = 768;
    to reverse the value.

    Greetings also from germany

    modelleicher
    Participant

    Hello,

    Since the last time I’ve made some changes to the code. First of all, the Sender is now a bit updated. I have added some basic inertia simulation because with my 2S Lipo the tractor did launch and stop quite quickly, also the Servo reacts very apruptly now. (Its only supposed to get 7.2V max.. and the Siku Motors are made for a 1S Lipo)

    Here is that part:

    
      // some very basic inertia simulation so the vehicle doesn't launch forward/backward and to limit the steering speed since the servo with a 2S Lipo is really fast
      // instead of the raw value the final value is sent to the vehicle. The final value is pretty much just a smoothed out version of the raw value. The higher the
      // difference between raw and final value is the faster the servo/motor accelerates
      // change the following two values to adjust, the lower the value the quicker the final value will follow the raw value.
      #define steeringInertiaValue 6; 
      #define drivingInertialValue 9;
      // steering:
      if (raw_X >= final_X) // if the raw value is lower than the final value
      {
        int diff = raw_X - final_X; // get the difference between both values
        diff = diff / steeringInertiaValue; // the difference gets divided by the "inertia value"
        min(final_X = final_X + diff, raw_X); // now the difference is added to the final value
        
     }
      else if (raw_X <= final_X) // this is pretty much the same as the above just in the other direction
      {
        int diff = final_X - raw_X;
        diff = diff / steeringInertiaValue;
        max(final_X = final_X -diff, raw_X);
        
      }
      // driving: 
      if (raw_RY >= final_RY)
      {
        int diff = raw_RY - final_RY;
        diff = diff / drivingInertialValue;
        min(final_RY = final_RY + diff, raw_RY);
        
     }
      else if (raw_RY <= final_RY) 
      {
        int diff = final_RY - raw_RY;
        diff = diff / drivingInertialValue;
        max(final_RY = final_RY -diff, raw_RY);
        
      }
      // 

    There are also some Bugfixes, the speed selection works now as it’s supposed to.
    The complete code:
    http://pastebin.com/SiL8PBmG

    There were also some changes to the tractor code. Headlights, battery voltage measurement and warning when the voltage reaches a low value for example. Also the address stuff works now.
    Since I used a 2 cell Lipo I had to use a voltage divider for the battery voltage measurement as the Arduino can only take a maximum of 5V to its input pins. I’ve used a 75:25 voltage divider because my Arduino runs on the 3.3V regulator with the NRF24 module now, so the max. voltage I can supply to the Inputs is 3.3V. Therefor at 8.4V max voltage if the batterys are fully charged I get only 25% of that, ~2.1V, at the input pin.
    Again, it doesn’t have to be absolutely acurate, I just use the analogRead function. The vehicle lights will start flashing at 6.6V left in the battery so I’m way above the dangerous discharge area of below 6V.. Just to keep the batterys safe πŸ˜‰

    Here is the code for that:

    
    
    void checkBatteryVoltage(int dt)
    {
             // since LiPo cells can take damage or even explove if over-discharged we need to monitor the voltage
            // some LiPo cells come with protection circuits on the cell itself, but the cheap ones i use don't.
            // also most multiple cell lipos dont. I use a 2S Lipo in this tractor.
            // so we read the current battery voltage with analogRead and a voltage divider since the arduino runs on 3.3V and the LiPo fully charged has 8.4V
            // My Arduino runs on 3.27V usually, that means that our lower limit of 6.6V is reached at a analogRead value of 687
            // I did want to take the internal voltage into account but floating point math isn't that great on the arduino, and since i had a conservative number for the lower limit i think we'll be fine.
            // you need to change this whole thing if you are not running the arduino off of a 3.3V regulator!!!
           
            //batt_internalVCC = getVCCReading();
            
            batt_rawAnalogRead = analogRead(PIN_batt_readVcc);
            if (batt_rawAnalogRead <= 687) 
            {
                 Serial.println(batt_milisecondsLow);
                batt_milisecondsLow = batt_milisecondsLow + dt;
                if (batt_milisecondsLow > 1000) // battery is low for more than 1 second (to avoid shutting off on current spikes)
                {
                    goBlinkLowBatteryLights(); // blink the lights really fast to show that the battery is empty
                    batt_milisecondsLow = 0; // reset the battery low timer.. So the lights will start again after 1 second until battery is changed
                }
            }
            else
            {
                batt_milisecondsLow = 0;
            }
            //Serial.println(batt_rawAnalogRead);
    }

    I have also added all the output pins and the steering servo limits to the top of the sketch so they can be changed quickly without scanning through the sketch.

    Here is the entire sketch as it is right now:
    http://pastebin.com/0ZiLr9kn

    As always feel free to use and modify or do whatever with the code. But now that we are dealing with battery stuff, use at your own risk of course, I have not testet the sketch enough to feel comfortable to guarantee anything πŸ˜‰

    Hope whoever is reading this has a nice day πŸ™‚
    modelleicher

    modelleicher
    Participant

    Hello,

    Some progress has been made. I’ve added addresses to the whole thing. But i’ve also added some buttons..

    Now, first i thought that i had enough pins, but then i realized that a few more buttons can’t be bad. So i thought about adding a second arduino. But as i have 4 free analog inputs that is not neccessary yet. Two of the free analog inputs i want to keep in case i need more potentiometers later on (i want to add at least one more).
    But that leaves me with two analog inputs left.. Good for at least 12 Buttons.

    For now i am only using 6 buttons (5 in fact as i didn’t find a 6th one in my parts collection)

    Anyways, i have added two small PCB’s to the controller, one for the address jumpers and one for the 6 pushbuttons.

    Now, how do you get 6 pushbuttons on one arduino input? Its pretty simple, using two voltage dividers in series. Each one is a 75:25 divider which gives 4 different values depending on which button is pressed. Now you can add two more buttons pulling the input pin either high to vcc or low to ground. In total, 6 buttons.
    Only drawback, you can’t press multiple buttons at the same time.

    Here is a scematic of this:

    The resistor value doesn’t matter as long as it is above 1k and R1 & R3 have the same value and R2 and R4 are roughly double the value of R1. I didn’t have exactly double so the values in the shematic are what i used. If you have a different divide you have to adjust the values in the sketch to compensate.

    Here is the sketch for the buttons in particular:

    
      // get 6 buttons from one analog pin using voltage dividers and analog read.
      anRead = analogRead(A7);
    
      if (anRead < 560 && anRead > 490) {
        raw_buttonByte2 = B00000000;
      }
      else if (anRead < 20) {
        raw_buttonByte2 = B00000001;
      }
      else if (anRead < 270 && anRead > 200) {
        raw_buttonByte2 = B00000010;
      }
      else if (anRead < 450 && anRead > 390) {
        raw_buttonByte2 = B00000100;
      }
      else if (anRead < 660 && anRead > 585) {
        raw_buttonByte2 = B00001000;
      }
      else if (anRead < 820 && anRead > 720) {
        raw_buttonByte2 = B00010000;
      }
      else if (anRead > 900) {
        raw_buttonByte2 = B00100000;
      }
    

    As you can see, the analog value is read first, then we see in which range the analog value is.. And according to that we know which button is pressed.
    Since the two voltage dividers are in symmetrie, when no button is pressed its always VCC / 2 or in analogRead values ~512 (since 1023 is VCC).
    The best way to get the right values if you are using different resistor values is to just Serial.println(analogRead(analogPin)); and press each button and note the value. Then change the range values to fit those values.

    Anyways, here is the complete sketch of the sender at the moment:
    http://pastebin.com/QUUYZL4C

    I have to do some cleanup in the sketch soon, add a few functions and put stuff from the main loop into functions.. But i want to document the process of the whole thing here.. Don’t know why but maybe somebodys is interested.. πŸ˜€

    Here are a few pictures and a little description how i make my PCB’s in case somebody wants to know.

    Instead of the usual iron method i hadn’t much luck with, i am using a wood stove.
    The PCB lays on the hot surface face-up, heats up and then the paper is pressed on using a roller. It gets rolled and pressed for a few minutes and in each direction (the pressure is really what transfers the toner)

    Once that is done i spray a bit of water on the hot PCB, it seems to seperate the paper from the toner better that way.
    After that, it cools down and soaks for 10min in dish-soap water

    The paper peels off very easily and cleanly and the toner is transfered perfectly.
    Even though i have an old printer that has some dark and light spots.. With the iron method i always had some spots where
    the toner just did not transfer properly on the light areas.

    This is what it looks like after etching.

    I use Ferric Chloride to etch, i guess its just personal preference. It can make a mess, but doesn’t require anything special but some sort of plastic or glass tray to etch in and gloves.

    Anyways, here are the finished new boards

    And glued and soldered to the controller

    At the moment i am using one of the buttons to switch between 3 max. drive speeds to allow for finer control.. (A detail i saw in the RCTractorGuy code and i really liked) but i want to use some seperate buttons or switches to do that at some point. The 6 buttons in the middle of the controller will be used for lights and turn lights and that stuff i guess.
    But i am not even sure if i will use lights on my vehicles.. I hate having wires everywhere for the LED’s.. And although lights are extremely cool looking, they are not useful. In all the time “playing” with Siku Control i might have driven in a dark room maybe 4-5 times if at all. Usually i want to see the model drive.. So i don’t need any lights anyways. So i’m not sure yet.. Maybe just indicators and normal lights.. Not full worklight stuff.. We’ll see.

    Regards,
    modelleicher

    in reply to: First Attempt JD 9560R Build #3539
    modelleicher
    Participant

    You can upload the Blink Sketch to the Arduino to test if they are working..

    I’ve had a hard time getting my NRF Modules to work the first time. But i didn’t use the RC Tractor Guy code. So not sure if it was software or hardware related.

    Anyways, here is what I noticed:
    – NRF24 needs stable power supply (9V battery appearantly doesn’t have enough current, so rather a few AA cells or lipo)
    – it is good practice to solder a capacitor across 3.3V and GND on the NRF24 module (at least 100Β΅F I would say) although it seems to work fine without for many people
    – some jumper cables are terrible at making a good connection, so for stable communication to the NRF24 make sure the wires have good contact and as less possible failure points (connections) as possible

    Also, if you are not using an external voltage regulator make sure the Arduino is a true 3.3V arduino. Otherwise wiring the whole thing like in the circuit diagram will result in 5V to the NRF module which very likely will destroy it.

    modelleicher
    Participant

    Now to the receiver part.

    The receiver uses an Arduino Pro Mini, a NRF24 module and a small PCB on which the NRF24 module is mounted. Also a AMS1117 3.3V regulator and again a 200Β΅F capacitor. I’m also using the TB6612FNG motor driver.
    This setup is too big for smaller tractors, that is why I use a older model of mine to test it. I will show the model in detail later. It’s a Deutz Fahr D16006 I purpose-built for the use with Siku Control motors and electronics years ago after I stared at the parts graveyard of my previous Control tractors for too long one night. It was never finished (not painted, no details.. many issues.)
    But back to the controller.

    This Pro Mini has extra pins for pin 11,12 and 13 for the SPI bus. No idea why, but i like that. The wires are out of the way that way.

    And here is the current code:
    http://pastebin.com/rgki6yYX

    Again, very basic and work in progress. And again, feel free to use, modify, whatever πŸ™‚

    The next thing to add (receiver and sender) is a adress system, buttons and pins for lights, maybe indicators.. Stuff like that. I also want to implement some basic inertia simulation so the tractor doesn’t launch like a racecar if you don’t touch the controls very carefully. The same for the steering, the little servo is just way too quick especially at 7.2V..

    Now to the tractor. It is a Deutz D16006. The base is made of fine grained red beech wood. (Two reasons, first, we use it as firewood, second, its incredibly fine and sturdy hardwood, perfect for creating models) the details are made using Polystyrene. When I started the build I used to build everything out of wood. Nowadays I probably would use Polystyrene for the complete tractor, although it might be too light then. Anyways.. As I said, the tractor is not pretty and not finished. I just use it as a test vehicle for now.

    So here is a before picture before I removed the Siku Control Electronics. As you can see, I used a standard servo. Then I brought the wires to the motor and the potentiometer out of it and soldered them to the PCB of a Siku Servo I placed in the front of the tractor. Worked perfect, and i didn’t have to use the stupid Siku servos.. But now with the Siku electronics completely gone its way way better πŸ™‚

    Here is a picture of the modified servo for the siku electronics, what a mess πŸ™‚

    Anyways, the Tractor completely without electronics

    And here with the Receiver board test-fitted.. A lot of cleaning up wires to do still..

    I also have a video from the very first test drive. Sorry for the horrible quality, I used the wrong setting on the camera.

    Regards,
    modelleicher

    in reply to: First Attempt JD 9560R Build #3535
    modelleicher
    Participant

    Hello,

    Yes, one ground is enough. If the Arduino is supplied with its own power you don’t need to connect vcc.

    TX on the arduino connects to RX (RXD) on the USB adapter.
    RX on the arduino connects to TX (TXD) on the USB adapter.
    DTR on the arduino connects to DTR on the USB adapter.

    RX to TX and TX to RX because TX -> transmitting and RX -> receiving, so the port the arduino is receiving from goes to the port the USB adapter is sending from and vice versa.

    in reply to: Introduce Yourself #3534
    modelleicher
    Participant

    Hello everybody,

    I guess I introduce myself here, too. I found “The RC Tractor Guy” on Youtube about 2 month ago while I was looking for videos on how to implement the NRF24 module. It was like “oh, wow, this guy did exactly what I want to do, great!” as i did not think that anybody had yet used the NRF modules in 1:32 RC models yet. Well, then i watched a lot of the videos, wrote a few comments and eventually endet up here in the forum.

    Enough as to how i found this forum, now a bit about my past RC experience.

    I got the first Siku Control tractor (a John Deere 6920S) two weeks after it was released. I was 12 years at the time. Already having Siku and Tractors as my Hobby all my life I couldn’t wait for the Siku IR release after I first heard of it. Since it was a christmas gift I had to wait an additional 6 weeks until I finally got it.. (although my parents let me do a test drive the day they bought it) So obviously i couldn’t wait and the days after christmas the tractor only stopped to recharge the battery.

    Well, over the next 2-3 years I got a few more Siku Control.. And I started to modify them. And eventually taking the electronics and putting them into different tractors. Sadly, all of this failed. The first one (a Eicher, hence my name, created back then and stuck) did hold up for a while. But i wanted to make it better, changing things.. Eventually i had resoldered probably about 50% of the wires and it just was a huge mess.
    The second one didn’t even last a few days, as I was getting sick and tired of resoldering broken off wires.
    (No idea how other people did it, back in the day many used the entire Siku electronics and put them into all kinds of vehicles.. )

    Anyways, the RC hobby was kinda dead for me then. But then the Agrotron X720 came out and I got that one. I enjoyed it quite a bit and swore to myself never ever to even do as much as open the baseplate of the model to have a look.. I also got the Lanz Eilbulldog, just because I love old tractors and it is cute.

    All that aside, i was really interested in the IR technologie. Compared to usual RC it was extremly easy, just a few parts and no radio frequency stuff.. So i read a lot on the internet, and pretty soon developed the dream to create my own RC Controller with IR or at least create a receiver for the Siku Controller. I also learned about Microcontroller.. But I had no knowledge about electronics at all, nobody to ask.. And no idea youtube was a thing. (Although I think 2008ish there weren’t many tutorials on youtube) Also, i didn’t know of Arduino (did it even exist?) so all i saw was complicated programmers, programs.. Pics and Atmel chips, ISP programmers for a lot of money.. So i never got around to try it.

    I was reading about electronics from time to time, but i didn’t understand much and not doing anything myself, just reading, I forgot most of the stuff right away. Finally, i found out about Picaxe. And after reading a lot about them i got me one. Now I was cooking with gas and the DIY IR RC Controller was in arm’s reach.. in theory at least.
    I did a few blink projects with the Picaxe, but as soon as i tried to do IR stuff i failed. I didn’t know enough about it.. Also, i didn’t know any english so i couldn’t even look for tutorials. (German youtube at the time didn’t have much in terms of electronics).

    Things changed once my cousin gave me an arduino. I heard of them before, but where I was reading people were making fun of them. “Beginners stuff” so I believed that. Also, i didn’t know about Clones from China, and 30€ was just a lot of money. Also, there is no way to fit an Arduino Uno into a tractor. Anyways, as i had that thing know I needed to find some projects.. So I read and watched youtube videos.. By that time I did understand quite a bit of english already, and it opened up a whole new world. Now that I actually did a few projects I started to understand electronics and how they work. I also finally got how Radio Control over IR worked. Now I was determined to find out how the Siku Control IR Protocol worked.. So i got a Logic Analyzer, and analyzed it.

    After a lot of testing i had it all, just not the checksum. I just could not figure out how it was calculated. I tried to use the receiver without a checksum, but i kept getting so many wrong values and interference that it just was not possible. Servos kept jumping around.. Then I did smooth the values per software, which did work. But if I smooth too much the reaction is just too slow, and if I did not enough, it just was jumping around.. So no real solution.
    Anyways, i actually found a old video of that..

    But, back from the past to the present. I got NRF modules about two years ago. I never did anything with them since I was too lazy to look for a library at the time and then just forgot. So whilest going about digitizing some MΓ€rklin Train with Arduino I came across my NRF modules. And somehow I was now determined to use them.. And that is how I found the RC Tractor Guy channel. To my surprise he also reverse engineered the Siku Control Protocol, and he got the checksum math. So I implemented his calculation into my receiver, and it worked! Sadly, I still got weird values and jumping.. The IR stuff just isn’t that precise.
    Now I was even more determined to make use of the NRF modules.

    After failing a lot, I got the modules working about two weeks ago. I built myself a bare basics controller, and it worked. The last two days I spent putting together the receiver in a test tractor.. And just an hour ago I did the first test drive. I had a smile across my face, a big smile!
    Finally, after years of thinking about it I had built my own RC Controller and Receiver.

    Why all of this you might ask?
    First of all, the Siku Controller is limited in functions. Second, if I use the Siku Receiver it only can use Siku Servos, which suck. Luckily, some people were way faster decoding the protocol so there are pre-programmed Microcontrollers to use as Siku IR receivers out there. Most people for the past few years used those instead of using the original Siku electronics.
    Still, one of those is 35€, a lot of money. And there we are at the third reason.. I was sure that it is way cheaper to built them myself. If I just have to spend half the money building a tractor I can build twice as many.. which is awesome, of course πŸ˜€

    Anyways.. Now you all know a lot about my past experiences with RC tractors. Things I might want to add to that, I’m from germany, besides RC tractors I like real tractors and vintage tractors, I also have a bit of a passion for certain cars. I love programming and i love electronics.. naturally, i love Arduino. Also, once I start writing a post, it usually gets quite long.. Sorry about that..

    Regards,
    Samu / modelleicher

Viewing 13 posts - 1 through 13 (of 13 total)