Project

General

Profile

Exactly what do I need to get going with a JeeNode Micro? Should I?

Added by JMB about 5 years ago

I am very much a beginner in microcontroller programming and have not found the answers to my questions by searching - probably because I do not know the correct search terms. If I am asking for stuff which is already available can someone please point me at the right place to look? I urgently need to replace failed central heating controls and must short-circuit as much of the learning curve as possible before my freezing wife calls in a professional to install a far less smart - but working NOW - system.

I wish to use several handfuls of JeeNode Micros (or something similar) to report room temperatures and door/window open/closed states to a (Raspberry Pi) central heating controller. Before I spend money on hardware I should like to be certain what I need to buy.

I can program an Arduino Pro (5V) and have a CP2102/B75937 USB-Serial Interface which I assume will program a standard JeeNode, but if I understand what I have read here I must also have a standard JeeNode (or an Arduino 3.3V) to program a JeeNode Micro but do not necessarily need an additional Flash Board. Is this correct?

Does the additional hassle (for an inexperienced user) of programming a JeeNode Micro rather than a standard JeeNode justify the use of the larger (and more expensive) device? Since I am (slightly - not an expert) familiar with the Arduino Pro might it even be better for me to use an Arduino Pro 3.3V and an RFM12B? Can this be made to shut down to very low power and wake up briefly from time to time in the same way as JeeNodes do? Would the battery life be similar (i.e. within +/-25%) or would it be worse? (I do realise that it will probably be necessary to remove the Power Indicator LED.)


Replies (20)

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by JMB about 5 years ago

I had already read http://jeelabs.org/2013/03/03/programming-the-jnu-v3-part-1/ - and all the rest of the series - but they suggest a long hard learning curve for one relatively unfamiliar with the technology.

Hence my post. I need advice from more experienced users:-

[A] Is this the right technology for a relative beginner with time constraints?
[B] Would I be safer with a standard JeeNode? Or with an Arduino Pro 3.3V?
[C] In all cases advice, and link suggestions, would be very welcome.

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by plutonomore about 5 years ago

@JMB,

I cobbled together a JeeNode Micro clone a while back. Yes, it works but to be honest for the effort to get it working and the relatively
restrictive capabilities of the ATtiny84V, can’t help but think I could have spent time more effectively with another MCU. So and this is just
my opinion maybe you would be better off using any of the plethora of Atmega328P based devices out there. There are heaps of
documentation and heaps of example code and application projects … just great to help a “relative beginner” … no reinventing the wheel.
This is particularly true when time constraints are an issue.

cheers,

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by garethcoleman about 5 years ago

I would echo the comments above, I would only contemplate the jeenode micro if you are comfortable with micro controllers already. With the sheer amount of stuff based on arduino and derivatives such as jeenodes it means you can very rapidly make something happen in the real world based on flipping some bits or something.

I’m still waiting for my microcurrent to arrive from Australia (not Austria!) so I can’t tell you the exact answer but basically the battery life from jeenodes is excellent and from micro’s it’s fantastic. But tbh you should just buy a jeenode for each sense point plus a couple to develop on/use as spares - start with aa batteries and if you get annoyed replacing them in several months time then that’s the time to refactor.

Get something made quickly to keep the domestic peace! You can always graduate to the more challenging jeenode micro or other really small micro controllers later. I am intrigued by both the nordic and TI integrated mcu/radio chips but I’m not able to cope with them yet - they’ll probably be obsolete by the time I’m ready to work with them!

Unless you already have made decisions I would heartily recommend using node-red for the control software on the pi - it’s based on node javascript stuff and it is like scratch on steroids but made for IoT - ideal for this sort of thing.

Good luck with your project and please post some details if you can - many people are thinking of doing this at the moment and the commercial suppliers are all just trying to lock you into their propriety system. So having a compelling easy open-source option would force them to raise their game at least. Your experiences are likely to be very useful to others.

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by AndreasZoeller about 5 years ago

I have just the same scenario you want to establish. I m running an older router as central-station with OpenWRT. Then i have a JeeNode connected to this via serial interface. This is the central receiver for 6 sensornodes which are based on JeeNode Micro. Some are equipped with a DS18B20 and some with a DHT22. The JeeNode is running RF12Demo. The JeeMicros are running a sketch derived from the RoomNode-sketch. The Micros (direct power) are running each which 3 older AA-Batteries which have in Total max. 3.8V. One is running with a boost-converter and one AA-Battery. Another possibility would be a Li-battery with 3.6V. This is running now since app. 2.5 years, in the beginning only with 2 sensornodes, then added more and more.

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by alx37 about 5 years ago

