Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 23:27 09 May 2025 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Switch ARLEC Remote Control Power Point

Author Message
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 971
Posted: 03:26am 27 Feb 2017
Copy link to clipboard 
Print this post

This post way back http://www.thebackshed.com/forum/forum_posts.asp?TID=8079 started me thinking whether the ARLEC switch could be switched from a Micromite by using on of these 433.92MHz transmitters.

5Pcs 433Mhz Wireless RF Transmitter and Receiver Kit For Arduino MCU

I found a bit of Arduino code that captured the data and found it was a 32 bit code. I had two remote controls so captured their codes and managed to send them from the micromite with some success. The MX470 could do it from basic but the MX170 was just not quite fast enough to generate the pulses in basic.

So after a few months delay I have used Matherp's bitbanger CFunction to send the codes and it now works reliably.

I added one these 10 Pcs 433MHZ Spiral Spring Helical Antenna 5MM as an antenna (~17.2cm of wire works as well).

Bunnings used to have the ARLEC RC10 as the three pack for $25.00 ($13.00 for a single) but they recently disappeared and the new model RC210 is now $36.00 for a 3 Pack. So I had to buy one of the new ones and see if they work the same. The Arduino program would not decode or see the code so I thought all was lost. I captured the code with the logic analyser and it only differed with an extra stop bit at the end.




This shows the code of interest being repeated about 5 times with various syncing before and after. You need to find where the code is repeating and decode one of those sections.




The basis of the code is 0 = 1 short pulse + 1 long pulse and
1= 1 long pulse + 1 short pulse
A long pulse is 3 times the length of a short pulse.
I have not managed to work out how its coded, but by capturing what the remote sends and replicating with the Micromite it, it works well.

The code below should run on any Micromite (MX170/MX470) and need a touch screen of any size configured. Add a transmitter and it should be able to control both the ARLEC RC10 and RC210 using the codes sent by my 2 * RC10 remotes and single RC210 remote.

The power switches need to be programed to accept the codes.
The RC10 model allows this by pressing the button on it. It then accepts the next on code is sees as it own. Arlec RC10 Manual
The RC210 model has no button, but is in program mode for 5 seconds when power is first applied.

Hope its useful,
Gerry


  Quote  
' ARLECSwitch.BAS
' The program controls ARLEC RC10 and RC210 remote power switches using a cheap 433.92 ASK transmitter.
' G.A. V1.00 27/02/2017

'Instructions:
'Should run on any MicroMite , MX170,MX470 with touch enable and any supported screen
' Connect the XMitter to a pin on the MicroMite
'The default pin for XMIT is 26 on MX170 and 50 MX470 (this can be changed down about line 47.

'bitbanger CFuntion by matherp of TBS Forum
'Usage is simplicity itself:

'Set up the pin as an output and set it to the required initial condition high or low
'set up an array of bit lengths in micro-seconds expressed as floating point numbers
'call the bitbanger CSUB

'At the end of each bit duration the CSUB will invert the output so you need to specify both the on and off durations.
'The CSUB takes care of things like CPU speed but of course the faster the CPU the more accurate the bit lengths
'If an even number of bits is specified the output is left in the same state as it started. An odd number will result in
'it ending up inverted. In both cases the last duration specified does not result in a transition but must be included to terminate the CSUB


'Setup commands for SNADPIC MX470 100 Pin
'OPTION AUTORUN ON
'OPTION LCDPANEL ILI9341, RLANDSCAPE, 19, 42, 35
'OPTION TOUCH 33, 1
' OPTION SDCARD 14,18

'E64 setup
'OPTION LCDPANEL ILI9341, RLANDSCAPE, 27, 28, 24
'OPTION TOUCH 51, 33

'BP170 bigmick
'OPTION LCDPANEL ILI9341, LANDSCAPE, 4, 5, 6
'OPTION TOUCH 7, 2


Option explicit
Option default NONE
'OPTION AUTORUN ON

dim integer xmitpin ' the pin connected to the 433mhz module data pin
dim integer mx470=0
if npins()>44 then mx470=1
' Set the pin that is connected to the 433MHZ ASK transmitter
if mx470=0 then
xmitpin=
26 ' the pin connected to the 433mhz module data pin
ELSE
xmitpin=
50 ' the pin connected to the 433mhz module data pin
END if


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Turn on the backlight if required.
'See if its one of the SSD1963 screens
if peek(byte peek(word &H9D000090) + 20) < 7 and peek(byte peek(word &H9D000090) + 20) > 0 then
BACKLIGHT 30
endif
'SETPIN 26 ,DOUT
'PIN(26)=0 'may need to be 0 or 1 depending on how backlight is driven for the LCD
' YOU MAY NOT BE ABLE USE PWM with OSCILLOSCOPE AS IT WILL STOP PWM during CAPTURE
'pwm 2,1000,50 'Backlight on Ultimate PCB: omit if not required



