Logos Productions:   ensembles    projects   concerts worldwide  logos public domain

This page is for internal use and reference

Godfried-Willem Raes

PIC firmware diary

features implemented board used processor composers manual Go to Godfried-Willem Raes' homepage
1.1

<Aeio>: midi parser

last update: 25.09.2010, version 1.6 - now obsolete

midi I/O parsing and lites Amicus board 18F25K20
1.2

<Aeio> : Midi parser

last update: 07.11.2017, version 2.0

midi I/O parsing with double buffering

keyboard display

Aeio-parser board

pcb

circuit

24EP128MC202
1.3

<Aeio>: Lights processor

last update: 22.10.2017, version 1.0

6 lites with flashing

Aeio-parser board

pcb

circuit

18F2520
1.4

<Aeio>: Radar interface for gesture sensing

last update: 07.11.2017, version 1.0

Radar sensor with 12-bit ADC

midi I/O parsing

5 embedded compositions

Radar_3_2017 board 24EP128MC202
1.5- 1.16

<Aeio>: dsPIC boards - string drivers

coded by Johannes Taelman

last update: 2010

2-phase PWM

hammer driver

damper driver

dsPIC30F3010
2.1 <Bono>: Hub board lights midi-hub 18F2525
2.2 <Bono>: Valve board

valve lookup

pulse timing

pulse-hold board 18F2525
3

< Bomi>: Hub

last update: 29.05.2011

tremulant and valve positioning midi-hub 18F2525
4.1

<Thunderwood>: Extra board

last update: 28.05.2011

PWM squaekers

P-channel Mosfets

prototype 18F2520
4.2

<Thunderwood>: Storm wind controller

last update: 28.05.2017

3-phase 400Hz motor control

pcb

circuit

24EP128MC202
5

<Pedal> - version 2005 - obsolete

updated version: see under nr.37.-11 (2016)

PWM

Light

LPT Board 18F2525
6 <Puff>: sensor & eyes board

4 digital Input, PIR sensors

stepper motor positioning control

midi-hub 18F2525
7 <Ob>

positioning control

analog tilt sensor

bipolar motor drive

midi-hub 18F2525
8

<Korn>: horizontal movement

last update: 29.05.2011 , version 1.4

two analog Namur proximity sensors

two PIR sensors

stepper motor positioning

midi-hub 18F2520
9 <Vibi>

rotation and positioning of tremolo valves

4 PWM lights + key pressure flash

dual processor prototype board 2 x 18F2520
10.1

<Fa>, movement & lites

last update: 25.05.2011

positioning control

analog tilt sensor

bipolar drive

midi-hub 18F2525
10.2

<Fa>, valves

last update: 20.01.2012 -Version 1.7

valve control

28-output board

rev.2, 03.2007

18F4620
10.3

<Fa> movement and motor control

last update: 02.11.2016

analog tilt sensor

bipolar motor drive

motor control board

circuit

PCB

18F2525
11.1

<Spiro> Midihub board

last update:: 16.07.2011

2x PWM

Lights

midi-hub 18F2525
11.2-5

<Spiro>, velo/hold boards

each board controls 14 notes.

last update: 31.07.2011 - JT coding

pulse/hold pulse/hold board rev.2, oct.2006 18F4620
12

<IcePal>, Ijspaleis robot for Laura Maes

source code at:

www.logosfoundation.org/elektron/IcePal/

last update: 02.11.2011 - Version 1.4

3 drippers

5 FSR's analog in

Motor control PWM

Midi I/O

Amicus board 18F25K20
13.1

<Synchrochord> autotuner board

controls the autotuning mechanism

last update: 14.11.2011

1 tacho analog in

1 frequency counter

Midi I/O

PID regulation

prototype board 18F2525
13.2

<Synchrochord> velo/hold board

controls the 12 fingering solenoids on the frets

last update: 24.01.2012- Version 1.2

12 solenoids

global PWM

Midi I/O

Lookup tables

pulse/hold board rev.2, oct.2006 18F4620
13.3

<Synchrochord> midi-hub board

controls the damper and the amplitude solenoids

last update: 24.01.2012

2 softshift solenoids with PWM

Midi I/O

midi-hub 18F2525
13.4.0

<Synchrochord> synchronous motor control board with H-bridge drivers

last update: 05.02.2012

firmware o.k. but hardware fails on the bridge drivers. Replaced with an IB106 motor controller (13.4.1)

3 phase frequency generator with controllable phase and PWM

Midi I/O

Intel 82C54 timer

prototype board 18F4620
13.4.1

<Synchrochord> synchronous motor control board for steering a motor controller with ramping and braking.

last update: 07.03.2012

precision frequency generator

stroboscope

Midi I/O

Intel 82C54 timer

prototype board 18F4620
14

3-channel frequency synthesizer/ 3-phase motor controller

Laboratory tool

Midi I/O

Intel 82C54 timer

etched single sided board 18F4620
15

<Polymetronome>

last update 29.05.2012

Midi I/O

Centronics port

etched single sided board, 05.2012 18F2525
16.1

<Klar> fingerboard

last update 06.09.2012- Version 1.1

fingering lookup tables

fingered vibrato

lights

28-output board

rev.2, 03.2007

18F4620
16.2

<Klar> midihub board

last update 07.09.2012- Version 1.1

Tilt Sensor input

Stepper Motor control

lights + PWM

midi-hub 18F2525
16.3

<Klar> wave generator

  Arm discovery board ARM STM32F407
17.1

<Temblo> midihub board

last update 19.02.2013 - Version 1.0

source

lights + PWM

power relay

midi-hub, rev.3 18F2525
17.2

<Temblo> pulse board

last update 24.02.2013 - Version 1.1

source

12 pulse outputs

multitasking code

midi-pulse 16 output board

18F2525
18.1

<Horny> midihub board

last update 05.07.2013 - Version 1.4

source

bidirectional movement solenoid (PWM)

valve solenoids

lights

midi-hub, rev.4, 05.2013 18F2525
18.2 <Horny> wave generator   Arm discovery board ARM STM32F407
19.1

<Asa> midihub board

last update 13.06.2013 - Version 1.0

source

movement solenoids (PWM)

lights (4)

midi-hub

rev.4, 05.2013

18F2525
19.2

<Asa> fingerboard

last update 16.06.2013 - Version 1.0

source

fingering lookup tables

fingered vibrato

lights (4)

28-output board

rev.2, 03.2007

18F4620
19.3 <Asa> wave generator   Arm discovery board ARM STM32F407
20.1

<Whisper> midihub board

last update 20.08.2013 - Version 1.3

source

2 motor PWM

6 periodic timers

1 AC relay

midi-hub, rev.4 18F2525

20.2

20.3

20.4

20.5

<Whisper> Quad PWM board

update: 20.08.2013 - Version 1.3

update 23.04.2015 - Version 1.4, Updated compiler, Whisper repair

8 motor PWM

2 shakers (PIC4 only)

quad PWM Whisper board, version 1.0 4 x 18F2525
21

<Ice 2> audio art installation by Laura Maes

last update 23.09.2013 - Version 1.2

source

4 solenoid valves

4 analog input

1 digital input

midi I/O

midi-hub, rev.3 18F2520
22.1

<Vacca> midihub board

28.10.2013: Version 1.0

last update:

source

power relais

5 lights

2 PWM

midi-hub, rev.4 18F2525

22.2

22.3

22.4

<Vacca> pulse boards

programmed by Johannes Taelman (2005)

source

16 pulse solenoids midi-pulse 16 output board 18F2525
23 <Rodo>      
23.1

<Rodo> midihub board

no longer used since 2017 as we now pass midi through the radar boards.

metacontrol

2 PWM

midi-hub, rev.4 18F2525

23.2

23.3

23.4

23.5

<Rodo>: pulse boards beaters

13.03.2014: Version 1.2

<Rodo>: pulse boards dampers

15.03.2014: Version 1.2