Your hassle will be one-time.
I was in the same position and tried out Openenergymonitor. These parts are nice(EmonTH) but only in terms of what they were designed to and a little expensive for putting Temp-sensors on.
I now use a nanodeRF to receive and push to my server(running 24/7 anyway) via Ethernet giving my the flexibility to position the receiving part very flexible(When designing my setup I under-estimated rf-performance).

What I can recommend is getting an USB-BUB II or a TTL to USB-converter to be able to use serial (output) to be able to monitor what the sketch does.

As a rusult you get a real good working hardware which is tiny and energy(battery) efficient.

From my point of view long worth the hassle…

ALexander

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by JMB about 5 years ago

Thank you very much for the inputs. They gave me a lot of useful ideas and I have equipped myself with a Raspberry Pi, an RTC, a Jeelink V3 with RFM69, and a handful each of RFM69CWs, 3.3V Arduino Pro Mini Extras (the 16 MHz one), and Conrad FS20 Thermostat Actuators. As I worked for Analog Devices before I retired I am getting a large handful of TMP36s, which I have used many times, as my sensors. Since the FS20 is designed to work with a battery-powered thermostat it cannot work with a controller which loses sync during a power cut, and so the Pi/Jeelink must eventually have an uninterruptible supply.

I chose the RFM69 rather than the older (and better documented) RFM12 because [A] it has higher power and I have a long thin house and may need the range, and [B] the FS20s use OOK rather than FSK and the RFM69 has native OOK whereas the RFM12 requires software in its controller to simulate OOK transmission by turning it on and off quickly and, I suspect, would be a nightmare to configure as an OOK receiver for synchronisation.

I have wondered about cannibalising the FS20 actuators - keeping the servos but replacing the controller/radio with an Arduino/RFM69 and eliminating the synchronisation problem by having the actuator power up, request instructions, receive them, obey and power down. Anyone know if this has been done and how hard it might be? When I opened one up I found the servo motor had two wires and no visible position feedback, so I suspect that it’s a stepping motor and is run to its endstops to give location and stepped to the correct position. Again, does anyone actually know? (I haven’t googled this yet.) Or does anyone know of a 3V radiator servo actuator sold bare without any electronics?

I intend to post what I am doing here. (Or should I post elsewhere? Inputs please.) Suggestions as I go will always be welcome. When I’m done I’ll write up what I finally did and post it for all to criticise/copy.

My planned sequence is:-

[1] Get the Raspberry Pi running. Add the RTC. Add the Jeelink V3.
[2] Decide whether to cannibalise the actuator.
[3] Write code for the Arduino/RFM69/TMP36 combination to talk to the Jeelink and vice-versa. FSK if actuators cannibalised, OOK if not.
4 Write code for the Jeelink/Pi to synchronise with the various FS20s (12 rooms total so there will have to be two different housecodes)
(If cannibalised) Write code for new FS20 electronics to demand a setting and then comply.
[5] Write (or modify) a GUI to allow versatile time/temperature entry, on the Pi keyboard, for each room.

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? STATUS REPORT - Added by JMB about 5 years ago

For experiment I now have a couple of 3.3V 16 MHz Arduino Pro Minis, a Jeelink V3 with RFM69CW, a handful of loose RFM69CWs, and a Raspberry Pi (which has been set up on the TV but does not have its own monitor yet, nor HouseMon installed, nor an Ethernet connection to the Web).

I have decided to use AA size 14500 rechargeable Li-ion cells for power. They are variously claimed to be available with 750 mAH to 1600 mAH capacity but a shelf-life, fully charged, of over a year with a charge loss well below 10%/month. I shall use a TI TPI781 LDO Regulator (1 μA standby current, 200 mV drop-out at 150 mA, £0.25 [€0.30] each in thousands, £0.47 [€0.57] in dozens) to hold the supply to 3.3 V - the trouble with rechargeable Li-ion cells is that at full charge their output is 4.2 V, which is 300 mV above the absolute maximum rating of the RFM69CW. Although they fall quite quickly to 3.7 V where no regulator at all would be necessary this would entail charging them to a voltage between 3.7 and 3.85 V and then resting them until they had fallen to 3.7 V - I shall do some experiments but for the time being I’ve ordered a handful of 3.3 V TPI781s.

