I just got to peruse the new DW docs.  I’m encouraged by the depth and detail of the documentation, but I’m also really daunted by the task ahead.  If I’m not going to get overwhelmed I need to make a plan, and then stop focusing on what has to be done, but just check off the tiny steps forward.

Here’s my plan:

Revise the DW demo code to make the port to TS06 as easy as possible

  • Install Eclipse (in the manner prescribed by DW) and try to compile a minimal hello.c (“hello world”) program for the ST32F407 “Discovery” board I have in the cupboard. This will show that I can configure eclipse for an STM ARM chip.   I was able to do that some months ago, so it ought to be reasonably easy.  
  • Reconfigure eclipse for the DW eval kit (EVK) and compile hello.c for the DW eval kit (EVK).  Alas the EVK uses an ST32F105.  There are substantial processor differences obviously, and I will have to figure out how to load and debug code on the DW platform. I’m hoping the move is simply a matter of specifying the different processor, and using a different in-circuit programmer/debugger (e.g. SEGGER). 
  • Compile DW’s demo program and see if I can get it to load and run on the EVK.  In theory this ought to be easy because DW tell you how to do it, but I have not had an easy time with the eclipse setup documentation, so who knows how hard this will be in practice.
  • Strip down the DW demo code to some form that could run on the M0.  This means stripping out all the code that uses the LCD, switches and so forth.  I will need a simple test program that can indicate that ranging is working OK.  This will give me a test program that provably works with functional ranging hardware.
I have no idea how long those four trivial steps could take.  So far it has taken many weeks, to do a lot less. 

Create a minimal Hardware Abstraction Layer (HAL) for the TS06

The TS06 hardware is an ARM M0 with an attached DW module – i.e. this translation is not chalk-to-cheese, but it is Brie-to-Velveta.  
  • The first step is to configure eclipse to target a Nordic M0.  Earlier this year I found this to be a real challenge.  
  • Create a new TS06 HAL that will allow the same hello.c program to run on the TS06, EVK and Discovery boards.  It should be possible to have exactly the same program run on all three.
  • Extend the TS06 HAL to talk to the DW module.
  • Get the minimal DW demo code to run on the TS06

Do everything else

Leave a Reply