Skip to content

Conversation

haukepetersen
Copy link
Contributor

@haukepetersen haukepetersen commented Mar 4, 2019

Contribution description

Phyted and the Zephyr community designed and build this nice board, so it would be a shame not to support RIOT for it :-)

Infos about the board:

If I have seen correctly, there are no RIOT drivers for the HDC1010 (humidity and temperature), ADPS9960 (light), and SSD1673 (e-ink display) devices in RIOT's master. Though I included there pin mappings, one can currently not use them. But hopefully drivers will be available soon.

Everything else should be pretty straight-forward...

Testing procedure

Running the default example (use BOARD=reel) with SAUL gives access to all configured components of the board. Else simply run the complete test-suite and make sure everything passes.

Issues/PRs references

none

@haukepetersen haukepetersen added Type: new feature The issue requests / The PR implemements a new feature for RIOT CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Area: boards Area: Board ports labels Mar 4, 2019
@haukepetersen
Copy link
Contributor Author

forgot to remove the pwm feature for the board (as I did not define any configuration for this). Now Murdock should hopefully be happy...

@jcarrano
Copy link
Contributor

jcarrano commented Mar 4, 2019

What version of OpenOCD are you using? I'm getting the following error:

Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
adapter speed: 10000 kHz
cortex_m reset_config sysresetreq
Info : CMSIS-DAP: SWD  Supported
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : CMSIS-DAP: FW Version = 1.10
Info : SWCLK/TCK = 0 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : reduce speed request: 10000kHz to 5000kHz maximum
Info : clock speed 10000 kHz
Info : SWD DPIDR 0x2ba01477
Info : nrf52.cpu: hardware has 6 breakpoints, 4 watchpoints
    TargetName         Type       Endian TapName            State       
--  ------------------ ---------- ------ ------------------ ------------
 0* nrf52.cpu          cortex_m   little nrf52.cpu          halted
target halted due to debug-request, current mode: Thread 
xPSR: 0x01000000 pc: 0x00000470 msp: 0x20000200
invalid subcommand "write_image erase /home/jcarrano/source/masterRIOT/examples/hello-world/bin/reel/hello-world.elf 0"
in procedure 'flash'

Also, if someone else wants to try this, be sure to move the switch out of the "off" position, seems like they cheaped out and didn't include a power multiplexer.

Copy link
Contributor

@aabadie aabadie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a few minor comments, even if it looks good in general code-wise. I haven't the board for testing but you can easily find someone in Berlin for this.


## Overview

The 'reel board' is an IoT development platform base on Nordic's nRF52840 SoC.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/base on/based on/

@@ -0,0 +1,14 @@
/**
@defgroup boards_reel reel
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The board group name should be more explicit, e.g. something like Phytec reel board or something. Otherwise, this will just add an entry called 'reel' in the doxygen documentation, this will look weird.

Regarding the build system, I know 'reel' is fast and simple to type when calling make, but it's also a too generic word. What about using phytec-reel ? Like this it will be listed close to other phytec boards (pba-xxx-zz-kw2x and phynode-kw41z).
This second comment is not blocking, and after all, you are the author, so you decide ;)

@haukepetersen
Copy link
Contributor Author

all comments addressed.

@haukepetersen
Copy link
Contributor Author

Anyone care to ACK so I can squash?

@jcarrano
Copy link
Contributor

After upgrading to OpenOCD 0.10.0+dev-00706-g4db695c66 (from the AUR) I was able to flash.

I ran ./dist/tools/compile_and_test_for_board/compile_and_test_for_board.py . reel.

Failures during test:

  • [tests/fmt_print](tests/fmt_print/test.failed)
  • [tests/gnrc_ipv6_ext](tests/gnrc_ipv6_ext/test.failed)
  • [tests/gnrc_netif](tests/gnrc_netif/test.failed)
  • [tests/gnrc_rpl_srh](tests/gnrc_rpl_srh/test.failed)
  • [tests/gnrc_sixlowpan](tests/gnrc_sixlowpan/test.failed)
  • [tests/od](tests/od/test.failed)
  • [tests/xtimer_now64_continuity](tests/xtimer_now64_continuity/test.failed)

All these failures originate in the fmt module, specifically, the print function fails, because write fails (but not fwrite!). This code will not output anything (except the RIOT welcome banner):

#include <unistd.h>

int main(void)
{
    write(1, "123456789\n", 10);

    return 0;
}

@haukepetersen
Copy link
Contributor Author

I don't have the reel board here right now, but this seems rather unrelated to this PR to me?! Tried the tests on the nrf52dk (the closest board I have available right now), and they work fine. Also the example code posted above works as expected. And as the nrf52dk is using >95% identical code to the nrf52840, it seems odd to me that the reel board fails, especially considering that the board configuration has no obvious impact in the workings of the stdlib-wrappers...

Will give this another try tomorrow when I'm back in the office.

@haukepetersen
Copy link
Contributor Author

Just tested on the nrf52840dk, and I get the same faulty behavior running 'tests/fmt_print. So the problem is indeed related to the nrf52840CPU port, and independent of thereel` board. Very interesting though :-)

Will debug this today to see whats causing this...

@haukepetersen
Copy link
Contributor Author

As suspected, the issue at hand was unrelated to this PR (effecting all nrf52840-based boards). It is fixed with #11170.

So this PR should be ready to go then?

@haukepetersen
Copy link
Contributor Author

@jcarrano any luck testing this PR now with #11170 merged? Can I squash?

@jcarrano
Copy link
Contributor

I'm out of office until Tuesday. Squash, there is no point in keeping it unsquashed.

@haukepetersen
Copy link
Contributor Author

squashed

Copy link
Contributor

@jcarrano jcarrano left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All tests passing, except gnrc_rpl_srh and gnrc_ipv6_ext (I'm missing some python module).

@jcarrano jcarrano added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Mar 19, 2019
@haukepetersen
Copy link
Contributor Author

Sounds good, all green, so go.

@haukepetersen haukepetersen merged commit 8216c93 into RIOT-OS:master Mar 20, 2019
@haukepetersen haukepetersen deleted the add_board_reel branch March 20, 2019 09:47
@danpetry danpetry added this to the Release 2019.04 milestone Mar 26, 2019
@Citrullin
Copy link
Contributor

@haukepetersen Are you interested in the eInk driver support? I started playing around with an epaper display from gooddisplay.
It has different commands, but It probably makes sense to also have some kind of abstraction for epaper there. Something like SAUL? So, if you are interested, we could combine our efforts there :)

@haukepetersen
Copy link
Contributor Author

@Citrullin yes, that would be very interesting. I personally won't however have much time to spend on this, but maybe there is others in the community that would like to collaborate I am sure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: boards Area: Board ports CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Type: new feature The issue requests / The PR implemements a new feature for RIOT
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants