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

hardware failure. Firmware is o.k.

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>

Version 1:

3-phase mains power induction motor drive

31.08.2017: Version 1.0 (never got the driver hardware to work properly)

3-phase induction motor

1 ADC 12-bit channel

1 Tacho input

abandonned for Balsi

Circuit drawing

PCB

(different versions available, all with serious hardware problems)

24EP128MC202
48.2

<Balsi>

15.01.2019: Version 1.1

DC-motor drive for large siren (24V / 260W) with PID feedback

Source code

3 PWM outputs

1 DC motor

1 bidirectional solenoid

1 Tacho input

1 analog input

motor control board 1

Circuit drawing

PCB

24EP128MC202
48.3

<Balsi>

15.01.2019: Version 1.1

DC-motor drive for universal 230V motor

Motor drive for motorized bell

Motor drive for 24V siren

Source code

3 PWM outputs

1 Universal motor pwm

2 DC motor drives

1 horn

 

motor control board 2

Circuit drawing

PCB

24EP128MC202
48.4

<Balsi>

15.01.2019: Version 1.1

midi-hub board with midi parser

Source code

1 relay

7 mosfet outputs (2 PWM)

hub board

PCB (single sided)

PCB (double sided)

18F2620
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.1

<Pos>

pulse-hold valve control, with automated note repetition

03.05.2018: Version 1.0

  • Source code (compile 5 times with different metacompiler commands for each mircoprocessor
14 pulse-hold outputs

5 pulse-hold boards with autorepeat

Circuit drawing

18F4620
50.2

<Pos>

03.05.2018: Version 1.1 Hub board - Motor controll & parser

slow pwm motor controll

Circuit Drawing

PCB

18F2525
51.1

<Per>

14.08.2018: Version 1.1 hub board

dual slow pwm motor control

Circuit drawing

PCB

18F2620
51.2

<Per>

14.08.2018: Version 1.1 12-out HV puls-hold board

12 pulse/hold Circuit drawing 18F4620
52.1-10

<2Pi>

Wave generator with digital ADSR

30.08.2018: Version 1.0

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

 

5 x 6 PWM channels

5 x 5 Timers

15 ADSR's

Each board has 5 microprocessors to serve 15 notes, in total 10 microprocessors

Circuit drawing

PCB

24EP128MC202
53

<Pyro1>

PIR detector board for movement sensing

05.02.2019: Version 1.0

Source code

2-channel 12 bit ADC channels

midi IN & OUT

Circuit drawing

PCB

24EP128MC202
54

<HEX-2019>

Midi to Centronics printer port interface

10.04.2019 Version 1.0 - to be further tested

LPT-port

Midi In

Midi Out

Circuit Drawing

PCB

18F4620
55 <Rumo>    
56.1

<Ror>

midi hub board

1 relay

7 mosfet outputs

Circuit drawing

 

18F2620
57.1

<Tubo>

frontal demper board

source code

26.09.2019 Version 1.0

18 high current outputs with timers PCB 26 output board 18F4620
57.2

<Tubo>

source code

midi-hub board

1 relay

7 mosfet outputs

PCB (double sided) 18F2620
57.3

<Tubo>

frontal beater board

source code

27.09.2019 Version 1.0

18 high voltage outputs with timers PCB 18 output board 18F4620
57.4

<Tubo>

source code

high beater board

PCB 26 output board V1.1 -24.09.2019 18F4620
57.5

<Tubo>

source code

high damper board

PCB 26 output board V1.1 -24.09.2019 18F4620
       

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 ( Version 3.6.0.2) 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, version 1.0 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.

03.05.2018: The hub board for <Pos> has a nicely working motor controll for a monophase asynchronous motor.

09.12.2018: The <Balsi> motor control board has frequency measurement and PID for the large siren pitch control.

10.12.2018: Newest version of the Proton compiler ordered from Crownhill. Newest manuals downloaded as well.

18.12.2018: Compiler version 3.6.2.7 (Proton8) and 1.0.5.3 (Proton24). The Proton8 compiler now gives problems with our IRQ coding replacing HSRin and HSRout. The code for Balsi hub is the new supposed to be compatible version for use with the new compiler version. First tests on the oscilloscope looks like it's working again...

15.01.2019: The <Balsi> robot is the first one using only the newest compiler versions.

24.09.2019: Serious problems in getting our multitasker to work with the compiler upgrade. The Balsi trick doesn't seem to work when applied to the 18F4620 damper board for Tubo. Adding a single HRSout instruction in the code appears to be a condition for the serial-in procedures to function.

 

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