31 beater solenoids

lights

31 damper solenoids

lights

 

28-output board

rev.2, 03.2007

18F4620
23.6

<Rodo>: e-drive board

programmed by Kristof Lauwers

Version 1.0: 04.04.2014 [ now obsolete and removed in 2017]

midi synth AXOLOTI board

ARM

STM32F407

23.7

<Rodo>: e-drive board

Version 1.3: 21.03.2017

12-bit ADC

note generator

ADSR

Rodo board

circuit drawing

PCB

24EP128MC202

23.8

23.9

<Rodo>: radar gesture sensing boards (2)

12-bit ADC

midi parser

Rodo Radar Board

circuit drawing

PCB

24EP128MC202

 

24.1

<Snar_2>: Midi Hub board

snares - pwm

rimshots

lights

midi-hub, rev.4 18F2525
24.2

<Snar_2>: beaterboard

13 beater solenoids

 

28-output board

rev.2, 03.2007

or pulse/hold board

rev.2,10.2006

18F4620

25.1

25.2

25.3

25.4

<4 Digit Display> (2 copies made, A and B)

29.07.2014 Version 1.5

4 7-segment displays with dot

counter

ASCII-mode

stopwatch

bargraph

special display board

version 1.0 - gwr

PC-board

02.05.2014

version 2.0 - gwr

PC-board

29.07.2014

4 x 18F2525

26.1-6

26.7-11

<Zi>

10.07.2014: Version 1.1 [this version was unworkable for hardware reasons, the firmware is o.k.]

08.11.2015: Version 2.0

bidirectional solenoids for plucking strings with hold.

bidirectional solenoids with permanent magnet hold

6 pulse/hold boards rev.2.10.2006

 

 

5 8-output bidirectional H-bridge boards

PC-board

rev.1.0 03.10.2015

6 x 18F4620

 

5 x 18F2525

26.7

<Zi> hub board

 

pwm

lights

midi-hub, rev.4 18F2525
27

board test and evaluation code: pluckers/shakers

20.11.2016: This board used for the <Bug> robot (valves and lights)

bidirectional solenoids

10-output pulse/hold board GWR

PC-board

06.08.2014

18F4620
28

<Hybr> hub board

Hybr also has 20 ARM discovery boards with firmware developped by Kristof Lauwers and Johannes Taelman. This runs on STM 32F407 processors and generates 40 sinewaves.

06.12.2014 : Version 1.1

power on relay

lights

midi-hub, rev.4 18F2525
29

<BalMec> - 5 modules

 

   
29.1

pwm

analog in

lights

Propeller board V1.0

PC-board

2015

18F2525
29.2

pwm

analog in

lights

Propeller board V2.0

PC-board

2015

18F2525
29.3

pwm

brake control

analog in

lights

Propeller board V3.0

PC-board

2015

18F2525
29.4

<Bello> , Bell machine

31.03.2015: Version 1.0

autorepeat

pwm

lights

Hub board 2015

PC-board

12-output pulse board 2015

PC-board

18F2525
29.8 <Balsi>
siren control
3-phase induction motor controller

PC-board

Circuit

24EP128MC202
30

<HybrHi> hub board

HybrHi also has 18 ARM discovery boards with firmware developped by Kristof Lauwers and Johannes Taelman. This runs on STM32F407 processors and generates 36 sinewaves.

11.02.2015 : Version 1.0

power on relay

lights

midi-hub, rev.4 18F2525
31

<Harma> motor control board

22.02.2015: Version 1.1

Motor controls for Siemens controller Motor control board V1.0 - Harma 18F2525
32

<HarmO> motor control board

25.02.2015: Version 1.0

Motor controls for Siemens controller Motor control board V1.1 - HarmO 18F2525
33

<Dripper> pulse board

15.07.2015: Version 2.0

priority timers

16 solenoid valves

16-output pulse board 18F2525
34.1-6

<Tinti>

12.09.2015: Version 1.2

bidirectional solenoids for shaking bells with velo and hold. 6 pulse/hold boards rev.2.10.2006 6 x 18F4620
34.7