I am going to use the internal voltage reference, and will experiment with the Atmega328’s internal temperature sensor, but this requires calibration and I’ll probably stick with the TMP36 - which will be powered from a logic output which is set to logic 1 while the processor is awake (the turn-on is about 1 ms so that will not waste much time). I shall have a ~5 MΩ (3.9 MΩ and 1 MΩ) potential divider across the battery with the tap to another ADC input to provide battery measurement - this will sink 0.8 μA. (It may be necessary to convert that ADC input to a digital output at logic 0 during shutdown to prevent bias on an analog input from causing internal current drain in which case the resistor current will rise to 1 - 1.1 μA - no major issue.)

Shut-down power will be processor 2 μA, radio 1 μA, regulator 1 μA and voltage measurement divider 1 uA for a total of 5 μA. There are 8766 hours in an average year so the consumption on standby is 44 mAH.

I intend to report every two minutes (buttons on the sensor allow two or three manual interrupts but they will not happen more than a few times per day so I’m not accounting for their power). Based on “Anatomy of a Transmission” but using an RFM69CW and two packets and two receives I expect to use 12 mA in the 328 and the TMP36 for 17 ms [=204 μAs], 45 mA in RFM69CW transmit for 6 ms [270 μAs] and 16 mA in RFM69CW receive for 6 ms [96 μAs] for a total of 570 μAs which is 0.158 μAH. Thirty of these per hour is 4.75 μAH - about the same as the DC standby drain - but more precisely 42 mAH/year - a total of well under 100 mAH per annum from even a 750 mAH cell is no big deal..

I intended to swap RSSI values between the node and the Jeelink (hence the extra transmissions) and fine-tune power levels at both ends. But I’m not at all sure it’s worthwhile for me as I live beside the sea and there are only a few houses within half a mile so interference to others is unlikely and I really do seem to be able to afford the power. But I’ll keep the option.

I’m about to start programming the Arduino. Feedback on my ideas welcomed.

[In case you’re getting this by email and your email client doesn’t like my character set - £ is a pound sign, € is a Euro sign, μ is mu (micro) and Ω is omega (Ohms).]

RE: {Lack of] Progress Report - Help anyone? - Added by JMB almost 5 years ago

To emulate an RFM69CW JeeNode I have connected an Arduino Pro Mini 3.3V 16MHz to an RFM69CW as follows (Pin numbers are Arduino)
Pin 2 - D100
Pin 9 - LED (moved from pin 13)
Pin 10 - NSS
Pin 11 - MOSI
Pin 12 - MISO
Pin 13 - SCK
Plus, of course, an antenna and Vcc & Gnd connections.

I have modified RF12demo.ino by changing #define RF69_COMPAT 0 to #define RF69_COMPAT 1
Should I have changed anything else in RF12demo.ino or elsewhere?

I have a JeeLink with RFM69CW which has not been reprogrammed and appears fine - serial monitor returns what you would expect, but so far it has not received anything, I suspect that is because I have not yet transmitted anything.

When I load test1.ino Arduino reports a successful load but nothing happens - the LED does not light.

If I replace this part of the code:-

@ // actual packet send: broadcast to all, current counter, 1 byte long
rf12_sendNow(0, &counter, 1);;
rf12_sendWait(1);@

with:- delay(100); the light turns on and flickers off every second - if I put back sendWait but not sendNow it continues to do this.

[The double semi-colon is present in the first line of my copy of test1.ino - but removing it does not make any difference to the behaviour as far as I can see - is it necessary?]

It seems that the code does not return from sendNow (although I am puzzled about why the LED does not come on since that instruction precedes the send instruction).

Any advice about where I go from here? Please?

[COMPONENT CHANGE The TPS781 1μA regulator I spoke of earlier is over-complicated (it has logic controlled 2.2V & 3.3V output) and the TPS782 (which is identical except for fixed 3.3V output) is now in stock again so I shall use that.]

RE: [Lack of] Progress Report - Help anyone? - Added by JohnO almost 5 years ago

JMB wrote:

> I have a JeeLink with RFM69CW which has not been reprogrammed and appears fine - serial monitor returns what you would expect, but so far it has not received anything, I suspect that is because I have not yet transmitted anything.

I would first make sure that you have the correct code in your JeeLink with RFM69CW. Make sure you have all the latest libraries modify the library RF12Demo to have #define RF69_COMPAT 1 and program the JeeLink. Connect a terminal program to the jeeLink, make sure your band matches the installed RFM96CW and set 0q to try to receive some noise. If noise isn’t very obvious then set 0g and wait a while to see if you can get any at all.

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by martynj almost 5 years ago

@JMB,

> I have a JeeLink with RFM69CW….

Really? Are these available in the Shop now?

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by JohnO almost 5 years ago

Maybe bought the NoRF version and added the RFM69CW.

RE: Jeelink with RFM69CW - Added by JMB almost 5 years ago

When I told ’em what I was doing they offered me one.

I’ve had it for just over a month.

I am uneasy about reprogramming it since it came “ready to use” and I do not want to lose that. How do I know if it is correctly programmed? What I see on the serial monitor is:-

QUOTE

[RF12demo.12] _ i31 g100 @ 868 MHz q1

Available commands:
i - set node ID (standard node ids are 1..30)
b - set MHz band (4 = 433, 8 = 868, 9 = 915)
o - change frequency offset within the band (default 1600)
96..3903 is the range supported by the RFM12B
g - set network group (RFM12 only allows 212, 0 = any)
c - set collect mode (advanced, normally 0)
t - broadcast max-size test packet, request ack
…, a - send data packet to node , request ack
…, s - send data packet to node , no ack
q - set quiet mode (1 = don’t report bad packets)
x - set reporting format (0: decimal, 1: hex, 2: hex+ascii)
123 z - total power down, needs a reset to start up again
Remote control commands:
,,, f - FS20 command (868 MHz)
,, k - KAKU command (433 MHz)
Current configuration:
_ i31 g100 @ 868 MHz q1

UNQUOTE

What instruction do I send to get q0?

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by JohnO almost 5 years ago

Try setting 0q and 0g that should make it receive some noise.

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by JMB almost 5 years ago

Thanks for that.

It receives noise. Signal strength –98 to –103.

Which suggests that it’s working fine and I need to get the JeeNode program right.

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by garethcoleman almost 5 years ago

By a great stroke of luck we are getting our boiler replaced in the next week or two. I have decided to go with the Conrad FS-20 system, partly in the hope that I can control it with jeenodes, and partly in the hope that we could share experiences here.

I’ve had good success recently with other wireless sensors, I plumped for the flat rectangular type of lipo (from adafruit). I have got the sleep current down to 7uA which I thought was about the limit. By my calculations the battery will loose half it’s capacity in 2 years, but getting the power usage down really low is a beautiful and compelling challenge anyway!

I’m interested therefore in your choice of the TPS782 voltage regulator - it does seem to have the edge on the MCP1700 that I’ve been favouring - at least it does when asleep - which as we all know is the most important thing. Only drawback that I can see is that it is smt only.

If you are chasing the electrons individually then you might want to have another look at the zero current circuit - I found it easy to use and for the price of a few passive and a wee MOSFET you save another uA.

I’m keen to share my experiences and code etc, most of what I’ve done is documented (or at least hinted at) at l0l.org.uk and the code is on github. My partner is the real coder and she’s developed a much better and more structured sketch than I am capable of - using classes and such things. As usual things are a work in progress and I would welcome any feedback.

Please keep us informed about your progress - its really great to hear from people diving in and geting stuff made!

I’m waiting for a single trv to arrive and have a look in the flesh, and provided it seems OK I’ll be ordering the rest of the FS-20 stuff needed. So I’ll be back to report once I have some news.

RE: SM Devices & Power Issues - and thoughts on TRVs/RCRVs - Added by JMB almost 5 years ago

I find no insoluble problems working with SMD if I use a very small, but high power, thermostatically-controlled soldering iron and 7 dioptre (prescription) soldering spectacles to get really close to my work (and protect my eyes). I do not intend to pursue zero power - my calculations posted a few weeks ago seem valid and have my stuff consuming less than the typical self-discharge current of the cell. I am wondering if I could keep the cell charged with a small PV cell - I have a keyring torch (costs £1) with one which delivers 50μA to a LiIon cell via a 1N4148 in a reasonably lit room. Averaged over a whole year most normal rooms should be reasonably lit by daylight for at least 25% of the time so I should get 110mAH per annum - which is over 25% above my calculated consumption. Some experiment seems called for to see whether I need one PV cell or two to handle the consumption and the cell’s self-leakage.