'Define the fonts used

CONST fStandard=1 'font with extra character graphics
'CONST fGraphics=4 'font used to store big graphics symbols

CONST cButton = RGB(cyan) ' the key colour
CONST cSpecial = RGB(248, 184, 184) ' special buttons


dim integer touchx,touchy
dim integer key_coord(30, 5)
dim integer key_font(30)
dim String key_caption(30)
dim integer selected(20)

dim integer x,c

dim integer hres=MM.HRES,hres1=MM.HRES-1,hres2=MM.HRES/2,hres3=MM.HRES/3,hres23=2*hres3,hres6=MM.HRES/6,hres8=MM.HRES/8
dim integer vres=MM.VRES,vres1=MM.VRES-1,vres2=MM.VRES/2,vres3=MM.VRES/3,vres6=MM.VRES/6,vres8=MM.VRES/8


'set up the various values based on screen size
'Set default font with scale MM.VRes/240 'i.e. scale 1 for 320*240 and scale 2 800*480
CONST fscale=vres/240 '1 for 240, 2 for 480
FONT 1,fscale


'normal button width and height
CONST bw=60*fscale
CONST bh=30*fscale

dim float lengths(68)

' set up the code and pin details
dim integer numberofbitsincode=32 'number of bits in the code.
dim integer pulsecount=numberofbitsincode*2 'number of inversions in the code ie. 1 down + 1 up per bit in the code
dim float pulselength=270 'the number of microseconds for the basic short pulse length A long is 3 times this
dim integer repeat=15 'number of times to repeat the transmission


'this code is the one assigned to my device
'if you dont know what you remote's id is. The sockets will learn the code
'when in program mode.

' ARLEC RC10 Unit 1
dim integer no1off%=&B00011101100001111000011110100001 ' 1 off
dim integer no1on%= &B00011101100001111000111110101110 ' 1 on

dim integer no2off%=&B00011101100001111000001110100101 ' 2 off
dim integer no2on%= &B00011101100001111000101110101001 ' 2 on

dim integer no3off%=&B00011101100001111000010110100011 ' 3 off
dim integer no3on%= &B00011101100001111000110110101101 ' 3 on

dim integer no4off%=&B00011101100001111000011010100000 ' 4 off
dim integer no4on%= &B00011101100001111000111010101111 ' 4 on

dim integer no5off%=&B00011101100001111000100010101010 ' ALL off
dim integer no5on%= &B00011101100001111000010010100010 ' ALL on




' ARLEC RC10 Unit 2
dim integer no6off%=&B10101001111010000100011110001110 ' 1 off
dim integer no6on%= &B10101001111010000100111110000110 ' 1 on

dim integer no7off%=&B10101001111010000100001110001001 ' 2 off
dim integer no7on%= &B10101001111010000100101110000001 ' 2 on

dim integer no8off%=&B10101001111010000100010110001101 ' 3 off
dim integer no8on%= &B10101001111010000100110110000101 ' 3 on

dim integer no9off%=&B10101001111010000100011010001111 ' 4 off salae
dim integer no9on%= &B10101001111010000100111010000111 ' 4 on salae capture

dim integer no10off%=&B10101001111010000100100010000010 ' all off salae
dim integer no10on%= &B10101001111010000100010010001100 ' all on salae capture


' ALL

'ARLEC RC210 Unit 3
dim integer noaoff%= &B01000011000010000000111001000010 ' A off ARLEC RC210
dim integer noaon%= &B01000011000010000000111101000011 ' A on

dim integer noboff%= &B01000011000010000000110001000000 ' B off ARLEC RC210
dim integer nobon%= &B01000011000010000000110101000001 ' B on

dim integer nocoff%= &B01000011000010000000101001000100 ' C off ARLEC RC210
dim integer nocon%= &B01000011000010000000101101000101 ' C on

dim integer nodoff%= &B01000011000010000000011001001100 ' D off ARLEC RC210
dim integer nodon%= &B01000011000010000000011101001101 ' D on