<Tinti> hub board

12.09.2015: Version 1.2

pwm

ctrl.66, power relay, ultrasound synthesizer, vca

lights

midi-hub, rev.4 18F2525
35

<Psch>

18.11.2015: Version 2.1

12 shakers

4 lights

16-output midi-pulse board 18F2620
36.1-2

<Klung>

22.11.2015: Version 3.0

bidirectional shakers and lights 28-output midi-pulse board 2 x 18F4620
37.1

<Player Piano>

power supply control (PWM)

lights

PCB PS2016 gwr 18F2525
37.2-10

<Player Piano> pp2-2016

  • board 1
  • board 2
  • board 3
  • board 4
  • board 5
  • board 6
  • board 7
  • board 8
  • board 9

29.01.2016: Version 3.1

pulse-velo + hold

priority timers

velo-lookup tables

10-output midi pulse hold board 2005, rev.2 JT 18F2525
37.11

<Player Piano> pp2-2016 Pedal

07.02.2016: Version 3.1

2 channel PWM

2 lights

velo,hold, pwm and slow release

PCB Pedal2016 gwr 18F2525
38.1

<Chi> Ultrasound demodulation board

18.03.2016: Version 1.1

US-PWM

VCA

Lights

PCB Chi_US 18F2525
38.2

<Chi> motor control

08.06.2016: Version 1.1

linear movement (Dunkermotor) with position tracking

2 analog inputs (Namur sensors)

2 digital inputs

1 light

bidirectional solenoid

2 AC relays

PCB_Chi_Mot 18F2525
39.1

<Flex>

hub board

power relay

lights

2 DC motors

PCB Flex-Hub 18F2525
39.2

<Flex>

Frontal motor bow assembly

22.06.2016: Version 1.2

stepper motor IB106 driver (with ramping)

2 PWM bi-dir-solenoid

sensor

clutch

4 lites

Circuit drawing 18F2525
39.3

<Flex>

Back motor bow assembly

21.06.2016: Version 1.2

stepper motor IB106 driver (with ramping)

2 PWM bi-dir-solenoid

sensor

clutch

4 lites

Circuit drawing 18F2525
39.4

<Flex>

e-blade bending movement

11.07.2016: Version 1.2

stepper motor IB106 driver (with ramping and position tracking)

3 sensors

2 PWM motor beaters

2 beaters

Circuit drawing 18F2525
39.5

<Flex>

Pi-blade bending movement

11.07.2016: Version 1.2

stepper motor IB106 driver (with ramping and position tracking)

3 sensors

2 PWM motor beaters

2 beaters

Circuit drawing 18F2525
40

PIC24 development board

04.08.2016: Version 1.0

12-bit ADC

3 PWM channels

Circuit drawing

PCB

24EP128MC202
41

PIC24 Synthesizer board (Prototype)

  • 3-outputs/notes with ADSR

26.08.2016: Version 1.0

3 voices with ADSR   24EP128MC202
42.1-4

<HybrLo>

29.08.2016: Version 1.0

6 PWM channels

5 Timers

individual ADSR's

Circuit drawing

PCB

24EP128MC202
42.5

<HybrLo>

1 relay

4 lites

midi parser

Circuit drawing

PCB

18F2525
43 Mirrored-X midi mirror for player piano   24EP128MC202
44

<Bourdonola>

23.09.2016: Version 3.1

parallel bus driver with latches

10-bit PWM

  18F2525
45.1

<Bug>

Valves and lights board

29.12.2016: Version 1.0

3 valves

7 lights

10-pulse/hold board

PCB

18F4620
45.2

<Bug>

Midi Hub board

29.12.2016: Version 1.0

2 stepper motors

3 analog inputs

midi parsed out

Single sided hub board

PCB

18F2525
45.3

<Bug>

Waveform generator

29.12.2016: Version 1.0

16-bit mono synth with adsr, FM and AM

PCB

Circuit drawing

24EP128MC202
46.1

<Melauton>