O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O

Strictly speaking the FS-20 TRVs are RCRVs controlled by a remote temperature sensor/timer (and I am a pedant!)

My problem with this is that both the RCRV and and its controller spend most of their time asleep to conserve their batteries and require synchronisation to communicate - which in turn requires bullet-proof software and sufficiently accurate time references at both ends.

We must assume that Conrad or their suppliers have solved this, but I do not wish to use a Conrad controller as they’re ugly as sin and my wife will not have ’em on the wall (and I don’t blame her) and, being proprietary, I cannot easily add the additional functions I should like in my room thermostat. What I want is an RCRV which looks reasonable. What would be ideal is if I could buy an RV with servo and battery case and an empty PCB space where I could put my own transceiver and controller, but I can’t find one. So I shall have to cannibalise the cheapest TRV or RCRV that I can find - which may be the Conrad one. It would be nice to know the characteristics of the servo in the Conrad but they won’t say and I have not yet had time to try and work it out for myself. It’s certainly not a standard RC model servo as there are just two leads to the motor and no position feedback that I can see. Does anyone know how this servo works? Or know of an easily (and reasonably cheaply) obtained radiator servo in a tidy case with a battery holder and place for a controller PCB?

If I can solve the servo issue I shall not use the Conrad receiver/controller hardware/software and have to synchonise the RCRV and the controller. Instead the controller will report every minute or two (or on interrupt for user control signals) to a continuously powered central monitor/controller, and the RCRV will demand an update at (roughly - synchronisation does not matter) the same rate. Obviously there will be provision to prevent data collisions (more than one remote trying to communicate at the same time).

RE: Exactly what do I need to get going with a JeeNode Micro? Should I? - Added by garethcoleman almost 5 years ago

Yes, if you have good equipment, lighting and vision then smt is doable, but it is a minor plus to be able to go from a breadboard prototype to a production circuit, and prototyping with smt is much harder for me.

I like your thinking with the solar cell harvesting daylight (or even artificial light energy). I didn’t appreciate the consequence of getting the power consumption as low as we have would be the ability to run off solar cells that tiny!

I’m in two minds about whether to persevere with the FHT protocol or to just rip out the electronics and replace with JeeNode micro or similar. I’ve found that there are people working on the protocol such as OpenTRV and I’ve contacted them to see if we can work together. Partly I’m tempted to persevere with cracking their code because then other people who aren’t electronically confident can reproduce our work, just buy a Jeelink and start writing software!

I agree that the conrad stuff looks pretty fugly, but the deal breaker for me is the closed nature of it. However I think that anything I could make at home with servos would not equal the quality of a full-time manufacturer. I do know that they are geared heavily so that they deliver an enormous force over a tiny distance. Plus the conrad device has a little screw thingy you can operate if you are out of batteries and it’s christmas day. I might just about be able to build something that sort of worked, but I couldn’t add refinements like that.

I could live with the 2 minute sleepy protocol, provided there aren’t other devices around trying to broadcast on your housecode, then the timings may be more forgiving.

And although you wouldn’t want their controller on the wall, it could be in a drawer ready to be brought out if the home made system has issues. Again this assumes the original controls are left in the RCRV’s, but if so, then this mitigates against the bad scenario of ’I’ve bricked the boiler controller and we’re gonna get cold before a replacement part gets delivered"

Further thoughts on Li-Ion battery and photovoltaic charging - Added by JMB almost 5 years ago

An AA size Li-Ion battery, as I remarked a couple of months ago, can be had with a capacity of 1200 mAh and goes to 4.2 V when fully charged but drops to 3.7 V quite quickly, which is well below the absolute maximum rating of the RFM69CW. With photocell charging and an active voltage limit at 3.75V (consisting of a current shunt across the battery which can sink more than the rated maximum output current of the photovoltaic cells) it will probably still have 600-800 mAh capacity. To limit the voltage, either use a selected (low leakage) zener diode across the battery or use the battery voltage sensor function that I proposed in the same post to inhibit the sleep function whenever the battery voltage exceeds 3.73 V so that the microprocessor draws current continuously, and actually turn on an LED running at 20 mA if it reaches 3.75V. The JeeNode then no longer needs an external voltage regulator - and could still signal “low battery” if the charger is kept in the dark.

    (1-20/20)