dim integer noeoff%= &B01000011000010000000100001000111 ' ALL off for 10 secs to reset
dim integer noeon%= &B01000011000010000000010001001111 ' ALL on



dim integer sendit=0
dim integer senddata%,code%
'
'RTC GETTIME
cls

''SETTICK 1000,tick4,4
'FONT 1,2
' Find the touch interupt being used
'http://www.thebackshed.com/forum/forum_posts.asp?TID=8575 for reading Options
dim integer T_IRQ
T_IRQ=
peek(byte peek(word &H9D000090) + 23) 'read the Touch Interupt

if mx470=0 then
SetPin T_IRQ, INTL, PenDown
ELSE
GUI INTERRUPT PenDown
END if


selected(
0)=1 'trigger type global 1 normal 2 Auto 3 single
'DrawOptionButton n,optgrp,optno,x,y,w,h,c,"Off",fstandard,selected
DrawOptionButton 0,0,1, 5*fscale,5*fscale,bw,bh,cButton,"RC10-1",fStandard
DrawOptionButton
1,0,2, 105*fscale,5*fscale,bw,bh,cButton,"RC10-2",fStandard
DrawOptionButton
2,0,3, 205*fscale,5*fscale,bw,bh,cButton,"RC210",fStandard



DrawButton
3,0, 5*fscale,50*fscale,bw,bh,cButton,"1-Off",fStandard
DrawButton
4,0, 5*fscale,90*fscale,bw,bh,cButton,"2-Off",fStandard
DrawButton
5,0, 5*fscale,130*fscale,bw,bh,cButton,"3-Off",fStandard
DrawButton
6,0, 5*fscale,170*fscale,bw,bh,cButton,"4-Off",fStandard
DrawButton
7,0, 5*fscale,210*fscale,bw,bh,cButton,"all-Off",fStandard


DrawButton
8,0, 105*fscale,50*fscale,bw,bh,cButton,"1-On",fStandard
DrawButton
9,0, 105*fscale,90*fscale,bw,bh,cButton,"2-On",fStandard
DrawButton
10,0, 105*fscale,130*fscale,bw,bh,cButton,"3-On",fStandard
DrawButton
11,0, 105*fscale,170*fscale,bw,bh,cButton,"4-On",fStandard
DrawButton
12,0, 105*fscale,210*fscale,bw,bh,cButton,"all-On",fStandard

'Pin 50 is for XMit on 433MHZ XMitter
PIN(xmitpin)=0 ' set the data pin low
SetPin xmitpin, DOUT ' set it as an output


'*************** Main Loop ***************
Do
if sendit=1 then

sendit=
0
senddata%=code%
SEND433MHZ(pulsecount,pulselength,repeat,xmitpin,senddata%)


END if

LOOP
' *********** END ***************************

SUB SEND433MHZ(pulsecount as integer,pulselength as float,repeat as integer ,thexmitpin as integer,senddata% as integer)

local integer savedata%=senddata%
local integer long,short
local integer repeatpause,j,i
'long=pulselength*3-.15 'fudge for Mx170 at 48 MHz
short=pulselength
long=pulselength*
3
repeatpause=long*
10/1000 'is millseconds so divide by 1000
for j=0 to repeat-1
senddata%=savedata%
for i=0 to pulsecount-1 step 2
if senddata% and &H80000000 then
'One
lengths(i)=long
lengths(i+
1)=short

ELSE
'Zero
lengths(i)=short
lengths(i+
1)=long
END if
senddata%=senddata%<<
1
next i
' send the stop bits
lengths(pulsecount)=short
lengths(pulsecount+
1)=long
' Call the CFunction
bitbanger(thexmitpin,66,lengths())
pause repeatpause ' pause between repetitions
next j

END SUB

SUB PenDown
local integer b

touchx=
touch(X):touchy=touch(Y)
'see if we have vailid tuch
if touchx<>-1 and touchy<>-1 then


' get the selected button and take action based on the button
b = CheckButtonPress(0, 12)'Check buttons 0-7

Select Case b

Case 0

CheckButtonRelease b
selected(
0)=1
DrawOptionButton
0,0,1, 5*fscale,5*fscale,bw,bh,cButton,"RC10-1",fStandard
DrawOptionButton
1,0,2, 105*fscale,5*fscale,bw,bh,cButton,"RC10-2",fStandard
DrawOptionButton
2,0,3, 205*fscale,5*fscale,bw,bh,cButton,"RC210",fStandard

Case 1

CheckButtonRelease b
selected(
0)=2
DrawOptionButton
0,0,1, 5*fscale,5*fscale,bw,bh,cButton,"RC10-1",fStandard
DrawOptionButton
1,0,2, 105*fscale,5*fscale,bw,bh,cButton,"RC10-2",fStandard
DrawOptionButton
2,0,3, 205*fscale,5*fscale,bw,bh,cButton,"RC210",fStandard

Case 2

CheckButtonRelease b
selected(
0)=3
DrawOptionButton
0,0,1, 5*fscale,5*fscale,bw,bh,cButton,"RC10-1",fStandard
DrawOptionButton
1,0,2, 105*fscale,5*fscale,bw,bh,cButton,"RC10-2",fStandard
DrawOptionButton
2,0,3, 205*fscale,5*fscale,bw,bh,cButton,"RC210",fStandard

Case 3
CheckButtonRelease b
if selected(0)=1 then code%=no1off%
if selected(0)=2 then code%=no6off%
if selected(0)=3 then code%=noaoff%
sendit=
1

Case 4
CheckButtonRelease b
if selected(0)=1 then code%=no2off%
if selected(0)=2 then code%=no7off%
if selected(0)=3 then code%=noboff%
sendit=
1

Case 5
CheckButtonRelease b
if selected(0)=1 then code%=no3off%
if selected(0)=2 then code%=no8off%
if selected(0)=3 then code%=nocoff%
sendit=
1

Case 6
CheckButtonRelease b
if selected(0)=1 then code%=no4off%
if selected(0)=2 then code%=no9off%
if selected(0)=3 then code%=nodoff%
sendit=
1

Case 7
CheckButtonRelease b
if selected(0)=1 then code%=no5off%
if selected(0)=2 then code%=no10off%
if selected(0)=3 then code%=noeoff%
sendit=
1




Case 8
CheckButtonRelease b
if selected(0)=1 then code%=no1on%
if selected(0)=2 then code%=no6on%
if selected(0)=3 then code%=noaon%
sendit=
1

Case 9
CheckButtonRelease b
if selected(0)=1 then code%=no2on%
if selected(0)=2 then code%=no7on%
if selected(0)=3 then code%=nobon%
sendit=
1

Case 10
CheckButtonRelease b
if selected(0)=1 then code%=no3on%
if selected(0)=2 then code%=no8on%
if selected(0)=3 then code%=nocon%
sendit=
1

Case 11
CheckButtonRelease b
if selected(0)=1 then code%=no4on%
if selected(0)=2 then code%=no9on%
if selected(0)=3 then code%=nodon%
sendit=
1

Case 12
CheckButtonRelease b
if selected(0)=1 then code%=no5on%
if selected(0)=2 then code%=no10on%
if selected(0)=3 then code%=noeon%
sendit=
1

Case ELSE
'? "not valid button"
END Select



END if

END SUB



SUB PenUp

END SUB

' draw a button color=-1 no box drawn,caption="" then no text
SUB DrawButton n as integer, mode as integer, x as integer, y as integer, w as integer, h as integer, c as integer, s as String,f as integer
local integer backcolour, forecolour
local integer btn_backcolour=RGB(blue)

if mode = 0 or mode=4 then
key_coord(n,
0) = x : key_coord(n,1) = y : key_coord(n,2) = w : key_coord(n,3) = h
key_coord(n,
4) = c : key_caption(n) = s :key_font(n) = f
endif

if mode > 1 then
backcolour = key_coord(n,
4) : forecolour = 0 ' draw in reverse video if it is being touched
ELSE
backcolour = btn_backcolour : forecolour = key_coord(n,
4) ' a normal (untouched) button
endif


if key_coord(n,4)<>-1 then RBox key_coord(n,0), key_coord(n,1), key_coord(n,2), key_coord(n,3),3 , key_coord(n,4), backcolour
if key_caption(n)<>"" then Text key_coord(n,0) + key_coord(n,2)/2, key_coord(n,1) + key_coord(n,3)/2, key_caption(n),CM , key_font(n), fscale, forecolour, backcolour


END SUB

' draw a single button in optiongroup
'DrawOptionButton n,optgrp,optno,x,y,w,h,c,"Off",fstandard
SUB DrawOptionButton n as integer,optgrp as integer,optno as integer,x as integer,y as integer,w as integer,h as integer,c as integer, caption as String,f as integer
DrawButton n,
0,x,y ,w,h,c,caption,f
if selected(optgrp)=optno then DrawButton n,2
END SUB


' check if a button has been touch and animate the button's image
' returns the button's number
Function CheckButtonPress(startn as integer, endn as integer) as integer
local integer xt, yt, n

CheckButtonPress = -
1
xt = touchx
yt = touchy
' scan the array key_coord() to see if the touch was within the
' boundaries of a button
for n = startn to endn
if xt > key_coord(n,0) and xt < key_coord(n,0) + key_coord(n,2) and yt > key_coord(n,1) and yt < key_coord(n,1) + key_coord(n,3) then
' we have a button press
' draw the button as pressed
DrawButton n, 2
CheckButtonPress = n
Exit for
endif
next n

END Function


' wait for the touch to be released and then draw the button as normal
SUB CheckButtonRelease n as integer
' if a button is currently down check if it has been released
' reading PIN is quicker after 5.02
if MM.VER < 5.0 then
Do while touch(X)<> -1 : LOOP
ELSE
Do while PIN(T_IRQ)= 0 : LOOP
END if
DrawButton n,
1 ' draw the button as normal (ie, not pressed)
END SUB


'
CFunction npins 'returns the number of pins on the chip in use.
00000000
3C03BF81 8C65F220 3C020661 7CA5D800 3444A053 50A40009 2402002C 8C64F220
2443A053 7C84D800 00832026 2402001C 2403002C 0064100A 3C03BF81 8C66F220
8C64F220 3C030580 3463A053 7CC6D800 00C33026 24050040 7C84D800 24631000
10830006 00A6100A 00022FC3 00402021 00801021 03E00008 00A01821 24040064
00002821 00801021 03E00008 00A01821
END CFunction


CSub bitbanger integer,integer,float 'pin number, number of bits, floating point array of bit lengths in usec
00000000
27BDFFC0 AFBF003C AFBE0038 AFB70034 AFB60030 AFB5002C AFB30024 AFB20020
AFB1001C AFB00018 AFB40028
3C109D00 8E030000 00808821 8E020080 8C640000
00A09021 00002821 00C0B021 0040F809 8E140064 00409821 8E02009C 3C0449F4
0040F809 24842400 00402821 0280F809 02602021 0040B821 8E240000 8E020024
24050007 0040F809 241E0001 AFA20010 8E020028 0040F809 8E240000 8E520000
8E030040 005EF004 0060F809 00122080 AFA20014 12400013 0040A821 0000A021
00008821 3C139D00 0014A080 02D41821 8C640000 8E620058 8E70007C 0040F809
02E02821 26310001 0200F809 00402021 02B4A021 0232182B AE820000 1460FFF2
0220A021 8FA30014 3C040008 8C620000 2442FFFD AC620000 3C03BF88 AC641064
3C03BF88 00001021 AC601068 40824800 8FA50014 8FA30010 2652FFFF AC7E0000
8CA40000 00442021 40024800 0044182B 1460FFFD 00000000 1640FFF6 24A50004
8FBF003C 3C020008 3C03BF88 AC621064 3C03BF88 8FBE0038 8FB70034 8FB60030
8FB5002C 8FB40028 8FB30024 8FB20020 8FB1001C 8FB00018 AC621068 03E00008
27BD0040
END CSub










Footnote added 2025-03-09 12:28 by disco4now
Correct Link to original article
Corrected the link to the original post which inspired the decoding
Latest F4 Latest H7 FotS
 
RonnS
Senior Member

Joined: 16/07/2015
Location: Germany
Posts: 120
Posted: 05:08am 27 Feb 2017
Copy link to clipboard 
Print this post

hello Garry,

many thanks for sharing your work with us , i think its very useful for my own project so i hope i will understand this to use it by myself.

SmartHome Control

just i dont have an MM LCD Board to try it, i use an MuP V2 MX170 28Pin to explore the codes and I'm just trying to get such a cheap remote control to run
but the "smartwares"-parts are working !

please could you took a look at my thread and help me to select the lines i need to try your codes ?

many thanks Ron
 
RonnS
Senior Member

Joined: 16/07/2015
Location: Germany
Posts: 120
Posted: 05:26am 27 Feb 2017
Copy link to clipboard 
Print this post

The following pattern I have determined with "pulseview"
measured values in microseconds


500 2150

450 1100 1100 350
450 1100 1100 350
1200 350 1200 350
1200 400 400 1150
1099 400 1100 400
1100 450 1100 400
1100 450 350 1150
350 1100 350 1100
400 1100 1100 400
350 1100 350 1100
350 1149 350 1100
350 1100 350 1100