25-notes board

24.01.2017: Version 1.0

25-notes on/off

Single sided hold board 26 outputs

PCB

18F4620
46.2

<Melauton>
Midihub and motor control board

01.02.2017: Version 1.0

wind pressure sensor (10 bit ADC), 10-bit PWM motor control Single sided hub board 18F2525
47.1-15

<Pi>

Wave generator with digital ADSR

12.03.2017: Version 1.6

  • Source code (compile 15 times with different metacompiler commands for each microcontroller).

 

4 x 6 PWM channels

4 x 5 Timers

12 ADSR's

Each board has 4 microprocessors to serve a full octave, in total 15 microprocessors

Circuit drawing

PCB (3 versions)

24EP128MC202
48.1

<Balsi>

3-phase mains power induction motor drive

31.08.2017: Version 1.0

 

3-phase induction motor

1 ADC 12-bit channel

1 Tacho input

Circuit drawing

PCB

(different versions available)

24EP128MC202
49.1

<Llor>

16.10.2017: Revision V2.0

8 bidirectional solenoids midi-pulse 16 output board (2004) with autorepeat 18F2525
49.2

<Llor>

17.10.2017: Revision V2.0

16 pulse out midi-pulse 16 output board (2004) with autorepeat 18F2620
50 <Rumo>    

Notebook:

25.09.2010: Proton Compiler version 3.5.0.6.
21.08.2013: The code for the periodic timers written for <Whisper> is superior to all previous implementations. So this should be applied to earlier firmware.

23.09.2013: Periodic timers and random functions applied in <Ice2> for Laura Maes.

31.07.2014: The code for the displays contains a mechanism to let the four PIC's communicate with each other, using busy and acknowledge signals. This code also makes use of multiple main program loops.

21.04.2015: Compiler upgrade performed. Proton version 3.5.7.1 now. Proton24 compiler (version 1.0.2.8) installed as well. [ www.protonbasic.co.uk ]. Previous code needs some minor changes such as removing Reserve_Ram 256 and the High_Interrupt_Start and High_Interrupt_End lines in the IRQ driver code. Also the new compiler version does not support dword operations in an interrupt handler.

11.09.2015: The manual states an incorrect upper value for the PWM frequencies as set with the HPWM command. Further remarks in the source code for <Tinti> hub.

12.04.2016: Changing the PWM frequency changes the PWM values on both channels.

08.06.2016: Implementing different analog input channels is well implemented in the Chi_Mot firmware. Proton Compiler version is now 3.5.8.1

24.06.2016: Key pressure command applied on note repeats is well implemented in de source for <pp2>, <Flex>-blade bending processor.

01.08.2016: For the PIC24 and dsPIC33 microcontrollers we are using the Proton24 compiler with a PicKit3 programmer.

10.12.2016: The code for the <Bug> generator is a nice prototype for a monophonic synthesizer using variable sampling rate for tone generation.

19.02.2017: The code for <Pi> uses a full digital approach to 3-channel waveform synthesis with ADSR.

21.03.2017: The code for <Rodo> e-drive implements a 12 bit sampler as well as full digital audio power output.

04.04.2017: The code for <Rodo> radar has gesture recognition implemented as well as full buffered midi merging. It also uses the external interrupt feature.

29.05.2017: The code for Thunderwood's storm wind controller is a good prototype for a 3-phase ac induction motor controller.

31.08.2017: The code for Balsi is a generic 50Hz 3-phase induction motor controller.

10.09.2017: Suspicion of a SWORD implementation bug in the Proton24 compiler. (cfr. dev. of code for 3 phase motorcontrol)

18.10.2017: All 18F2525 processors can be replaced with 18F2620 types.

24.10.2017: The compiler no longer supports the MIN and MAX functions.

 

Debugging and programming board made (for 18F series controllers):

Programmer: Microchip PICkit 2, USB & Microchip PICkit 3, USB.

Debugging and programming board made (for 24EP and ds33EP series controllers):

Programmer: Microchip PICkit 3, USB