-
Decision time
03/30/2016 at 22:36 • 0 commentsSince I'm tight on program space I considered changing to ESP8266 and while that would address the memory issue it requires a big redesign of the top board and while it is a good thing I'm thinking it is to much work. If I start to redesign everytime I find something new to play with I will never get this project off the ground so for version 1 I decided to go with what I already have, arduino nano.
Impact will be less machines simulated and more picky on syntax in the serial interface but maybe someone better than me can optimize the code to allow more to be done.
With that said I'm now finalizing the lamp&keyboard and the plugboard so I can get them made asap. The top main board will require a little more work like making sure everything physically fits and for that test I need some more components that are still in the mail.
-
serialAPI
03/10/2016 at 20:59 • 0 commentsI now more or less finalized the serial API code, just need to make sure it's no serious bugs in it.
Due to lack of program space (I filled 93% of the 32K I have available) the serial API does not have much of validation or smartness so if you enter same rotor in all position it will accept it.
Sample run
A session from power on, config, encrypt and decrypt
Lines starting with
"!" = command I send
"%" = replies to commands
"#"= comment
A-Z=text to encrypt/decrypt
> the result
Setting loglevel to 1 means show how the encryption is done trough all the rotors
================================================================
My enigma v0.05
Checksum seems ok, (3721) keeping the values
fwVersion: 0
preset: 0
Odo meter: 2671
morsecode: OFF
Serial number: 4000000001
model: M3 (Enigma M3, German Navy (Kriegsmarine))
entry wheel: 0
reflector: UKWB 1
Rotors: 0-1-2-3
ringstellung: - D F J
Plugboard (Steckerbrett): virtual - AN BY CW DE GH IX JS MT OV RZ
currentWalze: - D U Y
Preparing plugboard
All LEDs on
All LEDs OFF
Ready
!MODEL:M3
%MODEL:M3
!UKW:UKWB
%UKW: UKWB
!WALZE:1,3,5
%WALZE: 0-1-3-5
!RING:R,A,P
%RING: - R A P
!PLUGBOARD:AW BM CV DS ER HT IJ KN LQ PX
%PLUGBOARD: AW BM CV DS ER HT IJ KN LQ PX
!SETTINGS:
fwVersion: 0
preset: 0
Odo meter: 2671
morsecode: OFF
Serial number: 4000000001
model: M3 (Enigma M3, German Navy (Kriegsmarine))
entry wheel: 0
reflector: UKWB 1
Rotors: 0-1-3-5
ringstellung: - R A P
Plugboard (Steckerbrett): virtual - AW BM CV DS ER HT IJ KN LQ PX
currentWalze: - D U Y
#CONFIG DONE,LETS ENCRYPT SOMETHING
!START:TGG
%START: - T G G
VKX
>HII
!STA:VKX
%START: - V K X
HELLOENIGMAWORLD
>AKTXE UCMKT NETQD E
!STA:VKX
%START: - V K X
AKTXE UCMKT NETQD E
>HELLO ENIGM AWORL D
!LOG:1
%LOGLEVEL:1
#SHOW HOW LETTER TRAVELS, REAL LETTER(RING SETTING LETTER), WHEEL NO AND SO ON
A
>A>SB>W - W>ETW>W - K(V)>R3(#5)>D(O) - A(A)>R2(#3)>B(B) - L(U)>R1(#1)>R(A) - (W)>UKW>(V) - Q(Z)>R1(#1)>A(J) - Q(Q)>R2(#3)>Y(Y) - B(M)>R3(#5)>H(S) - T>ETW>T - T>SB>H :H
?
Available commands:
!SETTINGS!MODEL!UKW!WALZE!RING!PLUGBOARD!START!SAVE!LOAD!LOGLEVEL!
!SAV:1
%SAVE - Save settings as preset 1
saveSettings preset no 1
!LOAD:1
%LOADreadSettings preset no 1 from 64
- Read settings from preset 1
fwVersion: 0
preset: 1
Odo meter: 2708
morsecode: OFF
Serial number: 4000000001
model: M3 (Enigma M3, German Navy (Kriegsmarine))
entry wheel: 0
reflector: UKWB 1
Rotors: 0-1-3-5
ringstellung: - R A P
Plugboard (Steckerbrett): virtual - AW BM CV DS ER HT IJ KN LQ PX
currentWalze: - V L P================================================================
With the presets it's easy to do things like keep the settings for different networks or a few daily settings and then use them when for example encrypt/decrypt messages on http://enigmaworldcodegroup.freeforums.net/
-
First status update
03/07/2016 at 23:45 • 0 commentsMost of the software is now working. Did get the virtual plugboard to work also, at least from physical UI level - still need to implement the software version so 100% can be done over serial port.
I have decided on most things like that it will be powered by usb on the arduino or 2xAA batteries, that the rotors will be larger, or when in doubt about something I go to the original and try to do same as would be there. Now that last part is when it doesn't conflict with usability so for example the original enigma does not have a "clear all settings" button but this one does have a big red button that clears all encryption keys back to factory defaults (except the physical plugboard :) ).
Trying to figure out some final details like what kind of 5V power to use. I can make my own 0.6v->5V circuit or buy a small board that has a USB connector attached. The problem is that the small board is cheaper than the individual components I would need to make my own but it might also be more work having to remove the USB connector..