350 2000
Edited by RonnS 2017-02-28
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 971
Posted: 12:25pm 27 Feb 2017
Copy link to clipboard 
Print this post

A correction in the CheckButtonRelease SUB.
Needs to test MM.VER < 5.03 in stead of 5.0 as 5.03 is where the reading of the T_IRQ pin became allowed.


  Quote  
' wait for the touch to be released and then draw the button as normal
Sub CheckButtonRelease n As integer
' if a button is currently down check if it has been released
' reading PIN is quicker after 5.02
IF MM.VER < 5.03 THEN
Do while touch(X)<> -1 : LOOP
else
Do while PIN(T_IRQ)= 0 : LOOP
end IF
DrawButton n,
1 ' draw the button as normal (ie, not pressed)
end Sub


Latest F4 Latest H7 FotS
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6219
Posted: 04:20pm 27 Feb 2017
Copy link to clipboard 
Print this post

I have used the Kambrook units previously to run the coffee machine and currently have a RC210 controlling my bore pump.

I have done it the primitive way - relays activating the supplied remote.
The lack of a manual control on the RC210 is annoying.

I will have to get some transmitters and play with your code
Thanks for sharing it.

Jim

VK7JH
MMedit
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6219
Posted: 06:07pm 14 Mar 2017
Copy link to clipboard 
Print this post

My RF modules arrived today.
Your code works well with my ARLEC RC210 units.

I have stripped the relevant parts out of your demo and grafted it into my solar battery monitor.
Now I can cheat and turn the AC charger on if we get too many cloudy days.
Will come in handy in a few months time.

I tried to use the receiver connected to a serial port handshake line to make a cheap and nasty protocol analyser but the module puts out too much noise. More work needed.
2017-03-15_040554_MX_FS_03V_RF_RXTX_modules.pdf
The attached PDF has the circuit of the TX and RX modules for anyone interested.

Jim
VK7JH
MMedit
 
CaptainBoing

Guru

Joined: 07/09/2016
Location: United Kingdom
Posts: 2139
Posted: 04:23am 15 Mar 2017
Copy link to clipboard 
Print this post

thanks for the PDF Jim
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 971
Posted: 05:54pm 15 Mar 2017
Copy link to clipboard 
Print this post

Hi Jim,
Good to see it works for you.
Thanks for the feedback.
Gerry
Latest F4 Latest H7 FotS
 
tangowhisky37
Newbie

Joined: 02/10/2017
Location: Australia
Posts: 1
Posted: 04:35pm 08 Oct 2017
Copy link to clipboard 
Print this post


Folks,

I picked up some Arlec RC210's earlier last week and have been looking to get them working with my Arduino's but didn't have much success.

I did come across this forum but the code posted here didn't work for me. Guess the manufacturer has updated stuff.

Anyways, I figured out a way to sniff the code by analyzing the signals using my Raspberry Pi, PiScope, GTKWave. Am just amazed at what both PiScope and GTKWave offer as an opensource solution for waveform capture/analysis.

Anyways the codes are below. I'll add the rest once i complete analysis of the remaining switches.

Arlec 201 433Mhz Codes -

* 00111111101110010000111110010001 <- Channel A On
* 00111111101110010000111010010000 <- Channel A Off

Additional details will be posted here - https://github.com/tangowhisky37/LetsHack

Cheers,
Trevor
trevor at practical performance analyst dot com
 
GoodToGo!

Senior Member

Joined: 23/04/2017
Location: Australia
Posts: 188
Posted: 11:07pm 08 Oct 2017
Copy link to clipboard 
Print this post

Stupid question, but I wonder if a HC12 would work?

GTG!
...... Don't worry mate, it'll be GoodToGo!
 
CaptainBoing

Guru

Joined: 07/09/2016
Location: United Kingdom
Posts: 2139
Posted: 11:46pm 08 Oct 2017
Copy link to clipboard 
Print this post

HC-12 is designed more for a specific task - that of an 8-bit serial comm link. Adapting to the 32 bits here (or any other protocol) would require tweaking the firmware on the on-board microcontroller. It hides all the radio stuff from you and just presents as a well-trained serial device.

a micromite and 433MHz radio module can be effectively the same thing as an HC-12 but it allows off-loading all the tedious mucking about with signal conditioning etc., so you can just get on with the meat of your task.
 
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025