💬 Stamp size MySensor node
@GertSanders Thanks for the response.
I had already used the nano to install the bootloader on the linbus analyzer and linbus injector boards, so apparently the nano can be used with the ArduinoISP sketch. I also tried re-installing a bootloader to another nano via the ICSP pins and it worked.
I also tried building my last PCB for your stamp-sized nodes without the wireless module installed, but I get the exact same behaviour. (You are right, it's not so far-fetched that the radio module might interfere with the bootloader installation, since the ICSP header also just breaks out the SPI headers. On the other hand, the slave select for the nrf24l01+ is not pulled low by the arduinoISP, so it should not interfere on the SPI bus...).
I already tripple checked my wiring (even tried switching MISO/MOSI), but I can't find any problem. In fact, only with this very wiring do I get the "Expected signature for ATmega328P is 1E 95 0F" error message, as only with this wiring, the signature is different from 0x000000. Here's the verbose log of the bootloader burning:
Strangely, I do not get the same signature when I try to burn the bootloader again (0x040404 => 0x0e0808 => 0x080808; 0x820202 => 0xc10101 => 0x820202).
So it seems that communication is somehow possible, but only garbage is observed.
FWIW, I'm using the "Arduino Pro or Pro Mini" (like I did with the linbus boards) with processor ATmega328P (3.3V, 8MHz).
The only difference I can see between the working linbus and nano boards and this stamp-sized node is that the linbus boards have an external crystal, while this stamp-sized node appears to use the internal crystal of the chip. Can this be the difference?
The bootloader burning issue was indeed a problem with the crystal: It seems that the atmega328p that I bought on aliexpress came with the fuse set to external crystal, so they worked fine on all boards with an external crystal, but this stamp-sized node didn't react because the internal oscillator was disabled in the chip. I had some 16MHz SMD crystal lying around, soldered jumper wires to them and manually held them to pins 7 & 8 of the atmega328p while trying to burn the bootloader. That's quite delicate as the pins are so small, but it works astonishingly well.
As boards I used the "MiniCore atmega328" board that allowed me to select the internal crystal and also lower the black-out voltage.
With the external crystal held to the atmega's pins, I was able to properly burn the bootloader and activate the internal oscillator. Now, the board seems to work just fine.
The only issue is that I just realized I don't have any CR1632 batteries. I suppose CR1620 will also work, but that a shorter battery life?
Glad you found the issue. I'm not sure there are 1616 batteries, but two on top of each other might fit ?
@GertSanders Am I missing something, or wouldn't two 3V batteries in series fry the atmega and in particular the nrf24 with 6V?
Totally correct. Very dumb suggestion on my part. You would get 6V, which is above spec for the atmega328p and the nrf24
krisha last edited by krisha
what about adding a step-up converter to drain the battery more? or does it waste too much power?
thx for design and this small battery powered node
I think for this node an ISP programmer is needed. It might be nice, if you can put a notice for that on mysensors.org.
Maybe also mention that you should not use the VCC of your programmer. In most cases it will deliver 5V which will fry the NRF chip
another thing, I ordered the PCB at OSH park...
Is there any possibility that you and/or MySensors will gain something (affiliate)?
the pin holes are a bit small for standard pin headers. Would be nice if you could increase the diameter a bit on version 3
I use a 3V3 programmer. I also use standard pin headers, they fit without a problem.
ok, strange. standard pin headers fit for me only into FTDI and ICSP pin holes. Into the other two 8 pin rows it does not fit.